2010年10月22日金曜日

Windows用のmsgfmtを入手する方法(gettext) - AWK

AWKの国際化対応
AWKプログラムを国際化対応する時は、msgfmt というプログラムを入手する必要があります。

Windows用の msgfmt を入手する方法は2通りあります。
o Windows版の gettextパッケージを使う方法
o 他の言語で書かれている msgfmt を利用する方法
   + 誰かが移植している事があります。
このページでは、Windows版の gettextパッケージを使う方法について記します。

# AWKプログラムの国際化対応は、Gawkの専用機能です。
# システムの言語設定に応じて、AWKプログラム中で使用されている文字列を切り替える機能です。
#


**** 手順
** 手順の概要
o 次のパッケージをダウンロードして、必要なファイルを揃えます。
   + GetText for Windows
   + LibIconv for Windows
   + MSVCRT.DLL (= 動かしてエラーになる時 = Visual C++のランライムライブラリです。)

** gettextの入手
o ▽GetText for Windows のホームページを開きます。
o Download欄がありますので、その中で、次の2つのどちらかをダウンロードします。
   + Complete package, except sources の「Setup」リンク(= インストール形式)
   + Binaries の「Zip」リンク
o 念の為、ウィルスチェックします。

** libiconvの入手
o ▽LibIconv for Windows のホームページを開きます。
o Download欄がありますので、その中で、次の2つのどちらかをダウンロードします。
   + Complete package, except sources の「Setup」リンク(= インストール形式)
   + Binaries の「Zip」リンク
o 念の為、ウィルスチェックします。

** MSVCRT.DLLの入手
o Vecterなどのダウンロードサイトで配布していました。
o 必要な方は Web検索
o でも、Windows Updateすると、普通に入っているような気もします。

** ファイルの展開、もしくはインストール
o 「Setup」リンクで入手した時は、インストールします。
o 「Zip」リンクで入手した時は、展開(= 解凍)します。

** 展開したプログラムの統合
o フォルダーを作って、次のファイルを入れます。
o GetText for Windows の binフォルダーの内容
   + 必要なファイルは、msgfmt.exe と dllファイルです。(= libgettextpo.dllは無くても動くみたいです)
   + 他のファイルを一緒にコピーしても、大丈夫です。
o LibIconv for Windows の binフォルダーの内容
   + 必要なファイルは、libiconv2.dll です。
   + 他のファイルを一緒にコピーしても、大丈夫です。
o 必要な時は、入手した msvcrt.dll

msgfmt プログラムを動かす時に必要なファイル
ファイル名場所説明
GetText for Windows
msgfmt.exebin本体
libgettextlib.dllbin部品
libgettextsrc.dllbin部品
libintl3.dllbin部品
LibIconv for Windows
libiconv2.dllbin部品
Visual C++のランタイムライブラリ
msvcrt.dll 部品。実行時に要求された時だけ入手

** msgfmtの動作確認
o msgfmt.exe をダブルクリックしてみて、黒い画面が一瞬で開閉すると、成功です。
   + 不足しているDLLがあると、メッセージを出して止まります。
o 普通に確認したい方は、コマンドプロンプト画面を開いて、次のコマンドを打ってみます。
   + コマンドの説明が表示されたら成功です。
--------
(ファイルを置いた場所)\msgfmt.exe --help
--------

o 簡単に入力したい時は、msgfmt.exe をエクスプローラーから貼り付けて、後ろに「 --help」を加えます。
o 場所を入力したくない時は、次のようにします。
   + カレントディレクトリを msgfmt.exeのある場所に合わせるか、
   + PATH環境変数に msgfmt.exe ファイルを置いた場所を追加します。区切り文字はセミコロンです。


==
関連ページ:
    ▼AWKの国際化対応 i18n
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > _(アンダーライン) = 国際化する文字列を指定する
(2010年10月27日追加。msgfmt プログラムを動かす時に必要なファイルの表)