[jnh-dev 82] Re: gnome 版のユーザー名横の文字化けについて

アーカイブの一覧に戻る

ams ams****@smile*****
2004年 4月 3日 (土) 01:20:51 JST


はじめまして 白方さん

お返事遅れて申し訳ありません。色々、ごそごそやっていたのですが、、、

argra****@ub32***** wrote:

>  私自身 JNH が GNOME で動くことすら知らなかったぐらいなので、ある意味
>  当然かもです(^^;)

^^;; そうだったのですか。X 版と違って、gnome(gtk+)版は、GUI なところを
除けば、自前で 32 x 32 のタイルも用意しなければならないし、そもそも
Nethacker には邪道かもしれませんね。

32 x 32 は、今の 3.4.3 には同梱されなくなりましたから、Windows 用のも
のを貰って来ています。


>  位置的に称号が表示される部分っぽいので、それを頼りにソースを見て
>  みたところ、win/gnome/gnstatus.c:440 あたりからの部分のようです。
>  (ここまでは既知かも?(^^;))
>  具体的には、458 行目で使われている rank_of() 関数が JNH では
>  日本語を返すので、それが化けているようです。

この、rank_of() 関数について、内部のデータを調べましたら、職業は ascii
の ISO-8859-1 みたいです。つまり、そのまんまオリジナルと同じです。
printf() デバッグ(古いなぁ)で調べてみました。

で、strcat() で文字列を連結しても buf の中身は、英文の職業だけです。つ
いでに、男女のフラグは、タイトルに反映されていません。

しかし、Terminal 版では、きちんと表示されますね。

gdk_font_load() は、ローカライズの際は、gdl_fontsetl_load() とするのが
常道なので、そうしてみましたが、タイトルの表示が、かなり複雑な入れ子構
造になっており、まだ、本来のものになりません。

printf("s" , &buf); だと

Archeologist Root the 鉱員 といった化け方です。むしろ、男女のフラグか
ら、文字列を生成する時に、おかしくなっているみたいです。

その他、

ようこそroot,NetHackの世界へ!このゲームではあなたは人間の考古学者(秩
序の男性)だ.

と、テキストウィンドウには、きちんと出てますが、編集メニューの
Inventory でも、きちんとした日本語の文字列は出ていますが、その内容は化
けています。

これは、少々困ったなと思いつつ、gnmain.c とか見ると、i18N 対応しようと
して、 #if 0 で書きかけのまま放置されています。おぉぉいですが、ソース
の随所に同様な箇所がありますから、現在調整中なのかもしれませんね。

> 
>  ということで、解決法としてはこのラベルを日本語表示が出来るように
>  変更する(フォントの変更?)といけそうな感じです。
>  前述の通り GNOME はさっぱりですので具体的にはわかりません(^^;)
>  うまくいったらぜひ方法を教えてください(^^;)

何とかしたいのですが、gtk+/gdk のソースコードの変更と、gnome 関係の
コードを、I18N 完全対応にしなければ、折角の JNethack が無惨なことにな
りますね。

しかも、I18N 対応している部分も結構あります。gnome のマクロ機能を使用
して、gnmain.c  210 などGNOME_APP_UI_ITEM, N_("Inventory")
と、N_("Inventory")として、I18N 対応になっています。

これだけ、進めているのだから、gnome 版の作者は、将来 I18N 対応を完全に
する気なのか、それとも、単なるバグの連発なのか判断がつきません。

少し、様子を見てみようかなとも思います。作者は、そのつもりなのかもしれ
ませんし。完全に gnome 版を日本語対応するとなると、元々の日本語パッチ
との連携が不可欠ですが、このあたり、win/gnome の大改造が必要でしょうね。

>  Qt 版に関しては sl-zaurus 版 (http://randy3.hp.infoseek.co.jp/zaurus/)が
>  結構対応しているみたいです。こちらも私はよくわからないのですが(^^;)

元々、Qt の方がやりやすいかも。最近、Qt ばかり触っていて、gtk+ , gnome
は、数年ぶりなんですが、gnome より、gtk2+   にして欲しいものです。
Mozilla じゃないですけど、すっきりした構造が、I18N に持たせられない
と、辛いかなと。

Qt 3.x.x は、ローカライズが進んでいて、C++ ですから、クラスのメンバー
のオーバーライドで、意外と楽ですから。ともあれ、gnome 版は、構造を一新
しないと、あちこちちぐはぐですねぇ。。。

以前の gtk+ 版を参考に、gtk2+ 版を探った方が良いかもと思いました。とま
れ、いずれにしても、日本語パッチの問題では無く、純粋にフロントエンドの
不備だと言うことだけは、はっきりしました。

それにしても、、、 gnome lib も、変更が激しいから、gtk2+ にしない理由
が、良く分からないです。

-- 
mailto: ams <ams****@smile*****>




Jnethack-devel メーリングリストの案内
アーカイブの一覧に戻る