orangegirl’s blog

Unityを使用していて気付いた点などのメモ帳

NGUIでの文字列ローカライズ

NGUIで文字列(Label)のローカライズをしようとネットで検索をかけた時に、最近のバージョンの情報がなかったので、使い方をメモしておきます。

NGUIの使用バージョンは3.8.2、Unityは5.0.2です。

 

ここでは、こんな感じのボタンを作成したいとします。

f:id:orange__girl:20150526093350j:plain日本語の時はこれ。

f:id:orange__girl:20150526093352j:plain英語の時はこれ。

 

①翻訳ファイルの作成

まずは、ローカライズしたい内容を記入したtxtかcsvのファイルを用意します。

一番上の行に、「KEY,言語1,言語2…」というように使用したい言語を記入しておきます。

その後は下の画像のように、KEY列に任意の文字、各言語の列に入力したい文字列を記入します。

f:id:orange__girl:20150526091208j:plain

文字コードはShift-JISなんかだと日本語が正常に表示されないみたいなので、UTF-8にしておくのが無難なようです。

僕はGoogleスプレッドシートで作成したものをcsvとしてDLして使いました。

DLしたファイルは、「Localization.csv」とリネームしておきます。 

 

②翻訳ファイルのインポート

csvを用意できたら、NGUIのExamplesフォルダにある「Localization.txt」を削除するか、違う名前に変更します。試してはいないですが、複数の設定ファイルがあるのも良くない気がしますので。

その後、先ほど用意したcsvを任意の場所に追加します。Localization.txt」があったのと同じ場所でも別に問題はありません。

f:id:orange__girl:20150526091642j:plain

 

③翻訳ファイルの実装

ここまで来たら、ほぼ終わったも同然です。

NGUIでUI Labelを適当に作成し、「Add Component」から「Localize」を適用します。

f:id:orange__girl:20150526091209j:plain

適用された「UI Localize」の「Key」欄に、csvで入力したKEYの文字を入れると、Preview欄に設定した情報が表示されます。

 f:id:orange__girl:20150526091206j:plain

Preview欄の言語設定の右のボックス(上の画像の「Close」や「閉じる」がある場所)をクリックすると、Scene、Gameウィンドウで表示が変わります。 

あとは、ゲームの起動時にシステム言語設定を取得し、任意のローカライズ言語に処理を振り分ければ完了です。下記ではシステムが日本語なら日本語、それ以外なら英語に振り分けています。

 

    void Start () {
        if (Application.systemLanguage == SystemLanguage.Japanese) {
            Localization.language = JP;
        }else{
            Localization.language = EN;
        }
    }

 

手順さえ覚えれば、わりと簡単に実装出来ます。