[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/