こんにちは、ハイテックの池田です。
早速のアドバイス、ありがとうございます!
> たとえば "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
こっちの方法は、ちょっと理解に理解に時間がかかりそうなので、
とりあえずは、上の方法で対処してみます。
ちょっと技術不足で時間かかるかもしれないですが、
結果がでたらまたご報告させていただきます。
それでは。