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:
gem 'i18n-coverage'
Add the following lines somewhere to your test setup. For RSpec, this will be at the top of spec_helper.rb
.
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'
require 'i18n/coverage/printers/file_printer'
I18n::Coverage.config.printer = I18n::Coverage::Printers::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.