crowdin-cli 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/crowdin-cli +40 -8
- data/lib/crowdin-cli.rb +0 -1
- data/lib/crowdin-cli/version.rb +1 -1
- metadata +4 -4
data/bin/crowdin-cli
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require 'pp'
|
4
3
|
require 'crowdin-cli'
|
5
4
|
|
6
5
|
# Return +hierarchy+ of directories and files in Crowdin project
|
@@ -67,14 +66,16 @@ def export_pattern_to_path(path, export_pattern, lang, languages_mapping = nil)
|
|
67
66
|
'%file_name%' => file_name,
|
68
67
|
}
|
69
68
|
|
69
|
+
placeholders = pattern.inject([]){ |memo, h| memo << h.first[/%(.*)%/, 1] }
|
70
|
+
|
70
71
|
unless languages_mapping.nil?
|
71
|
-
pattern = Hash[pattern.map{|
|
72
|
-
|
73
|
-
(languages_mapping[
|
72
|
+
pattern = Hash[pattern.map{|placeholder, str| [
|
73
|
+
placeholder,
|
74
|
+
(languages_mapping[placeholder[/%(.*)%/, 1]][lang['crowdin_code']] rescue nil) || str]
|
74
75
|
}]
|
75
76
|
end
|
76
77
|
|
77
|
-
export_pattern.gsub(
|
78
|
+
export_pattern.gsub(/%(#{placeholders.join('|')})%/, pattern)
|
78
79
|
end
|
79
80
|
|
80
81
|
def android_locale_code(locale_code)
|
@@ -87,6 +88,24 @@ def android_locale_code(locale_code)
|
|
87
88
|
return locale_code.sub('-', '-r')
|
88
89
|
end
|
89
90
|
|
91
|
+
def get_invalid_placeholders(export_pattern)
|
92
|
+
valid_placeholders = [
|
93
|
+
'%language%',
|
94
|
+
'%two_letters_code%',
|
95
|
+
'%tree_letters_code%',
|
96
|
+
'%locale%',
|
97
|
+
'%locale_with_underscore%',
|
98
|
+
'%android_code%',
|
99
|
+
'%original_file_name%',
|
100
|
+
'%original_path%',
|
101
|
+
'%file_extension%',
|
102
|
+
'%file_name%'
|
103
|
+
]
|
104
|
+
|
105
|
+
all_placeholders = export_pattern.scan(/%[a-z0-9_]*?%/)
|
106
|
+
invalid_placeholders = all_placeholders - valid_placeholders
|
107
|
+
end
|
108
|
+
|
90
109
|
# Return a string representing that part of the directory tree that is common to all the files
|
91
110
|
#
|
92
111
|
# @params [Array] paths set of strings representing directory paths
|
@@ -165,6 +184,10 @@ EOS
|
|
165
184
|
dest_files = []
|
166
185
|
|
167
186
|
@config['files'].each do |file|
|
187
|
+
get_invalid_placeholders(file['translation']).each do |placeholder|
|
188
|
+
puts "Warning: #{placeholder} is not valid variable supported by Crowdin. See http://crowdin.net/page/cli-client#configuration-file for more details."
|
189
|
+
end
|
190
|
+
|
168
191
|
if File.exist?("#{@base_path}#{file['source']}")
|
169
192
|
dest_files << file['source']
|
170
193
|
local_files << { dest: file['source'], source: "#{@base_path}#{file['source']}", export_pattern: file['translation'] }
|
@@ -208,8 +231,13 @@ EOS
|
|
208
231
|
files_for_upload = local_files.select{ |file| update_files.include?(file[:dest]) }
|
209
232
|
files_for_upload.each do |file|
|
210
233
|
print "Updating file `#{file[:dest]}'"
|
211
|
-
@crowdin.update_file([] << file)
|
212
|
-
|
234
|
+
resp = @crowdin.update_file([] << file)
|
235
|
+
case resp['files'].first[1]
|
236
|
+
when 'skipped'
|
237
|
+
puts "\rUpdating file `#{file[:dest]}' - Skipped"
|
238
|
+
when 'updated'
|
239
|
+
puts "\rUpdating file `#{file[:dest]}' - OK"
|
240
|
+
end
|
213
241
|
end
|
214
242
|
end
|
215
243
|
|
@@ -219,7 +247,7 @@ EOS
|
|
219
247
|
files_for_add = local_files.select{ |file| add_files.include?(file[:dest]) }
|
220
248
|
files_for_add.each do |file|
|
221
249
|
print "Uploading file `#{file[:dest]}'"
|
222
|
-
@crowdin.add_file([] << file)
|
250
|
+
res = @crowdin.add_file([] << file)
|
223
251
|
puts "\rUploading file `#{file[:dest]}' - OK"
|
224
252
|
end
|
225
253
|
|
@@ -274,6 +302,10 @@ EOS
|
|
274
302
|
dest_files = []
|
275
303
|
|
276
304
|
@config['files'].each do |file|
|
305
|
+
get_invalid_placeholders(file['translation']).each do |placeholder|
|
306
|
+
puts "Warning: #{placeholder} is not valid variable supported by Crowdin. See http://crowdin.net/page/cli-client#configuration-file for more details."
|
307
|
+
end
|
308
|
+
|
277
309
|
languages_mapping = file['languages_mapping']
|
278
310
|
|
279
311
|
if File.exists?("#{@base_path}#{file['source']}")
|
data/lib/crowdin-cli.rb
CHANGED
data/lib/crowdin-cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crowdin-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 2.4.
|
69
|
+
version: 2.4.1
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 2.4.
|
77
|
+
version: 2.4.1
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: rubyzip
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|