discourse/app/models/translation_override.rb

50 lines
1.3 KiB
Ruby
Raw Normal View History

require 'js_locale_helper'
class TranslationOverride < ActiveRecord::Base
validates_uniqueness_of :translation_key, scope: :locale
validates_presence_of :locale, :translation_key, :value
def self.upsert!(locale, key, value)
params = { locale: locale, translation_key: key }
data = { value: value }
if key.end_with?('_MF')
data[:compiled_js] = JsLocaleHelper.compile_message_format(locale, value)
end
row_count = where(params).update_all(data)
create!(params.merge(data)) if row_count == 0
2015-11-21 01:30:04 +08:00
i18n_changed
end
2015-11-18 05:14:42 +08:00
2015-11-21 01:30:04 +08:00
def self.revert!(locale, *keys)
TranslationOverride.where(locale: locale, translation_key: keys).delete_all
i18n_changed
end
2015-11-21 01:30:04 +08:00
protected
def self.i18n_changed
I18n.reload!
MessageBus.publish('/i18n-flush', { refresh: true })
end
end
2016-01-11 14:30:56 +08:00
# == Schema Information
#
# Table name: translation_overrides
#
# id :integer not null, primary key
# locale :string not null
# translation_key :string not null
# value :string not null
# created_at :datetime not null
# updated_at :datetime not null
# compiled_js :text
2016-01-11 14:30:56 +08:00
#
# Indexes
#
# index_translation_overrides_on_locale_and_translation_key (locale,translation_key) UNIQUE
#