I2 Localization의 내장시 메모

기본 Googlespread sheet 연계를 사용하여 Auto transration 사용할 수 있으면

Term은 기준이 되는 언어의 문언 그대로가 편하고, 예 「계속합니까?」

검색하면 버그로 표시됩니다.

어딘가에 낡은 LanguageSource를 컴퍼넌트에 붙인 채로 하면 그쪽이 불리는, 마음대로 업데이트되지 않는다(수수하게 빠졌다)

Localize.cs
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)

동적 텍스트에 대응하는 방법




Canvas_MatchOperation.cs
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;
        }

LocalizationGlobalParameters.cs
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, 다섯 번째 인수

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?

로 지역화됨

좋은 웹페이지 즐겨찾기