ABOUT-NLS (NLS について) 著者: (不明) 1998年8月 翻訳: 川岸 良治 < kawagisi@yk.rim.or.jp > 日本語訳: 1999年12月4日作成 この文書は、GNU gettext を使って I18N (国際化)対応されたソフトウェア パッケージに添付されている ABOUT-NLS というドキュメントファイルの内容 を翻訳したものです。オリジナルの文書は、GNU のアーカイブサイトにありま す。 NLS は National Language Support の略です。 1. Free Translation Project について フリーソフトウェアは、国際的になっています! Free Transla- tion Project は、フリーソフトウェアの保守をする人、翻訳者、 ユーザの全てが共に多くの言語を話すことができるようにするため の手段です。いくつかのパッケージでは既にそれらのメッセージの 翻訳が提供されています。 この `ABOUT-NLS' ファイルがディストリビューションの中に含ま れている場合、その配布されたパッケージは内部で GNU `gettext' を使用しているとみなすことができ、それ自体は最寄の GNU アー カイブサイトで入手できます。しかしその翻訳されたメッセージ付 きのパッケージを設定、インストール、使用する前に GNU `gettext' をインストールする必要は *ありません* 。 インストールをする人は、ここで有用なヒントを見つけるでしょ う。それらは、ユーザが利用可能な、翻訳を使うプログラムを得る にはどうすべきかも説明しています。それらは、翻訳の作業と貢献 をしたいと思っている人々が適切なチームにどのようにコンタクト すべきかを、説明しています。 `intl/' ディレクトリ内のバグ、または国際化に関連したバグの報 告をする際は、使用した`gettext' のバージョンを教えて下さい。 その情報は、国際化されたパッケージ内の `intl/VERSION' ファイ ルの中にあります。 2. 事前に一つのアドバイス 国際化の全てのパワーを利用したいのであれば、以下のように ./configure --with-included-gettext して、このパッケージ内の国際化ルーチンを強制的に使用するよう に設定します。このパッケージがインストールされるオペレーティ ングシステムに国際化機能が存在するにもかかわらず、です。今の ところ、GNU C ライブラリ version 2 に実装された `gettext' だ けが、ここでの実装のように多くの機能(ロケールエイリアス、ま たはメッセージの継承のような)を提供します。また `catgets' の 実装の上に、この機能を追加することはできません。 【訳注:catgets は、X/Openコンソーシアムで提唱されているメッ セージカタログのシステム、インタフェース、関数です。】 GNU `gettext' の将来のバージョンでは、さらに多くの機能を持っ てきそうです。従ってできるだけ早く GNU `gettext' に変えると いうのは良い考えです。 ですから、あなたが GNU libc 2 を使っているか、または `libintl' 付きの GNU gettext パッケージの最近のコピーをイン ストールしているなら、このオプションを加える必要はありませ ん。 3. インストール方法 いくつかのパッケージは適切にインストールすれば「ローカライズ 可能」です。それらを含むプログラムは、あなたのネイティブな言 語を話せるようにすることができます。それらの多くのパッケージ は GNU `gettext' を使っています。他のパッケージは、GNU `get- text' より以前の国際化するための独自の方法を持っています。 デフォルトでは、このパッケージはメッセージの翻訳をできるよう にするためにインストールされます。システムが `catgets' (これ を使用することをインストーラが選択した場合)または `gettext'関数のいずれを利用可能かが、自動的に検出されます。 いずれもだめなら、GNU `gettext' 自身のライブラリが使われま す。このライブラリはこのパッケージ内に全て含まれ、通常 `intl/' サブディレクトリにありますから、事前に GNU `gettext' パッケージをインストールする必要は *ありません*。インストー ラは、設定時に特別なオプションを使用して、デフォルトの動作を 変更することができます。以下のコマンドは、 ./configure --with-included-gettext ./configure --with-catgets ./configure --disable-nls それぞれ ○ 既存の `catgets' または `gettext' をバイパスし、このパッケージの 国際化ルーチンを使用する ○ `catgets' 関数(ローカルシステムで見つかった場合)を使用する ○ *全く* メッセージを翻訳しない です。 既にシステム上に GNU `gettext' がインストールされていて、且 つ新しいパッケージの設定をオプション無しで実行する と、`configure' はたぶんそれ以前にビルドしてインストールして ある `libintl.a' ファイルを検出し、これを使うことを決めるで しょう。これは何が望ましいかということではありません。 GNU `gettext' ライブラリの、より新しいバージョンを使うべきです。 つまりこのパッケージのライブラリの方が新しいことを `intl/VERSION' ファイルが示しているなら、 ./configure --with-included-gettext を使って、自動検出をやめるべきです。 デフォルトでは、設定のプロセスで `catgets' 関数のテストはさ れず、従ってそれらは使用されません。理由は既に述べまし た:`catgets' の上でのエミュレーションでは GNU `gettext' ラ イブラリによって提供される全ての拡張を提供することはできない からです。それにもかかわらず `catgets' 関数を使いたい場合 は、 ./configure --with-catgets を使って、`catgets' のテストを行うようにします(これはあなた のシステムで `catgets' が利用できない場合でも危害はありませ ん)。このオプションを本当に選択するなら、私達はその理由を聞 きたいと思います。というのは、私達自身がそれを良いとは思えな いからです。 国際化パッケージには、通常多くの `po/LL.po' ファイルがありま す。 LL は言語を識別する ISO 639 の 2 文字のコードです。 `configure' 時に `--disable-nls' スイッチを使って翻訳が禁止 されていない限り、全ての利用可能な翻訳がパッケージと共にイン ストールされます。しかし、設定に先だって環境変数 `LINGUAS' をセットすることにより、インストールされるセットを制限できま す。`LINGUAS' は空白で分離された 2 文字のコードを含むリスト で、どの言語を許可するかを表しています。 【訳注】言語名を表すコード(ISO 639)は、下記にあります。 http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt 国または地域を表すコード(ISO 3166)は、下記にあります。 http://userpage.chemie.fu- berlin.de/diverse/doc/ISO_3166.html 【訳注終り】 4. このパッケージを使う ユーザとして、このパッケージ用にあなたの言語がインストールさ れているならパッケージ内のプログラムを使う前に適切な ISO 639 `LL' の 2 文字のコードを `LANG' 環境変数にセットするだけで す。例えば、あなたがドイツ語を話すと仮定しましょう。シェルの プロンプトで単に `setenv LANG de' (`csh' の場合) `export LANG; LANG=de' (`sh' の場合) `export LANG=de' (`bash'の場合) を実行します。これを、`.login' または `.profile' ファイルに 一回書いておけば、あとはシェルのプロンプトで毎回入力しなくて すみます。 オペレーティングシステムは、そのプログラムの多くが既にメッセ ージの地域化 (ローカライゼーション)をしているのに対して、他 のプログラムは GNU `gettext' の全能力でローカルにインストー ルされています。 `LANG' のために `gettext' の 拡張されたシン タックスを使うことは、既に利用可能なオペレーティングシステム のプログラムの適切なローカライゼーションを壊すでしょう。この 場合ユーザは、その環境において `LANGUAGE' と `LANG' 変数の両 方をセットするべきです。GNU `gettext' を使うプログラムは `LANGUAGE' を優先するからです。例えばスウェーデンのユーザ は、スウェーデン語が利用出来ない場合、英語よりもむしろドイツ 語の翻訳で読むでしょう。これは `LANG' は `sv' のままにしてお いて `LANGUAGE' を `sv:de' にセットすることで容易に達成でき ます。 5. 翻訳チーム Free Translation Project が成功するために、私達は自身の言語 を好み、それをうまく書くことに興味を持ち、且つ同じ言語を話す 他の翻訳者と共同できる人々が必要です。各翻訳チームは、Linux International の厚意で自身のメーリングリストを持っています。 あなたはあなたの翻訳チーム `LL@li.org' に行けるでしょう。 LL は、あなたの言語を表す ISO 639 の 2 文字のコードに置き換えて ください。言語コードは、ISO 3166 の国コードと同じでは *あり ません* 。 1998年8月時点で以下の翻訳チームが存在します。 Chinese `zh' (中国語) Czech `cs' (チェコ語) Danish `da' (デンマーク語) Dutch `nl' (オランダ語) English `en' (英語) Esperanto `eo' (エスペラント語) Finnish `fi' (フィンランド語) French `fr' (フランス語) German `de' (ドイツ語) Hungarian `hu' (ハンガリー語) Irish `ga' (アイルランド語) Italian `it' (イタリア語) Indonesian `id' (インドネシア語) Japanese `ja' (日本語) Korean `ko' (韓国語) Latin `la' (ラテン語) Norwegian `no' (ノルウェー語) Persian `fa' (ペルシア語) Polish `pl' (ポーランド語) Portuguese `pt' (ポルトガル語) Russian `ru' (ロシア語) Slovenian `sl' (スロベニア語) Spanish `es' (スペイン語) Swedish `sv' (スウェーデン語) Turkish `tr' (トルコ語) 例えば中国語の翻訳チームに送信するには `zh@li.org' に出しま す。 あなたがメッセージ翻訳のボランティアをしたいなら、あなたの言 語の翻訳チームのメンバーになるべきです。購読のアドレスはメー リングリスト自体のアドレスと同じでは *ありません* `-request' を追加してください。例えばスウェーデン語を話す人 は `sv-request@li.org' 宛に以下のメッセージ本体を書きます。 subscribe チームメンバは、ただ単に浮かれ騒ぐだけでなく、*活発に* 翻訳 に参加し、あるいは翻訳をする上での障害を解決することを期待さ れている、ということを覚えておいてください。あなたのチームが まだ存在しなくて、あなたがそれを始めたい、または何をするの か、どのようにして始めるのか、に関して自信がないという場合、 `translation@iro.umontreal.ca' に連絡すると、翻訳チーム全体 のコーディネータに届きます。 英語のチームは特別です。使用する専門用語の改良と統一の作業を します。ここではプログラミングの技術よりも、証明された言語技 術がほめられます。 【訳注】 フリー・トランスレーション・プロジェクト日本語チームの ML は ja@li.org で、購読申込のアドレスは ja-request@li.orgです。日 本語チームの概要に関しては、下記のページと FAQ をご覧くださ い。 http://www.ring.gr.jp/pub/doc/gnu-info-j/po/welcome.html.ja http://www.ring.gr.jp/pub/doc/gnu-info-j/po/faql.txt ftp://ftp.ring.gr.jp/pub/doc/gnu-info-j/po/welcome.html.ja ftp://ftp.ring.gr.jp/pub/doc/gnu-info-j/po/faql.txt なお、ring.gr.jp は DNS をひくたびに IP アドレスが変わるの と、各 Ring のミラーサイトで更新頻度が違う(下手すると数ヶ月 前だったりします)せいで、最新のファイルをアクセスしようとす ると見えないこともありえます。そのときは例えば ring.FOO.BAR.jp のように、(新しいとわかっている)ミラーをあか らさまに指定してアクセスしてください。ミラーの一覧 (つまり FOO.BAR の具体的な文字)は Ring の一番根本のページ http://www.ring.gr.jp/index.html.ja をご覧ください。 【訳注終り】 6. 利用可能なパッケージ 全てのパッケージで言語が同じようにサポートされているわけでは ありません。以下のマトリクスは、1998年8月時点の国際化の現状 を示しています。マトリクスは、各パッケージに関してその言語の PO ファイルが翻訳の調整に提出されていることを表しています。 Ready PO files cs da de el en es fi fr it .----------------------------. bash | [] [] | bison | [] [] | clisp | [] [] [] [] | cpio | [] [] [] | diffutils | [] [] [] | enscript | [] [] [] [] | fileutils | [] [] [] [] | findutils | [] [] [] [] | flex | [] [] | gcal | [] [] | gettext | [] [] [] [] [] | grep | [] [] [] [] | hello | [] [] [] [] [] | id-utils | [] [] | indent | [] [] | libc | [] [] [] | m4 | [] [] | make | [] [] [] | music | [] | ptx | [] [] [] | recode | [] [] [] [] | sed | | sh-utils | [] [] [] | sharutils | [] [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] | textutils | [] [] [] [] | wdiff | [] [] [] [] | wget | [] [] [] [] | `----------------------------' cs da de el en es fi fr it 7 4 26 4 1 18 1 26 4 ja ko nl no pl pt ru sl sv .----------------------------. bash | [] | 3 bison | [] | 3 clisp | | 4 cpio | [] [] [] | 6 diffutils | [] [] | 5 enscript | [] [] | 6 fileutils | [] [] [] [] [] [] [] | 11 findutils | [] [] [] [] [] | 9 flex | [] [] | 4 gcal | [] [] [] | 5 gettext | [] [] [] [] [] [] [] | 13 grep | [] [] [] [] [] [] [] | 11 hello | [] [] [] [] [] [] [] | 12 id-utils | [] | 3 indent | [] [] [] | 5 libc | [] [] [] [] [] | 8 m4 | [] [] [] [] | 6 make | [] [] [] | 6 music | [] | 2 ptx | [] [] [] [] [] | 8 recode | [] [] [] [] [] | 9 sed | | 0 sh-utils | [] [] [] [] [] | 8 sharutils | [] [] | 7 tar | [] [] [] [] [] [] [] | 11 texinfo | [] | 4 textutils | [] [] [] [] [] | 9 wdiff | [] [] [] [] | 8 wget | [] | 5 `----------------------------' 18 teams ja ko nl no pl pt ru sl sv 29 domains 1 12 21 11 19 7 5 7 17 191 マトリクスの前にあるカウンタが考えていたブロックの数より多い ものがあります。これは、少し特別な PO ファイルが言語の地域的 差異または方言を実装するために使われているからです。 上記マトリクスの PO ファイルを効果的にするために、適用する パッケージも国際化され、そのメンテナーによって配布されていま す。 PO ファイルが単に存在するということと、それが配布物の中 で幅広く利用可能であることには、遅れがあるかもしれません 1998年8月が古いと感じる場合、より新しいこの `ABOUT-NLS' ファ イルのコピーがほとんどの GNU アーカイブサイトから入手できま す。 【訳注】ABOUT-NLS は日本では、下記にあります。 ftp://tron.um.u-tokyo.ac.jp/pub/GNU/prep/ ftp://mirror.nucba.ac.jp/mirror/GNU/ ftp://ftp.cs.titech.ac.jp/pub/gnu/ ftp://core.ring.gr.jp/pub/GNU/ ftp://ftp.ring.gr.jp/pub/GNU/ 上記マトリクスでは、日本語に翻訳されたものは 1つだけとなって いますが 1999年11月現在、下記のPOファイルが http://www.ring.gr.jp/pub/doc/gnu-info-j/po/ ftp://ftp.ring.gr.jp/pub/doc/gnu-info-j/po/ にあります。 bison-1.28, fileutils-4.0, freetype, gcc-2.95, gettext-0.10.35, gnupg-1.0.0, grep-2.2f, grep-2.3, grep-2.3f, hello-1.3.18, hello-1.3.23, hello-1.3.24, libc-2.1.1, oleo-1.99.5, parted-1.0.0, sed-3.02a, sh- utils-1.14b, sh-utils-2.0, tar-1.12, tar-1.13, tar-1.13.12, tar-1.13.13, texinfo-3.12, textutils-1.22, textutils-2.0, wget-1.5.2 【訳注終り】 7. 新しいパッケージで `gettext' を使う あなたが自由に利用できるプログラムを書いていて、それを国際化 したいと思っているなら、あなたのパッケージで GNU `gettext' を使うことを歓迎します。もちろん、その配布物に `gettext' の ディレクトリを含めるなら、その時からあなたのソースには GNU Public License が適用されます。しかし、いずれにせよあなたは フリーソフトウェアを書いているので、これは制限にはなりませ ん。 いったんソースが適切に変更され、且つセットアップが `gettext' を扱えるなら欠けているのは翻訳だけです。Free Translation Project は、GNU プロジェクトの内部で開発されていないパッケー ジにも利用できます。従って上で述べた情報は、他の全ての Free Software Project にも適用されます。翻訳チームが利用可能な `.pot' ファイルを作るには `translation@iro.umontreal.ca' に 連絡してください。 8. 日本語版の翻訳について 原文: バージョン(第何版)、発行日付、著者が一切書いてありません。本 文の記述から 1998年8月頃に書かれたと推定されるものを翻訳しま した。著者は GNU gettext のメンテナではないかと思われます。 原文(英語)は時々更新されているようです。 参考文献: gettext のマニュアル(日本語版) http://ring.gr.jp/pub/doc/gnu-info-j/gettext/gettext-ja.html 謝辞: 翻訳に際し、以下の方々に御協力頂きました。感謝します。 武井 伸光さん < takei@cc.kochi-u.ac.jp > (Linux JF Project) 飯田 義朗(よしあき)さん < iida@secom.ne.jp > (Free Transla- tion Project 日本語チーム) 履歴: 1999年11月28日 初版作成。原文は推定で 1998年8月頃に書かれた もの。 1999年12月 4日 ミラーサイトの URL について追加/変更、その他 修正。 版権、コピー、改変、配布等: 本文書(日本語版)の内容をそのまま複製し、配布することを許可し ます。また、一部の内容を変更した修正版を配布することも許可し ますが、その旨を下記の連絡先に報告してください。 連絡先: 日本語版の誤訳等の指摘、質問、改良に関する提案、ご意見等は R.川岸 < kawagisi@yk.rim.or.jp > または JF プロジェクト < JF@linux.or.jp> 宛にお願いします。