ぱろっと・すたじお

技術メモなどをまったりと / my site : http://parrot-studio.com/

続・Railsのエラーメッセージを日本語化する

前回Railsi18n対応を利用したgem、
「amatsuda-i18n_generators」について書いたわけですが、
その後継続して見ていくと、やはり違和感が


システムメッセージはきれいに日本語化されているのですが、
テーブルの項目名が半端に日本語化されているというか、
妙に機械翻訳っぽいというか・・・


項目名まで日本語化されるだけでもすごいのですが、
あまり半端に日本語化されると、妙な誤解を招きかねません


ということで、生成されたファイルをチェックしたところ、
以下の二つが作られていました

config/locales/ja.yml
config/locales/translation_ja.yml

同じディレクトリに「en.yml」があることからもわかるように、
このディレクトリに言語ファイルを置くことで、
Railsがそれを「辞書」として認識する・・・と


・・・ということが、実はenvironment.rbに書いてあったりΣ(゚Д゚)ガーン

  # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')]
  config.i18n.default_locale = :ja

まさにそのまんまですな


しかし、これで日本語化されるのはシステムメッセージであって、
データ項目の辞書に当たるのが「translation_ja.yml」の方になります


おそらくですが、generetorを走らせたときに、
modelに定義されたクラスの項目をDBから取得し、
それを機械的に翻訳していると思われます


自動翻訳なので、笑える訳がかなりありますが、
さすがにそのままってわけにいかないので、
このファイルを編集する必要はありそうです


逆を言えば、一般名詞をRails式に組み合わせていれば、
自動翻訳でもそんなに外した訳にはならない気がします
このあたりも「Railsっぽさ」を要求されるところですかね


あと、テーブル定義のコメント部分を
訳語にあてる仕組みなんてのがあるといいのかもしれません


ER図のツールでSQLを作ってるケースだと、
項目の日本語名をコメントに入れていたりしますからね
・・・まあ、今のシステムは入ってないのですが・・・Σ(・ω・ノ)ノ


それに、本来はmigrationでテーブルを作っているはずですし、
コメントをわざわざ書いているケースはほとんどないのではないかと


・・・多少脱線しましたが、
「amatsuda-i18n_generators」が便利なのは間違いないので、
ガンガン使っていきましょう(`・ω・´) b