文字列をローカライズする

ゲームを複数の言語に翻訳する必要がある場合、最も重要なニーズの 1 つは、任意の UI タイプに表示するために各ターゲット言語の文字列セットを作成することです。

Stingray には、.strings リソースを使用して、ランタイムでローカライズされた文字列の入れ替えおよびアクセスするためのメカニズムが用意されています。

.strings リソースについて

.strings リソースは、さまざまな言語の文字列識別子と、それに対応する文字列値のセットが含まれている SJSON ファイルです。他の言語が指定されていない場合は、既定で英語の文字列(キー「en」で識別)が使用されます。

たとえば、メニューをローカライズするための menu.strings リソースは、次のようになります。

menu_option_back = {
    en = "Back"
    fr = "Retour"
}
menu_option_forward = {
    en = "Forward"
    fr = "Suivant"
}
menu_option_start = {
    en = "Start"
    fr = "Commencer"
}
menu_option_quit = {
    en = "Quit"
    fr = "Quitter"
}

ランタイムでローカライズした文字列を取得する

ランタイムで .strings リソースから文字列を取得するには、stingray.Localizer オブジェクトを使用します。

  1. stingray.Localizer() 関数を呼び出して、新しい Localizer オブジェクトを作成します。管理する .strings リソースの名前を渡します。

  2. stingray.Localizer.lookup() 関数を呼び出します。それに、Localizer オブジェクトとファイルから取得する文字列の識別子を渡します。

たとえば、次のようになります。

local myLocalizer = stingray.Localizer("menu")
local fwd_string = stingray.Localizer.lookup(myLocalizer, "menu_option_forward")

言語を変更するには、stingray.Localizer.set_language() 関数を使用して、.strings ファイル内で使用されている言語識別子の 1 つに言語を設定します。言語を変更した後で、stingray.Localizer.lookup() を呼び出すと、新しい言語で文字列が返されます。言語を英語に戻すには、en に設定します。

stingray.Localizer.set_language("fr")

.strings リソースを作成する

任意のテキスト エディタでリファレンス .strings リソースを作成することができます。

これらのリソース ファイルは、基本的にキー値のペアのリストです。委託している外部の翻訳プロバイダは、ローカライズ バージョンを作成するためにこれらのファイルを処理できるはずです。

また、Stingray には Localizer ツールと呼ばれる小さなユーティリティが用意されています。これは Stingray インストール フォルダ内にある tools¥Localizer.exe です。同時に複数言語のローカライズを管理するには、このツールを使用することができます。