Advertisement
Guest User

Untitled

a guest
Aug 31st, 2015
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. require 'csv'
  2.  
  3.  
  4.  
  5. namespace :ios do
  6. desc "converts a file of translations into lproj folders per each translation."
  7. task :generate_translation_folders, [:filename] do |t, args|
  8.  
  9. filename = args[:filename] || 'translations.csv'
  10. translation_file_array = CSV.read(filename)
  11.  
  12. keys = translation_file_array.first[1..-1]
  13.  
  14. translations = translation_file_array[1..-1]
  15.  
  16. translations.each do |row|
  17. language_string = row[0]
  18. localized_values_array = row[1..-1]
  19.  
  20. create_folder(translation_folder_name(language_string))
  21.  
  22. Dir.chdir(translation_folder_name(language_string)) do
  23. generate_translation_file("Localizable.strings", keys, localized_values_array)
  24. end
  25.  
  26. end
  27.  
  28.  
  29. end
  30. end
  31.  
  32.  
  33. def translation_folder_name(language_string)
  34. "#{language_string}.lproj"
  35. end
  36.  
  37. def create_folder(folder_name_string)
  38. `mkdir #{folder_name_string}`
  39. end
  40.  
  41. def generate_translation_file(filename, keys_array, localized_values_array)
  42. File.open(filename, 'w'){|file| file.write(' ')}
  43. keys_array.count.times do |i|
  44. key = keys_array[i]
  45. value = localized_values_array[i]
  46. File.open(filename, 'a') { |file| file.write("\"#{key}\"=\"#{value}\";\n") }
  47. end
  48. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement