mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-15 16:52:34 +00:00
72 lines
1.4 KiB
Ruby
72 lines
1.4 KiB
Ruby
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(', ')}"
|