class

I18n::Config

Inherits Reference < Object

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.

Constructors

Instance methods

available_locales

Returns the available locales.

Unless explicitly set, the default value will be nil.

Source
available_locales=(available_locales : Array(String | Symbol) | 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.

Source
default_locale

Returns the default locale.

Unless explicitly set, the default locale will be "en".

Source
default_locale=(locale : String | Symbol)

Allows to set the default locale.

Unless explicitly set with this method, the default locale will be "en".

Source
fallbacks

Returns the configured locale fallbacks.

Unless explicitly set, the default value will be nil.

Source
fallbacks=(fallbacks : Array(String | Symbol) | Hash(String | Symbol, Array(String | Symbol) | String | Symbol) | Locale::Fallbacks | NamedTuple | 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.

Source
loaders

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")
Source
loaders=(loaders : Array(I18n::Loader::Base))

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
Source