jascaffoldとGetTextの連携を調整する。

これまでの作業で、日本語化に関しては一段落したと考えていたが、ちょっとした不具合*1を発見。それは、jascaffoldとGetTextをそれぞれ個別に利用している時は問題なかったのだが、両方インストールして使っていたら、いつの間にかエラー表示の日本語化がおかしくなっていた。こんな感じ...

どちらもエラー表示を日本語化してくれる機能があるので、お互いの機能が混ざってしまい正常に日本語化できなくなってしまったのだと思う。そこで、処理が重なる部分について、どちらの機能を優先するか以下のように決めてみた。

  • エラー表示の日本語化はGetTextを利用。
  • エラー表示以外で、jascaffoldが日本語化してくれる部分は、そのままjascaffoldを利用。
  • 残りの部分はGetTextを利用。(主にLoginEngine、UserEngineなどのプラグインの日本語化)
      • なるべく日本語以外の言語にも対応できるGetTextを利用したいが、jascaffoldがscript/generate一発で実現してくれる、せっかくの便利な機能*2はそのまま利用させて頂きたい!という思いがある。

jascaffoldでエラー表示の日本語化を無効にする。

config/localize.ymlのエラーメッセージの部分を削除してみても状況変はわらず...ちょっと遠回りしてしまったが、ここではlocalized_error_messages_forを、error_messages_forに置き換えることでエラー表示が正常になった。修正したのは以下のファイル。

  • app/views/modelsフォルダ以下の全てのファイルの一行目。
  • app/views/softwares、app/views/keywordsフォルダの_form.rhtmlの一行目。
<%#= localized_error_messages_for 'software' %>
<%= error_messages_for 'software' %>
      • 1行だけだけど、修正するファイルが多かったので、もしかしたらどこかを設定するだけでコントロールできるのかもしれない...。


以上の作業で、エラー表示も正常に日本語化完了。

*1:これは、自分の使い方の問題です。

*2:日本語化以外にも、フィールドの非表示設定、書式設定など。