岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

メッセージIDが変数になることはありませんか?

多言語対応のWebアプリケーションで、選択可能な言語をセレクトボックスで選べるようにしたいと思っています。セレクトボックスに「英語」「日本語」「スペイン語」などのオプションを表示し、「英語」が選択された場合には、それらのオプション自体の表示も「English」「Japanese」「Spanish」などと切り替えるつもりです。

言語が減ったり増えたりするたびにビューテンプレートの定義を変えるのは面倒なので:

<% @languages.each do |code, name| %>
<option value="<%= code %>"><%= _(name) %></option>
<% end %>

のように定義するのが良いように思うのですが、そうするとgettextのメッセージIDが変数になってしまいます。potファイルの作成時に、抽出されないので不便なわけです。

同じような悩みをお持ちのかた、あるいは克服されたかたがいらっしゃれば、一緒に枝豆でもつまみませんか?