技術ブログ

【Unity】端末の言語を取得して自動でローカライズする方法【5分で実装】

前書き

日本以外にも簡単に世界中でリリースできる今時代に必須技術である外国語対応。
今回はその中でも特にユーザーフレンドリーな、端末の設定言語を取得して自動でローカライズする方法を解説します。

実装

「LocalizeText.cs」というC#ファイルを作り、以下のソースコードをコピー&ペーストしてください。

public class LocalizeText : MonoBehaviour
{
    [SerializeField]
    string text_Jp, text_En, text_Other;

    void Start()
    {
        //テキストコンポーネントを取得
        Text text = GetComponent<Text>();

        //端末の設定言語を取得して分岐する
        switch (Application.systemLanguage)
        {
            case SystemLanguage.Japanese:
                //日本語の場合
                text.text = text_Jp;
                break;
            case SystemLanguage.English:
                //英語の場合
                text.text = text_En;
                break;
            default:
                //上記以外の言語の場合
                text.text = text_Other;
                break;
        }
    }
}

そして上のファイルをTextが付いているオブジェクトにアタッチします。

すると以上のように表示されるので、各言語ごとに表示したい文面をセットすれば完了です。

これをローカライズしたい全てのTextオブジェクトにアタッチして、それぞれに言語別の文面をセットするだけでゲーム自体の完全翻訳が可能です。

カスタマイズ

対応する言語を増やしたければ、string変数とswitch文の中身を追加するだけでできます。

例(中国語を追加したい場合)

srting変数にtext_Cnを追加
case SystemLanguage.Chinese: text.text = text_Chを追加

↓役に立ったらシェアしてね↓