namespace :fractual_i18n do
desc "Export view translations to single file" task :export, [:to] => :environment do |_task, args| require "fractual_i18n/phrases" destination = args[:to] || "tmp/fractual_i18n/exported" FileUtils.mkdir_p(destination) FractualI18n.configuration.available_locales.each do |locale| translations = FractualI18n::Phrases.new.joined(locale: locale) Dir.chdir(destination) do content = {locale.to_s => translations.deep_stringify_keys}.to_yaml(line_width: 200) File.write("#{locale}.yml", content) puts "#{destination}/#{locale}.yml exported" end end end desc "Import view translations from single file" task :import, [:from] => :environment do |_task, args| require "fractual_i18n/phrases" destination = args[:from] || "tmp/fractual_i18n/import" Dir.each_child(destination) do |file| content = YAML.load_file("#{destination}/#{file}") locale = content.keys.first FractualI18n::Phrases.new.store(content, locale: locale) end end
end