crowdin-cli 0.0.14 → 0.0.15
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/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
|