The first version of the default locale feature a non-persisted instance of Rosetta::Locale. It made sense since the convention in Rosetta is that your default locale is the locale the codebase is written in. Therefore there should be no need for a persisted default locale.
However, work on https://github.com/virolea/rosetta/pull/10 showed that in order to have a common pluralization API, pluralized translations need to be stored, even for the default locale. Therefore it needs to be persisted.
This PR implements a new workflow around default locales. Any installation of Rosetta without a persisted default locale will now redirect to default_locales#new. A new boolean default is added to the rosetta_locales table to set the default locale.
The default locale is memoized in Rosetta::Locale.default_locale.
The default Locale should not change in theory. It should only be set once.
The first version of the default locale feature a non-persisted instance of
Rosetta::Locale
. It made sense since the convention in Rosetta is that your default locale is the locale the codebase is written in. Therefore there should be no need for a persisted default locale.However, work on https://github.com/virolea/rosetta/pull/10 showed that in order to have a common pluralization API, pluralized translations need to be stored, even for the default locale. Therefore it needs to be persisted.
This PR implements a new workflow around default locales. Any installation of Rosetta without a persisted default locale will now redirect to
default_locales#new
. A new booleandefault
is added to therosetta_locales
table to set the default locale.The default locale is memoized in
Rosetta::Locale.default_locale
.The default Locale should not change in theory. It should only be set once.