プロダクトの日本語化手順
すでに国際化に対応しているプロダクトに対して、日本語の.poファイルを作成する方法について説明します。
目次
- 元となるファイルを決める[orig]
- 文字コードと改行コード[code]
- 先頭部分を編集[header]
- 翻訳メッセージをひたすら入力[msgstr]
- plone向けのpoファイル編集[plone-po]
元となるファイルを決める[orig]
プロダクトを日本語化するためには、まず プロダクト名-ja.po ファイルを作成する元となるファイルを決める必要があります。
どのファイルを元にするかの判断ですが、msgidが一番多いもの が一番安心かも知れません。
この元となるファイルはプロダクトにもよりますが、たいていは プロダクト名.pot という名前のテンプレートファイルがあるので、そのファイルを プロダクト名-ja.po にコピーします。(ファイル名の付け方に決まりはなく、便宜上このような名前の付け方になっています。)
また、プロダクト名.pot というファイルが存在せず、他の言語の プロダクト-言語.po というファイルが存在する場合は、そのファイルを プロダクト名-ja.po にコピーします。
文字コードと改行コード[code]
作成する プロダクト名-ja.po ファイルの文字コードは UTF-8N(先頭にBOM(Byte Order Mark)のないUTF-8らしいです)、改行コードは LF とします。
他の文字コード、改行コードでも大丈夫な気もしますが、とりあえず plone-ja.po のファイル形式に合わせておきます。
先頭部分を編集[header]
準備が出来たので、poファイルの編集をはじめます。
まず最初に、この poファイルに関する情報が書いてある、先頭部分を編集します。
例えば、plone-ja.po の先頭部分は以下のようになっています。(一部書き換えてあります。):
1 # Translation of plone.pot to Japanese
2 # Gettext Message File for Plone
3 # Robert <rbh [at] okihawg.org>, 2002
4 # Yusei <yusei[at] domen.cx>, 2002
5 # Retsu <tyam [at] mac.com>, 2003-2004
6 # Mai <capibara [at] users.sourceforge.net> 2003-2004
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: Plone 2.0\n"
10 "POT-Creation-Date: 2004-11-10 05:02+0000\n"
11 "PO-Revision-Date: 2004-03-24 03:57+0900\n"
12 "Last-Translator: Retsu <tyam [at] mac.com>\n"
13 "Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=utf-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17 "Plural-Forms: nplurals=1; plural=0\n"
18 "Language-Code: ja\n"
19 "Language-Name: 日本語\n"
20 "Preferred-Encodings: utf-8\n"
21 "Domain: plone\n"
22 "X-Is-Fallback-For: ja-jp\n"
ここで、先頭部分の意味について記述します。
- 1-6行目: ここはコメント部分ですが、慣習として過去に翻訳した人のリストを入れるようです。
- 9行目: このpoファイルが対応するプロダクトの名前です。(変更しません)
- 10行目: potファイルが作成された日です。(変更しません)
- 11行目: このpoファイルの編集した日です。編集終了後に入れましょう。
- 12行目: このpoファイルを最後に編集した人(自分)の名前を入れます。
メールアドレスは '@' を
[at]みたいにした方がいいかも知れません。 - 13行目: poファイルを翻訳したチームの名前を入れます。チームがない場合は12行目と同じ内容を入れておけばよいと思います。
- 15行目: 文字コード等の指定です。文字コードは
utf-8にします。 - 18行目: 言語のコードを指定します。日本語なので
jaを入力します。 - 19行目: 言語名を指定します。'日本語' または
Japaneseなどを入力します。 - 20行目: なんの指定かよくわかりませんが
utf-8と指定します。 - 21行目: このpoファイルの関連する範囲(
Domain)です。(変更しません) - 22行目: WebブラウザのAccept Languageの指定かな?と思われます。
ja-jpのみ指定します。
翻訳メッセージをひたすら入力[msgstr]
あとはひたすら、poファイル中に存在する msgid に対応する msgstr を入力していきます。基本的な翻訳の流れはこんな感じになると思います。
msgstrに対応する翻訳文を入力をしてpoファイルを保存します。- ZMIで対応する
Control_Panel/TranslationServiceにアクセスします。対応するGetText Message Catalogを開いてReload this catalogボタンをクリックします。 - するとpoファイルの中身がZopeサーバに再読み込みされます。
- 翻訳文が表示されるべきページを表示して、翻訳結果を確認します。
- 全部の翻訳が終わるまで 1. に戻ります。
翻訳を行なう際には、poファイルの中身を見ているだけでは、なかなか適切な訳語というのはわからないと思います。 実際にプロダクトを動作させて、どの部分にどのメッセージが出るか、翻訳したメッセージを表示させてニュアンスがおかしくないか、などチェックしながら翻訳をすすめることになると思います。
また、仮にどこにmsgstrで設定した文字列が出力されるかをチェックするために、英語のメッセージの前に (J) などをつけるとわかりやすいかも知れません。
あとは、他の言語ではどのように翻訳しているかなども参考になる場合があると思います。
plone向けのpoファイル編集[plone-po]
Plone用のプロダクトの場合は、プロダクト名-plone.pot というファイルも i18n ディレクトリに存在する場合があります。
この翻訳ファイルはPlone側で表示する「アイテムの名前」や「アイテムの説明」「編集後のメッセージ」などを翻訳するために使用します。
よくあるPlone側で出力するメッセージとしては、下記のようなものがあると思います。
- アイテム名 → 日本語のアイテム名
- (アイテム名) has been created. → (アイテム名)が作成されました
- (アイテム名) changes save. → (アイテム名)の変更が保存されました
- Edit (アイテム名) → (アイテム名)を編集