使用流程

安装

PackageManager搜索Localization完成对应插件的安装

unity UMP插件下载 unity官方插件_游戏引擎

 

配置

PlayerSetting->Localization 创建本地化相关配置

unity UMP插件下载 unity官方插件_游戏引擎_02

 

创建之后点击Locale Generator可以选择需要支持的语言

unity UMP插件下载 unity官方插件_自动生成_03

 

创建Table Collection

TableCollection是一组本地化数据的集合。需要在Window->AssetManagement->Localization Table 点击New Table Collection,命名之后点击Create

unity UMP插件下载 unity官方插件_unity UMP插件下载_04

 

 

编辑Table Collection

点击Edit Table Collection,之后选择需要编辑的Table Collection。

unity UMP插件下载 unity官方插件_自动生成_05

 

点击Add New Entry,可以添加一条新的本地化文本,Key是该文本的键值,后面可以填写不同语言对应的文本

本地化场景控制

控制界面通过Window > Asset Management > Localization Scene Controls打开

unity UMP插件下载 unity官方插件_自动生成_06

 

ActiveLocale:选项代表当前所处的本地化语言

Track Changes:该选项打开时,如果有本地化相关的组件(比如Text/Image)组件的参数值产生改变,会自动记录改变的内容

StringTable:当前本地场景控制读写的StringTable

AssetTable::当前本地场景控制读写的AssetTable

使用方法

以文本本地化为例子,修改一个开始按钮的文本

当打开TrackChanges选项时,先选择active locale为Chinese,并且选择好对应的StringTable

之后对文本进行修改,填入文本"开始"

可以看到Text处的框变成绿色的

unity UMP插件下载 unity官方插件_unity_07

 

并且在Text下方自动生成了一个GameObjectLocalizer的组件,组件上的跟踪的TableEntry也自动生成,并且在Chinese下将对应文字填充好

unity UMP插件下载 unity官方插件_Text_08

 

之后将ActiveLocale修改成English

unity UMP插件下载 unity官方插件_游戏引擎_09

 

可以看到Text内的内容自动产生改变,变成一个表示没有对应翻译的提示

unity UMP插件下载 unity官方插件_游戏引擎_10

 

删除文本框内的提示,填入该文本的英文翻译"Start",可以看到TableEntry内English对应的翻译由<empty>变成了我们修改的Start

unity UMP插件下载 unity官方插件_Text_11

 

运行验证

运行之后可以看到界面的右上角出现一个选择当前运行时的语言的菜单栏

当前的语言为Chinese,开始按钮上的文字也是之前Active Local为Chinese时编辑的"开始"

unity UMP插件下载 unity官方插件_unity_12

 

点击右上角的语言选择的菜单栏,将语言改为English,可以看到开始按钮上的文字自动变成"Start"

unity UMP插件下载 unity官方插件_自动生成_13

文本变化事件

在本地化组件修改本地语言的时候,会触发对应UpdateString事件,如果需要监听该事件的话,可以在Localize String Event组件下的Update String添加对应的事件监听

unity UMP插件下载 unity官方插件_Text_14

 

也可以通过代码的方式,通过LocalizedString的StringChanged事件对该事件进行监听

public class LocalizedStringWithEvents : MonoBehaviour
{
    public LocalizedString myString;

    string localizedText;

    /// <summary>/// Register a ChangeHandler. This is called whenever the string needs to be updated./// </summary>void OnEnable()
    {
        myString.StringChanged += UpdateString;
    }

    void OnDisable()
    {
        myString.StringChanged -= UpdateString;
    }

    void UpdateString(string s)
    {
        localizedText = s;
    }

    void OnGUI()
    {
        EditorGUILayout.LabelField(localizedText);
    }
}

导入/导出Table

在Localization Tables界面的EditTable Collection页签下,选择需要进行导入/导出的Table

unity UMP插件下载 unity官方插件_Text_15

 

之后点击右上的三个小点,可以选择Export/Import文件

unity UMP插件下载 unity官方插件_unity_16

 

一般编辑流程是,先确定好Table里需要进行本地化Table Entry,并且完成对应关系的绑定。之后导出csv文件,用Excel打开之后可以看到对应的Key,以及默认生成的ID。之后可以将其交由进行本地化翻译工作的同事,不要修改Key和ID,仅填入本地化的文本。之后再将修改后的CSV导入到工程

unity UMP插件下载 unity官方插件_自动生成_17