基本Googlespread sheet連携使ってAuto transration使えると楽
Termは基準となる言語の文言のままの方が楽、例 「続けますか」
検索するとバグで表示潰れる
どこかに古いLanguageSourceをコンポーネントにつけたままにするとそっちが呼ばれる、勝手に更新されない(地味にハマった)
string hi = LocalizationManager.GetTranslation( "こんにちは" );
Localize.MainTranslation = Localize.MainTranslation.Replace("{hoge}", hi);
上のようなスクリプトを張って
言語切り替えするとtermに「こんにちは」の設定値を入れていれば
英語: 「{hoge} suzuking」は「Hello suzuking」に変わります
日本語:「 {hoge} 鈴木」は「こんにちは 鈴木」に変わります
Termは全角?。、「」とかは使えない
検索
ダブルコーテーション+全角+ダブルコーテーション
()がキャプチャ範囲 $1
"([^\x01-\x7E]+)"
("*[^\x01-\x7E]*")
置換内容
LocalizationManager.GetTranslation("$1")
LocalizationManager.GetTranslation($1)
動的テキストに対応する方法
public string GetL()
{
return _selectedNode.Get_LTeamName();
}
public string GetR()
{
return _selectedNode.Get_RTeamName();
}
public bool MatchL;
private void Select_L()
{
MatchL = true;
var dialog = DartsDialogSC.PopDialog(DartsDialogSC.DialogType.Type_2);
dialog.SetText_Title(LocalizationManager.GetTranslation("確認"));
//dialog.SetText_TpicUp("「" + _selectedNode.Get_LTeamName() + "」の勝利でよろしいですか?");
//GetTranslationの第四引数applyParameters = true, 第五引数GameObject localParametersRoot = nullにRegisterGlobalParameters書き換えたの設定するとGetParameterValueメソッドで設定した値が反映される
dialog.SetText_TpicUp(LocalizationManager.GetTranslation("の勝利でよろしいですか",true,0,true,true,I2Para,null));
dialog.SetText_TpicUnder("<color=#ff0000><size=18>"+LocalizationManager.GetTranslation("この操作は戻せません")+"</size></color>");
dialog.OnCloseEndEvent_Button01 += Operation_L;
}
private void Select_R()
{
MatchL = false;
var dialog = DartsDialogSC.PopDialog(DartsDialogSC.DialogType.Type_2);
dialog.SetText_Title(LocalizationManager.GetTranslation("確認"));
dialog.SetText_TpicUp(LocalizationManager.GetTranslation("の勝利でよろしいですか", true, 0, true, true, I2Para, null));
//dialog.SetText_TpicUp("「" + _selectedNode.Get_RTeamName() + "」の勝利でよろしいですか?");
dialog.SetText_TpicUnder("<color=#ff0000><size=18>" + LocalizationManager.GetTranslation("この操作は戻せません") + "</size></color>");
dialog.OnCloseEndEvent_Button01 += Operation_R;
}
public class LocalizationGlobalParameters : RegisterGlobalParameters
{
[SerializeField]
private GameObject match;
public override string GetParameterValue(string ParamName)
{
if (ParamName == "PLAYER")
{
if (match.GetComponent<Canvas_MatchOperation>().MatchL)
{
return match.GetComponent<Canvas_MatchOperation>().GetL();
}else
{![uploading-0]()
return match.GetComponent<Canvas_MatchOperation>().GetR();
}
}
if (ParamName == "NUM PLAYERS")
return 5.ToString();
return null;
}
}
要約
public string GetR()
{
return "太郎";
}
選択された値が GlobalParametersに行くようにする
↓
{[PLAYER]}="太郎";
{[PLAYER]}に選択された値が入る
↓
//GetTranslationの第四引数applyParameters = true, 第五引数GameObject localParametersRoot = nullにRegisterGlobalParameters書き換えたの設定するとGetParameterValueメソッドで設定した値が反映される
dialog.SetText_TpicUp(LocalizationManager.GetTranslation("の勝利でよろしいですか",true,0,true,true,I2Para,null));
{[PLAYER]}の勝利でよろしいですか?→太郎の勝利でよろしいですか?
Are you sure you want {[PLAYER]} to win?→Are you sure you want 太郎 to win?
になってローカライズされる