Dialogue System for unityを使ったLocalization方法

Localizetionする方法

DialogueSystemForUnityではLocalizeする方法がDialogueConversationとそれ以外で異なる。それぞれに対して解説していく。

Dialogue Conversationに対して

1.Template>DialogueEntriesの横にある「+」を押す

2.Titleに好きな文字列を代入し、TypeをLocalizationに設定

3.Templatesの右にある「Menu」ドロップダウンを選択肢、「Apply Template To Assets」を選択

4.適当なEntryを選択肢、インスペクターを確認して追加されていることを確認

(どこでどの言語を使うか設定するかは調べ中)

UIオブジェクトに対して

1.テキストをローケライズしたいUIオブジェクトに対して、「Localize UI」コンポーネントを追加する

変数を含んだテキストに対応する方法

事前にScriptで処理する。

必要最低限の処理を書いたスクリプト

using PixelCrushers;
using UnityEngine;

public class Change : MonoBehaviour
{
    [SerializeField]
    // TextTable
    private TextTable textTable;
    public void CangeText()
    {
        // 変更するテキスト
        string text = "攻撃力";
        // 変更後のテキスト
        // 第一引数: 
        // 第二引数: 変換に使用するField
        var hello = textTable.GetFieldTextForLanguage(text, "en");
        // コンソールに翻訳後のテキストを表示
        Debug.Log(hello);

    }
}

ポイント

1.翻訳で使用したいテーブルをインスペクターから指定する。

2. TextTableクラスが持つ関数”GetFieldTextForLanguage”で元の文字列に対応した文字列を入手する。

後は、翻訳する文字列に"XXXX"などの他と被らない文字列を元から組み込んでおき、TextTableから入手する時に適切な位置に"XXXX"が来るように設定しておく。

翻訳後に、”XXXX”を置換すればOK。

参考にした記事

Localization

Localization Tutorial

UnityUnity

Posted by admin