From ea5a0f4cc9f8fb612a6235450c7450900dd54521 Mon Sep 17 00:00:00 2001 From: Filippo Del Frari Date: Wed, 20 Nov 2019 15:09:48 +0100 Subject: [PATCH 1/2] Fix: when processing default language, code should not be appended --- lib/babelish/csv2android.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/babelish/csv2android.rb b/lib/babelish/csv2android.rb index 5d13f08..559fa81 100644 --- a/lib/babelish/csv2android.rb +++ b/lib/babelish/csv2android.rb @@ -7,6 +7,7 @@ def initialize(filename, langs, args = {}) @file_path = args[:output_dir].to_s @output_basename = args[:output_basename].to_s + @default_lang = args[:default_lang].to_s end def language_filepaths(language) @@ -14,7 +15,7 @@ def language_filepaths(language) output_name = "strings.xml" output_name = "#{@output_basename}.xml" unless @output_basename.empty? region = language.region.to_s.empty? ? "" : "-r#{language.region}" - filepath = Pathname.new(@file_path) + "values-#{language.code}#{region}" + output_name + filepath = Pathname.new(@file_path) + (default_lang != language.code ? "values-#{language.code}#{region}" : "values") + output_name return filepath ? [filepath] : [] end From d7ed52e290fb4ca1f87d3fa7edb86a3a94779b8d Mon Sep 17 00:00:00 2001 From: Filippo Del Frari Date: Wed, 20 Nov 2019 15:31:08 +0100 Subject: [PATCH 2/2] Added original language_id to language.rb file Added tests --- lib/babelish/csv2android.rb | 2 +- lib/babelish/language.rb | 3 +- .../commands/test_command_csv2android.rb | 34 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/lib/babelish/csv2android.rb b/lib/babelish/csv2android.rb index 559fa81..155abfc 100644 --- a/lib/babelish/csv2android.rb +++ b/lib/babelish/csv2android.rb @@ -15,7 +15,7 @@ def language_filepaths(language) output_name = "strings.xml" output_name = "#{@output_basename}.xml" unless @output_basename.empty? region = language.region.to_s.empty? ? "" : "-r#{language.region}" - filepath = Pathname.new(@file_path) + (default_lang != language.code ? "values-#{language.code}#{region}" : "values") + output_name + filepath = Pathname.new(@file_path) + (default_lang != language.language_id ? "values-#{language.code}#{region}" : "values") + output_name return filepath ? [filepath] : [] end diff --git a/lib/babelish/language.rb b/lib/babelish/language.rb index 4a19511..944bb08 100644 --- a/lib/babelish/language.rb +++ b/lib/babelish/language.rb @@ -1,6 +1,6 @@ module Babelish class Language - attr_accessor :name, :content, :code, :regions + attr_accessor :name, :content, :code, :regions, :language_id def initialize(name, content = {}) @name = name @@ -16,6 +16,7 @@ def add_language_id(language_id) @code ||= code @regions ||= [] @regions << region if region + @language_id = language_id end def region diff --git a/test/babelish/commands/test_command_csv2android.rb b/test/babelish/commands/test_command_csv2android.rb index f76108c..f5903ad 100644 --- a/test/babelish/commands/test_command_csv2android.rb +++ b/test/babelish/commands/test_command_csv2android.rb @@ -31,6 +31,40 @@ def test_csv2android_with_multiple_2_languages_with_region system("rm -rf ./values-fr/") end + def test_csv2android_with_default_language + options = { + :filename => "test/data/test_data_multiple_langs.csv", + :langs => {"English" => "en", "French" => "fr"}, + :default_lang => "en" + } + Commandline.new([], options).csv2android + + assert File.exist?("./values/strings.xml") + assert File.exist?("./values-fr/strings.xml") + assert !File.exist?("./values-en/strings.xml") + + # clean up + system("rm -rf ./values/") + system("rm -rf ./values-fr/") + end + + def test_csv2android_with_default_language_and_region + options = { + :filename => "test/data/test_data_multiple_langs.csv", + :langs => {"English" => "en-US", "French" => "fr"}, + :default_lang => "en-US" + } + Commandline.new([], options).csv2android + + assert File.exist?("./values/strings.xml") + assert File.exist?("./values-fr/strings.xml") + assert !File.exist?("./values-en-rUS/strings.xml") + + # clean up + system("rm -rf ./values/") + system("rm -rf ./values-fr/") + end + def test_csv2android_with_output_dir options = { :filename => "test/data/test_data_multiple_langs.csv",