public List <LocalizedText> textsOnScene = new List <LocalizedText>(); //언어 변경 가능시 유지, 자동 설정시 필요 없음 private void Awake() { if (isInstanceNull()) { //싱글톤 instance = this; } else { Destroy(gameObject); } DontDestroyOnLoad(gameObject); GetLanguagePacks(); //현지화 데이터 로드 //언어 변경 기능 삽입시 이 부분을 Application.systemLanguage가 아닌 세이브한 데이터에서 불러오면 됩니다. currentLanguagePack = SetLanguage(Application.systemLanguage); ApplyLanguage(); }
/// <summary> /// SystemLanguage가 아닌 string형으로 비교해도 무방. 존재하는 모든 언어코드를 넣는 게 아니라면 default 설정은 빼먹지 맙시다. /// </summary> private StringBundle SetLanguage(SystemLanguage language) { StringBundle result = new StringBundle(); string languageString; switch (language) { case SystemLanguage.English: languageString = "English"; //xml파일의 Languages노드 내의 언어명들과 같게 입력해주세요. break; case SystemLanguage.Portuguese: languageString = "Portuguese"; break; case SystemLanguage.ChineseSimplified: languageString = "ChineseS"; break; case SystemLanguage.ChineseTraditional: languageString = "ChineseT"; break; case SystemLanguage.Japanese: languageString = "Japanese"; break; case SystemLanguage.Korean: languageString = "Korean"; break; default: languageString = "English"; break; } result.localizingString = GetString("localizedString", languageString); StringBundle의 각 멤버마다 하나씩 추가해주면 됩니다. return(result); }