使用教程

本地化功能

ThunderFire UX Tool的本地化功能支持图片本地化和文字本地化两大类。

  • 图片本地化:即 UXImage 的本地化。
  • 文字本地化:包括 UXText 和 UXTextMeshPro 的本地化,操作类似,本手册截图以 UXText 为例。

文字本地化包括两种文本类型:静态文本类型与动态文本类型,本手册会在子标题中标注出文本类型。


本地化概览

配置本地化语言与路径

点击菜单【ThunderFireUXTool->本地化 (Localization)->设置 (Setting)】,弹出窗口如下图:


在“语言”一栏可以勾选游戏支持的所有语言类型,共有 14 种语言。


在“路径”一栏可以设置本地化文件夹、静态文本表格路径和动态文本表格路径,本地化文件夹要求位于运行时能够进行资源加载的路径下(例如Resources文件夹下),三个路径均要求在“Assets/”目录下。

本地化文件夹存放了所有本地化图片资源以及文本表格转为 JSON 后的 JSON 文件,名称为 TextLocalization.json

  • 静态文本表格路径是用于静态文字本地化的表格路径,后缀名为“.xlsx”
  • 动态文本表格路径是用于动态文字本地化的表格路径,后缀名为“.xlsx”

若没有静态文本表格,点击【生成空的静态文本表格】按钮,在弹出的窗口中选择一个路径,点击【保存】,即可生成一个空的静态文本表格。其包含key、路径、原文以及各种语言类型的翻译。

若没有动态文本表格,点击【生成空的动态文本表格】按钮,在弹出的窗口中选择一个路径,点击【保存】,即可生成一个空的动态文本表格。其包含key以及各种语言类型的翻译。

设置完以上内容后点击【确定】设置生效。


运行时预览语言切换

运行时在【Game右上角】可以设置预览语言(不会修改游戏内设置),预览语言会将所有开启本地化的 UXImage、UXText 和 UXTextMeshPro 切换为对应语言。


点击“游戏内语言”表示不使用预览语言,使用游戏内部的设置,游戏内语言默认为“未设置”,此时点击“游戏内语言”程序不做处理,用户需要使用代码来设置游戏内语言(见程序接口)。


图片本地化

开启本地化

选中需要本地化的 UXImage,在 Inspector 中开启本地化。


勾选后:


特别地,若 Source Image 为空,则不显示“导入所有语种图片”按钮,本地化图素列表为空:



导入所有语种图片

点击“导入所有语种图片”按钮,选择当前 Source Image 的本地化图片所在文件夹,即可导入本地化图片,并在 Inspector 的本地化图素列表中显示,其中:

  • 本地化图片所在文件夹不必是“Assets/”目录下的文件夹。
  • 程序会递归寻找文件夹下所有文件。
  • 图片命名为“图片原名_语言后缀”,扩展名为“.png”。
  • 导入的路径为“本地化文件夹/语言后缀/图片全名”,若该路径已有相同名称图片,则覆盖。
  • 若在 UX 工具“功能开关”设置中勾选了“自动将Texture转为Sprite",则会自动将导入的图片转为 Sprite 类型。


选择的文件夹:


导入后:


上例中程序会依次识别名为“about_CN.png”、“about_TC.png”、“about_EN.png”的文件,并将其导入到“本地化文件夹/CN/about_CN.png”、“本地化文件夹/TC/about_TC.png”、“本地化文件夹/EN/about_EN.png”路径下。

若有某种语言的图片缺失,则会用一张占位图片替代:



批量导入图片

点击菜单【ThunderFireUXTool->本地化 (Localization)->导入图片包 (Import Localization Images)】并选择本地化图片文件夹后,可以批量导入图片,其中:

  • 本地化图片所在文件夹不必是“Assets/”目录下的文件夹。
  • 程序会递归寻找文件夹下所有文件。
  • 图片命名为“图片原名_语言后缀”,扩展名为“.png”。
  • 导入的路径为“本地化文件夹/语言后缀/图片全名”,若该路径已有相同名称图片,则覆盖。
  • 若在 UX 工具“功能开关”设置中勾选了“自动将Texture转为Sprite",则会自动将导入的图片转为 Sprite 类型。

例如导入以下文件夹:


程序会将“about_CN.png”导入到“本地化文件夹/CN/about_CN.png”路径下,将“clock_EN.png”导入到“本地化文件夹/EN/clock_EN.png”路径下。


原图更改后自动识别

当 Inspector 中 Source Image 更改后,本地化图素列表也会自动更新。


预览不同语言图片

在 Inspector 的本地化图素列表中,勾选某一种语言,可以在 Scene 中预览该语言的图片,此处预览不会修改原文件。


勾选后:


场景中:


注意:该功能会自动在 Hierarchy 中设置当前物体为不可见,若出现图片重叠的情况,请检查 Scene 中 是否为打开状态。


文字本地化

开启本地化

选中需要本地化的 UXText 或 UXTextMeshPro,在 Inspector 中开启本地化。


勾选后:



静态文本

静态文本是直接在场景或Prefab中创建并编辑好的文本,运行时可直接预览。将文本类型改为“静态文本”,然后进行文本内容配置:

填写翻译数据

点击“打开静态文本表格”,会将当前 Prefab 中开启本地化的 UXText 和 UXTextMeshPro 信息记录到表格中,并打开表格,若不存在将弹出创建新表格窗口。


打开后:


填写翻译数据(支持在一个单元格内填写多行数据):


保存并关闭表格,点击菜单【ThunderFireUXTool->本地化 (Localization)->将文本表格转为JSON文件 (Convert Text Table to JSON)】,即可在 Inspector 中的本地化文本列表查看效果。


若某种语言未填写翻译数据,将显示“未填充文本”。


key 值生成

静态文本类型的 key 值为自动生成,当 UXText 或 UXTextMeshPro 第一次勾选“开启本地化”时,会为其生成一个唯一的 key 值,当原文改变时,也会为其生成唯一的 key 值。

key 值复制

点击“复制”按钮,可将 key 值复制到剪贴板中,用于在表格中快速定位。


路径信息

静态文本表格的第二列用于记录对应物体的路径信息,以文件名+层级名构成。当同一物体在不同 Prefab 中具有多个实例时,路径信息会将这些路径均记录下来,以“ && ”分隔。

表格同步

点击菜单【ThunderFireUXTool->本地化 (Localization)->刷新静态文本表格 (Refresh Runtime-Use Text Table)"】可以手动同步静态文本表格,手动同步会使用所有 Prefab 中开启本地化且文本类型为静态文本的 UXText 和 UXTextMeshPro 信息进行同步。

同时,在保存 Prefab 时,也会使用当前 Prefab 中开启本地化且文本类型为静态文本的 UXText 和 UXTextMeshPro 信息进行自动同步。

用户数据防删

当同步表格时,用户已经填写的翻译数据会自动保留,即使该数据对应的物体已经不存在(此时路径和原文为空)。

异常信息

有两种情况程序会输出异常信息:

  • 当程序尝试写入表格,但表格已打开时,会报错。
  • 当两个物体 key 值相同,但原文不同时,会报警告(通常情况不会遇到)。

动态文本

动态文本是在运行过程中实时生成或由程序在代码中编辑的文本,ThunderFire UX Tool提供了这类文本的本地化预览功能。将文本类型改为“动态文本”,然后进行文本内容配置:

填写 key 值

点击“打开动态文本表格”,会根据本地化设置中的“动态文本表格路径”打开表格,若不存在将弹出创建新表格窗口。


打开后:


找到所需 key 值,将其填到 Inspector 中。


若本地化文本列表为空,则需要点击菜单【ThunderFireUXTool->本地化 (Localization)->将文本表格转为JSON文件 (Convert Text Table to JSON)】。

key 值复制

点击“复制”按钮,可将 key 值复制到剪贴板中,用于在表格中快速定位。


key 值更改自动识别

当 Inspector 中 key 值更改时,本地化文本列表会自动更新。


将文字表格转为JSON

点击菜单【ThunderFireUXTool->本地化 (Localization)->将文本表格转为JSON文件 (Convert Text Table to JSON)】,可将静态文本表格和动态文本表格转为一个 JSON 文件,文件路径为“本地化文件夹/TextLocalization.json”。


预览不同语言文本

在 Inspector 的本地化文本列表中,勾选某一种语言,可以在 Scene 中预览该语言的文本,此处预览不会修改原文件。


勾选后:


场景中:


注意:该功能会自动在 Hierarchy 中设置当前物体为不可见,若出现图片重叠的情况,请检查 Scene 中
是否为打开状态。


无文字模式

运行时在 Game 右上角可以设置无文字模式,会将所有 UXText 和 UXTextMeshPro 切换为方框占位符。


切换后:



显示 key

运行时在 Game 右上角可以设置显示 key 模式,会将所有开启本地化的 UXText 和 UXTextMeshPro 替换为其对应的 key 值。


切换后:



程序接口

函数

// 描述:可以切换游戏内语言
// 所属类:LocalizationHelper
// 参数:
//     type 切换后的语言类型
// 返回值:无
public static void SetLanguage(LocalizationHelper.LanguageType type)
面向开发者的界面开发解决方案
feedback