FEATURE: Overwrite server side I18n keys with API

This commit is contained in:
Robin Ward
2015-11-13 16:34:13 -05:00
parent 3720783c1b
commit 060ce9bf2a
4 changed files with 61 additions and 0 deletions

View File

@ -12,6 +12,24 @@ module I18n
LocaleSiteSetting.supported_locales.map(&:to_sym)
end
def reload!
@overrides = {}
super
end
def overrides_for(locale)
@overrides ||= {}
return @overrides[locale] if @overrides[locale]
@overrides[locale] = {}
TranslationOverride.where(locale: locale).pluck(:translation_key, :value).each do |tuple|
@overrides[locale][tuple[0]] = tuple[1]
end
@overrides[locale]
end
# force explicit loading
def load_translations(*filenames)
unless filenames.empty?
@ -23,6 +41,10 @@ module I18n
[locale, SiteSetting.default_locale.to_sym, :en].uniq.compact
end
def translate(locale, key, options = {})
overrides_for(locale)[key] || super(locale, key, options)
end
def exists?(locale, key)
fallbacks(locale).each do |fallback|
begin