Next: , Previous: , Up: Other I/O   [Contents][Index]


6.20.11 国際化(I18n)とローカライズ

エンド・ユーザー向けのプログラムは、 エンド・ユーザーの母国語に対応する必要があります。 このような機能については古くから提案があり、 Xchars (see Xchars and Unicode)や Substitute (see Substitute) などの国際文字セットに関する他の提案から分割されました。 画面に表示されるメッセージは、 開発者の母国語(native language)からユーザーの現地言語(local languages)に翻訳する必要があります(訳注: gforth に最初から組み込まれていないので都度 require i18n.fs 等する必要ある。 本マニュアルに掲載が無いが i18n な 日付用として require i18n-date.fs するのもいいかもしれない)。

翻訳対象の文字列は L" string" で宣言します。 これにより、 ロケール文字列識別子(LSID)が返されます。 LSID は不明瞭なタイプ(opaque types)であり、 スタック上のセルとして扱われます。 LSID はロケールに変換できます。 ロケールは、 言語およびその言語の国固有のバリエーションです。

L" ( "lsid<">" – lsid  ) gforth-experimental “l-quote”

文字列が一意に新しい場合は、 文字列をパースし、 新しい lsid を定義します。 同一文字列は同一の lsid となり、 同一文字列を使用して複数の場所から同じ lsid を参照できます。

LU" ( "lsid<">" – lsid  ) gforth-experimental “l-unique-quote”

文字列がユニークでない場合でも(重複してても)、 文字列をパースし、 常に新しい lsid を定義します。

native@ ( lsid – addr u  ) gforth-experimental “native-fetch”

lsid からネイティブ文字列(native string)を取得します

locale@ ( lsid – addr u  ) gforth-experimental “locale-fetch”

現在の言語 かつ 現在の国(country)でローカライズされた文字列を取得します

locale! ( addr u lsid –  ) gforth-experimental “locale-store”

現在のロケール かつ 現在の国の、 ローカライズされた文字列 addr ulsid に保存します。

Language ( "name" –  ) gforth-experimental “Language”

ロケールを定義します。 そのロケールを実行すると、 それが現在のロケールになります。

Country ( <lang> "name" –  ) gforth-experimental “Country”

現在のロケールのバリエーション(通常: 国;country)を定義します。 そのロケールを実行すると、それが現在のロケールになります。 バリエーションのバリエーションを作成できます(国によってはバリエーションが存在する場合があります。たとえば、 多くの言語で rolls/buns を表す単語が何語あるかを考えてください)。

locale-file ( fid –  ) gforth-experimental “locale-file”

fid から現在のロケールに行(lines)を読み取ります。

included-locale ( addr u –  ) gforth-experimental “included-locale”

ファイル addr u から現在のロケールに行(lines)を読み取ります。

include-locale ( "name" –  ) gforth-experimental “include-locale”

指定のファイル "name" から現在のロケールに行(lines)を読み取ります。

locale-csv ( "name" –  ) gforth-experimental “locale-csv”

カンマ区切り値テーブルをロケールにインポートします。 最初の行にはロケール名が含まれます。 “program” と “default” は特別なエントリです。 generic languages は特定の国(specific countries)向けの翻訳よりも優先しなければなりません。 “program” の下のエントリ(一番左にある必要があります) は、 lsid の検索に使用されます。 空の場合、 行番号 1 は lsid インデックスです。

.locale-csv ( ) gforth-experimental “dot-locale-csv”

ロケール・データベースを CSV 形式で端末に出力します。

locale-csv-out ( "name" –  ) gforth-experimental “locale-csv”

ファイル "name" を作成し、 ロケール・データベースを CSV 形式でファイル "name" に書き込みます。


Next: Substitute, Previous: Xchars and Unicode, Up: Other I/O   [Contents][Index]