-
-
Notifications
You must be signed in to change notification settings - Fork 410
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
[BUG] Breaking change in v1.13.0, strings are now being returned frozen #658
Comments
If you use Easiest way to fix this for v1.13.0 might be to add a interpolated ? interpolated_string : string.dup |
Thanks, I tried this fix and it solves a problem with gitlab which stops working on some pages if i18n 1.13.0 is installed. |
alternatively, can you just always return Can you provide a test to reproduce? (I'm not a committer, so feel free to ignore my suggestions) |
With version v1.13.0 code was changed that returns a frozen string. This breaks e.g. gitlab-ce on some pages. Geoffrey Mainland (mainland@apeiron.net) pointed to the issue logged upstream: ruby-i18n/i18n#658 PR: 271420 PR: 271356 Approved by: sunpoet (maintainer)
What I tried to do
Invoked
I18n.t
What I expected to happen
An unfrozen string to be returned (like in v1.12.0)
What actually happened
A frozen string was returned
Versions of i18n, rails, and anything else you think is necessary
i18n: v1.13.0
Rails: 6.0.6.1
Translations: In a yml file
The issue is the conditional return statement introduced in this commit: be2f3a0
The prior version would always return the result of
gsub
, which has the effect of "unfreezing" a frozen string. By adding a code path where the original string can be returned, the frozen string loaded from the yaml can now be returned.Workaround: For now, we will version pin to the prior version, v1.12.0
The text was updated successfully, but these errors were encountered: