Index: [Article Count Order] [Thread]

Date:  Sun, 05 Sep 2004 14:03:40 +0900
From:  Ikeda Takuya <ikeda (at mark) hightech.co.jp>
Subject:  [coba-o:00927] Re: msgunfmtコマンドが使えない?
To:  coba-o (at mark) bluequartz.org
Message-Id:  <20040905045908.B795D1E84E9 (at mark) mail.hightech.co.jp>
In-Reply-To:  (Your message of "Sun, 5 Sep 2004 13:27:18 +0900")  <20040905132718.1b165c94.tmatsuo (at mark) 10art-ni.co.jp>
References:  <BAY8-F107l4maEqxGGm00019879 (at mark) hotmail.com> <20040905132718.1b165c94.tmatsuo (at mark) 10art-ni.co.jp>
X-Mail-Count: 00927

ハイテックの池田です。

> command not found は gettext を入れれば解決できると思いますが
> BlueQuartz では、 msgunfmt はうまくいかないので、元の po を見
> るべしということになった(渋谷さんが言ってた)と思います。
BlueQuartzのメッセージファイルは、なぜかメッセージファイルのエンコー
ドに利用されている文字コードがファイルの先頭に埋め込まれていないので、
きちんと解読できないようです。以前、私も同じようなところで躓きました。
msgunfmtのソースにちょっと手を加えて現在のBlueQuartzでもmsgunfmtが使
えるように出来ます。
write-po.cというファイルの中の、msgdomain_list_print_poという関数に下
記のような変更を加えることで、環境変数「MSG_ENC_TYPE」にある文字コー
ドで、強制的にデコードするように変更できます。お試しください。
#「charset = "ASCII";」という部分の下に、ADDとかかれたところを加えてみ
#てください。

static void
msgdomain_list_print_po (msgdomain_list_ty *mdlp, FILE *fp, bool debug)
{
〜中略〜
      /* Extract the charset name.  */
      charset = "ASCII";

      /* ADD ***************************/
      if( getenv("MSG_ENC_TYPE") )
        {
          charset = getenv("MSG_ENC_TYPE");
        }
      /*********************************/
〜中略〜
}

詳しくはこのメーリングリストの[coba-o:00673]から、[coba-o:00689]くら
いのメールをお読みください。



-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
株式会社 ハイテックシステム
    池田 拓也<ikeda (at mark) hightech.co.jp>

会津事業所      :〒965-0006 福島県会津若松市一箕町鶴賀上居合133-2
(会津ラボ/Unity)  TEL(0242)37-7855  FAX(0242)37-7856

本   社         :〒990-2332 山形県山形市飯田3-1-10
                  TEL(023)628-9455  FAX(023)628-9456

東京事務所      :〒100-0013 東京都千代田区霞ヶ関3-8-1
                  TEL(03)3504-8745  FAX(03)3504-8746

 URL → http://www.hightech.co.jp/