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了