45.FGUI进阶-多国语言
45.1 知识点
FairyGUI的多国语言解决方案
- 先拼界面,再翻译
- 把界面上的所有文字导出到一个文件
- 然后把这个文件提交翻译
- 运行时动态载入翻译好的文件
生成语言文件
菜单栏——>工具——>字符串导入与导出
字符串导入与导出窗口
- 不导出已标记为发布时清空的内容
- 例如文本,设置了发布时清空,如果这里勾选了,那么这个文本就不会出现在语言文件里
- 如果导出目标文件已存在,与目标文件合并
- 比如现在导出内容中包含1个id为x1的字符串值为a
- 而目标文件也存在一个id为x1的字符串,值为b,则导出的结果文件里,x1的值为b
选择导出xml的路径
导出的xml文件包含了在UI上出现的所有文字(排除了纯阿拉伯数字)
- name是唯一ID,不能修改
- mz是控件名称,主要用于提示,没有实际用处,删了也不影响
- 我们只需要在xml文件中修改显示内容即可
- 让翻译软件翻译尖括号里的信息,比如把开、关改成on,off
使用多国语言
菜单栏——>项目设置——>多国语言——>点击加号——>选择语言xml文件
添加后我们可以在工具栏进行语言切换,只在播放预览时生效,如果预览时改变文件内容,点击刷新键即可刷新多语言
Unity中的使用
- 自行加载语言文件中的string 要把对应的xml文件放到Resources文件夹下
string fileContent = Resources.Load<TextAsset>("多国语言").text;
- 通过FairyGUI工具类中的XML相关方法载入信息 注意命名空间是FairyGUI工具库的
XML xml = new XML(fileContent);
- 显示面板前设置载入好的xml数据
UIPackage.SetStringsSource(xml);
- 显示面板
UIManager.Instance.ShowPanel<TeachPanel>("Teach");
- 注意:语言文件要在创建UI前载入
- 不支持实时切换语言文件
- 如果要在游戏中切换语言,那只能先销毁所有UI,卸载所有包
将编辑器中的文字全部替换
- 如果你想分成两个FGUI工程来管理两种语言,可以将现有工程复制一个,然后从外部导入翻译好的语言xml文件
- 注意:导入文本会修改掉工程中原有的所有文本内容,需要谨慎操作,一般都是复制原有工程进行操作
关于多国语言的制作总结
- 分支+多国语言
- 分支控制图片的多国匹配
- 多国语言控制文本的多国匹配
45.2 知识点代码
using FairyGUI;
using FairyGUI.Utils;
using System.Collections;
using System.Collections.Generic;
using Teach;
using UnityEngine;
public class Lesson45_FGUI进阶_多国语言 : MonoBehaviour
{
void Start()
{
#region 知识点一 FairyGUI的多国语言解决方案
//先拼界面,再翻译
//把界面上的所有文字导出到一个文件
//然后把这个文件提交翻译
//运行时动态载入翻译好的文件
#endregion
#region 知识点二 生成语言文件
//菜单栏——>工具——>字符串导入与导出
//不导出已标记为发布时清空的内容
// 例如文本,设置了发布时清空,如果这里勾选了,那么这个文本就不会出现在语言文件里
//如果导出目标文件已存在,与目标文件合并
// 比如现在导出内容中包含1个id为x1的字符串值为a
// 而目标文件也存在一个id为x1的字符串,值为b,则导出的结果文件里,x1的值为b
//导出的文件包含了在UI上出现的所有文字(排除了纯阿拉伯数字)
// name是唯一ID,不能修改
// mz是控件名称,主要用于提示,没有实际用处,删了也不影响
// 我们只需要在xml文件中修改显示内容即可
#endregion
#region 知识点三 使用多国语言
//菜单栏——>项目设置——>多国语言——>点击加号——>选择语言xml文件
//添加后我们可以在工具栏进行语言切换
//只在预览时生效,如果预览时改变文件内容,点击刷新键即可刷新
#endregion
#region 知识点四 Unity中的使用
//1.自行加载语言文件中的string 要把对应的xml文件放到Resources文件夹下
string fileContent = Resources.Load<TextAsset>("多国语言").text;
//2.通过FairyGUI工具类中的XML相关方法载入信息 注意命名空间是FairyGUI工具库的
XML xml = new XML(fileContent);
//3.显示面板前设置载入好的xml数据
UIPackage.SetStringsSource(xml);
//4.显示面板
UIManager.Instance.ShowPanel<TeachPanel>("Teach");
//注意:语言文件要在创建UI前载入
//不支持实时切换语言文件
//如果要在游戏中切换语言,那只能先销毁所有UI,卸载所有包
#endregion
#region 知识点五 将编辑器中的文字全部替换
//如果你想分成两个FGUI工程来管理两种语言
//可以将现有工程复制一个,然后从外部导入翻译好的语言文件
//注意:导入文本会修改掉工程中原有的所有文本内容,需要谨慎操作
//一般都是复制原有工程进行操作
#endregion
#region 知识点六 关于多国语言的制作总结
//分支+多国语言
//分支控制图片的多国匹配
//多国语言控制文本的多国匹配
#endregion
}
}
45.3 练习题
在上节课的练习题基础上,为练习题面板,加入一个英文版本UI
按步骤创建多语言xml文件,翻译练习题面板上的字符 如果图片显示的文字 可以创建对应分支 分支对应的路径创建同名的外国语言图片资源
代码中加载多国语言 注意命名空间是FairyGUI工具库的
//设置多国语言
//加载英文翻译xml文件
string fileContent = Resources.Load<TextAsset>("English").text;
//构造一个xml数据对象
XML xml = new XML(fileContent);
//进行多国语言设置
UIPackage.SetStringsSource(xml);
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com