プロダクトの日本語化手順

すでに国際化に対応しているプロダクトに対して、日本語の.poファイルを作成する方法について説明します。

takanori

目次

元となるファイルを決める[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"

ここで、先頭部分の意味について記述します。

翻訳メッセージをひたすら入力[msgstr]

あとはひたすら、poファイル中に存在する msgid に対応する msgstr を入力していきます。基本的な翻訳の流れはこんな感じになると思います。

  1. msgstr に対応する翻訳文を入力をしてpoファイルを保存します。
  2. ZMIで対応する Control_Panel/TranslationService にアクセスします。対応するGetText Message Catalogを開いて Reload this catalog ボタンをクリックします。
  3. するとpoファイルの中身がZopeサーバに再読み込みされます。
  4. 翻訳文が表示されるべきページを表示して、翻訳結果を確認します。
  5. 全部の翻訳が終わるまで 1. に戻ります。

翻訳を行なう際には、poファイルの中身を見ているだけでは、なかなか適切な訳語というのはわからないと思います。 実際にプロダクトを動作させて、どの部分にどのメッセージが出るか、翻訳したメッセージを表示させてニュアンスがおかしくないか、などチェックしながら翻訳をすすめることになると思います。

また、仮にどこにmsgstrで設定した文字列が出力されるかをチェックするために、英語のメッセージの前に (J) などをつけるとわかりやすいかも知れません。

あとは、他の言語ではどのように翻訳しているかなども参考になる場合があると思います。

plone向けのpoファイル編集[plone-po]

Plone用のプロダクトの場合は、プロダクト名-plone.pot というファイルも i18n ディレクトリに存在する場合があります。

この翻訳ファイルはPlone側で表示する「アイテムの名前」や「アイテムの説明」「編集後のメッセージ」などを翻訳するために使用します。

よくあるPlone側で出力するメッセージとしては、下記のようなものがあると思います。