class I18n::Config
- I18n::Config
- Reference
- Object
Overview
The main I18n configuration class.
This class holds all the configuration options of crystal-i18n. It is mainly used in order to initialize the global
catalog of translations (used in the context of I18n#translate
for example) ; but it can also be used to
configure a custom catalog of translations through the use of the I18n::Catalog#from_config
class method.
Defined in:
i18n/config.crConstructors
Instance Method Summary
-
#available_locales : Array(String)?
Returns the available locales.
-
#available_locales=(available_locales : Array(String | Symbol) | Nil)
Allows to set the available locales.
-
#default_locale : String
Returns the default locale.
-
#default_locale=(locale : String | Symbol)
Allows to set the default locale.
-
#fallbacks : I18n::Locale::Fallbacks?
Returns the configured locale fallbacks.
-
#fallbacks=(fallbacks : Array(String | Symbol) | Hash(String | Symbol, Array(String | Symbol) | String | Symbol) | Locale::Fallbacks | NamedTuple | Nil)
Allows to set the locale fallbacks.
-
#loaders : Array(I18n::Loader::Base)
Returns the array of configured translations loaders.
-
#loaders=(loaders : Array(I18n::Loader::Base))
Allows to set the array of configured translations loaders.
Constructor Detail
Instance Method Detail
Returns the available locales.
Unless explicitly set, the default value will be nil
.
Allows to set the available locales.
Setting available locales will force catalog of translations to only load and handle translations for the
specified set of locales. If an empty array or a nil
value is passed to this method, then no restrictions will
be applied to the associated catalog of translations.
Returns the default locale.
Unless explicitly set, the default locale will be "en"
.
Allows to set the default locale.
Unless explicitly set with this method, the default locale will be "en"
.
Returns the configured locale fallbacks.
Unless explicitly set, the default value will be nil
.
Allows to set the locale fallbacks.
Setting locale fallbacks will force catalogs of translations to try to lookup translations in other (configured) locales if the current locale the translation is requested into is missing.
The passed fallback
can be a hash or a named tuple that defines the chains of fallbacks to use for specific
locales. For example:
I18n.config.fallbacks = {"en-CA" => ["en-US", "en"], "fr-CA" => "fr"}
It can also be a simple array of fallbacks. In that case, this chain of fallbacked locales will be used as a default for all the available locales when translations are missing:
I18n.config.fallbacks = ["en-US", "en"]
It's also possible to specficy both default fallbacks and a mapping of fallbacks by initializing an
I18n::Locale::Fallbacks
object as follows:
I18n.config.fallbacks = I18n::Locale::Fallbacks.new(
{"fr-CA-special": ["fr-CA", "fr", "en"]},
default: ["en"]
)
Finally, using nil
in the context of this method will reset the configured fallbacks (and remove any previously
configured fallbacks).
It's also important to always ensure that fallback locales are available locales: they should all be present in
the #available_locales
array.
Returns the array of configured translations loaders.
Translations loaders will be used to populate the catalog of translations (I18n::Catalog
object) that is
initialized from this configuration object. Translations loaders are subclasses of I18n::Loader::Base
and are
used to extract raw translations from files (eg. yaml or json) or other sources.
By default, an empty array will be returned by this method. Loaders have to be explicitly appended to this array in order to be used to initialize associated catalog of translations. For example:
I18n.config.loaders << I18n::Loader::YAML.new("config/locales")
Allows to set the array of configured translations loaders.
Translations loaders will be used to populate the catalog of translations (I18n::Catalog
object) that is
initialized from this configuration object. Translations loaders are subclasses of I18n::Loader::Base
and are
used to extract raw translations from files (eg. yaml or json) or other sources.
I18n.config.loaders = [
I18n::Loader::YAML.new("config/locales"),
] of I18n::Loader::Base