unoh.github.com

5分でわかる PHP で書かれた Web サービスの国際化(その4)

2006-07-19 07:05:23 +0000

ジュンヤです。

5分でわかる PHP で書かれた Web サービスの国際化(その3)に引き続き、今回が4回目。このシリーズは今回でラストにしたいと思います。

最後は、つい先日βリリースしましたフォト蔵の英語版を例に、メッセージファイルを作成する際や日本語のテキストを英訳する際に気をつけた点をいくつか書きたいと思います。

複数形と単数形の両方が使われる場合は、メッセージファイルに別々に定義する

たとえば写真が複数並んでいる箇所の「写真」と写真がひとつしか表示されない部分の「写真」とでは、日本語では同じ「写真」ですが、英語版では、前者は Photos で後者は Photo と表示しなければなりません。メッセージファイルでは以下のように別々に定義しておく必要があります。

#
# 日本語メッセージファイル
#
msgid "Photos"
msgstr "写真"
msgid "Photo"
msgstr "写真"


msgid には、そのまま表示されてしまっても大丈夫なように、意味の通る英語を使う

#
# 日本語メッセージファイル
#
msgid "menu1"
msgstr "ファイル"
msgid "menu2"
msgstr "編集"


のように定義したとします。「ファイル」と表示するブログラム部分では、gettext('menu1') を表示させるわけですが、万一対応する msgstr がメッセージファイルにみつからない場合、msgid である、意味がまったく不明な「menu1」が表示されてしまいます。そのようなことにならないよう、

#
# 日本語メッセージファイル
#
msgid "File"
msgstr "ファイル"
msgid "Edit"
msgstr "編集"


のように、意味の通る英語で msgid を定義しておきます。英語メッセージファイルが

#
# 英語メッセージファイル
#
msgid "File"
msgstr "File"
msgid "Edit"
msgstr "Edit"


のように msgid と msgstr がまったく同じになるのが理想です。

イニシャルを大文字で

基本的なことですが、文章のイニシャルは大文字です。また、 all videos といった文章ではないメニューの名前などは、フォト蔵では All Videos と各単語の頭を大文字にしています。

言い回しを統一する

「人気のある」はフォト蔵では Popular ではなく Fave を使うようにしています。たとえば Fave Pictures といったようにです。複数人で開発しても、常に決まった言い回しで統一できるよう、リストにしておくと良いと思います。

余談:regist という英語はない

余談ですが、regist という英語はありません。登録する = register です。

秋元@サイボウズ研究所プログラマーBlog: regist という英語は無い」より