babelyoda 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/babelyoda/ibtool.rb +3 -3
- data/lib/babelyoda/version.rb +1 -1
- data/lib/babelyoda/xib.rb +7 -6
- data/lib/babelyoda.rb +27 -8
- metadata +23 -17
data/lib/babelyoda/ibtool.rb
CHANGED
@@ -24,7 +24,7 @@ module Babelyoda
|
|
24
24
|
$logger.error "IBTOOL ERROR: #{ncmd}" unless rc
|
25
25
|
end
|
26
26
|
|
27
|
-
def self.localize_incrementally(source_xib_fn, target_xib_fn, strings_fn, old_source_xib_fn
|
27
|
+
def self.localize_incrementally(source_xib_fn, target_xib_fn, strings_fn, old_source_xib_fn)
|
28
28
|
# ibtool
|
29
29
|
# --previous-file path_to_project/English.lproj/MainWindow.old.xib # The old English XIB
|
30
30
|
# --incremental-file path_to_project/fr.lproj/MainWindow.old.xib # The old French XIB
|
@@ -33,14 +33,14 @@ module Babelyoda
|
|
33
33
|
# --write path_to_project/fr.lproj/MainWindow.xib # The new French XIB that will be created
|
34
34
|
# path_to_project/English.lproj/MainWindow.new.xib # The new English XIB
|
35
35
|
|
36
|
-
ncmd = ['ibtool', '--previous-file', old_source_xib_fn, '--incremental-file',
|
36
|
+
ncmd = ['ibtool', '--previous-file', old_source_xib_fn, '--incremental-file', target_xib_fn,
|
37
37
|
'--strings-file', strings_fn, '--localize-incremental', '--write', target_xib_fn, source_xib_fn]
|
38
38
|
rc = Kernel.system(*ncmd)
|
39
39
|
$logger.error "IBTOOL ERROR: #{ncmd}" unless rc
|
40
40
|
end
|
41
41
|
|
42
42
|
def self.import_strings(filename, strings_filename)
|
43
|
-
ncmd = ['ibtool', '--import-strings-file', strings_filename, filename]
|
43
|
+
ncmd = ['ibtool', '--import-strings-file', strings_filename, '--write', filename, filename]
|
44
44
|
rc = Kernel.system(*ncmd)
|
45
45
|
$logger.error "IBTOOL ERROR: #{ncmd}" unless rc
|
46
46
|
end
|
data/lib/babelyoda/version.rb
CHANGED
data/lib/babelyoda/xib.rb
CHANGED
@@ -58,15 +58,15 @@ module Babelyoda
|
|
58
58
|
|
59
59
|
def localize_incremental(language, scm)
|
60
60
|
assert_localization_target(language)
|
61
|
-
unless
|
61
|
+
unless localizable_incrementally?(scm, language)
|
62
62
|
localize(language, scm)
|
63
63
|
else
|
64
64
|
puts "Incrementally localizing #{filename} => #{File.localized(filename, language)}..."
|
65
65
|
strings_fn = strings_filename(language)
|
66
66
|
$logger.error "No strings file found: #{strings_fn}" unless File.exist?(strings_fn)
|
67
67
|
|
68
|
-
scm.fetch_versions!(filename
|
69
|
-
Babelyoda::Ibtool.localize_incrementally(filename, File.localized(filename, language), strings_fn, filenames[0]
|
68
|
+
scm.fetch_versions!(filename) do |filenames|
|
69
|
+
Babelyoda::Ibtool.localize_incrementally(filename, File.localized(filename, language), strings_fn, filenames[0])
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
@@ -76,13 +76,14 @@ module Babelyoda
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def import_strings(scm)
|
79
|
+
puts "Importing #{strings_filename} => #{filename}"
|
79
80
|
Babelyoda::Ibtool.import_strings(filename, strings_filename)
|
80
81
|
end
|
81
82
|
|
82
83
|
private
|
83
|
-
|
84
|
-
def
|
85
|
-
scm.version_exist?(filename) &&
|
84
|
+
|
85
|
+
def localizable_incrementally?(scm, language)
|
86
|
+
scm.version_exist?(filename) && File.exist?(File.localized(filename, language))
|
86
87
|
end
|
87
88
|
|
88
89
|
def assert_localization_target(language)
|
data/lib/babelyoda.rb
CHANGED
@@ -34,7 +34,7 @@ namespace :babelyoda do
|
|
34
34
|
puts "Extracting strings from sources..."
|
35
35
|
dev_lang = spec.development_language
|
36
36
|
|
37
|
-
spec.scm.transaction("Extract strings from sources") do
|
37
|
+
spec.scm.transaction("[Babelyoda] Extract strings from sources") do
|
38
38
|
Babelyoda::Genstrings.run(spec.source_files, dev_lang) do |keyset|
|
39
39
|
old_strings_filename = strings_filename(keyset.name, dev_lang)
|
40
40
|
old_strings = Babelyoda::Strings.new(old_strings_filename, dev_lang).read
|
@@ -48,7 +48,7 @@ namespace :babelyoda do
|
|
48
48
|
desc "Extract strings from XIBs"
|
49
49
|
task :extract_xib_strings do
|
50
50
|
puts "Extracting .strings from XIBs..."
|
51
|
-
spec.scm.transaction("Extract strings from XIBs") do
|
51
|
+
spec.scm.transaction("[Babelyoda] Extract strings from XIBs") do
|
52
52
|
spec.xib_files.each do |xib_filename|
|
53
53
|
xib = Babelyoda::Xib.new(xib_filename, spec.development_language)
|
54
54
|
next unless xib.extractable?(spec.development_language)
|
@@ -118,7 +118,7 @@ namespace :babelyoda do
|
|
118
118
|
desc "Fetches remote strings and merges them down into local .string files"
|
119
119
|
task :fetch_strings do
|
120
120
|
puts "Fetching remote translations..."
|
121
|
-
spec.scm.transaction("Merge in remote translations") do
|
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
124
|
remote_keyset = spec.engine.load_keyset(keyset_name, nil, :unapproved, true)
|
@@ -136,7 +136,7 @@ namespace :babelyoda do
|
|
136
136
|
task :localize_xibs do
|
137
137
|
puts "Translating XIB files..."
|
138
138
|
|
139
|
-
spec.scm.transaction("Localize XIB files") do
|
139
|
+
spec.scm.transaction("[Babelyoda] Localize XIB files") do
|
140
140
|
spec.xib_files.each do |filename|
|
141
141
|
xib = Babelyoda::Xib.new(filename, spec.development_language)
|
142
142
|
|
@@ -147,12 +147,9 @@ namespace :babelyoda do
|
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
150
|
-
spec.scm.transaction("Update XIB SHA1 version refs") do
|
150
|
+
spec.scm.transaction("[Babelyoda] Update XIB SHA1 version refs") do
|
151
151
|
spec.xib_files.each do |filename|
|
152
152
|
spec.scm.store_version!(filename)
|
153
|
-
spec.localization_languages.each do |language|
|
154
|
-
spec.scm.store_version!(File.localized(filename, language))
|
155
|
-
end
|
156
153
|
end
|
157
154
|
end
|
158
155
|
end
|
@@ -161,6 +158,28 @@ namespace :babelyoda do
|
|
161
158
|
task :pull => [:fetch_strings, :localize_xibs] do
|
162
159
|
end
|
163
160
|
|
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
|
+
# puts "TOTAL KEYS: #{combined_keyset}"
|
173
|
+
# missing = {}
|
174
|
+
# spec.localization_languages.each do |language|
|
175
|
+
# missing[language] = Babelyoda::Keyset.new('babelyoda.verify.' + language)
|
176
|
+
# end
|
177
|
+
# puts "MISSING KEYS:"
|
178
|
+
# spec.localization_languages.each do |language|
|
179
|
+
# puts " #{language}: #{missing}"
|
180
|
+
# end
|
181
|
+
# end
|
182
|
+
|
164
183
|
namespace :remote do
|
165
184
|
|
166
185
|
desc "List remote keysets"
|
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.1
|
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: &70248372389060 !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: *70248372389060
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: awesome_print
|
30
|
-
requirement: &
|
30
|
+
requirement: &70248372387200 !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: *70248372387200
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rake
|
44
|
-
requirement: &
|
44
|
+
requirement: &70248372385200 !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: *70248372385200
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: active_support
|
58
|
-
requirement: &
|
58
|
+
requirement: &70248372381080 !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: *70248372381080
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rchardet19
|
72
|
-
requirement: &
|
72
|
+
requirement: &70248372378460 !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: *70248372378460
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: builder
|
86
|
-
requirement: &
|
86
|
+
requirement: &70248372376260 !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: *70248372376260
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: nokogiri
|
100
|
-
requirement: &
|
100
|
+
requirement: &70248372375060 !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: *70248372375060
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: term-ansicolor
|
114
|
-
requirement: &
|
114
|
+
requirement: &70248372373400 !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: *70248372373400
|
126
126
|
description: A simple utility to push/pull l10n resources of an Xcode project to/from
|
127
127
|
the translators
|
128
128
|
email:
|
@@ -170,12 +170,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
170
170
|
- - ! '>='
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: '0'
|
173
|
+
segments:
|
174
|
+
- 0
|
175
|
+
hash: -4332337468175115437
|
173
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
177
|
none: false
|
175
178
|
requirements:
|
176
179
|
- - ! '>='
|
177
180
|
- !ruby/object:Gem::Version
|
178
181
|
version: '0'
|
182
|
+
segments:
|
183
|
+
- 0
|
184
|
+
hash: -4332337468175115437
|
179
185
|
requirements: []
|
180
186
|
rubyforge_project: babelyoda
|
181
187
|
rubygems_version: 1.8.10
|