第8章 国際化と翻訳

目次

8.1. どの様にして Debian では翻訳が取り扱われているか
8.2. メンテナへの I18N & L10N FAQ
8.2.1. 翻訳された文章を得るには
8.2.2. どの様にして提供された翻訳をレビューするか
8.2.3. どの様にして翻訳してもらった文章を更新するか
8.2.4. どの様にして翻訳関連のバグ報告を取り扱うか
8.3. 翻訳者への I18N & L10N FAQ
8.3.1. どの様にして翻訳作業を支援するか
8.3.2. どの様にして提供した翻訳をパッケージに含めてもらうか
8.4. l10n に関する現状でのベストプラクティス

Debian がサポートしている自然言語の数は未だ増え続けています。あなたが英語圏のネイティブスピーカーで他の言語を話さないとしても、国際化の問題について注意を払うことはメンテナとしてのあなたの責務です (internationalization の 'i' と 'n' の間に 18 文字があるので i18n と略されます)。つまり、あなたが英語のみのプログラムを扱っていて問題がない場合であっても、この章の大部分を読んでおく必要があるということです。

久保田智広さんによる Introduction to i18n によると、I18N (internationalization) はソフトウェアや関連する技術を調整し、ソフトウェアが複数の言語、習慣、その他世界の物事などを扱えるようにしておくことで、対して L10N (localization) は既に国際化されているソフトウェアに対して特定の言語を実装することを意味します。

l10n と i18n は関連していますが、それぞれ関連する難しさについては違います。プログラムをユーザの設定に応じて表示されるテキストの言語を変更するようにするのはあまり難しくはありませんが、実際にメッセージを翻訳するのはとても時間がかかります。一方、文字のエンコード設定は些細な事ですが、複数の文字エンコードを扱えるようなコードにするのはとても難しい問題です。

i18n の問題を横においたとしても、一般的なガイドラインは与えられておらず、移植作業用の buildd のメカニズムと比較できるような、Debian での l10n 用の中心となるインフラは実際のところ存在していません。そのため、多くの作業は手動で行わねばなりません。

8.1. どの様にして Debian では翻訳が取り扱われているか

パッケージに含まれている文章の翻訳の取り扱いは未だ手動であり、作業のやり方は翻訳を表示させたい文の種類に因ります。

プログラムのメッセージについては、ほとんどの場合 gettext という仕組みが使われています。多くの場合、翻訳は Free Translation ProjectGnome 翻訳プロジェクトKDE one などの開発元 (upstream) のプロジェクトで取り扱われています。Debian で唯一の集約化された情報は Debian の翻訳に関する統計で、実際のパッケージ内での翻訳ファイルの状況について確認できますが、翻訳作業を実際に容易にする仕組みではありません。

パッケージ説明文の翻訳作業はかなり昔に始まりました―実際にそれを使うツールがほんの少ししか機能を提供していなかったとしても (つまり、APT だけが設定を正確に行ったときのみ利用できたのです)。メンテナはパッケージの説明文をサポートするのに何も特別なことをする必要はありません。翻訳者は Debian Description Translation Project (DDTP) を使う必要があります。

debconf テンプレートについては、メンテナは翻訳者の作業を容易にするため po-debconf パッケージを使う必要があります。翻訳者は作業に DDTP を使うことが出来ます (フランスチームとブラジルチームは使っていませんが)。DDTP のサイト (実際に何が翻訳されているか) と Debian の翻訳に関する統計 サイト (パッケージに何が含まれているか) の双方で統計情報を得ることが出来ます。

ウェブページについては、それぞれの l10n チームが対応する VCS にアクセスし、Debian の翻訳に関する統計サイトから統計情報が取得できます。

Debian についての一般的なドキュメントは、作業は多少の差はあれウェブページと同じです (翻訳者は VCS にアクセスします)。ですが、統計情報のページはありません。

パッケージ固有のドキュメント (man ページ、info ドキュメントその他) は、ほとんどすべてが手付かずです。

特記しておくこととして、KDE プロジェクトはドキュメントの翻訳をプログラムのメッセージと同じやり方で取り扱っています。

Debian 固有の man ページを 特定の VCS リポジトリ で取り扱おうという動きもあります。

8.2. メンテナへの I18N & L10N FAQ

これはメンテナが i18n や l10n を考えるのにあたって直面するであろう問題の一覧です。読み進める間、Debian でこれらの点について実際のコンセンサスは得られていないことを念頭においてください。これは単にアドバイスです。出てきた問題についてもっと良い考えがある、あるいはいくかの点で賛同できないという場合は、連絡をして頂いて構いません。そのことによって、この文章の質をさらに高めることができます。

8.2.1. 翻訳された文章を得るには

パッケージの説明文や debconf テンプレートを翻訳してもらうには、あなたは何もする必要はありません。DDTP のインフラが作業者に翻訳してもらう素材を割り当てるのに、あなた側から働きかける必要はありません。

他の素材 (gettext ファイル、man ページ、その他のドキュメント) については、最も良い解決策は文章をインターネットのどこかに置いて、debian-i18n で他の言語へ翻訳を頼むことです。翻訳チームのメンバーの何名かはこのメーリングリストに登録しており、翻訳とレビュー作業を担当します。一旦作業が完了すれば、翻訳された文章があなたのメールボックスへと届くでしょう。

8.2.2. どの様にして提供された翻訳をレビューするか

時折、あなたのパッケージ内の文章を訳して翻訳をパッケージに含めるように依頼する人が出てきます。これはあなたがその言語に詳しくない場合、問題となり得ます。その文章を対応する l10n メーリングリストに投稿し、レビューを依頼するのが良い考えです。一旦レビューが終われば、翻訳の質に自信を持つでしょうし、パッケージに含めるのにも安心を覚えるでしょう。

8.2.3. どの様にして翻訳してもらった文章を更新するか

古いままになっていた文章に対して翻訳文がある場合、元の文章を更新する度に、以前翻訳した人に新たに変更した点に合わせて翻訳を更新してもらうように依頼する必要があります。この作業には時間がかかることを覚えておいてください―更新をレビューしてもらったりするには少なくとも1週間はかかります。

翻訳者が応答してこない場合、対応する l10n メーリングリストに助力を願い出ましょう。すべてうまくいかなかった場合は、翻訳した文中に翻訳がとにかく古い事の警告を入れておくの忘れないようにして、できれば読者がオリジナルの文章を参照するようにしましょう。

古くなっているからといって翻訳を全て削除するのは避けてください。非英語圏のユーザにとって何もドキュメントが無いよりは古いドキュメントがある方が有益であることが往々にしてあります。

8.2.4. どの様にして翻訳関連のバグ報告を取り扱うか

最も良い解決策は開発元のバグという印を付けておいて (forward)、以前の翻訳者と関連するチーム (対応する debian-l10n-XXX メーリングリスト) に転送することです。

8.3. 翻訳者への I18N & L10N FAQ

これを読み進める間、Debian においてこれらの点に関する一般的な手続きは存在していないこと、そしていかなる場合でもチームやパッケージメンテナと協調して作業する必要があることを念頭においてください。

8.3.1. どの様にして翻訳作業を支援するか

翻訳したい文章を選び、誰もまだ作業をしていないことを確認し (debian-l10n-XXX メーリングリストを参照。日本語の場合は debian-doc@debian.or.jp を参照してください)、翻訳し、l10n メーリングリストで他のネイティブスピーカーにレビューをしてもらい、パッケージメンテナに提供します (次の段を参照)。

8.3.2. どの様にして提供した翻訳をパッケージに含めてもらうか

含めてもらう翻訳が正しいかどうかを提供する前に確認してください (l10n メーリングリストでレビューを依頼しましょう)。皆の時間を節約し、バグレポートに複数バージョンの同じ文章があるというカオス状態を避けることになります。

最も良いやり方は、パッケージに対して翻訳を含めて通常のバグとして登録することです。忘れずに「patch」タグを使い、翻訳が欠けていたとしてもプログラムの動作に支障は無いので「wishlist」以上の重要度を使わないようにしましょう。

8.4. l10n に関する現状でのベストプラクティス

  • メンテナとしては、翻訳については関連の l10n メーリングリストに尋ねること無くどの様な方法であれいじらないこと (レイアウトを変えることでさえしないこと) です。もしいじってしまうと、例えばファイルのエンコーディングを破壊する危険があります。さらに、あなたが間違いだと思っていることがその言語では正解である (または必要ですらある) ことがあり得ます。

  • 翻訳者としては、元の文章に間違いを見つけた場合は必ず報告することです。翻訳者はしばしばその文章の最も注意深い読者であり、翻訳者が見つけた間違いを報告しないのならば誰も報告しないでしょう。

  • いずれの場合でも、l10n に関する最も大きな問題は複数人の協調であり、誤解から小さな問題でフレームウォーを起こすのはとても簡単だということです。ですから、もし、あなたの話し相手と問題が起こっている場合は、関連する l10n メーリングリストや debian-i18n メーリングリスト、さらにあるいは debian-devel メーリングリストに助けを求めてください (ですが、ご注意を。l10n 関連の議論は debian-devel では頻繁にフレームウォーになります :)

  • 何にせよ、協調は互いを尊敬しあうことによってのみ成し得ます。