GetTextを使う

ローカライゼーション、というか、日本語・英語に両対応したアプリを作りたかったので調査の末、GetTextを使うことにした。

GetText と Globalize

ざっと調べた印象としては、

  • GetText (Ruby-GetText-Package) ... gem でインストールするパッケージ。以下が実現できる。Rails での用途もケアされている。
    • 検証エラーメッセージの日本語化(カラム名含)。
    • controller, view, model 内に出現する文言の多言語化ができる。
    • テンプレート丸ごとをロケールで差し替えることができる。
  • Globalize Plugin ... Rails plugin。データの多言語化にまで踏み込んでおり、リソースはDBに管理する。(日本語の?) 情報が少なめ。部分的な文言の置き換えの使い勝手は GetText のほうがよさそう。

GetTextをどこまで使うか

どこまで使うかによって労力が異なりそうなので理解したつもりのところを書いておく。

  • 1. 検証エラーメッセージ本文のみの多言語化(日本語化) - ごく簡単 後々のメンテも要らない
  • 2. 検証エラーにおけるカラムの多言語化(日本語化) - リソースファイルのメンテナンスが必要だが、その他の文字列についてケアしないで済むので比較的単純。

日本向けアプリを書いていて、Rails の英語依存部分を何とかしたいという場合は、ここまでの処理をして、あと使うならScaffoldをどうしようかという感じ(Scaffold のプラグイン選択で解決する手もありそうだが Scaffold に今は興味がないので探求してません)。

  • 3. 任意の文言の多言語化 - 手順は2と同様だが実装で言語を強く意識することになる。
  • 4. テンプレートの差し替えによる多言語化 - 変更頻度の極端に低い文書などに有効。3の補完的手段として使うとよさそう。簡単さは 1の次に簡単。

GetTextを使ってみた感想

イイ!

参考URLにあったrake タスクをそのまま使っているが、翻訳した内容を失うことなく、新たに増えたリソースの分がマージされたりして、行き届いてる。

これなら続けられそう〜・・・。

Last modified:2020/06/12 18:49:05
Keyword(s):
References:[Ruby on Rails]