8. 国際化と翻訳

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

According to Introduction to i18n from Tomohiro KUBOTA, I18N (internationalization) means modification of software or related technologies so that software can potentially handle multiple languages, customs, and other differences, while L10N (localization) means implementation of a specific language for already-internationalized software.

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

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

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

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

For program messages, the gettext infrastructure is used most of the time. Most of the time, the translation is handled upstream within projects like the Free Translation Project, the GNOME Translation Project or the KDE Localization project. The only centralized resources within Debian are the Central Debian translation statistics, where you can find some statistics about the translation files found in the actual packages, but no real infrastructure to ease the translation process.

Package descriptions have translations since many years and Maintainers don't need to do anything special to support translated package descriptions; translators should use the Debian Description Translation Project (DDTP).

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

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

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

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

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

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

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

To translate package descriptions or debconf templates, you have nothing to do; the DDTP infrastructure will dispatch the material to translate to volunteers with no need for interaction on your part.

他の素材 (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 メーリングリストでレビューを依頼しましょう)。皆の時間を節約し、バグレポートに複数バージョンの同じ文章があるというカオス状態を避けることになります。

The best solution is to file a regular bug containing the translation against the package. Make sure to use both the patch and l10n tags, and to not use a severity higher than 'wishlist', since the lack of translation never prevented a program from running.

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

  • メンテナとしては、翻訳については関連の l10n メーリングリストに尋ねること無くどの様な方法であれいじらないこと (レイアウトを変えることでさえしないこと) です。もしいじってしまうと、例えばファイルのエンコーディングを破壊する危険があります。さらに、あなたが間違いだと思っていることがその言語では正解である (または必要ですらある) ことがあり得ます。
  • 翻訳者としては、元の文章に間違いを見つけた場合は必ず報告することです。翻訳者はしばしばその文章の最も注意深い読者であり、翻訳者が見つけた間違いを報告しないのならば誰も報告しないでしょう。
  • いずれの場合でも、l10n に関する最も大きな問題は複数人の協調であり、誤解から小さな問題でフレームウォーを起こすのはとても簡単だということです。ですから、もし、あなたの話し相手と問題が起こっている場合は、関連する l10n メーリングリストや debian-i18n メーリングリスト、さらにあるいは debian-devel メーリングリストに助けを求めてください (ですが、ご注意を。l10n 関連の議論は debian-devel では頻繁にフレームウォーになります :)
  • 何にせよ、協調は互いを尊敬しあうことによってのみ成し得ます。