cocos creator官方現(xiàn)在已經(jīng)不維護i18n了娄柳,但是依然可以使用這個插件
官方鏈接文檔
http://docs.cocos.com/creator/manual/zh/advanced-topics/i18n.html
根據(jù)文檔提示下載消略,但是現(xiàn)在擴展商店已經(jīng)找不到了儒搭,所以我是手動下載的
下載完后得到的是這樣的結(jié)構(gòu)
我使用的是cocos creator 2.4.4
但是直接放到cocos creator項目下是會有錯誤的弛秋,我是放在assets文件夾下的凝危,經(jīng)過一番探索军俊,修改一些錯誤尉共,終于可以用了
1褒傅,首先把除了i18n和runtime-scripts之外的其他文件都刪除,其他的都沒用
2袄友,i18n下主要是語言配置表殿托,js寫的
自己添加配置就行了,
3,把這個注釋剧蚣,否則掛不上組件支竹,會有錯誤
4旋廷,LanguageData中中間那端刪除了,加上這個礼搁,這里是啟動的時候默認語言初始化加載饶碘,也可以獲取設(shè)備的系統(tǒng)語言去設(shè)置,我這里是寫的默認英文
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是掛在自己的預(yù)制體上的組件募书,分別掛在含有Label绪囱,含有Sprite的節(jié)點下
這是我掛的 Data ID對應(yīng)的是i18n文件下的語言配置表中字段對應(yīng)的key
直接調(diào)用LanguageMgr 中的初始化和切換語言就ok了