パピーリナックスでの翻訳作業の説明書き

パピーリナックスのprecise571の/usr/share/doc/HOWTO-internationalization.htmを翻訳してみた。以下は抄訳。

アプリケーションを国際化するには

パピーにおけるアプリケーションとスクリプトの国際化は、MoManager(GUIアプリです)を使用することによって、極めて簡単になりました。

BaCon(ベーコン)で書かれたアプリケーション

BaConはBASIC言語のコンパイラで、我々のパピー開発のための公式サポート言語のひとつです。以下にひとつ例があります。
http://bkhome.org/bacon/international.htm

あなたは最近のどのパピーでも、国際化サポートがなされたBaConで書かれた二つのアプリケーションを見つけることができます:
/usr/sbin/welcome1stboot
/usr/local/simple_network_setup/proxy-setup

'.bac'ファイルはBaConのソースコードです。'.pot'ファイルは翻訳のためのファイルです。'.pupdev'は単なるテキストファイルで、コンパイルのための指示、'.pot'翻訳ファイルの作り方、そして開発者のメモ書き等が含まれています。

'.pupdev'ファイルは任意であり、必ずしも'devx'開発環境に含まれているとは限りませんが -- もしあなたがひとつ'.pupdev'を読んだなら、そこから他のBaConアプリケーションのための'.pot'翻訳ファイルの作成法を読み取れるでしょう。

上記の例ではBaConアプリケーションのコンパイル時、/usr/share/nlsに'.pot'ファイルを置きます。これでアプリケーションのペットパッケージにすることが可能です。MoManagerは翻訳のために、このパスの'.pot'ファイルをサーチします。

実際には、他のどのアプリケーションでも同じことなんです。C、Vala、Genie、その他何で書かれたものであっても、'.pot'ファイルを/usr/share/doc/nls/XXX.pot として置けば、MoManagerはそれを使います。

'gettext'によるスクリプトの国際化

翻訳できるように'gettext'を使用したスクリプトがパピーには沢山あります。スクリプトの中に、こんな記述があります:
export TEXTDOMAIN=myapp

これは'gettext'を使用することを意味し、MoManagerはこの記述のある全てのスクリプトを認識し、各々のスクリプトを翻訳するためのGUIインターフェイスを提供します。翻訳のためにコマンドラインでのツールを学ぶ必要はありません。GUIインターフェイスで簡単にできます。

基本的には、MoManagerはアプリケーションに対し、単一の'.pot'ファイルを作成します。上記の例では'myapp.pot'になります。複数のスクリプトが同じドメイン名の記述、例えば'myapp'、を持つこともできますが、その場合でも単一の'myapp.pot'が作成されることに注意してください。そういうわけで、もしあなたのアプリケーションが複数のスクリプトを持っている場合でも、'.pot'ファイルを各々に用意する必要はありません(そうしようと思えば、そうできますが)。複数のスクリプトに翻訳されるべき共通の文字列がある場合、これはより効果的で、そして単一の'.pot'ファイルというのは、よりシンプルです。

'.pot'ファイルは、あなたが特定の言語の翻訳を挿入する必要のある、"翻訳ファイル"です。翻訳が終われば、それを'.po'ファイルにして、更にそれがバイナリファイルにコンパイルされて'.mo'ファイルになります。コンパイル済みの'.mo'ファイルは/usr/share/locale にあります。MoManagerはこれらの変換を取扱います。

MoManagerによる翻訳

Momanagerはパピー収録のアプリケーションを英語以外に翻訳する人にとって、それをごく簡単にするために私(バリー・カウラー)によって作成されたGUIアプリケーションです。2012年1月14日以後のヴァージョンのWoofによってビルドされたパピーを使う必要があります。しかしながら、もしあなたがMomanagerを使用して特定の言語のための"言語パック"を作成したいなら、最新のWoofによってビルドされた最新のパピーを使用することを推奨します。

MoManagerはスクリプトXMLファイル、メニューファイル、その他データテキストファイル何でも、そしてバイナリ形式の実行ファイルのための翻訳ファイルの作成とアップデートを行います。

MoManagerの使用について、一番いいのは、まずは触って使ってみることです。'ユーティリティ'メニューの中にあります。スタートさせれば、2カラムの縦長のリストがあり、ひとつは既にあなたの言語に訳されたファイル(左側)、もう一つはまだ翻訳されていないファイルです。前者のリストからファイルを選択すれば、あなたは翻訳をアップデートできるでしょうし、後者のケースでは翻訳ファイルを新しく作成することができるでしょう。

翻訳ファイルをどんな風にエディットするか分かっているかもしれませんが、編集可能なフォームの'po'ファイル、またコンパイル形式のフォームの'mo'ファイル、そのトピックを少しでも読むことは理解の助けになります。私のおすすめ:
http://translate.sourceforge.net/wiki/guide/project/howto
http://www.gnu.org/software/gettext/manual/html_node/gettext_9.html#PO-Files

...しかし全部を読めば、かえって混乱してしまうかもしれません! 全ての詳細を理解しなくてもMoManagerは使用できます。MoManagerは(poeditのような)'.po'ファイル専用というわけではなく、ノーマルなテキストエディタを使用して'.po'ファイルを編集します。とても簡単で、あなたが必要とするのは極めて基本的な'.po'ファイルのフォーマットの理解だけです。

poedit

これは'.po'ファイル専用のテキストエディタです。MoManagerはデフォルトのテキストエディタ(通常、大抵のパピーではGeany)を使用しますが、poeditがインストールされていればMoManagerはこれを使用することができます -- poeditを選択するためにはMoManagerのメインウィンドウのチェックボックスを見てください。

poeditをインストールするためには、パピーのパッケージマネージャを見てください。ほとんどのパピーにパッケージがあります。

言語パック

またあなたは、"言語パック(langpack)"生成のためのボタンがMoManagerのウィンドウにあることに気付いたでしょうか。もしあなたがパピー全体を特定の言語向けに翻訳したいのなら、このボタンがよいです。あなたの言語への全ての翻訳をまとめて、これらを一つのペットパッケージにします。これは私に送信することができるし、私はそれを他のものと同様にibiblio.orgに置くこともできます。すでにibiblio.orgに存在する、"langpack_*.pet"と名付けられた"言語パック群"、例えば"langpack_de-20120729.pet"を見てください。

http://distro.ibibilio.org/quirky/pet_packages-noarch/

ノート: この言語パックは累積可能です。例えば、あなたが"langpack_de-20120729.pet"(ドイツ語)をインストールしたとしましょう。あなたはそこから更に翻訳をしたり、既存のものをアップデートして、"Create langpack PET"ボタンをクリックすれば、新しいアップデートされたペットパッケージが生成されます。このメカニズム中に何か取りこぼしがあれば、どうか私に報せてください!