module Stringex::Localization
Public Class Methods
backend()
click to toggle source
# File lib/stringex/localization.rb, line 13 def backend @backend ||= i18n_present? ? Backend::I18n : Backend::Internal end
backend=(sym_or_class)
click to toggle source
# File lib/stringex/localization.rb, line 17 def backend=(sym_or_class) if sym_or_class.is_a?(Symbol) @backend = case sym_or_class when :internal Backend::Internal when :i18n ensure_i18n! Backend::I18n else raise "Invalid backend :#{sym_or_class}" end else @backend = sym_or_class end end
convert(string, options = {}, &block)
click to toggle source
# File lib/stringex/localization.rb, line 83 def convert(string, options = {}, &block) converter = Converter.new(string, options) converter.instance_exec &block converter.smart_strip! converter.string end
default_locale()
click to toggle source
# File lib/stringex/localization.rb, line 61 def default_locale backend.default_locale end
default_locale=(new_locale)
click to toggle source
# File lib/stringex/localization.rb, line 65 def default_locale=(new_locale) backend.default_locale = new_locale end
locale()
click to toggle source
# File lib/stringex/localization.rb, line 53 def locale backend.locale end
locale=(new_locale)
click to toggle source
# File lib/stringex/localization.rb, line 57 def locale=(new_locale) backend.locale = new_locale end
reset!()
click to toggle source
# File lib/stringex/localization.rb, line 78 def reset! backend.reset! @backend = nil end
store_translations(locale, scope, data)
click to toggle source
# File lib/stringex/localization.rb, line 33 def store_translations(locale, scope, data) backend.store_translations(locale, scope, data) end
translate(scope, key, options = {})
click to toggle source
# File lib/stringex/localization.rb, line 37 def translate(scope, key, options = {}) return if key == "." # I18n doesn't support dots as translation keys so we don't either locale = options[:locale] || self.locale translation = initial_translation(scope, key, locale) return translation unless translation.nil? if locale != default_locale translate scope, key, options.merge(:locale => default_locale) else default_conversion(scope, key) || options[:default] end end
with_default_locale(&block)
click to toggle source
# File lib/stringex/localization.rb, line 74 def with_default_locale(&block) with_locale default_locale, &block end
with_locale(new_locale, &block)
click to toggle source
# File lib/stringex/localization.rb, line 69 def with_locale(new_locale, &block) new_locale = default_locale if new_locale == :default backend.with_locale new_locale, &block end
Private Class Methods
default_conversion(scope, key)
click to toggle source
# File lib/stringex/localization.rb, line 96 def default_conversion(scope, key) return unless DefaultConversions.respond_to?(scope) DefaultConversions.send(scope)[key] end
ensure_i18n!()
click to toggle source
# File lib/stringex/localization.rb, line 105 def ensure_i18n! raise Backend::I18nNotDefined unless defined?(I18n) raise Backend::I18nMissingTranslate unless I18n.respond_to?(:translate) end
i18n_present?()
click to toggle source
# File lib/stringex/localization.rb, line 101 def i18n_present? defined?(I18n) && I18n.respond_to?(:translate) end
initial_translation(scope, key, locale)
click to toggle source
# File lib/stringex/localization.rb, line 92 def initial_translation(scope, key, locale) backend.initial_translation(scope, key, locale) end