Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/svenfuchs/i18n-missing_translations
Find missing translations in your code more easily.
https://github.com/svenfuchs/i18n-missing_translations
Last synced: 2 months ago
JSON representation
Find missing translations in your code more easily.
- Host: GitHub
- URL: https://github.com/svenfuchs/i18n-missing_translations
- Owner: svenfuchs
- Created: 2010-11-06T10:31:16.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2015-10-17T13:45:26.000Z (about 9 years ago)
- Last Synced: 2024-10-18T22:03:34.834Z (2 months ago)
- Language: Ruby
- Homepage:
- Size: 136 KB
- Stars: 31
- Watchers: 3
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.textile
Awesome Lists containing this project
README
h1. I18n::MissingTranslations
I18n::MissingTranslations is a simple tool that helps with finding missing translations in your application.
It consists of three parts:
* a module that plugs into the I18n::ExceptionHandler class and logs I18n::MissingTranslationData exceptions
* an in-memory logger that simply holds missing translations during a request or test run
* a middleware that can be used to dump the contents of the logger to a file after each requesth3. Installation
I18n::MissingTranslations requires I18n 0.5.0 which has not been released yet (2010-11-06). So you need to make sure you require the 0.5.0 branch from the I18n repository:
gem 'i18n', :git => 'git://github.com/svenfuchs/i18n.git', :ref => '0.5.0'h3. Usage in test environment
This is what you might want to put into your test_helper:
require 'i18n/missing_translations'
at_exit { I18n.missing_translations.dump }If there are any missing translations then it will print out a YAML snippet for them that you can copy and paste to your locale file.
h3. Usage in development environment
The following hooks up the I18n::MissingTranslations middleware in development mode. You might want to add these lines as an initializer:
require 'i18n/missing_translations'
config.app_middleware.use(I18n::MissingTranslations) if Rails.env.development?The middleware will then log missing tranlations to a file @missing_translations.yml@ in your locales dir (which is @config/locales@ if present or the current directory otherwise). You can also pass the filename as an argument:
config.app_middleware.use(I18n::MissingTranslations, 'path/to/locales/missing.yml')The middleware reads *and* writes per request. That means that on subsequent requests missing translations are *added* to the @missing_translations.yml@ file. So if you go ahead and copy translations from the @missing_translations.yml@ to your actual locale files you will also want to clear or delete @missing_translations.yml@.
*NOTE* Rails (3.0.1) does not pick up new locale files between requests. That effectively means that manual changes to the @missing_translations.yml@ file might be overwritten unless you restart the server.
Thus your workflow for finding and moving missing translation keys might look something like this:
* start the server
* click around/work on stuff
* check @config/locales/missing_translations.yml@
* copy any missing translation keys to your actual locale files and correct the translations
* delete or clear @config/locales/missing_translations.yml@
* restart the server