言語ファイルをチェックできるgem、i18n_checkerを作りました。
多言語対応をしていると、typoで翻訳されていなかったり、言語ファイルに追加漏れがあったりするので、簡単なチェックができるツールが欲しかったのが作った理由です。
サポートするファイル形式
このgemは下記の形式のファイルをソースとして、翻訳テキストが存在しているかチェックします。
テキストの抜き出しは、ASTを使用してノードから抽出しています。
使い方
使い方はRakefileにタスクを追加するだけです。
タスクのオプションは下記のオプションが使用できます。
オプション名 | 説明 |
---|---|
source_paths | ソースファイルのリスト |
locale_file_paths | 翻訳ファイルのリスト |
reporter | 検出結果を出力するレポーター |
require 'i18n_checker/rake_task' I18nChecker::RakeTask.new do |task| # haml templates, ruby sources task.source_paths = FileList['app/models/*', 'app/views/*'] # locale file paths task.locale_file_paths = FileList['config/locales/*'] end
後は、locale_checkタスクを実行するだけで、翻訳テキストが見つからない参照を検出できます。
bundle exec rake locale_check
今後について
今回は翻訳テキストが参照しかチェックしてませんが、使用してない翻訳テキストも調べられるようにするつもりです。
今仕事でやっている案件が実証実験を結構やっていて、実験が終わった後のコードとか、設定が残っていて不要なものをどんどん削除していきたいのでツールで解決できるものは解決していきたです。