2005年1月22日

[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@xxxxx

投稿者 xml-rpc : 2005年1月22日 01:14
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/15753
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。