diff --git a/lib/babelish/csv2android.rb b/lib/babelish/csv2android.rb index 5d13f08..155abfc 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.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",