[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:14079] Re: 環境変数 LANGUAGE



こんにちは。久保田です。

At Sun, 15 Apr 2001 01:01:36 +0900,
GOTO Masanori <gotom@debian.or.jp> wrote:

> man-db 関連でしたっけ…。

はい。こっちについては、i18n@org にパッチを流しましたので、
近いうちに取り込まれると思います。


さて、この話題は実装とドキュメントのふたつがありますので、
まずは実装のはなしから入ります。


>> 以下のテストをやってみました。もとのエンコーディングは EUC-JP です。
> LANG やその他の環境関数はどうなっていますか?

示した以外の環境変数 (LC_*, LANG, LANGUAGE, OUTPUT_CHARSET) は、
すべて未設定または空文字列となっています。


> あと LANGUAGE はあくまでも gettext 向けであって LC_MESSAGES とは
> 違うかも?

了解しました。ほかでもいろいろと教えてもらい、それと実験結果とから、
結論としては、

 1. LC_MESSAGES ロケールが "C" である場合には、LANGUAGE 環境変数は
    無視される。
 2. LC_MESSAGES ロケールが "C" 以外に設定されている場合には、
    LANGUAGE 環境変数は LANG, LC_MESSAGES, LC_ALL 環境変数よりも
    優先される。
 3. 実際に出力されるエンコーディングを決定するには、
    LC_CTYPE ロケールが参照される。

という実装になっているようでした。それから、OUTPUT_CHARSET に
関する実装ですが、

> ?? OUTPUT_CHARSET が消せないとはどういうことでしょうか。
> 個人的には OUTPUT_CHARSET はもはや設定する必要のない
> 変数だと思います。

~$ LC_MESSAGES=ja_JP.eucJP OUTPUT_CHARSET=EUC-JP LANGUAGE=zh_TW ls foo
ls: foo: 沒有此一?案或目?
~$ LC_MESSAGES=ja_JP.eucJP LANGUAGE=zh_TW ls foo
ls: foo: ?????????

というように、OUTPUT_CHARSET が設定されているかいないかによって、
動作が異なることを指しています。「消せない」というのは、ユーザーが
設定を「消せない」という意味で使ったのではなく、glibc のソースから
OUTPUT_CHARSET に関する記述が消えていないという意味でした。実際、
ここに書いたテストのような奇妙な設定を常用するユーザーなんて
いないでしょうし、実用上はもはや必要のない変数だというのは
その通りだと思います。(ソースからも完全に消える予定なのでしょうか?)


つぎに、それがドキュメントに記述されているかどうか、ということですが、

> C locale のときのことは書いてませんね。
> 書き忘れなら書き足した patch を送りますので、
> C locale のときのテストがどうか確認していただけますか。

はい。LANGUAGE 環境変数が無視されるのは、LC_MESSAGES ロケールが
"C" のときの動作です。ドキュメントの該当箇所は、GNU libc の
info ページの、"Using gettextized software" のノードです。
よろしくお願いします。

> LANGUAGE を : で区切って拡張するということに関して
> 述べられているドキュメントってご存じでしょうか。
> # or LANGUAGE の正確な定義でも。

コロンで区切る記述については、上記の、GNU libc の info ページに
書かれていますよね。GNU gettext の info ページにも、同じ記述が
あります。しかし、LANGUAGE の定義については、GNU libc の info、
gettext の info、www.gnu.org を探してみましたが、これが定義に
ちがいないという記述を見つけることができませんでした。
もしご存知なら教えていただけますでしょうか?


> 個人的には : で区切って拡張することには興味がありますが、
> LC_CTYPE との関係を考えると安易に好きな言語を並べるのは
> 難しいと思っています。

Latin-1 言語をしゃべる人の大部分はエンコーディングのことで
悩んだ経験がないから、こういう発想が出てくるのでしょう。
(実際、国際化とは gettext とか翻訳とかのことである、という
ふうに考えている人って多いみたいだし)。でも、将来、UTF-8 に
移行することがもしあれば、そのときには実際に使えるものに
なるんでしょうね。

---
久保田智広 Tomohiro KUBOTA <kubota@debian.org>
http://www.debian.or.jp/~kubota/
リニューアル中: "Introduction to I18N"
http://www.debian.org/doc/manuals/intro-i18n/