(Rails)i18n-tasksのご紹介

昨日、RailsのSecurity UpdateがReleaseされました。
Rails 5.2.4.4 and 6.0.3.3 have been released | Riding Rails

あまり影響がある人は少ないかもしれませんが、こちらで詳しく解説されてます。
Rails: セキュリティアップデート5.2.4.4と6.0.3.3がリリース|TechRacho

これで思い出しましたが、i18nのkey管理にとても良いgemがあるので、こちらをご紹介。
glebm/i18n-tasks: Manage translation and localization with static analysis, for Ruby i18n  

そこそこの規模のwebシステムだと、途中で画面のデザインを変えたりすると、 i18nのkeyの消し忘れや、partial化した時にkeyを適切に振り直し忘れたりして、管理が適切に行われなくなりがちです。 こいつを使うと、足りないkey、使われてないkeyを教えてくれます。i18n利用していればもれなくお勧めできるgemです。
 

Installation

gem入れて、i18n-tasks.yml を用意すればok。
https://github.com/glebm/i18n-tasks

Configuration

さすがに動的に利用しているものは、検知できないので、ignore_unused で対象外にします。 https://github.com/glebm/i18n-tasks/blob/master/templates/config/i18n-tasks.yml

Test

テストに組み込めちゃうのも、非常に良いです。なんかあったらすぐ気付けます。
(normalizeはsort順もチェックするオプションなので、これは未実施にしてたりします。)

$ cp $(i18n-tasks gem-path)/templates/rspec/i18n_spec.rb spec/

or

$ cp $(i18n-tasks gem-path)/templates/minitest/i18n_test.rb test/

その他

Pre-fill missing keys, optionally from Google Translate or DeepL Pro

なんと、Google Translate、DeepL Pro、Yandex を用いて翻訳もしてくれるようです。これ知らなかった。