例えば, pharmacyというアプリケーションのソースファイ ルを展開したときに,
po/pharmacy.pot po/de.po po/fr.po po/ko.po
というファイルが含まれていたとします.pot ファイルは, 翻訳の元となるメッセージカタログで,この時点ではどの言 語にも翻訳されていません.これを日本語に翻訳するには, pot ファイルを ja.po [1] というファイル名にコピーします.すでに,ja.po ファイルが存在するときは,ja.po を編集するこ とで翻訳を進めます.
日本語メッセージカタログを記述するときのエンコーディ ング方は,必ず日本語 UTF-8 を使用します.SJIS や JIS では文字化けしてしまうので,気をつけてください.
po ファイルの書式は以下のようになっています.
(空行) # コメント #. 自動的に付加されるコメント #: 参照... #, フラグ... msgid 未翻訳の文字列 msgstr 翻訳後の文字列
msgid と msgstr はそれぞれ "" で区切られた文字列で,文字列の中では \ を使って次に来る文字をエスケープすること ができます.例えば,以下は「"a" を押してください」と 表示されます.
msgid "hit \"a\" key" msgstr "\"a\" を押してください"
また,\n は改行を表します.例えば,
msgid "This is\nsample" msgstr "これは\nサンプルです"
と書くと,実際の出力は「これは」「サンプルです」と2 行に渡って表示されます.これを,
msgid "This is" "\n" "sample" msgstr "これは" "\n" "サンプルです"
と書くこともできます.これは1行で書いた場合とまった く同じことです.このように,複数行に渡って書かれてい ても,実際の出力は複数行を連結したものと等しくなりま す.
GNU gettext に付属するプログラムは,ファイルを読みや すくするために,長い文字列を複数の行に分割する折り返 し作業を,自動的に行います.
メッセージカタログの先頭には,ファイルやアプリケーショ ンの情報を記述しておきます.以下は pharmacy というツー ルの pharamcy.pot ファイルの先頭部分です (各行の先頭の数字は行番号を表します).
1: # SOME DESCRIPTIVE TITLE. 2: # Copyright (C) YEAR Free Software Foundation, Inc. 3: # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. 4: # 5: #, fuzzy 6: msgid "" 7: msgstr "" 8: "Project-Id-Version: PACKAGE VERSION\n" 9: "POT-Creation-Date: 1999-06-08 18:12+0000\n" 10: "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 11: "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 12: "Language-Team: LANGUAGE <LL@li.org>\n" 13: "MIME-Version: 1.0\n" 14: "Content-Type: text/plain; charset=CHARSET\n" 15: "Content-Transfer-Encoding: ENCODING\n"
以下は,上に挙げた pharamcy.pot の先頭部分を,正し い情報に書き換えたものです.
1: # pharmacy ja.po 2: # Copyright (C) 1999 Free Software Foundation, Inc. 3: # Yuusuke Tahara <tahara@gnome.gr.jp>, 1999. 4: # 5: #, fuzzy 6: msgid "" 7: msgstr "" 8: "Project-Id-Version: pharmacy 0.2.1\n" 9: "POT-Creation-Date: 1999-06-08 18:12+0000\n" 10: "PO-Revision-Date: 1999-11-05 13:18+09:00\n" 11: "Last-Translator: Yuusuke Tahara <tahara@gnome.gr.jp>\n" 12: "Language-Team: Japanese <translation@gnome.gr.jp>\n" 13: "MIME-Version: 1.0\n" 14: "Content-Type: text/plain; charset=UTF-8\n" 15: "Content-Transfer-Encoding: 8bit\n"
このように,メッセージカタログの先頭部分にはファイル の情報を書き込んでおきます.特に,はじめて pot ファ イルから ja.po ファイルを作成する場合は,pot ファイ ルのテンプレート部分を適当に書き換える必要があります. それでは,各行について説明します.
1: # pharmacy ja.po 2: # Copyright (C) 1999 Free Software Foundation, Inc. 3: # Yuusuke Tahara <tahara@gnome.gr.jp>, 1999.
1-3行めは,このファイルの著作権等についての表示です. 1行めはファイルの情報です. 2行めの "YEAR" の部分は,最初に ja.po を作った年に書 き換えます. 3行めは,最初に ja.po を作った人の名前とメールアドレ ス,そして作成年に書き換えます.もし,翻訳者が他の人 に代った場合は,その人の情報も次の行に追加していくと よいでしょう. 5行めの fuzzy 行(フラグ, Section 2.4)について は,ファイルの書き換えが完了したら削除します.
8: "Project-Id-Version: pharmacy 0.2.1\n" 9: "POT-Creation-Date: 1999-06-08 18:12+0000\n" 10: "PO-Revision-Date: 1999-11-05 13:18+09:00\n"
8-10行めは,プロジェクトの情報とファイルの作成日につ いての表示です. 8行めには,プロジェクト(アプリケーション)の名前とそ のバージョンを書きます.元となったファイルが,リリー スされたバージョンのものだったらそのバージョンを, CVS から取得した最新もので次のバージョンがわかってい る場合はそのバージョンを,次のバージョンが不明のもの は CVS とか CVS-19991105 のように年月日も埋め込んだ バージョンとするのが良いでしょう. 9行めは pot ファイルが作成された日付なので,変更する 必要はありません. 10行めは,ファイルを最後に編集した日付です.後で出て くる emacs の po-mode (翻訳のコツ, Section 2.5)を使えばこ の行を自動的に更新することができます.
11: "Last-Translator: Yuusuke Tahara <tahara@gnome.gr.jp>\n" 12: "Language-Team: Japanese <translation@gnome.gr.jp>\n"
11-12行めは,翻訳者の情報についての表示です.
11行めには,一番最後の翻訳者についての名前とメールア ドレスを書きます.
12行めには,翻訳を行った各言語チームの連絡先を書きま
す.この文章を読んで翻訳を行っている場合は,例のよう
に書いてください.このアドレス宛のメールは, 日本GNOMEユーザー会の
GNOME Translators メーリ ングリスト
に転送されます.
13: "MIME-Version: 1.0\n" 14: "Content-Type: text/plain; charset=UTF-8\n" 15: "Content-Transfer-Encoding: 8bit\n"
13-15行めは,MIME についての表示です. 14行めの charset は,"UTF-8" とします. 15行めは,日本語 UTF-8 の場合 "8bit" とします.
基本的に # で始まる行はコメントとして扱われ ますが,#, で始まる行はちょっと違います.こ の行には,, で区切られたフラグ(のリスト)を 指定します.
msgid "ID" msgstr "ID"
のように翻訳するとよいでしょう.:-)
tahara@gnome.gr.jp