Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'csv'
- namespace :ios do
- desc "converts a file of translations into lproj folders per each translation."
- task :generate_translation_folders, [:filename] do |t, args|
- filename = args[:filename] || 'translations.csv'
- translation_file_array = CSV.read(filename)
- keys = translation_file_array.first[1..-1]
- translations = translation_file_array[1..-1]
- translations.each do |row|
- language_string = row[0]
- localized_values_array = row[1..-1]
- create_folder(translation_folder_name(language_string))
- Dir.chdir(translation_folder_name(language_string)) do
- generate_translation_file("Localizable.strings", keys, localized_values_array)
- end
- end
- end
- end
- def translation_folder_name(language_string)
- "#{language_string}.lproj"
- end
- def create_folder(folder_name_string)
- `mkdir #{folder_name_string}`
- end
- def generate_translation_file(filename, keys_array, localized_values_array)
- File.open(filename, 'w'){|file| file.write(' ')}
- keys_array.count.times do |i|
- key = keys_array[i]
- value = localized_values_array[i]
- File.open(filename, 'a') { |file| file.write("\"#{key}\"=\"#{value}\";\n") }
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement