0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【I2Localization】中国語設定

Last updated at Posted at 2024-11-26

端末のシステム言語にゲーム内言語を設定する

みたいな感じで端末のシステム言語は簡単に取得できます。

// 端末のシステム言語を取得
var systemLanguage = Application.systemLanguage;

端末言語 != I2Localization初期言語

I2Localizationで中国語を設定する際、I2 Languagesのプレハブから言語を追加すると思うのですが、

中国語の初期設定がシステム言語と一致していないので注意。

Android,iOSのシステム言語

中国語(簡体) → ChineseSimplified
中国語(繁体) → ChineseTraditional

I2Localizationの初期言語設定

中国語(簡体) → Chinese (Simplified)
中国語(繁体) → Chinese (Traditional)

となっており、

void Start()
{
    // 端末のシステム言語を取得
    var systemLanguage = Application.systemLanguage;

    // システム言語に対応する文字列を用意
    string language = systemLanguage.ToString();

    // システム言語がI2ローカライズで使用可能か確認
    if (LocalizationManager.HasLanguage(language))
    {
        // 現在のUIテキスト言語をシステム言語に設定
        LocalizationManager.CurrentLanguage = language;
    }
    else
    {
        // ローカライズ不可なものは英語に設定
        LocalizationManager.CurrentLanguage = "English";
    }
}

とした際、

システム言語が仮に中国語(簡体)だった時

LocalizationManager.CurrentLanguage = language;
language == ChineseSimplified
なのですが、I2Localization的には
language == Chinese (Simplified)
でないといけないのでこのコードだと英語にローカライズされてしまう。

対応

I2Localizationのプレハブを変更する

スクリーンショット 2024-11-21 124206.png

LanguagesからChinese (Simplified)になっている個所をChineseSimplifiedにしたら終了

スクリーンショット 2024-11-21 124214.png

設定ボタンなどで言語を切り替えたい際も、

 // このボタンが押されたら言語変更
 simplifiedChineseButton.onClick.AddListener(() => LocalizationManager.CurrentLanguage = "ChineseSimplified");

I2Localizationに設定した文字列と同じものをLocalizationManager.CurrentLanguageに入れてやると、中国語対応できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?