I2 Localization의 내장시 메모
11148 단어 AssetUnity3Dlocalization
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?
로 지역화됨
Reference
이 문제에 관하여(I2 Localization의 내장시 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/monolith8/items/6da2f7f737c45674774d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)