cocos creator官方现在已经不维护i18n了,但是依然可以使用这个插件
官方链接文档
http://docs.cocos.com/creator/manual/zh/advanced-topics/i18n.html
根据文档提示下载,但是现在扩展商店已经找不到了,所以我是手动下载的
下载完后得到的是这样的结构
我使用的是cocos creator 2.4.4
但是直接放到cocos creator项目下是会有错误的,我是放在assets文件夹下的,经过一番探索,修改一些错误,终于可以用了
1,首先把除了i18n和runtime-scripts之外的其他文件都删除,其他的都没用
2,i18n下主要是语言配置表,js写的
自己添加配置就行了,
3,把这个注释,否则挂不上组件,会有错误
4,LanguageData中中间那端删除了,加上这个,这里是启动的时候默认语言初始化加载,也可以获取设备的系统语言去设置,我这里是写的默认英文
5,加载配置代码添加
6,看代码,这是自己写的管理器 主要是引用LanguageData
// 多语言管理
export default class LanguageMgr {
public curLang = "en";// 当前语言
private static lang = null;
private i18n = null;
// 多语言单例
public static get langInstance() {
if(!this.lang) this.lang = new LanguageMgr();
return this.lang;
}
/**初始化语言 */
public initLanguage ()
{
// 初始化语言
this.i18n = require('LanguageData');
this.changeLanguage('en');
}
// 切换语言
public changeLanguage(lang)
{
if(lang===this.curLang) return;
this.i18n.init(lang);
this.updateLanguageRender();
this.curLang = lang;// 保存当前语言
}
// 更新语言显示
public updateLanguageRender()
{
// 更新显示
this.i18n.updateSceneRenderers()
}
}
LocallizedLabel和LocallizedSprite是挂在自己的预制体上的组件,分别挂在含有Label,含有Sprite的节点下
这是我挂的 Data ID对应的是i18n文件下的语言配置表中字段对应的key
直接调用LanguageMgr 中的初始化和切换语言就ok了