Sha256: 69a4ac16a1f503fcab21eb3470d4925c6edea94900e60a8dd3caae386207dac7
Contents?: true
Size: 1.33 KB
Versions: 4
Compression:
Stored size: 1.33 KB
Contents
namespace :citizen_budget_model do desc 'Pulls out strings marked for translations' task translations: :environment do require 'citizen_budget_model/gettext_helper' require 'citizen_budget_model/js_parser' def confirm(message, objects) unless objects.empty? if ENV['CONFIRM'] puts message puts objects.sort puts 'Continue? (y/n)' unless STDIN.gets == "y\n" return end end yield end end GetText::Tools::XGetText.add_parser(CitizenBudgetModel::JsParser) keys = CitizenBudgetModel::GetTextHelper.messages('app/**/*.{erb,rb,js}') # Unless the backend already has a key, add a default to the default locale. keys_to_add = keys.reject do |key| I18n.backend.exists?(I18n.default_locale, key) end store = I18n.backend.backends.first.store # Delete keys that are no longer extant. keys_to_delete = store.keys.reject do |k| keys.include?(k.split('.', 2)[1]) end confirm('Adding:', keys_to_add) do I18n.backend.store_translations(I18n.default_locale, Hash[keys_to_add.zip(keys_to_add)], escape: false) puts "#{keys_to_add.size} added" confirm('Deleting:', keys_to_delete) do number = store.del(keys_to_delete) puts "#{number} deleted" end end end end
Version data entries
4 entries across 4 versions & 1 rubygems