Class: CopyTunerClient::I18nBackend
- Inherits:
-
Object
- Object
- CopyTunerClient::I18nBackend
- Includes:
- I18n::Backend::Simple::Implementation
- Defined in:
- lib/copy_tuner_client/i18n_backend.rb
Overview
I18n implementation designed to synchronize with CopyTuner.
Expects an object that acts like a Hash, responding to []
, []=
, and keys
.
This backend will be used as the default I18n backend when the client is configured, so you will not need to instantiate this class from the application. Instead, just use methods on the I18n class.
This implementation will also load translations from locale files.
Instance Method Summary collapse
-
#available_locales ⇒ Array<String>
Returns locales availabile for this CopyTuner project.
-
#initialize(cache) ⇒ I18nBackend
constructor
Usually instantiated when Configuration#apply is invoked.
-
#store_translations(locale, data, options = {}) ⇒ Object
Stores the given translations.
-
#translate(locale, key, options = {}) ⇒ Object
Translates the given local and key.
Constructor Details
#initialize(cache) ⇒ I18nBackend
Usually instantiated when Configuration#apply is invoked.
19 20 21 |
# File 'lib/copy_tuner_client/i18n_backend.rb', line 19 def initialize(cache) @cache = cache end |
Instance Method Details
#available_locales ⇒ Array<String>
Returns locales availabile for this CopyTuner project.
42 43 44 45 46 |
# File 'lib/copy_tuner_client/i18n_backend.rb', line 42 def available_locales return @available_locales if defined?(@available_locales) cached_locales = cache.keys.map { |key| key.split('.').first } @available_locales = (cached_locales + super).uniq.map { |locale| locale.to_sym } end |
#store_translations(locale, data, options = {}) ⇒ Object
Stores the given translations.
Updates will be visible in the current process immediately, and will propagate to CopyTuner during the next flush.
56 57 58 59 |
# File 'lib/copy_tuner_client/i18n_backend.rb', line 56 def store_translations(locale, data, = {}) super store_item(locale, data) end |
#translate(locale, key, options = {}) ⇒ Object
Translates the given local and key. See the I18n API documentation for details.
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/copy_tuner_client/i18n_backend.rb', line 26 def translate(locale, key, = {}) content = super(locale, key, ) if CopyTunerClient.configuration.inline_translation content = (content.is_a?(Array) ? content : key.to_s) end if !CopyTunerClient.configuration.html_escape # Backward compatible content.respond_to?(:html_safe) ? content.html_safe : content else content end end |