[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:13360] Re: xearth の国際化
くぼたです。
xearth の地名ファイルですが、以下のようになってますね。
/etc/X11/app-defaults/XEarth に、以下の行が記述してある
XEarth.markerfile: /etc/xearth.markers
/etc/X11/ja_JP.eucJP/app-defaults/XEarth に、以下の行が記述してある
XEarth.markerfile: /etc/xearth.markerfile.jp
というわけで、地名はリソースに直接書かれているのではなく、
地名ファイルをリソースで指定するという形になっています。
この設計そのものは悪くないと思うのですが、地名ファイルのファイル名が
よろしくないです。オリジナルと整合性が悪い。これは改善しましょう。
それから、日本語のファイルであって、日本国のファイルではないのだから、
jp じゃなくて、ja にしましょう。まとめると、
xearth.markerfile.jp --> xearth.markers.ja
ですね。ちなみに、LC_MESSAGES カテゴリのロケール名の最初の2文字を
使って地名ファイル名を自動的に作れないこともないですが、そうすると
リソースファイルの書式変更を伴うので、リソースファイルは /etc の
下にあるので設定ファイル扱いなのでその書式変更はユーザーから見える
部分の仕様変更に相当するので、これは、やめとくことにします。
それから、懸案 (?) の gettext 化ですが、markers.c というファイルの
中に、地名データを見付けてしまいました。というわけで、これは
原理的には gettext 化が可能です。ただ、このまま gettext 化すると
緯度も経度もコメントもぜんぶごっちゃになってしまうので、なんらかの
工夫が必要ですね。(gettext 化するのは地名だけにしたい、でしょう?)
これはちょっと大変そうですね。
ところで、アップストリームの xearth には、リソースファイルを読む
機能も地名ファイルを読む機能もあるけど、リソースファイルも地名
ファイルも存在しないみたいですね。
それから、日本語用リソースファイルにおける、
XEarth*international: TRUE
XEarth*fontSet: -*-fixed-medium-r-normal--16-*
は、不要です。そのかわり、
XEarth*font: r24
は、
XEarth*font: -*-fixed-medium-r-normal--16-*
と変更してください。ただし、個人的には、
XEarth*font: -*-fixed-medium-r-normal--14-*
のほうがおすすめだと思います。
# たぶん、international とか fontSet とかは、Xaw で使うのでは、
# と思っているのですが、正しいでしょうか?
--- * --- * ---
ところで、リソースとはなんぞや、ということについて、ちょっと実験
してみました。xearth では、まず、x11.c のなかで
XrmDatabase db = XtDatabase(dsply);
とやって、リソースデーターベースなるものを取得しています。つぎに、
個々のリソースは、resource.c のなかで、
XrmGetDatabase(db, full_name, full_class, &type, &value);
というふうにして取得しています。で、こいつはどのロケールカテゴリーに
従って動作するんだろう、という疑問があります。というわけで、ためしに、
LANG=ja_JP.eucJP LC_ALL=ko_KR.eucKR xearth
というふうにしてみたら、なんと化ける化ける。日本語の地名を
韓国語のフォントを使って表示してしまいます。私が作った日本語
パッチは LC_CTYPE ロケールに従って動作するので、LC_ALL=ko_KR.eucKR
に素直に従うのですが、リソースの読み込みは、そうじゃないみたいです。
LANG 環境変数に従っているだけ、という感じです。
これって、X の設計が悪いんじゃないの、って思うのですけど、じゃあ
どのカテゴリーに従うべきなのか、というと、どれとも答えようが
ないんですよね... まあ、実際に使われている用途の頻度から言えば、
LC_MESSAGES が妥当かな、というところですが、そんなのを X に実装
するなんて、汚すぎていやっぽいですよね。けっきょく、カテゴリー別に
設定できる C のロケールと、なんでも格納できてしまう X のリソースとは、
うまく統合できないのでしょうか。
---
久保田智広 Tomohiro KUBOTA <kubota@debian.org>
http://surfchem0.riken.go.jp/~kubota/
リニューアル中: "Introduction to I18N"
http://www.debian.org/doc/manuals/intro-i18n/