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

[debian-users:42596] [gettext] ja.po の msgid に non-ASCII 文字は使える?



こんばんは、はじめまして。濱崎と申します。

UTF-8 で書かれた日本語メッセージカタログ、ja.po ファイルの中で、
msgid の中に 人名を表記するため(フランス語など)
non-ASCII が入っているソフトがあります。
Debian パッケージにも入っている HTML エディタ、Bluefish です。
http://bluefish.openoffice.nl/

この msgid に対応した msgstr を書いて、
    msgfmt ja.po -o ja.gmo
とし、この ja.gmo を /usr/share/locale/ja/LC_MESSAGES/bluefish.mo
としてインストールしました。

locale(1) の実行結果が

    LANG=ja_JP.eucJP
    LC_CTYPE="ja_JP.eucJP"
    LC_NUMERIC="ja_JP.eucJP"
    LC_TIME="ja_JP.eucJP"
    LC_COLLATE="ja_JP.eucJP"
    LC_MONETARY="ja_JP.eucJP"
    LC_MESSAGES="ja_JP.eucJP"
    LC_PAPER="ja_JP.eucJP"
    LC_NAME="ja_JP.eucJP"
    LC_ADDRESS="ja_JP.eucJP"
    LC_TELEPHONE="ja_JP.eucJP"
    LC_MEASUREMENT="ja_JP.eucJP"
    LC_IDENTIFICATION="ja_JP.eucJP"
    LC_ALL=ja_JP.eucJP

となっている環境で bluefish を起動してみました。

msgid が ASCII のみで書かれている文字列に対応する msgstr は表示されますが、
msgid に non-ASCII が含まれている文字列に対応する msgstr は表示されません。
msgid のままになります。

もっと小さな 
printf("Hello World");
レベルのプログラムでも、結果は同じでした。
これは、仕様なのでしょうか。

2003 年に久保田さんが書かれた Introduction to i18n 
http://www.jp.debian.org/doc/manuals/intro-i18n/ch-library.en.html#s-gettext
には、

  Don't use non-ASCII characters for 'msgid'. 

と書かれています。
これは、今も変わらないのでしょうか?

Bluefish の開発メーリングリストでは、msgid に使える文字は ASCII に
限らない、という回答でした。また、fr_FR ロケールでは、
non-ASCII の msgid に対応する msgstr も表示できているようです。

また、Debian 上の de_DE ロケールでは ja_JP.eucJP と同じく
変換されないという話でした。

なお、bluefish は Debian の公式 パッケージに入っているものではなく、
Bluefish の CVS から持ってきたものを使用しています。
http://bluefish.openoffice.nl/development.html
Bluefish のソースには、元から debian ディレクトリが含まれています。

以上の質問の中で足りない記述などありましたら、ご指摘ください。
よろしくお願いします。
--------------------------------------------------
    濱崎 健 E-mail: hma@xxxxxxxxxxxxx