module Stringex::Localization
Public Class Methods
Source
# File lib/stringex/localization.rb 14 def backend 15 @backend ||= i18n_present? ? Backend::I18n : Backend::Internal 16 end
Source
# File lib/stringex/localization.rb 18 def backend=(sym_or_class) 19 if sym_or_class.is_a?(Symbol) 20 @backend = case sym_or_class 21 when :internal 22 Backend::Internal 23 when :i18n 24 ensure_i18n! 25 Backend::I18n 26 else 27 raise "Invalid backend :#{sym_or_class}" 28 end 29 else 30 @backend = sym_or_class 31 end 32 end
Source
# File lib/stringex/localization.rb 84 def convert(string, options = {}, &block) 85 converter = Converter.new(string, options) 86 converter.instance_exec(&block) 87 converter.smart_strip! 88 converter.string 89 end
Source
# File lib/stringex/localization.rb 62 def default_locale 63 backend.default_locale 64 end
Source
# File lib/stringex/localization.rb 66 def default_locale=(new_locale) 67 backend.default_locale = new_locale 68 end
Source
# File lib/stringex/localization.rb 58 def locale=(new_locale) 59 backend.locale = new_locale 60 end
Source
# File lib/stringex/localization.rb 79 def reset! 80 backend.reset! 81 @backend = nil 82 end
Source
# File lib/stringex/localization.rb 34 def store_translations(locale, scope, data) 35 backend.store_translations(locale, scope, data) 36 end
Source
# File lib/stringex/localization.rb 38 def translate(scope, key, options = {}) 39 return if key == "." # I18n doesn't support dots as translation keys so we don't either 40 41 locale = options[:locale] || self.locale 42 43 translation = initial_translation(scope, key, locale) 44 45 return translation unless translation.nil? 46 47 if locale != default_locale 48 translate scope, key, options.merge(locale: default_locale) 49 else 50 default_conversion(scope, key) || options[:default] 51 end 52 end
Source
# File lib/stringex/localization.rb 75 def with_default_locale(&block) 76 with_locale default_locale, &block 77 end
Source
# File lib/stringex/localization.rb 70 def with_locale(new_locale, &block) 71 new_locale = default_locale if new_locale == :default 72 backend.with_locale new_locale, &block 73 end
Private Class Methods
Source
# File lib/stringex/localization.rb 97 def default_conversion(scope, key) 98 return unless DefaultConversions.respond_to?(scope) 99 DefaultConversions.send(scope)[key] 100 end
Source
# File lib/stringex/localization.rb 106 def ensure_i18n! 107 raise Backend::I18nNotDefined unless defined?(I18n) 108 raise Backend::I18nMissingTranslate unless I18n.respond_to?(:translate) 109 end
Source
# File lib/stringex/localization.rb 102 def i18n_present? 103 defined?(I18n) && I18n.respond_to?(:translate) 104 end
Source
# File lib/stringex/localization.rb 93 def initial_translation(scope, key, locale) 94 backend.initial_translation(scope, key, locale) 95 end