文字列リソースとフォント指定

AzXClass では文字列を翻訳する方法が提供されています。独自の形式のファイルから文字列を読み込みます。

axstrc

文字列リソースはテキストファイルから axstr ファイルに事前に変換しておく必要があります。変換用のツールは tool/axstrc です。他のファイルのコンパイル時に make しておくとよいでしょう。

また、langtmp/ 以下にデフォルトの文字列を含んだファイルがあるので、コピーして自分用の文字列リソースを追加して利用させてもらいましょう。axstrc.cpp の説明によると、プログラムごとにそれぞれの文字列リソースを持つ、ということです。

axstrc の使い方は以下のような感じになります。
axstrc -o NAME.LANG_COUNTRY.axstr NAME.LANG_COUNTRY

環境の判定は環境変数の LANG で行われます。LANG と COUNTRY がそれの値と一致するようにしておいてください。-o オプションを指定しなければなんだかうまくいきません(?)。

変換したファイルは、実行ファイルと同じディレクトリまたは、lang ディレクトリ以下に保存します。

フォント指定

日本語などの文字を表示するには、文字列リソースを指定する以外に起動時(など)に利用するフォントを教えてあげなくてはいけません。--font オプションをつけて起動します。

./foo --font "VL ゴシック-10"

フォントを指定しなければ変な表示になるか、文字が表示されません。

文字列リソース指定

文字列リソース用のファイルを用意したら、AXApp クラスのインスタンスの LoadTranslation メソッドを呼び出してリソースファイル名を指定します。

 AXApp app;
 if (! app.Init(argc, argv, TRUE))
        return 1;
 app.LoadTranslation("TestWindow");

二番目の引数に利用するロケールを ja_JP といった形式で指定できます。指定しなければ LANG から判定されます。

文字列の利用

利用する文字列リソースファイルを指定しておき、文字列をグループと文字列 ID を指定して取得します。
これには AXApp.h で定義されているマクロを利用するとよいようです。

_STR_GROUP(gid)
_STR(id, def)
_STRING(gid, id, def)

gid にはグループ ID を、id には文字列 ID を、def にはデフォルトの値を指定します。

文字列リソースファイルの形式

変換前の文字列リソースのファイルは普通のテキストファイルです。見れば解ると思います。
[gid] でグループ ID を指定。id=str で文字列 ID とその ID の文字列を指定します。
ファイルは UTF-8 エンコードで保存しておかなければいけません。
[ と数値以外から始まる行はコメントとして無視されるようです。詳細は axstrc.cpp 参照。