Unityで日本語・英語・韓国にローカライズする際、端末の言語設定を取得してテスト用のテキストを各言語に変換しています。
lang
1 Text testText = GameObject.Find("TestText").GetComponent<Text>(); 2 3 //言語設定が日本語の場合、「日本語」と表示 4 //言語設定が英語の場合、「英語」と表示 5 //言語設定が韓国語の場合、「韓国語」と表示 6 if (Application.systemLanguage == SystemLanguage.Japanese){ 7 testText.text = "日本語"; 8 } 9 else if (Application.systemLanguage == SystemLanguage.English){ 10 testText.text = "英語"; 11 } 12 else if (Application.systemLanguage == SystemLanguage.Korean){ 13 testText.text = "韓国語"; 14 }
この時、フランス語やイタリア語など、設定外の言語だった場合には英語を表示させるようにしたいのですが、下記2パターンを思いつき
Android端末で確認しましたが、うまく表示させることができませんでした。
パターン1
lang
1 Text testText = GameObject.Find("TestText").GetComponent<Text>(); 2 3 //言語設定が日本語の場合、「日本語」と表示 4 //言語設定が英語の場合、「英語」と表示 5 //言語設定が韓国語の場合、「韓国語」と表示 6 if (Application.systemLanguage == SystemLanguage.Japanese){ 7 testText.text = "日本語"; 8 } 9 else if (Application.systemLanguage == SystemLanguage.English){ 10 testText.text = "英語"; 11 } 12 else if (Application.systemLanguage == SystemLanguage.Korean){ 13 testText.text = "韓国語"; 14 } 15 //言語設定が日本語・英語・韓国語のいずれかでない場合、「英語」と表示 16 else if((Application.systemLanguage != SystemLanguage.Japanese) && (Application.systemLanguage != SystemLanguage.English) && (Application.systemLanguage != SystemLanguage.Korean)){ 17 testText.text = "英語"; 18 }
パターン2
lang
1 Text testText = GameObject.Find("TestText").GetComponent<Text>(); 2 int languageNo = 0; 3 4 //言語設定が日本語の場合、「日本語」と表示 5 //言語設定が英語の場合、「英語」と表示 6 //言語設定が韓国語の場合、「韓国語」と表示 7 if (Application.systemLanguage == SystemLanguage.Japanese){ 8 testText.text = "日本語"; 9 languageNo = 1; 10 } 11 else if (Application.systemLanguage == SystemLanguage.English){ 12 testText.text = "英語"; 13 languageNo = 2; 14 } 15 else if (Application.systemLanguage == SystemLanguage.Korean){ 16 testText.text = "韓国語"; 17 languageNo = 3; 18 } 19 //languageNoが初期値だった時、「英語」と表示 20 else if(languageNo == 0) 21 testText.text = "英語"; 22 }
どなたかご教授いただければ幸いでございます。
何卒、よろしくお願いいたします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/19 05:31