Class: I18n::Config
- Inherits:
-
Object
- Object
- I18n::Config
- Defined in:
- lib/i18n/config.rb
Constant Summary collapse
- @@enforce_available_locales =
Whether or not to verify if locales are in the list of available locales. Defaults to true.
true
Instance Method Summary collapse
-
#available_locales ⇒ Object
Returns an array of locales for which translations are available.
-
#available_locales=(locales) ⇒ Object
Sets the available locales.
-
#available_locales_initialized? ⇒ Boolean
Returns true if the available_locales have been initialized.
-
#available_locales_set ⇒ Object
Caches the available locales list as both strings and symbols in a Set, so that we can have faster lookups to do the available locales enforce check.
-
#backend ⇒ Object
Returns the current backend.
-
#backend=(backend) ⇒ Object
Sets the current backend.
-
#clear_available_locales_set ⇒ Object
Clears the available locales set so it can be recomputed again after I18n gets reloaded.
-
#default_locale ⇒ Object
Returns the current default locale.
-
#default_locale=(locale) ⇒ Object
Sets the current default locale.
-
#default_separator ⇒ Object
Returns the current default scope separator.
-
#default_separator=(separator) ⇒ Object
Sets the current default scope separator.
- #enforce_available_locales ⇒ Object
- #enforce_available_locales=(enforce_available_locales) ⇒ Object
-
#exception_handler ⇒ Object
Returns the current exception handler.
-
#exception_handler=(exception_handler) ⇒ Object
Sets the exception handler.
-
#load_path ⇒ Object
Allow clients to register paths providing translation data sources.
-
#load_path=(load_path) ⇒ Object
Sets the load path instance.
-
#locale ⇒ Object
The only configuration value that is not global and scoped to thread is :locale.
-
#locale=(locale) ⇒ Object
Sets the current locale pseudo-globally, i.e.
-
#missing_interpolation_argument_handler ⇒ Object
Returns the current handler for situations when interpolation argument is missing.
-
#missing_interpolation_argument_handler=(exception_handler) ⇒ Object
Sets the missing interpolation argument handler.
Instance Method Details
#available_locales ⇒ Object
Returns an array of locales for which translations are available. Unless you explicitely set these through I18n.available_locales= the call will be delegated to the backend.
43 44 45 46 |
# File 'lib/i18n/config.rb', line 43 def available_locales @@available_locales ||= nil @@available_locales || backend.available_locales end |
#available_locales=(locales) ⇒ Object
Sets the available locales.
57 58 59 60 61 |
# File 'lib/i18n/config.rb', line 57 def available_locales=(locales) @@available_locales = Array(locales).map { |locale| locale.to_sym } @@available_locales = nil if @@available_locales.empty? @@available_locales_set = nil end |
#available_locales_initialized? ⇒ Boolean
Returns true if the available_locales have been initialized
64 65 66 |
# File 'lib/i18n/config.rb', line 64 def available_locales_initialized? ( !!defined?(@@available_locales) && !!@@available_locales ) end |
#available_locales_set ⇒ Object
Caches the available locales list as both strings and symbols in a Set, so that we can have faster lookups to do the available locales enforce check.
50 51 52 53 54 |
# File 'lib/i18n/config.rb', line 50 def available_locales_set #:nodoc: @@available_locales_set ||= available_locales.inject(Set.new) do |set, locale| set << locale.to_s << locale.to_sym end end |
#backend ⇒ Object
Returns the current backend. Defaults to Backend::Simple
.
20 21 22 |
# File 'lib/i18n/config.rb', line 20 def backend @@backend ||= Backend::Simple.new end |
#backend=(backend) ⇒ Object
Sets the current backend. Used to set a custom backend.
25 26 27 |
# File 'lib/i18n/config.rb', line 25 def backend=(backend) @@backend = backend end |
#clear_available_locales_set ⇒ Object
Clears the available locales set so it can be recomputed again after I18n gets reloaded.
70 71 72 |
# File 'lib/i18n/config.rb', line 70 def clear_available_locales_set #:nodoc: @@available_locales_set = nil end |
#default_locale ⇒ Object
Returns the current default locale. Defaults to :‘en’
30 31 32 |
# File 'lib/i18n/config.rb', line 30 def default_locale @@default_locale ||= :en end |
#default_locale=(locale) ⇒ Object
Sets the current default locale. Used to set a custom default locale.
35 36 37 38 |
# File 'lib/i18n/config.rb', line 35 def default_locale=(locale) I18n.enforce_available_locales!(locale) @@default_locale = locale && locale.to_sym end |
#default_separator ⇒ Object
Returns the current default scope separator. Defaults to ‘.’
75 76 77 |
# File 'lib/i18n/config.rb', line 75 def default_separator @@default_separator ||= '.' end |
#default_separator=(separator) ⇒ Object
Sets the current default scope separator.
80 81 82 |
# File 'lib/i18n/config.rb', line 80 def default_separator=(separator) @@default_separator = separator end |
#enforce_available_locales ⇒ Object
141 142 143 |
# File 'lib/i18n/config.rb', line 141 def enforce_available_locales @@enforce_available_locales end |
#enforce_available_locales=(enforce_available_locales) ⇒ Object
145 146 147 |
# File 'lib/i18n/config.rb', line 145 def enforce_available_locales=(enforce_available_locales) @@enforce_available_locales = enforce_available_locales end |
#exception_handler ⇒ Object
Returns the current exception handler. Defaults to an instance of I18n::ExceptionHandler.
86 87 88 |
# File 'lib/i18n/config.rb', line 86 def exception_handler @@exception_handler ||= ExceptionHandler.new end |
#exception_handler=(exception_handler) ⇒ Object
Sets the exception handler.
91 92 93 |
# File 'lib/i18n/config.rb', line 91 def exception_handler=(exception_handler) @@exception_handler = exception_handler end |
#load_path ⇒ Object
Allow clients to register paths providing translation data sources. The backend defines acceptable sources.
E.g. the provided SimpleBackend accepts a list of paths to translation files which are either named *.rb and contain plain Ruby Hashes or are named *.yml and contain YAML data. So for the SimpleBackend clients may register translation files like this:
I18n.load_path << 'path/to/locale/en.yml'
126 127 128 |
# File 'lib/i18n/config.rb', line 126 def load_path @@load_path ||= [] end |
#load_path=(load_path) ⇒ Object
Sets the load path instance. Custom implementations are expected to behave like a Ruby Array.
132 133 134 135 136 |
# File 'lib/i18n/config.rb', line 132 def load_path=(load_path) @@load_path = load_path @@available_locales_set = nil backend.reload! end |
#locale ⇒ Object
The only configuration value that is not global and scoped to thread is :locale. It defaults to the default_locale.
9 10 11 |
# File 'lib/i18n/config.rb', line 9 def locale defined?(@locale) && @locale ? @locale : default_locale end |
#locale=(locale) ⇒ Object
Sets the current locale pseudo-globally, i.e. in the Thread.current hash.
14 15 16 17 |
# File 'lib/i18n/config.rb', line 14 def locale=(locale) I18n.enforce_available_locales!(locale) @locale = locale && locale.to_sym end |
#missing_interpolation_argument_handler ⇒ Object
Returns the current handler for situations when interpolation argument is missing. MissingInterpolationArgument will be raised by default.
97 98 99 100 101 |
# File 'lib/i18n/config.rb', line 97 def missing_interpolation_argument_handler @@missing_interpolation_argument_handler ||= lambda do |missing_key, provided_hash, string| raise MissingInterpolationArgument.new(missing_key, provided_hash, string) end end |
#missing_interpolation_argument_handler=(exception_handler) ⇒ Object
Sets the missing interpolation argument handler. It can be any object that responds to #call. The arguments that will be passed to #call are the same as for MissingInterpolationArgument initializer. Use Proc.new
if you don’t care about arity.
Example:
You can supress raising an exception and return string instead:
I18n.config.missing_interpolation_argument_handler = Proc.new do |key|
"#{key} is missing"
end
114 115 116 |
# File 'lib/i18n/config.rb', line 114 def missing_interpolation_argument_handler=(exception_handler) @@missing_interpolation_argument_handler = exception_handler end |