namazu-dev(ring)


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

Re: ja_JP.sjis or ja_JP.SJIS? (Re: commitreport)



Abe Ryuji <raeva@xxxxxxxxxxxx> wrote:

>> は EUC-JP で出力される、というおかしな挙動を示します。
>> gettext 0.10.35 付属の libintl を使っています。
>
>うちではja_JP.sjis、ja_JP.SJISともに同じ結果だったのですが、挙動が
>ちょっと変でした。環境はVine Linux 1.1で、glibcのバージョンが2.0.7、
>wcsmbs-localeは0.4.11だったかな?どうも
>
>$ LANG=ja_JP.sjis namazu --help
>とか
>$ LC_ALL=ja_JP.sjis namazu --help
>でロケールが切り換えられないらしく、
>$ LANGUAGE=ja_JP.sjis namazu --help
>で試したのですが、文字化けしてしまいました。

うーん、安部さんの環境では ja_JP.sjis のロカールを設定すると
うまく動かないのか…。ja_JP.ujis は大丈夫ですよね? それから、
ja_JP.iso-2022-jp はどうですか?

手元の環境では

  % LANG=ja namazu --help
  % LANG=ja_JP.ujis namazu --help
  % LANG=ja_JP.sjis namazu --help
  % LANG=ja_JP.iso-2022-jp namazu --help

ともに、すべてきちんと動作します。検索を行っても大丈夫です。

# ほかの方の環境ではどうなのか気になります。報告してもらえる
# と助かります。

が、LANG=ja_JP.SJIS のときは挙動が変です。どうも ja_JP.sjis 
のカタログが中途半端に使われているようです。

ja_JP.SJIS のカタログを用意すれば解決するので、ja_JP.sjis,
ja_JP.SJIS の両方を用意すればいいかな、と思いました。

システム側で 

  % ln -s $(LOCALEDIR)/ja_JP.sjis $(LOCALEDIR)/ja_JP.SJIS

のように ja_JP.sjis と ja_JP.SJIS が symlink になっていれば
いいんですけどね。


>> # Windows だったら sjis/SJIS の違いは吸収されるかな?
>
>いや、autoexec.batに
>set LANG=ja_JP.sjis(あるいはja_JP.SJIS)
>という一行を加える必要があるでしょうが。

namazu.conf の LANG に ja_JP.sjis を設定してもいいです。
namazuコマンド内部で setenv してしまうので (i18n.c)。
autoexec.bat を書き換えるよりずっと手軽でしょう。

ところで、

>> # Windows だったら sjis/SJIS の違いは吸収されるかな?

と言ったのは、ファイル名の大文字・小文字の区別があやふや (よ
くわからん) なのでどっちでも同じかな、というつもりでした。:)

ファイル名の大文字・小文字の区別があやふやということは、 
ja_JP.sjis.po と ja_JP.SJIS の両方を含めると Win32 では困っ
てしまいそうです。


>> >あと、ja_JP.EUC.poは要らないのでは?
>> 
>> たしか ja_JP.EUC が標準の UNIXがあった気がします。どなたか知
>> りませんか?
>
>FreeBSDなどはja_JP.EUCですよね?あれは、
>$(LOCALEDIR)/ja_JP.EUC/LC_MESSAGES/foo.moがない場合には、
>$(LOCALEDIR)/ja/LC_MESSAGES/foo.moを見に行くと思いますが。
>そうでないOSがあるのかな?

OS ではありませんが、 gettext-0.10 の libintl が該当します。
$(LOCALEDIR)/ja_JP.EUC/LC_MESSAGES/foo.moがない場合に、
$(LOCALEDIR)/ja/LC_MESSAGES/foo.moを見に行ってくれません。

/usr/local/lib なりに gettext-0.10 の libintl.a が存在して、
configure がそれを見つけてしまった場合に問題となります。
(gettext-0.10 の libintl.a がリンクされてしまう)

というわけで、

>逆にja_JP.EUC.poがあって、ja.poがないとja_JP.ujisなLinuxには都合
>が悪いと思います。

そういった面倒を避けるために、 ja.po, ja_JP.EUC, ja_JP.ujis
(すべて同じ内容) を用意しています。だめかしら?

-- Satoru Takabayashi