I'm working on an existing Rails app and am using a localization file, en.yml
, to hold most of the app's text. At the moment, we aren't localizing into any other languages, so there's just the one file, but the fact that we're putting translate('some.key')
into our views means that adding another language will be as simple as adding another file - say, sp.yml
The problem is, en.yml
has grown to the point that I doubt all the keys are being used.
Apart from git grepping
for translate
calls using each key, is there a quick way to identify localization keys that aren't being explicitly called by the app?
Take a look at this article about "Key issues internationalizing your app". The paragraph that interests you is: "Getting rid of unused translations".
Specifically, it recommends looking through your source code and also logging what translation keys get used in your production app, as follows:
module I18n module Registry protected def lookup(locale, key, scope = [], options = {}) @log ||= Logger.new(File.join(Rails.root, 'log', 'i18n_registry.log')) @log.info key super end end end I18n::Backend::Simple.send :include, I18n::Registry
Hope that helps.
I just heard about this gem, which includes a task to show "potentially unused translations".
https://github.com/glebm/i18n-tasks
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With