質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

3回答

2443閲覧

Unityでローカライズする時、設定にない言語だった場合の処理

kanro1

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/07/19 05:01

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 }

どなたかご教授いただければ幸いでございます。
何卒、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

C#

1if (Application.systemLanguage == SystemLanguage.Japanese){ 2 testText.text = "日本語"; 3} else if (Application.systemLanguage == SystemLanguage.English){ 4 testText.text = "英語"; 5} else if (Application.systemLanguage == SystemLanguage.Korean){ 6 testText.text = "韓国語"; 7} else { 8 testText.text = "英語"; 9}

でいいのでは?

投稿2018/07/19 05:10

YAmaGNZ

総合スコア10251

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kanro1

2018/07/19 05:31

迅速なご回答、誠にありがとうございます!
guest

0

これじゃ駄目なんですか?

c#

1if (Application.systemLanguage == SystemLanguage.Japanese) { 2 testText.text = "日本語"; 3} else if (Application.systemLanguage == SystemLanguage.Korean) { 4 testText.text = "韓国語"; 5} else { 6 testText.text = "英語"; 7} 8

投稿2018/07/19 05:30

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kanro1

2018/07/19 05:33

はい、そちらの回答をいただき無事反映させることができました。 見落としてしまいました…。
guest

0

いただいた解答により無事解決。
なお、そもそも端末の言語設定に不備があったため、当初の実装パターンでも問題なかった。

投稿2018/07/19 05:39

kanro1

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問