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

[debian-devel:13386] Re: xearth の国際化



久保田です。

At Fri, 8 Dec 2000 02:02:15 +0900,
GOTO Masanori <gotom@debian.or.jp> wrote:

> LANG は LC_ALL に *いつも必ず* override されるべきです。
> つまり、明らかに、以上のテスト結果はおかしな動作に見えます。

さらにいろいろとテストしてみました。まず前提として、xearth
では、リソース読み込みに XtDatabase() と XrmGetResource() を
使っています。また、前もって、#include <X11/Xlocale.h> し、
setlocale(LC_ALL,""); を実行しています。

まず、LC_ALL はリソース読み込みに関しては *まったく* 無視される
ようです。たとえば、
LANG=C LC_ALL=ja_JP.eucJP xearth
とやると、デフォルトのリソースが使われます。

つぎに、LC_COLLATE、LC_CTYPE、LC_MESSAGES、LC_MANETARY、LC_NUMERIC、
LC_TIME のすべてが無視されます。ISO C の仕様では、LC_ALL が設定
されていない場合には上記の6つの変数のうちのいずれかをチェックする
べきですが、それに反しています。

最後に、setlocale() 呼び出しを削除した状態、つまり、C ロケールで
動作すべき状況ても、LANG が有効になってしまいます。


> xearth が LANG をみている可能性があるようです。
> また、ukai さんによれば X_LOCALE が定義されているとき、
> そのような動作になる可能性があるそうです。

xearth のソースで grep LANG をやっても、何も出てきません。
また、grep X_LOCALE とやっても、何も出てきません。
debian/ ディレクトリ以下も含めてチェックしましたが。

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