strings_xml_localizer 0.0.1 → 0.1.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +4 -0
- data/README.md +4 -2
- data/lib/strings_xml_localizer.rb +9 -7
- data/lib/strings_xml_localizer/constants.rb +2 -0
- data/lib/strings_xml_localizer/version.rb +1 -1
- data/spec/strings_xml_localizer_spec.rb +14 -7
- data/strings_xml_localizer.gemspec +0 -2
- metadata +3 -31
- data/Rakefile +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b78b3a861dc400e9f357d196ce82afc596a679c3
|
4
|
+
data.tar.gz: 3aeb7ffbad0e56aa94f991cd68ef44fb460fac22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e277cb84e01b0ca1c856144bf0335ca1e72dbf6a0815f873502ae9397d7b0a72d7c14a959281baafe6dad9ed9d54cd4aad21c83ffb7082f3677e386181e9b440
|
7
|
+
data.tar.gz: 12dc51a0c2428e1a7f272e744aba8854c0ff9f07511e6200ea11c62783d5d9fa109a7ec48c428e43c05aaaa2bd4140d4e430775e76f7d32b6668e3e1764535f2
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# StringsXmlLocalizer
|
1
|
+
# StringsXmlLocalizer [<img src="https://travis-ci.org/hoangphanea/strings_xml_localizer.svg" alt="Build Status" />](https://travis-ci.org/hoangphanea/strings_xml_localizer)
|
2
2
|
|
3
3
|
A very simple gem to translate contents of a strings.xml file from one locale to another. It could be used for localize your app.
|
4
4
|
|
@@ -34,7 +34,7 @@ input = %Q(
|
|
34
34
|
<string name="hi">Hello!</string>
|
35
35
|
</resources>
|
36
36
|
)
|
37
|
-
StringsXmlLocalizer.string_to_string(input)
|
37
|
+
StringsXmlLocalizer.string_to_string(input, tl: :ja)
|
38
38
|
|
39
39
|
### OUTPUT
|
40
40
|
# "\n<resources>\n <string name=\"hello\">こんにちは!</string>\n <string name=\"hi\">こんにちは!</string>\n</resources>\n"
|
@@ -62,6 +62,8 @@ StringsXmlLocalizer.file_to_file(from: 'input.xml', to: 'output.xml')
|
|
62
62
|
### Options:
|
63
63
|
- `:from`: File to read from, default: `strings.xml`
|
64
64
|
- `:to`: File to write to, default: `output.xml`
|
65
|
+
- `:sl`: Source language, default: `auto`
|
66
|
+
- `:tl`: Target language, default: `ja`
|
65
67
|
|
66
68
|
## Contributing
|
67
69
|
|
@@ -22,25 +22,25 @@ module StringsXmlLocalizer
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
def self.string_to_string(src)
|
25
|
+
def self.string_to_string(src, options = {})
|
26
26
|
in_xml = Ox.parse(src)
|
27
27
|
output = Ox::Document.new(version: '1.0', encoding: 'utf-8')
|
28
28
|
|
29
29
|
in_resources = in_xml.resources
|
30
|
-
out_resources = generate_out_resources(in_resources)
|
30
|
+
out_resources = generate_out_resources(in_resources, options)
|
31
31
|
output << out_resources
|
32
32
|
|
33
33
|
Ox.dump(output)
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.generate_out_resources(in_resources)
|
36
|
+
def self.generate_out_resources(in_resources, options = {})
|
37
37
|
out_resources = Ox::Element.new('resources')
|
38
38
|
i = 0
|
39
39
|
while 1
|
40
40
|
begin
|
41
41
|
out = Ox::Element.new('string')
|
42
42
|
out[:name] = in_resources.string(i).attributes[:name]
|
43
|
-
out << translate_string_at(in_resources, i, :
|
43
|
+
out << translate_string_at(in_resources, i, options[:sl], options[:tl])
|
44
44
|
out_resources << out
|
45
45
|
i += 1
|
46
46
|
rescue
|
@@ -50,14 +50,16 @@ module StringsXmlLocalizer
|
|
50
50
|
out_resources
|
51
51
|
end
|
52
52
|
|
53
|
-
def self.translate_string_at(resources, index, to)
|
54
|
-
GoTranslator.translate(resources.string(index).text, to: to)
|
53
|
+
def self.translate_string_at(resources, index, from, to)
|
54
|
+
GoTranslator.translate(resources.string(index).text, from: from, to: to)
|
55
55
|
end
|
56
56
|
|
57
57
|
def self.default_options
|
58
58
|
{
|
59
59
|
from: DEFAULT_FROM,
|
60
|
-
to: DEFAULT_TO
|
60
|
+
to: DEFAULT_TO,
|
61
|
+
sl: DEFAULT_SOURCE_LANGUAGE,
|
62
|
+
tl: DEFAULT_TARGET_LANGUANGE
|
61
63
|
}
|
62
64
|
end
|
63
65
|
end
|
@@ -15,6 +15,10 @@ describe StringsXmlLocalizer do
|
|
15
15
|
let(:from) { 'from.xml' }
|
16
16
|
let(:to) { 'to.xml' }
|
17
17
|
|
18
|
+
before do
|
19
|
+
allow(GoTranslator).to receive(:translate).and_return('こんにちは!')
|
20
|
+
end
|
21
|
+
|
18
22
|
it 'has a version number' do
|
19
23
|
expect(StringsXmlLocalizer::VERSION).not_to be nil
|
20
24
|
end
|
@@ -28,7 +32,7 @@ describe StringsXmlLocalizer do
|
|
28
32
|
end
|
29
33
|
|
30
34
|
after do
|
31
|
-
StringsXmlLocalizer.file_to_file(from: from, to: to)
|
35
|
+
StringsXmlLocalizer.file_to_file(from: from, to: to, tl: :ja)
|
32
36
|
end
|
33
37
|
|
34
38
|
it 'writes correct string' do
|
@@ -45,7 +49,7 @@ describe StringsXmlLocalizer do
|
|
45
49
|
end
|
46
50
|
|
47
51
|
after do
|
48
|
-
StringsXmlLocalizer.string_to_file(src, to: to)
|
52
|
+
StringsXmlLocalizer.string_to_file(src, to: to, tl: :ja)
|
49
53
|
end
|
50
54
|
|
51
55
|
it 'writes correct string' do
|
@@ -60,13 +64,13 @@ describe StringsXmlLocalizer do
|
|
60
64
|
end
|
61
65
|
|
62
66
|
it 'returns correct string' do
|
63
|
-
expect(StringsXmlLocalizer.file_to_string(from: from)).to eq expected_result
|
67
|
+
expect(StringsXmlLocalizer.file_to_string(from: from, tl: :ja)).to eq expected_result
|
64
68
|
end
|
65
69
|
end
|
66
70
|
|
67
71
|
describe '.string_to_string' do
|
68
72
|
it 'returns correct string' do
|
69
|
-
expect(StringsXmlLocalizer.string_to_string(src)).to eq expected_result
|
73
|
+
expect(StringsXmlLocalizer.string_to_string(src, tl: :ja)).to eq expected_result
|
70
74
|
end
|
71
75
|
end
|
72
76
|
|
@@ -88,16 +92,17 @@ describe StringsXmlLocalizer do
|
|
88
92
|
let(:resources) { double }
|
89
93
|
let(:index) { 1 }
|
90
94
|
let(:text) { 'text' }
|
95
|
+
let(:source) { :en }
|
91
96
|
let(:target) { :ja }
|
92
97
|
let(:result) { 'result' }
|
93
98
|
|
94
99
|
before do
|
95
100
|
expect(resources).to receive(:string).with(index).and_return(double(text: text))
|
96
|
-
expect(GoTranslator).to receive(:translate).with(text, to: target).and_return(result)
|
101
|
+
expect(GoTranslator).to receive(:translate).with(text, from: source, to: target).and_return(result)
|
97
102
|
end
|
98
103
|
|
99
104
|
it 'returns correct result' do
|
100
|
-
expect(StringsXmlLocalizer.translate_string_at(resources, index, target)).to eq result
|
105
|
+
expect(StringsXmlLocalizer.translate_string_at(resources, index, source, target)).to eq result
|
101
106
|
end
|
102
107
|
end
|
103
108
|
|
@@ -105,7 +110,9 @@ describe StringsXmlLocalizer do
|
|
105
110
|
let(:expected_result) do
|
106
111
|
{
|
107
112
|
from: StringsXmlLocalizer::DEFAULT_FROM,
|
108
|
-
to: StringsXmlLocalizer::DEFAULT_TO
|
113
|
+
to: StringsXmlLocalizer::DEFAULT_TO,
|
114
|
+
sl: StringsXmlLocalizer::DEFAULT_SOURCE_LANGUAGE,
|
115
|
+
tl: StringsXmlLocalizer::DEFAULT_TARGET_LANGUANGE
|
109
116
|
}
|
110
117
|
end
|
111
118
|
|
@@ -18,8 +18,6 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler", "~> 1.5"
|
22
|
-
spec.add_development_dependency "rake"
|
23
21
|
spec.add_development_dependency "rspec"
|
24
22
|
|
25
23
|
spec.add_dependency "ox"
|
metadata
CHANGED
@@ -1,43 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strings_xml_localizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hoang Phan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.5'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.5'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
13
|
- !ruby/object:Gem::Dependency
|
42
14
|
name: rspec
|
43
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,10 +60,10 @@ extensions: []
|
|
88
60
|
extra_rdoc_files: []
|
89
61
|
files:
|
90
62
|
- ".gitignore"
|
63
|
+
- ".travis.yml"
|
91
64
|
- Gemfile
|
92
65
|
- LICENSE.txt
|
93
66
|
- README.md
|
94
|
-
- Rakefile
|
95
67
|
- lib/strings_xml_localizer.rb
|
96
68
|
- lib/strings_xml_localizer/constants.rb
|
97
69
|
- lib/strings_xml_localizer/version.rb
|
data/Rakefile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require "bundler/gem_tasks"
|