type holyshared = Engineer<mixed>

PHP、Hack、Ruby、OCaml、Javascript周りの技術ブログ

言語ファイルをチェックできるgemを作った

Screen Shot

言語ファイルをチェックできる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

今後について

今回は翻訳テキストが参照しかチェックしてませんが、使用してない翻訳テキストも調べられるようにするつもりです。

今仕事でやっている案件が実証実験を結構やっていて、実験が終わった後のコードとか、設定が残っていて不要なものをどんどん削除していきたいのでツールで解決できるものは解決していきたです。