Index: [Article Count Order] [Thread]

Date:  25 Jun 2004 13:25:28 -0700
From:  Ikeda Takuya <ikeda (at mark) hightech.co.jp>
Subject:  [coba-o:00680] Re: =?UTF-8?Q?mo=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=8B=E3=82=89po?=	=?UTF-8?Q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AE=E4=BD=9C?=	=?UTF-8?Q?=E6=88=90?=
To:  Blue Quartz Mailing List <coba-o (at mark) open.cobaltqube.org>
Message-Id:  <1088195128.4252.20.camel (at mark) bq-test.localdomain>
In-Reply-To:  <20040624080549.GA22234 (at mark) mail.turbolinux.co.jp>
References:  <1088114451.5472.20.camel (at mark) bq-test.localdomain>	 <20040624080549.GA22234 (at mark) mail.turbolinux.co.jp>
X-Mail-Count: 00680

こんにちは、ハイテックの池田です。
早速のアドバイス、ありがとうございます!

> たとえば "msgunfmt /usr/share/locale/ja/LC_MESSAGES/libc.mo" とかやる
> と、ヘッダ部に "Content-Type: text/plain; charset=EUC-JP\n" などと書い
> てあって、msgunfmt はこれに基づいて文字コード変換を行ないます。でも、
> これがないと、"ASCII" 決めうちになります。で、BlueQuartz の po にはこ
> のヘッダがないので、ASCII(7 ビット?)で iconv 変換しようとして、"不
> 正な複数バイトのシーケンス" になります。
なるほど。
それで、英語関係のメッセージだけは正常に変換出来ていたわけですね。

> gettext*/src/write-po.c:message_list_print() でキャラクタセット名を抽
> 出していますので、このへんをホゲって、コマンドラインオプションや環境変
> 数で上書きできるようにすると便利だろうなと思います。
なるほど!
これなら、私でも何とか出来そうな気がします。
ちょっと見てみます。

> あと、むりやりな方法としては、以下のようなのもアリでしょうか(クォート
> のエスケープとかしてないのでインチキですが)。
> 
> msgunfmt /usr/share/locale/en/LC_MESSAGES/base-am.mo | sed -n -e 's/^msgid *"\(.*\)"$/\1/p' | while read msgid; do echo "msgid \"$msgid\""; echo -n "msgstr \""; LC_MESSAGES=ja_JP.eucJP gettext base-am "$msgid"; echo "\""; echo; done
こっちの方法は、ちょっと理解に理解に時間がかかりそうなので、
とりあえずは、上の方法で対処してみます。

ちょっと技術不足で時間かかるかもしれないですが、
結果がでたらまたご報告させていただきます。


それでは。