Simple gem to see how much of your i18n keys are used during tests. It requires that the translations are handled by the i18n gem.
This gem is not meant to replace tools such as i18n-tasks, but more to give you an idea of which keys are not covered by tests (especially when adding translations to a gem where strings were hard-coded previously).
Add this line to your application's Gemfile:
Add the following lines somewhere to your test setup. For RSpec, this will be at the top of
require 'i18n/coverage' I18n::Coverage.start
If you don't want to check I18n Coverage in every test run, you could enable it with an environment variable.
# file spec_helper.rb require 'i18n/coverage' I18n::Coverage.start if ENV['I18N_COVERAGE']
I18N_COVERAGE=1 bundle exec rspec
The default config is here.
By default the coverage is output to the console. You can also select a different printer, or write your own!
require 'i18n/coverage/printers/file_printer' I18n::Coverage.config.printer = I18n::Coverage::Printer::FilePrinter I18n::Coverage.start
After checking out the repo, run
bin/setup to install dependencies. Then, run
rake spec to run the tests, or just
rake to run all tasks, such as linting. You can also run
bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run
bundle exec rake install. To release a new version, update the version number in
version.rb, and then run
bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the
.gem file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/hiptest/i18n-coverage.