i18n-translators-tools 0.1.1 → 0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +72 -22
- data/Rakefile +36 -3
- data/bin/i18n-translate +11 -68
- data/i18n-translators-tools.gemspec +44 -3
- data/lib/i18n-translate.rb +5 -0
- data/lib/i18n/backend/po.rb +20 -0
- data/lib/i18n/backend/properties.rb +19 -0
- data/lib/i18n/backend/translate.rb +2 -2
- data/lib/i18n/backend/ts.rb +19 -0
- data/lib/i18n/processor.rb +56 -1
- data/lib/i18n/processor/gettext.rb +63 -22
- data/lib/i18n/processor/properties.rb +78 -0
- data/lib/i18n/processor/ruby.rb +1 -1
- data/lib/i18n/processor/ts.rb +149 -0
- data/lib/i18n/processor/yaml.rb +2 -2
- data/lib/i18n/translate.rb +84 -69
- data/lib/i18n/translator.rb +76 -0
- data/test/all.rb +89 -0
- data/test/backend.rb +51 -0
- data/test/locale/src/cze.po +26 -0
- data/test/locale/src/cze.rb +24 -2
- data/test/locale/src/cze.yml +24 -6
- data/test/locale/src/deep/cze.yml +4 -0
- data/test/locale/src/deep/default.yml +4 -0
- data/test/locale/src/deep/eng.yml +4 -0
- data/test/locale/src/default.yml +14 -6
- data/test/processor.rb +42 -0
- data/test/tc_backend_po.rb +16 -0
- data/test/tc_backend_properties.rb +16 -0
- data/test/tc_backend_translate.rb +16 -0
- data/test/tc_backend_ts.rb +16 -0
- data/test/tc_i18n-translate.rb +128 -0
- data/test/tc_processor.rb +49 -0
- data/test/tc_processor_gettext.rb +15 -0
- data/test/tc_processor_properties.rb +35 -0
- data/test/tc_processor_ruby.rb +15 -0
- data/test/tc_processor_ts.rb +26 -0
- data/test/tc_processor_yaml.rb +15 -0
- data/test/tc_translate.rb +106 -87
- metadata +88 -19
@@ -0,0 +1,49 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# vi: fenc=utf-8:expandtab:ts=2:sw=2:sts=2
|
3
|
+
#
|
4
|
+
# @author: Petr Kovar <pejuko@gmail.com>
|
5
|
+
#
|
6
|
+
|
7
|
+
class TestProcessor < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def test_0010_dont_find_processor
|
10
|
+
processor = I18n::Translate::Processor.find_processor("test.abc")
|
11
|
+
assert_equal( nil, processor )
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_0010_find_processor_yaml
|
15
|
+
# yml
|
16
|
+
processor = I18n::Translate::Processor.find_processor("test.yml")
|
17
|
+
assert_equal( I18n::Translate::Processor::YAML, processor )
|
18
|
+
|
19
|
+
# yaml
|
20
|
+
processor = I18n::Translate::Processor.find_processor("test.yaml")
|
21
|
+
assert_equal( I18n::Translate::Processor::YAML, processor )
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_0010_find_processor_ruby
|
25
|
+
processor = I18n::Translate::Processor.find_processor("test.rb")
|
26
|
+
assert_equal( I18n::Translate::Processor::Ruby, processor )
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_0010_find_processor_gettext
|
30
|
+
# po
|
31
|
+
processor = I18n::Translate::Processor.find_processor("test.po")
|
32
|
+
assert_equal( I18n::Translate::Processor::Gettext, processor )
|
33
|
+
|
34
|
+
# pot
|
35
|
+
processor = I18n::Translate::Processor.find_processor("test.pot")
|
36
|
+
assert_equal( I18n::Translate::Processor::Gettext, processor )
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_0010_find_processor_ts
|
40
|
+
processor = I18n::Translate::Processor.find_processor("test.ts")
|
41
|
+
assert_equal( I18n::Translate::Processor::TS, processor )
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_0010_find_processor_properties
|
45
|
+
processor = I18n::Translate::Processor.find_processor("test.properties")
|
46
|
+
assert_equal( I18n::Translate::Processor::Properties, processor )
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# vi: fenc=utf-8:expandtab:ts=2:sw=2:sts=2
|
3
|
+
#
|
4
|
+
# @author: Petr Kovar <pejuko@gmail.com>
|
5
|
+
#
|
6
|
+
|
7
|
+
class TestProcessorGettext < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
__prepare(I18n::Translate::Processor::Gettext, "cze.po")
|
11
|
+
end
|
12
|
+
|
13
|
+
include I18n::Test::Processor
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# vi: fenc=utf-8:expandtab:ts=2:sw=2:sts=2
|
3
|
+
#
|
4
|
+
# @author: Petr Kovar <pejuko@gmail.com>
|
5
|
+
|
6
|
+
|
7
|
+
class TestProcessorProperties < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
__prepare(I18n::Translate::Processor::Properties, "cze.properties")
|
11
|
+
end
|
12
|
+
|
13
|
+
include I18n::Test::Processor
|
14
|
+
|
15
|
+
|
16
|
+
def test_0010_read
|
17
|
+
data = @src.read
|
18
|
+
assert( data.keys.include?('cze') )
|
19
|
+
data = data['cze']
|
20
|
+
str = "Interpolovaný text '%{var}'"
|
21
|
+
#diff(str, data["extended"]["interpolation"])
|
22
|
+
assert_equal( str, data["extended"]["interpolation"] )
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_0020_write
|
26
|
+
data = @src.read
|
27
|
+
@trg.write(data)
|
28
|
+
assert( File.exists?(@trg_file) )
|
29
|
+
data2 = @trg.read
|
30
|
+
diff(data, data2)
|
31
|
+
assert_equal(data, data2)
|
32
|
+
File.unlink(@trg_file)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# vi: fenc=utf-8:expandtab:ts=2:sw=2:sts=2
|
3
|
+
#
|
4
|
+
# @author: Petr Kovar <pejuko@gmail.com>
|
5
|
+
#
|
6
|
+
|
7
|
+
class TestProcessorRuby < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
__prepare(I18n::Translate::Processor::Ruby, "cze.rb")
|
11
|
+
end
|
12
|
+
|
13
|
+
include I18n::Test::Processor
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# vi: fenc=utf-8:expandtab:ts=2:sw=2:sts=2
|
3
|
+
#
|
4
|
+
# @author: Petr Kovar <pejuko@gmail.com>
|
5
|
+
#
|
6
|
+
|
7
|
+
class TestProcessorTS < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
__prepare(I18n::Translate::Processor::TS, "cze.ts")
|
11
|
+
end
|
12
|
+
|
13
|
+
include I18n::Test::Processor
|
14
|
+
|
15
|
+
def test_0030_read_po_to_ts
|
16
|
+
t = I18n::Translate::Translate.new('cze', {:locale_dir => $src_dir, :default_format => 'yml', :format => 'yml'})
|
17
|
+
file = File.join($src_dir, 'po_to_ts.ts')
|
18
|
+
reader = I18n::Translate::Processor::TS.new(file, t)
|
19
|
+
data = reader.read
|
20
|
+
assert( data.keys.include?('cze') )
|
21
|
+
data = data['cze']
|
22
|
+
diff($si, data["extended"]["interpolation"])
|
23
|
+
assert_equal( $si, data["extended"]["interpolation"] )
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# vi: fenc=utf-8:expandtab:ts=2:sw=2:sts=2
|
3
|
+
#
|
4
|
+
# @author: Petr Kovar <pejuko@gmail.com>
|
5
|
+
#
|
6
|
+
|
7
|
+
class TestProcessorYAML < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
__prepare(I18n::Translate::Processor::YAML, "cze.yml")
|
11
|
+
end
|
12
|
+
|
13
|
+
include I18n::Test::Processor
|
14
|
+
|
15
|
+
end
|
data/test/tc_translate.rb
CHANGED
@@ -3,88 +3,13 @@
|
|
3
3
|
#
|
4
4
|
# @author: Petr Kovar <pejuko@gmail.com>
|
5
5
|
#
|
6
|
-
require 'test/unit'
|
7
|
-
require 'rubygems'
|
8
|
-
require 'yaml'
|
9
|
-
|
10
|
-
$:.unshift File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
11
|
-
require 'lib/i18n-translate'
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
$current_dir = File.expand_path(File.dirname(__FILE__))
|
16
|
-
$src_dir = File.join($current_dir, 'locale/src')
|
17
|
-
$trg_dir = File.join($current_dir, 'locale/trg')
|
18
|
-
|
19
|
-
|
20
|
-
def load_yml(default, cze)
|
21
|
-
[YAML.load(File.read(default))["default"], YAML.load(File.read(cze))["cze"]]
|
22
|
-
end
|
23
|
-
|
24
|
-
def load_src
|
25
|
-
load_yml("#{$src_dir}/default.yml", "#{$src_dir}/cze.yml")
|
26
|
-
end
|
27
|
-
|
28
|
-
def load_trg
|
29
|
-
load_yml("#{$trg_dir}/default.yml", "#{$trg_dir}/cze.yml")
|
30
|
-
end
|
31
|
-
|
32
|
-
def load_src_trg
|
33
|
-
res = {}
|
34
|
-
res[:src] = load_src
|
35
|
-
res[:trg] = load_trg
|
36
|
-
res
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
|
41
|
-
I18n::Backend::Simple.send(:include, I18n::Backend::Translate)
|
42
|
-
I18n.default_locale = 'default'
|
43
|
-
I18n.locale = 'cze'
|
44
|
-
|
45
|
-
|
46
|
-
class TestTranslatorPlugin < Test::Unit::TestCase
|
47
|
-
|
48
|
-
def setup
|
49
|
-
I18n.load_path << Dir[ "#{$src_dir}/*.yml" ]
|
50
|
-
I18n.reload!
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_0010_I18n_plugin_simple_text
|
54
|
-
assert_equal( "Text k přeložení", I18n.t("simple.text") )
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_0020_I18n_plugin_plural_text
|
58
|
-
assert_equal( "Jedna položka", I18n.t("simple.plural", :count => 1) )
|
59
|
-
assert_equal( "Mnoho položek", I18n.t("simple.plural", :count => 9))
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_0030_I18n_plugin_interpolation
|
63
|
-
assert_equal( "Interpolovaný text 'ahoj'", I18n.t("simple.interpolation", :var => "ahoj"))
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_0040_I18n_plugin_translate_simple
|
67
|
-
assert_equal( "Změněný jednoduchý text", I18n.t("changed.simple"))
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_0050_I18n_plugin_translate_plural
|
71
|
-
assert_equal( "Změněný plurál text", I18n.t("changed.plural", :count => 1))
|
72
|
-
assert_equal( "Změněný plurál textů", I18n.t("changed.plural", :count => 9))
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_0060_I18n_plugin_translate_interpolation
|
76
|
-
assert_equal( "Interpolovaný změněný text 'ahoj'", I18n.t("changed.interpolation", :var => "ahoj"))
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
80
|
-
|
81
6
|
|
82
7
|
class TestTranslate < Test::Unit::TestCase
|
83
8
|
def setup
|
84
9
|
@opts = {:locale_dir => $src_dir, :format => 'yml', :default_format => 'yml'}
|
85
10
|
@t = I18n::Translate::Translate.new('cze', @opts)
|
86
11
|
@t.options[:locale_dir] = $trg_dir
|
87
|
-
I18n.load_path
|
12
|
+
I18n.load_path = Dir[ "#{$src_dir}/*.yml" ]
|
88
13
|
I18n.reload!
|
89
14
|
end
|
90
15
|
|
@@ -100,8 +25,8 @@ class TestTranslate < Test::Unit::TestCase
|
|
100
25
|
def test_0020_merge_simple
|
101
26
|
assert_equal( { "key" => "simple.text",
|
102
27
|
"default" => "Text to translate",
|
103
|
-
"
|
104
|
-
"
|
28
|
+
"translation" => "Text k přeložení",
|
29
|
+
"old_translation" => "",
|
105
30
|
"old_default" => "",
|
106
31
|
"comment" => "",
|
107
32
|
"flag" => "ok" }, @t["simple.text"] )
|
@@ -110,8 +35,8 @@ class TestTranslate < Test::Unit::TestCase
|
|
110
35
|
def test_0030_merge_changed
|
111
36
|
assert_equal( { "key" => "changed.simple",
|
112
37
|
"default" => "This text is newer and changed",
|
113
|
-
"
|
114
|
-
"
|
38
|
+
"translation" => "",
|
39
|
+
"old_translation" => "Změněný jednoduchý text",
|
115
40
|
"old_default" => "Changed simple text",
|
116
41
|
"comment" => "",
|
117
42
|
"flag" => "changed" }, @t["changed.simple"] )
|
@@ -122,18 +47,15 @@ class TestTranslate < Test::Unit::TestCase
|
|
122
47
|
entry = @t.find("simple.text", @t.target )
|
123
48
|
|
124
49
|
assert( entry.kind_of?(Hash) )
|
125
|
-
assert_equal( { "
|
126
|
-
"old" => "",
|
50
|
+
assert_equal( { "translation" => "Text k přeložení",
|
127
51
|
"default" => "Text to translate",
|
128
|
-
"comment" => "",
|
129
52
|
"flag" => "ok"
|
130
53
|
}, entry )
|
131
54
|
|
132
55
|
entry = @t.find("changed.simple", @t.target )
|
133
|
-
assert_equal( { "
|
134
|
-
"
|
56
|
+
assert_equal( { "translation" => "Změněný jednoduchý text",
|
57
|
+
"old_default" => "Changed simple text",
|
135
58
|
"default" => "This text is newer and changed",
|
136
|
-
"comment" => "",
|
137
59
|
"flag" => "changed",
|
138
60
|
"fuzzy" => true
|
139
61
|
}, entry )
|
@@ -159,7 +81,104 @@ class TestTranslate < Test::Unit::TestCase
|
|
159
81
|
tpo = I18n::Translate::Translate.new('cze', @opts.merge({:format => 'po'}))
|
160
82
|
assert(tpo.kind_of?(I18n::Translate::Translate))
|
161
83
|
assert_equal(File.join(File.expand_path($src_dir), 'cze.po'), tpo.lang_file)
|
162
|
-
assert_equal(
|
84
|
+
assert_equal(@t.target.keys.sort, tpo.target.keys.sort)
|
85
|
+
assert_equal($si, tpo.target["extended"]["interpolation"])
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_0080_convert
|
89
|
+
t = I18n::Translate::Translate.new('cze', @opts.merge({:format => 'yml'}))
|
90
|
+
t.options[:locale_dir] = $trg_dir
|
91
|
+
t.options[:format] = 'po'
|
92
|
+
t.export!
|
93
|
+
trg_file = File.join($trg_dir, "cze.po")
|
94
|
+
assert( File.exists?(trg_file) )
|
95
|
+
t2 = I18n::Translate::Translate.new('cze', @opts.merge({:format => 'po'}))
|
96
|
+
assert_equal( t.target["extended"]["interpolation"], t2.target["extended"]["interpolation"] )
|
97
|
+
File.unlink(trg_file)
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
class TestTranslateTools < Test::Unit::TestCase
|
105
|
+
|
106
|
+
def setup
|
107
|
+
@hash = {}
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_0010_scan_list_files
|
111
|
+
locales = I18n::Translate.scan(:locale_dir => $src_dir).map{ |x| x =~ /\/([^\/]+)$/; $1 }.sort
|
112
|
+
assert_equal( %w(cze.po cze.properties cze.rb cze.ts cze.yml po_to_ts.ts).sort, locales )
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_0011_scan_list_files_format
|
116
|
+
locales = I18n::Translate.scan(:locale_dir => $src_dir, :format => 'yml').map{ |x| x =~ /\/([^\/]+)$/; $1 }.sort
|
117
|
+
assert_equal( %w(cze.yml).sort, locales )
|
118
|
+
end
|
119
|
+
|
120
|
+
def test_0012_scan_list_files_exclude
|
121
|
+
locales = I18n::Translate.scan(:locale_dir => $src_dir, :exclude => ['yml']).map{ |x| x =~ /\/([^\/]+)$/; $1 }.sort
|
122
|
+
assert_equal( %w(cze.po cze.properties cze.rb cze.ts po_to_ts.ts).sort, locales )
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_0013_scan_list_deep
|
126
|
+
locales = I18n::Translate.scan(:locale_dir => $src_dir, :deep => true).map{ |x| x =~ /\/([^\/]+)$/; $1 }.sort
|
127
|
+
assert_equal( %w(cze.po cze.properties cze.rb cze.ts cze.yml cze.yml eng.yml po_to_ts.ts).sort, locales )
|
128
|
+
end
|
129
|
+
|
130
|
+
def test_0013_scan_list_deep_exclude
|
131
|
+
locales = I18n::Translate.scan(:locale_dir => $src_dir, :deep => true, :exclude => ['cze']).map{ |x| x =~ /\/([^\/]+)$/; $1 }.sort
|
132
|
+
assert_equal( %w(eng.yml po_to_ts.ts).sort, locales )
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_0020_scan_block
|
136
|
+
I18n::Translate.scan(:locale_dir => $src_dir, :default_format => 'yml') do |tr|
|
137
|
+
entry = tr.find("simple.text")
|
138
|
+
str = "Text k přeložení"
|
139
|
+
if entry.kind_of?(String)
|
140
|
+
assert_equal( str, entry )
|
141
|
+
else
|
142
|
+
assert_equal( str, entry["translation"] )
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_0030_set_bad_separator
|
148
|
+
I18n::Translate.set("a.b.c", "Value", @hash, "|")
|
149
|
+
assert_equal( {"a.b.c" => "Value"}, @hash )
|
150
|
+
end
|
151
|
+
|
152
|
+
def test_0040_set
|
153
|
+
I18n::Translate.set("a.b.c", "Value", @hash)
|
154
|
+
assert_equal( {"a" => {"b" => {"c" => "Value"}}}, @hash )
|
155
|
+
|
156
|
+
I18n::Translate.set("a.b.d", "Value 2", @hash)
|
157
|
+
assert_equal( {"a" => {"b" => {"c" => "Value", "d" => "Value 2"}}}, @hash )
|
158
|
+
end
|
159
|
+
|
160
|
+
def test_0050_find_in_empty_hash
|
161
|
+
entry = I18n::Translate.find("a.b.c", @hash)
|
162
|
+
assert_equal( nil, entry )
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_0050_find
|
166
|
+
I18n::Translate.set("a.b.c", "Value", @hash)
|
167
|
+
I18n::Translate.set("a.b.d", "Value 2", @hash)
|
168
|
+
entry = I18n::Translate.find("a.b.c", @hash)
|
169
|
+
assert_equal( "Value" , entry )
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_0060_hash_to_keys_empty_hash
|
173
|
+
keys = I18n::Translate.hash_to_keys(@hash)
|
174
|
+
assert_equal( [], keys )
|
175
|
+
end
|
176
|
+
|
177
|
+
def test_0060_hash_to_keys_empty_hash
|
178
|
+
I18n::Translate.set("a.b.c", "Value", @hash)
|
179
|
+
I18n::Translate.set("a.b.d", "Value 2", @hash)
|
180
|
+
keys = I18n::Translate.hash_to_keys(@hash)
|
181
|
+
assert_equal( %w(a.b.c a.b.d), keys )
|
163
182
|
end
|
164
183
|
|
165
184
|
end
|
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n-translators-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
-
|
9
|
-
version: 0.1.1
|
8
|
+
- 2
|
9
|
+
version: "0.2"
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Petr Kovar
|
@@ -14,16 +14,18 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-07-
|
17
|
+
date: 2010-07-27 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: i18n
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 13
|
27
29
|
segments:
|
28
30
|
- 0
|
29
31
|
- 4
|
@@ -35,9 +37,11 @@ dependencies:
|
|
35
37
|
name: ya2yaml
|
36
38
|
prerelease: false
|
37
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
38
41
|
requirements:
|
39
42
|
- - ">="
|
40
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
41
45
|
segments:
|
42
46
|
- 0
|
43
47
|
version: "0"
|
@@ -46,6 +50,7 @@ dependencies:
|
|
46
50
|
description: |
|
47
51
|
This package brings you useful utility which can help you to handle locale files
|
48
52
|
and translations in your Ruby projects. Offers also built-in simple console editor.
|
53
|
+
Supported formats are YAML, Ruby, Gettext po, QT Linguist TS and Java Properties.
|
49
54
|
Read README.md file and run i18n-translate without parameters for more information.
|
50
55
|
|
51
56
|
email: pejuko@gmail.com
|
@@ -57,48 +62,112 @@ extra_rdoc_files: []
|
|
57
62
|
|
58
63
|
files:
|
59
64
|
- bin/i18n-translate
|
60
|
-
- test/tc_translate.rb
|
61
|
-
- test/locale/src/default.yml
|
62
|
-
- test/locale/src/cze.yml
|
63
|
-
- test/locale/src/cze.rb
|
64
|
-
- test/locale/src/cze.po
|
65
|
-
- lib/i18n-translate.rb
|
66
|
-
- lib/i18n/translate.rb
|
67
|
-
- lib/i18n/processor.rb
|
68
|
-
- lib/i18n/processor/yaml.rb
|
69
|
-
- lib/i18n/processor/ruby.rb
|
70
|
-
- lib/i18n/processor/gettext.rb
|
71
|
-
- lib/i18n/backend/translate.rb
|
72
65
|
- README.md
|
73
66
|
- i18n-translators-tools.gemspec
|
74
67
|
- Rakefile
|
68
|
+
- lib/i18n/translator.rb
|
69
|
+
- lib/i18n/backend/po.rb
|
70
|
+
- lib/i18n/backend/properties.rb
|
71
|
+
- lib/i18n/backend/ts.rb
|
72
|
+
- lib/i18n/backend/translate.rb
|
73
|
+
- lib/i18n/processor/properties.rb
|
74
|
+
- lib/i18n/processor/ts.rb
|
75
|
+
- lib/i18n/processor/ruby.rb
|
76
|
+
- lib/i18n/processor/yaml.rb
|
77
|
+
- lib/i18n/processor/gettext.rb
|
78
|
+
- lib/i18n/translate.rb
|
79
|
+
- lib/i18n/processor.rb
|
80
|
+
- lib/i18n-translate.rb
|
81
|
+
- test/tc_processor_properties.rb
|
82
|
+
- test/tc_processor.rb
|
83
|
+
- test/locale/src/cze.rb
|
84
|
+
- test/backend.rb
|
85
|
+
- test/tc_i18n-translate.rb
|
86
|
+
- test/tc_backend_ts.rb
|
87
|
+
- test/tc_processor_yaml.rb
|
88
|
+
- test/tc_processor_ruby.rb
|
89
|
+
- test/all.rb
|
90
|
+
- test/tc_backend_po.rb
|
91
|
+
- test/tc_processor_gettext.rb
|
92
|
+
- test/tc_backend_translate.rb
|
93
|
+
- test/tc_processor_ts.rb
|
94
|
+
- test/processor.rb
|
95
|
+
- test/tc_backend_properties.rb
|
96
|
+
- test/tc_translate.rb
|
97
|
+
- test/locale/src/cze.yml
|
98
|
+
- test/locale/src/default.yml
|
99
|
+
- test/locale/src/deep/cze.yml
|
100
|
+
- test/locale/src/deep/eng.yml
|
101
|
+
- test/locale/src/deep/default.yml
|
102
|
+
- test/locale/src/cze.po
|
75
103
|
has_rdoc: true
|
76
|
-
homepage:
|
104
|
+
homepage: http://github.com/pejuko/i18n-translators-tools
|
77
105
|
licenses: []
|
78
106
|
|
79
|
-
post_install_message:
|
107
|
+
post_install_message: |
|
108
|
+
=======================================================================
|
109
|
+
|
110
|
+
I18N TRANSLATORS TOOLS
|
111
|
+
|
112
|
+
-----------------------------------------------------------------------
|
113
|
+
|
114
|
+
Supported formats:
|
115
|
+
* yml
|
116
|
+
* rb
|
117
|
+
* ts
|
118
|
+
* po
|
119
|
+
* properties
|
120
|
+
|
121
|
+
Backends:
|
122
|
+
* Extended format. i18n-translators-tools bring extended format
|
123
|
+
I18n::Backend::Simple.send(:include, I18n::Backend::Translator)
|
124
|
+
* Gettext po
|
125
|
+
I18n::Backend::Simple.send(:include, I18n::Backend::PO)
|
126
|
+
* QT Linguist TS
|
127
|
+
I18n::Backend::Simple.send(:include, I18n::Backend::TS)
|
128
|
+
* Java Properties files
|
129
|
+
I18n::Backend::Simple.send(:include, I18n::Backend::Properties)
|
130
|
+
|
131
|
+
Functions:
|
132
|
+
* merge
|
133
|
+
* convert
|
134
|
+
* translate (built-in simple console translator)
|
135
|
+
* statistics
|
136
|
+
|
137
|
+
For more information read README.md and CHANGELOG.md
|
138
|
+
|
139
|
+
-----------------------------------------------------------------------
|
140
|
+
|
141
|
+
http://github.com/pejuko/i18n-translators-tools
|
142
|
+
|
143
|
+
=======================================================================
|
144
|
+
|
80
145
|
rdoc_options: []
|
81
146
|
|
82
147
|
require_paths:
|
83
148
|
- lib
|
84
149
|
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
85
151
|
requirements:
|
86
152
|
- - ">="
|
87
153
|
- !ruby/object:Gem::Version
|
154
|
+
hash: 3
|
88
155
|
segments:
|
89
156
|
- 0
|
90
157
|
version: "0"
|
91
158
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
+
none: false
|
92
160
|
requirements:
|
93
161
|
- - ">="
|
94
162
|
- !ruby/object:Gem::Version
|
163
|
+
hash: 3
|
95
164
|
segments:
|
96
165
|
- 0
|
97
166
|
version: "0"
|
98
167
|
requirements: []
|
99
168
|
|
100
169
|
rubyforge_project:
|
101
|
-
rubygems_version: 1.3.
|
170
|
+
rubygems_version: 1.3.7
|
102
171
|
signing_key:
|
103
172
|
specification_version: 3
|
104
173
|
summary: I18n transation utility which helps to manage files with locales.
|