Vote #79637
完了Update i18n gem (~> 1.6.0)
0%
説明
The latest version of i18n gem is "1.1.1":https://rubygems.org/gems/i18n/versions/1.1.1 but Redmine still uses 0.7.0 that was released 4 years ago.
The reason why Redmine uses the old version is a test failure (see r16324). We should fix the error and should follow the recent version.
journals
I can take a look if you want.
--------------------------------------------------------------------------------
Marius BALTEANU wrote:
> I can take a look if you want.
Thanks. I have not started the work yet, so I am glad if you work on it. Although the priority of this issue is low, we have to upgrade i18n someday.
--------------------------------------------------------------------------------
The test that fails on my local environment is the below one and not the one from r16324.
<pre><code class='bash'>
root@45ec3a6558b0:/work# ruby test/unit/lib/redmine/i18n_test.rb
DEPRECATION WARNING: `secrets.secret_token` is deprecated in favor of `secret_key_base` and will be removed in Rails 6.0. (called from <top (required)> at /work/config/environment.rb:14)
Run options: --seed 36235
# Running:
.........F
Failure:
Redmine::I18nTest#test_fallback [test/unit/lib/redmine/i18n_test.rb:234]:
--- expected
+++ actual
@@ -1 +1 @@
-"Untranslated string"
+"translation missing: fr.untranslated"
</code></pre>
--------------------------------------------------------------------------------
There are multiple changes between 0.7.0 version and 1.1.1.
One reason of the failing test is https://github.com/svenfuchs/i18n/pull/415 which doesn't consider anymore the default locale as fallback locale. Now you need to explicitly define in the config the fallback locales. For example, if we add the line @config.i18n.fallbacks = [:en]@ to @config/application.rb@, the above test will pass, but I don't think that should be the solution because from what I've observed until now, we add the en version of the locale to all locale files (which is healthier from point of view).
Attached the patch that updates the gem version and fixes the failing test. The safest way is to schedule this update for version:"4.1.0" in order to have time to catch missing translation keys (if exists).
--------------------------------------------------------------------------------
Marius BALTEANU wrote:
> [...] but I don't think that should be the solution because from what I've observed until now, we add the en version of the locale to all locale files (which is healthier from point of view).
It seems that are some missing keys.
--------------------------------------------------------------------------------
i18n now is at v1.5.3 which supports only Ruby > 2.2. I'll work on this for version:"4.1.0"
--------------------------------------------------------------------------------
I've attached a new patch with a different fix, but I would like a review on the proposed changes even if all the existing tests "pass":https://gitlab.com/marius-balteanu/redmine/-/jobs/159806408
The failing test from r16324 was generated by a change to the @exists?@ method which returns true when a fallback exists (please see https://github.com/ruby-i18n/i18n/pull/326).
In my note 3, I wasn't able to reproduce the failing test because the fallback was not enabled.
--------------------------------------------------------------------------------
One more thing, in the future, we can change back to @exists?@ method if the https://github.com/ruby-i18n/i18n/issues/365 will be implemented.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Committed the patch. Thank you for writing the patch.
--------------------------------------------------------------------------------
i18n 1.6.0 has been released on 2019-03-03.
https://rubygems.org/gems/i18n/versions/1.6.0
I confirmed that it passes all tests. We can update i18n to ~> 1.6.0.
--------------------------------------------------------------------------------
Updated i18n to 1.6 in r17921.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
#31384 has been reported for this change.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
related_issues
relates,Closed,33334,bump i18n for advisory: CVE-2014-10077
blocks,Closed,30356,Drop Ruby 2.2 support
blocks,Closed,31384,Remove custom lazy loading of i18n files