Fallbacks
When working with variations of languages, like en-US
or en-GB
, it's useful
for one locale set to fall back to another one to avoid duplication between your
locales sets.
Fallback rules
Fallback rules are configured using the Rosetta::FallbackRules
annotation:
@[Rosetta::AvailableLocales("en-GB", "en-US", :nl)]
@[Rosetta::FallbackRules({
"en-GB": "en-US",
})]
In the example above, en-US
is treated as the main locale set for English,
which should be complete. The en-GB
set only needs to include the translations
deviating from en-US
.
Chaining fallbacks
Fallbacks may also be chained:
@[Rosetta::AvailableLocales("en-GB", "en-US", :en, :nl)]
@[Rosetta::FallbackRules({
"en-US": "en"
"en-GB": "en-US",
})]
The callback chain will now be en-GB -> en-US -> en
.
Info
It's important to note that fallback rules are applied sequentially. To be
able to fall back to a set, it must be "complete". That is why, in the
example above, en-US
is falling back on en
first, before en-GB
can
fall back on en-US
.