1如何提取UI页面和代码中需要翻译的文本
1)对于UI页面中的文本
可以利用layaIDE自带的语言包导出工具(导出目标->导出语言包),直接提取出来。
2)代码中的文本
这个可以直接提取bundle.js的文本即可,需要写一个工具(利用正则将console剔除后,的其他“”和‘’中的文本)对其进行提取
(1)剔除console语句的正则,在搜索框选用正则表达式匹配,全部替换为空即可剔除console语句。
console.log\(.*\);
2如何应用
1)如何切换不同语言库
核心是使用Laya.Text.langPacks接口, 直接给予其赋值即可。
2)设置带参数的字符串
值得一提的是,对于有可变参数的字符串,laya提供了lang函数,用{0},{1}的方式设置。
例如:
let txt = new Laya.Text();
let arg0 = 100;
let arg1 = 200;
txt.lang("恭喜你赢得{0}个钻石,{1}经验。",arg0,arg1);
// 对应英文文本为 Congratulations on your winning {0} diamonds, {1} experience.
// 如何设置的语言为英文,那么最后显示出来, 就为
// Congratulations on your winning 100 diamonds, 200 experience.
3具体流程设计
1)提取需要翻译的文本
2)找专业的翻译人员翻译成表格,使用excelTojson工具直接将表格变成json文件
3)将不同语言的json文件统一配置到一个json文件中,这样设计是为了当增加新语言后,只需要增加对应的json文件而不用去修改代码
4)在程序中相应模块读取统一的的json文件,显示可以选择的语言
5)根据选择的语言给Laya.Text.langPacks赋值并刷新当前页面