Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion lib/babelish/csv2android.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ 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)
require 'pathname'
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

Expand Down
3 changes: 2 additions & 1 deletion lib/babelish/language.rb
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -16,6 +16,7 @@ def add_language_id(language_id)
@code ||= code
@regions ||= []
@regions << region if region
@language_id = language_id
end

def region
Expand Down
34 changes: 34 additions & 0 deletions test/babelish/commands/test_command_csv2android.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down