mirror of
https://github.com/discourse/discourse.git
synced 2025-06-01 01:14:29 +08:00
FEATURE: Overwrite server side I18n keys with API
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user