よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

December 03, 2007 [おもひで]

[Ruby] Ruby-GetText-Package Tips (1)

最近、質問されたりする中で、その使い方はどうかなぁ、というのが何点かあったので、徒然なく書いてみる。

あまり時間がないのでちょっとずつね。

[rgtp-tips:1] 変数付きの文字列はなるべくmsgidに入れ込む

例えば、

"the file name is /home/mutoh/foo.txt"

みたいな時でファイル名を変数とする場合は、

"the file name is %{filename}" % {:filename => filename}

とする。この場合、

"the file name is %{filename}"

がmsgidになるんだけど、日本語に訳すと

"ファイル名は%{filename}です。"

のように変数の順序も自由に変更できてアプリを変更せずに自然な翻訳をすることができる。

これを、

_("the file name is") + filename

としてしまうと、日本語に訳そうとしたら、

"ファイル名は" + filename

みたいな感じでイマイチだよね。

[rgtp-tips:2] さらに複数の変数を使う場合も同様で、"Your name: Masao, Mutoh"というのを

"Your name: Masao" + firstname + "," + lastname

と言う風に書かずに

_("Your name: %{firstname}, %{lastname}") % {:firstname => firstname, :lastname => lastname}

とする。こうすれば、

"あなたの名前: %{lastname} %{firstname}"

lastname, firstnameが日本語であれば、

"あなたの名前: むとう まさお"

と翻訳できる。実際はこのような順序の変更を翻訳としてしてしまうと不適切な場合もありケースバイケースだとは思うけど、その辺は翻訳者に判断を任せる方が良いでしょう。

ちかれた。以下、つづく(かな?)


編集