_(アンダーライン) = 国際化する文字列を指定する(Gawk専用) - AWK
○Gawk on Windows ○Gawk ×mawk32 ×Mawk ×awk
AWKプログラムの国際化対応は、国際化したい文字列の前に「_」(アンダーライン)を入れる事から始まります。o 国際化対応は、Gawk専用の機能です。
**** 書式
--------
_"国際化したい文字列"
--------
o 国際化したい文字列 -- 日本語や英語など、環境によって置き換えたい文字列
**** 使用例
--------
BEGIN {
print _"Miku-san" " 393";
print _"Negi";
}
--------
o この例の場合、" 393" は国際化しません。
o ちなみに、葱に相当する英語は、英国の leek / 米国の green onion
**** 機能
o 国際化したい文字列を指定します。
+ 指定する文字列は、半角の英数記号が理想です。
+ 全角文字に指定すると、翻訳作業する時に全角文字が記号化するからです。
+ 具体例は、下のメモ欄をご覧ください。
o 翻訳ファイルを作って所定の位置に置くと、設定した言語に応じて文字列が切り替わります。
o 翻訳ファイルが無い時は、文字列がそのまま表示されます。
o この機能をサポートしていない処理系があります。
+ ですので、複数のAWK処理系で動かしたい時は、この機能を使う事は出来ません。
** 処理系に依存する動作
o この機能をサポートしている処理系は、次の通りです。
+ Gawk on Windows 3.1.7
+ Gawk for Windows 3.1.6
**** メモ
o リソースファイルの置き場所を変更したりしたい時は、専用の関数を使います。
** おまけ。翻訳作業の流れ
o 翻訳前のAWKプログラム
--------
BEGIN {
print _"Miku-san";
print _"ミクさん";
}
--------
o 必要に応じて、bindtextdomain 関数などを呼び出します。
o 全角文字の "ミクさん" に指定すると、翻訳が大変です。理由は、下を見ると分かります。
o 「-W gen-po」オプションで生成する翻訳作業用ファイル
--------
#: test.awk:2
msgid "Miku-san"
msgstr ""
#: test.awk:3
msgid "\203~\203N\202\263\202\361"
msgstr ""
--------
o 全角文字の「ミクさん」が記号化しています。
o この作業用ファイルの、msgstr に翻訳後の文字列を入れていきます。
o 翻訳が終わったら msgfmt ツールを使って moファイル形式に変換し、所定の場所に配置します。
**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3 -- 非対応
o Mawk for Windows 1.3.3 -- 非対応
o original = the one true awk(updated May 1, 2007) -- 非対応
==
関連ページ:
▼AWKの国際化対応 i18n
▼AWKプログラムを書く(▼ABC順)
▼AWK
▼制作メモ
> ▼AWKのパターンと制御文