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 プログラムを動かす時に必要なファイルの表)

AWKの国際化対応機能 i18n(Gawk専用) - AWK

AWKの関数、変数、制御文
**** 国際化対応の手引き
Windows用のmsgfmtを入手する方法(gettext)


**** 組み込み関数
bindtextdomain
dcgettext
dcngettext


**** 関連する変数
TEXTDOMAIN


**** 関連する拡張表現
_(アンダーライン) = 国際化する文字列を指定する(Gawk専用)


**** メモ
o AWKプログラムで使用する文字列を、翻訳ファイルを使って置き変える事が出来る機能です。
o Gawk専用の機能ですが、今の所、Windows版Gawkで動作確認出来ていません。

**
o 10月28日現在、Windows版のGawk2つ共、文字列切り替えに失敗中です。
   + bindtextdomain 関数でディレクトリを指定しても、moファイル(= 翻訳ファイル)を認識してくれない模様です。
   + そして、Windowsにおける既定のメッセージ置き場の場所が分かりません。


==
関連ページ:
    ▼AWKの関数、変数、制御文▼ABC順
    ▼AWKプログラムを書く
    ▼AWK
    ▼制作メモ
    > ▼AWKのパターンと制御文
    ▼AWKの配列操作関数と関連機能

複数の初音ミクを明確に区別する方法 - 初音ミク

初音ミクの精神衛生
初音ミクを2人(= 2製品)以上揃えると、人によっては、個々の認識で苦労する事があります。
全員、初音ミクですから。

そのような時は、個別に呼び方を変えてみると、頭の中がすっきりします。


**** 呼び方の例
o 例えば、初音ミクとねんどろいど初音ミクを持っていて、頭の中で区別する場合
o 製品全体を指す時は
   + 初音ミク
   + ねんどろいど初音ミク
o 自分が持っている製品を指す時は
   + (うちの)ミクさん
   + (うちの)ねんどろいどミクさん


**** メモ
o 作曲中に、複数の初音ミクトラックや初音ミクオブジェクトを区別したくなった時にも便利です。
o 実際に呼ぶ事が無くても効果があります。
   + 名前を付ける事で、個々の初音ミクを別のものとして認識し易くなります。
o 上の呼び方は一例です。
   + 「ミクさん」という言葉は、初音ミク全体を指す事があります。
   + 実際に読み書きする時は、状況に応じて使い分けます。
o 区別しなくても混乱しない方は、呼び方を変える必要はありません。


==
関連ページ:
    ▼初音ミクの精神衛生
    ▼初音ミクで作曲する
    ▼初音ミク
    ▼制作メモ
    > パソコンの電源を気軽に切れなくなった時の対応方法
    ねんどろいど初音ミクの首関節が折れた時の治療手順
    初音ミクの頭を撫でる方法
(2010年10月26日追加。作曲への適用)