babelyoda 2.0.1 → 2.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/lib/babelyoda/localization_key.rb +4 -0
- data/lib/babelyoda/logger.rb +2 -2
- data/lib/babelyoda/strings.rb +5 -2
- data/lib/babelyoda/tanker.rb +5 -2
- data/lib/babelyoda/version.rb +1 -1
- data/lib/babelyoda.rb +31 -22
- metadata +19 -19
@@ -10,6 +10,10 @@ module Babelyoda
|
|
10
10
|
@values = {}
|
11
11
|
end
|
12
12
|
|
13
|
+
def to_s
|
14
|
+
"\"#{@id}\" [#{@values.keys.map{|k| ":#{k.to_s}"}.join(', ')}] // #{@context}"
|
15
|
+
end
|
16
|
+
|
13
17
|
def <<(localization_value)
|
14
18
|
@values[localization_value.language.to_sym] = localization_value.dup
|
15
19
|
self
|
data/lib/babelyoda/logger.rb
CHANGED
@@ -7,8 +7,8 @@ module Babelyoda
|
|
7
7
|
def exe(cmd) ; putcmd cmd ; system cmd ; end
|
8
8
|
def putcmd(cmd) ; print magenta, "CMD: #{cmd}", reset, "\n" ; end
|
9
9
|
def status(msg) ; print blue, "--- #{msg} ---", reset, "\n" ; end
|
10
|
-
def success(msg) ; print green, bold, 'SUCCESS: ', msg, reset, "\n" ; end
|
11
|
-
def error(msg) ; print red, bold, 'ERROR: ', msg, reset, "\n" ; exit 1 ; end
|
10
|
+
def success(msg, heading = true) ; print green, bold, (heading ? 'SUCCESS: ' : ''), msg, reset, "\n" ; end
|
11
|
+
def error(msg, heading = true, do_exit = true) ; print red, bold, (heading ? 'ERROR: ' : ''), msg, reset, "\n" ; exit 1 if do_exit; end
|
12
12
|
def escape_cmd_args(args) ; args.collect{ |arg| "'#{arg}'"}.join(' ') ; end
|
13
13
|
end
|
14
14
|
end
|
data/lib/babelyoda/strings.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rchardet19'
|
2
2
|
|
3
|
+
require_relative 'file'
|
3
4
|
require_relative 'keyset'
|
4
5
|
require_relative 'strings_lexer'
|
5
6
|
require_relative 'strings_parser'
|
@@ -20,8 +21,9 @@ module Babelyoda
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def read
|
23
|
-
|
24
|
-
|
24
|
+
localized_filename = File.localized(@filename, @language)
|
25
|
+
if File.exist?(localized_filename)
|
26
|
+
File.open(localized_filename, read_mode) do |f|
|
25
27
|
lexer = StringsLexer.new
|
26
28
|
parser = StringsParser.new(lexer, @language)
|
27
29
|
parser.parse(f.read) do |localization_key|
|
@@ -56,6 +58,7 @@ module Babelyoda
|
|
56
58
|
cd = CharDet.detect(File.read(@filename))
|
57
59
|
encoding_str = Encoding.aliases[cd.encoding] || cd.encoding
|
58
60
|
encoding_str = 'UTF-8' if encoding_str == 'utf-8'
|
61
|
+
encoding_str = 'UTF-8' if encoding_str == 'ascii'
|
59
62
|
if (encoding_str != "UTF-8")
|
60
63
|
"rb:#{encoding_str}:UTF-8"
|
61
64
|
else
|
data/lib/babelyoda/tanker.rb
CHANGED
@@ -36,7 +36,8 @@ module Babelyoda
|
|
36
36
|
context &&= context.text
|
37
37
|
result = self.new(node[:id], context)
|
38
38
|
node.css('value').each do |value_node|
|
39
|
-
|
39
|
+
value = Babelyoda::LocalizationValue.parse_xml(value_node)
|
40
|
+
result << value if value
|
40
41
|
end
|
41
42
|
result
|
42
43
|
end
|
@@ -44,7 +45,9 @@ module Babelyoda
|
|
44
45
|
|
45
46
|
class LocalizationValue
|
46
47
|
def self.parse_xml(node)
|
47
|
-
|
48
|
+
if node.text.length > 0
|
49
|
+
self.new(node[:language], node.text, node[:status])
|
50
|
+
end
|
48
51
|
end
|
49
52
|
end
|
50
53
|
|
data/lib/babelyoda/version.rb
CHANGED
data/lib/babelyoda.rb
CHANGED
@@ -121,7 +121,7 @@ namespace :babelyoda do
|
|
121
121
|
spec.scm.transaction("[Babelyoda] Merge in remote translations") do
|
122
122
|
spec.strings_files.each do |filename|
|
123
123
|
keyset_name = Babelyoda::Keyset.keyset_name(filename)
|
124
|
-
remote_keyset = spec.engine.load_keyset(keyset_name, nil, :unapproved
|
124
|
+
remote_keyset = spec.engine.load_keyset(keyset_name, nil, :unapproved)
|
125
125
|
remote_keyset.drop_empty!
|
126
126
|
spec.all_languages.each do |language|
|
127
127
|
keyset_filename = strings_filename(keyset_name, language)
|
@@ -158,27 +158,36 @@ namespace :babelyoda do
|
|
158
158
|
task :pull => [:fetch_strings, :localize_xibs] do
|
159
159
|
end
|
160
160
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
161
|
+
desc "Verifies all local translations are present"
|
162
|
+
task :verify do
|
163
|
+
combined_keyset = Babelyoda::Keyset.new('babelyoda.verify')
|
164
|
+
spec.strings_files.each do |filename|
|
165
|
+
dev_lang_strings = Babelyoda::Strings.new(filename, spec.development_language).read
|
166
|
+
combined_keyset.merge!(dev_lang_strings)
|
167
|
+
spec.localization_languages.each do |language|
|
168
|
+
lang_strings = Babelyoda::Strings.new(filename, language).read
|
169
|
+
combined_keyset.merge!(lang_strings)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
$logger.success("#{spec.development_language}: #{combined_keyset.keys.size} keys", false)
|
173
|
+
missing = {}
|
174
|
+
spec.localization_languages.each do |language|
|
175
|
+
missing[language] = Babelyoda::Keyset.new("babelyoda.verify.#{language}")
|
176
|
+
end
|
177
|
+
combined_keyset.drop_empty!
|
178
|
+
combined_keyset.keys.each_value do |key|
|
179
|
+
spec.localization_languages.each do |lang|
|
180
|
+
missing[lang.to_sym].merge_key!(key) unless key.values.has_key?(lang.to_sym)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
total_missing_count = 0
|
184
|
+
spec.localization_languages.each do |language|
|
185
|
+
count = missing[language].keys.size
|
186
|
+
total_missing_count += count
|
187
|
+
$logger.error("#{language}: #{combined_keyset.keys.size - count} keys (#{count} translations missing)", false, false) if count > 0
|
188
|
+
end
|
189
|
+
exit 1 if total_missing_count > 0
|
190
|
+
end
|
182
191
|
|
183
192
|
namespace :remote do
|
184
193
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: babelyoda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-01-19 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70131405357940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: 2.8.0
|
25
25
|
type: :development
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *70131405357940
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: awesome_print
|
30
|
-
requirement: &
|
30
|
+
requirement: &70131405354760 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ~>
|
@@ -38,10 +38,10 @@ dependencies:
|
|
38
38
|
version: 1.0.2
|
39
39
|
type: :runtime
|
40
40
|
prerelease: false
|
41
|
-
version_requirements: *
|
41
|
+
version_requirements: *70131405354760
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rake
|
44
|
-
requirement: &
|
44
|
+
requirement: &70131405344240 !ruby/object:Gem::Requirement
|
45
45
|
none: false
|
46
46
|
requirements:
|
47
47
|
- - ~>
|
@@ -52,10 +52,10 @@ dependencies:
|
|
52
52
|
version: 0.9.2.2
|
53
53
|
type: :runtime
|
54
54
|
prerelease: false
|
55
|
-
version_requirements: *
|
55
|
+
version_requirements: *70131405344240
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: active_support
|
58
|
-
requirement: &
|
58
|
+
requirement: &70131405341480 !ruby/object:Gem::Requirement
|
59
59
|
none: false
|
60
60
|
requirements:
|
61
61
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 3.0.0
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70131405341480
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rchardet19
|
72
|
-
requirement: &
|
72
|
+
requirement: &70131405339840 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -80,10 +80,10 @@ dependencies:
|
|
80
80
|
version: 1.3.5
|
81
81
|
type: :runtime
|
82
82
|
prerelease: false
|
83
|
-
version_requirements: *
|
83
|
+
version_requirements: *70131405339840
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: builder
|
86
|
-
requirement: &
|
86
|
+
requirement: &70131405328400 !ruby/object:Gem::Requirement
|
87
87
|
none: false
|
88
88
|
requirements:
|
89
89
|
- - ~>
|
@@ -94,10 +94,10 @@ dependencies:
|
|
94
94
|
version: 3.0.0
|
95
95
|
type: :runtime
|
96
96
|
prerelease: false
|
97
|
-
version_requirements: *
|
97
|
+
version_requirements: *70131405328400
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: nokogiri
|
100
|
-
requirement: &
|
100
|
+
requirement: &70131405327320 !ruby/object:Gem::Requirement
|
101
101
|
none: false
|
102
102
|
requirements:
|
103
103
|
- - ~>
|
@@ -108,10 +108,10 @@ dependencies:
|
|
108
108
|
version: 1.5.0
|
109
109
|
type: :runtime
|
110
110
|
prerelease: false
|
111
|
-
version_requirements: *
|
111
|
+
version_requirements: *70131405327320
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: term-ansicolor
|
114
|
-
requirement: &
|
114
|
+
requirement: &70131405326220 !ruby/object:Gem::Requirement
|
115
115
|
none: false
|
116
116
|
requirements:
|
117
117
|
- - ~>
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
version: 1.0.7
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
|
-
version_requirements: *
|
125
|
+
version_requirements: *70131405326220
|
126
126
|
description: A simple utility to push/pull l10n resources of an Xcode project to/from
|
127
127
|
the translators
|
128
128
|
email:
|
@@ -172,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
172
172
|
version: '0'
|
173
173
|
segments:
|
174
174
|
- 0
|
175
|
-
hash: -
|
175
|
+
hash: -1710872162034708641
|
176
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
177
|
none: false
|
178
178
|
requirements:
|
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
181
|
version: '0'
|
182
182
|
segments:
|
183
183
|
- 0
|
184
|
-
hash: -
|
184
|
+
hash: -1710872162034708641
|
185
185
|
requirements: []
|
186
186
|
rubyforge_project: babelyoda
|
187
187
|
rubygems_version: 1.8.10
|