bin/crowdin-cli in crowdin-cli-0.0.8 vs bin/crowdin-cli in crowdin-cli-0.0.9
- old
+ new
@@ -38,10 +38,34 @@
result[:dirs] = files.flatten.uniq
return result
end
+# +path_ - relative path to file in Crowdin project
+# +export_pattern+ - basically, is a file['translation'] from crowdin.yaml
+# +lang+ - Hash containing language information
+#
+def export_pattern_to_path(path, export_pattern, lang)
+ original_path = File.dirname(path)
+ original_file_name = File.basename(path)
+ file_extension = File.extname(path)[1..-1]
+ file_name = File.basename(path, file_extension)
+
+ export_pattern.gsub(/%.+?%/, {
+ '%language%' => lang['name'],
+ '%two_letters_code%' => lang['iso_639_1'],
+ '%tree_letters_code%' => lang['iso_639_3'],
+ '%locale%' => lang['locale'],
+ '%locale_with_underscore%' => lang['locale'].gsub('-', '_'),
+ '%android_code%' => android_locale_code(lang['locale']),
+ '%original_file_name%' => original_file_name,
+ '%original_path%' => original_path,
+ '%file_extension%' => file_extension,
+ '%file_name%' => file_extension,
+ })
+end
+
def unzip_file(file, dest)
# overwrite files if they already exist inside of the extracted path
Zip.options[:on_exists_proc] = true
Zip::ZipFile.open(file) do |zip_file|
@@ -117,28 +141,12 @@
if File.exist?("#{@base_path}#{file['source']}")
local_files << { dest: file['source'], source: "#{@base_path}#{file['source']}", export_pattern: file['translation'] }
else
Dir.glob("#{@base_path}#{file['source']}").each do |source|
dest = source.sub("#{@base_path}", '') # relative path in Crowdin
- original_path = File.dirname(dest)
- original_file_name = File.basename(dest)
- file_extension = File.extname(dest)
- file_name = File.basename(dest, file_extension)
+ file_pattern = export_pattern_to_path(dest, file['translation'], source_language)
- file_pattern = file['translation'].gsub(/%.+?%/, {
- '%language%' => source_language['name'],
- '%two_letter_code%' => source_language['iso_639_1'],
- '%tree_letter_code%' => source_language['iso_639_3'],
- '%locale%' => source_language['locale'],
- '%locale_with_underscore%' => source_language['locale'].gsub('-', '_'),
- '%original_file_name%' => original_file_name,
- '%android_code%' => android_locale_code(source_language['locale']),
- '%original_path%' => original_path,
- '%file_extension%' => file_extension,
- '%file_name%' => file_extension,
- })
-
diff = (dest.split('/') - file_pattern.split('/')).join('/')
export_pattern = file['translation'].sub('**', diff)
local_files << { dest: dest, source: source, export_pattern: export_pattern }
end
@@ -218,67 +226,26 @@
translated_files = Hash.new{ |hash, key| hash[key] = Array.new }
@config['files'].each do |file|
if File.exists?("#{@base_path}#{file['source']}")
dest = file['source'].sub("#{@base_path}", '')
- original_path = File.dirname(dest)
- original_file_name = File.basename(dest)
- file_extension = File.extname(dest)[1..-1]
- file_name = File.basename(dest, file_extension)
translation_languages.each do |lang|
- source = file['translation'].gsub(/%.+?%/, {
- '%language%' => lang['name'],
- '%two_letter_code%' => lang['iso_639_1'],
- '%tree_letter_code%' => lang['iso_639_3'],
- '%locale%' => lang['locale'],
- '%locale_with_underscore%' => lang['locale'].gsub('-', '_'),
- '%original_file_name%' => original_file_name,
- '%android_code%' => android_locale_code(lang['locale']),
- '%original_path%' => original_path,
- '%file_extension%' => file_extension,
- '%file_name%' => file_extension,
- })
+ source = export_pattern_to_path(dest, file['translation'], lang)
translated_files[lang['crowdin_code']] << { source: "#{@base_path}#{source}", dest: dest }
end
else
Dir.glob("#{@base_path}#{file['source']}").each do |source|
dest = source.sub("#{@base_path}", '')
- original_path = File.dirname(dest)
- original_file_name = File.basename(dest)
- file_extension = File.extname(dest)
- file_name = File.basename(dest, file_extension)
- file_pattern = file['translation'].gsub(/%.+?%/, {
- '%language%' => source_language['name'],
- '%two_letter_code%' => source_language['iso_639_1'],
- '%tree_letter_code%' => source_language['iso_639_3'],
- '%locale%' => source_language['locale'],
- '%locale_with_underscore%' => source_language['locale'].gsub('-', '_'),
- '%original_file_name%' => original_file_name,
- '%android_code%' => android_locale_code(source_language['locale']),
- '%original_path%' => original_path,
- '%file_extension%' => file_extension,
- '%file_name%' => file_extension,
- })
+ file_pattern = export_pattern_to_path(dest, file['translation'], source_language)
diff = (dest.split('/') - file_pattern.split('/')).join('/')
export_pattern = file['translation'].sub('**', diff)
translation_languages.each do |lang|
- source = export_pattern.gsub(/%.+?%/, {
- '%language%' => lang['name'],
- '%two_letter_code%' => lang['iso_639_1'],
- '%tree_letter_code%' => lang['iso_639_3'],
- '%locale%' => lang['locale'],
- '%locale_with_underscore%' => lang['locale'].gsub('-', '_'),
- '%original_file_name%' => original_file_name,
- '%android_code%' => android_locale_code(lang['locale']),
- '%original_path%' => original_path,
- '%file_extension%' => file_extension,
- '%file_name%' => file_extension,
- })
+ source = export_pattern_to_path(dest, export_pattern, lang)
translated_files[lang['crowdin_code']] << { source: "#{@base_path}#{source}", dest: dest }
end
end