Backport (#45169): Allow all available locales for template lookups. #47494
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a proposed backport of #45169 to v7.0, cherry-picking @oneiros's commit below. Our use case of per-tenant locales is pretty much identical and we'd greatly appreciate the backport while we're waiting for v7.1 to be released.
Following the discussion here:
https://github.com/rails/rails/pull/44174/files#r785160819
Background: The
i18n
gem is relatively lax when it comes to naming locales. It does not enforce any standard. Thus it is possible to have e.g. per tenant locales (thinken_tenant1
,en_tenant2
etc.). This also worked for translated templates up until rails 6.1.Rails 7 changed the template lookup and enforced a naming scheme for locales. This poses a problem for legacy apps that use non-standard locale names.
This commit changes the way locale names are detected in template file names. In addition to the previously used regexp it also allows all known locales from
I18n.available_locales
.This makes it backwards compatible to rails 7.0
behavior while also allowing non-standard locale names. Thanks to jvillarejo for the great idea.
Also introduce the usage of
Regexp.union
, a wonderful suggestion by casperisfine.(cherry picked from commit 12c1289)
Motivation / Background
This Pull Request has been created because [REPLACE ME]
Detail
This Pull Request changes [REPLACE ME]
Additional information
Checklist
Before submitting the PR make sure the following are checked:
[Fix #issue-number]