Tutorial: ローカライゼーション

ローカライゼーション

SV.T(text)

SV.T(...) は、ホストの現在の言語設定に基づいて文字列を翻訳するための便利な関数です。 翻訳はスクリプト作者が提供する辞書をもとにされます。辞書外の文字列が見つかった場合は、ホストの翻訳テキストが使用され、そこでも翻訳が見つからない場合は翻訳されずに元の文字列がそのまま返されます。


翻訳辞書のスクリプトへの埋め込む

スクリプト作者は、getTranslations(langCode) コールバックを実装することで、スクリプト固有の翻訳辞書を提供します。この関数は、Synthesizer V Studio がスクリプトをロードする際に実行され、言語コード(string 型の引数)をとります。string型のペア(配列)の配列を返します。

(JavaScript)

function getTranslations(langCode) {
  if(langCode == "ja-jp") {
    return [
      ["Please enter a number here:", "数字を入力してください:"],
      ["Please enter some text here:", "テキストを入力してください:"]
    ];
  } else
  if(langCode == "zh-cn") {
    return [
      ["Please enter a number here:", "请输入一个数字:"],
      ["Please enter some text here:", "请输入一段文本:"]
    ];
  }
  return [];
}

function main() {
  SV.showInputBox("My Script", SV.T("Please enter a number here:"), "");
  SV.showInputBox("My Script", SV.T("Please enter some text here:"), "");
  SV.finish();
}

(Lua)

function getTranslations(langCode)
  if langCode == "ja-jp" then
    return {
      {"Please enter a number here:", "数字を入力してください:"},
      {"Please enter some text here:", "テキストを入力してください:"}
    }
  elseif langCode == "zh-cn" then
    return {
      {"Please enter a number here:", "请输入一个数字:"},
      {"Please enter some text here:", "请输入一段文本:"}
    }
  end
  return {}
end

function main()
  SV:showInputBox("My Script", SV:T("Please enter a number here:"), "")
  SV:showInputBox("My Script", SV:T("Please enter some text here:"), "")
  SV:finish()
end