Translation changes

This commit is contained in:
2022-06-11 12:40:19 -05:00
parent 2531a20bab
commit 33d53cb57b
5 changed files with 150 additions and 9 deletions

71
locales/generate.rb Normal file
View File

@@ -0,0 +1,71 @@
require "csv"
require "yaml"
PATH = File.expand_path(".", __dir__)
TRANSLATIONS_PATH = "#{PATH}/translations.csv".freeze
puts "Loading translations.csv [Using ■ as column seperator]"
TRANSLATIONS = {}
LANGUAGES = []
i = 0
CSV.foreach("#{PATH}/translations.csv", col_sep: "") do |row|
key = row.delete(row.first)
if i.zero?
row.map { |language| language.split("-").first.downcase }.each do |language|
TRANSLATIONS[language] ||= {}
LANGUAGES << language
end
else
row.each_with_index do |translation, lang_id|
next unless translation
next if key.empty? || key.nil?
hash = TRANSLATIONS[LANGUAGES[lang_id]]
parts = key.split(".")
parts_size = parts.size
key = parts.delete(parts.last) if parts.size > 1
if parts_size > 1
parts.each do |part|
hash = hash[part] ||= {}
end
end
hash[key] = translation
end
end
i += 1
end
puts "Done."
puts
puts "Removing existing translations..."
Dir.glob("#{PATH}/*.yml") do |file|
File.delete(file)
end
puts "Done."
puts
puts "Writing out translations..."
written_languages = []
LANGUAGES.each do |language|
translations = TRANSLATIONS[language]
next unless translations.size.positive?
yaml = YAML.dump({ language => translations })
written_languages << language
File.write("#{PATH}/#{language}.yml", yaml)
end
puts "Done."
puts
puts "Wrote translations for: #{written_languages.join(', ')}"