美文网首页
cocos creator 使用i18n多语言探索

cocos creator 使用i18n多语言探索

作者: 程序猿TODO | 来源:发表于2021-12-28 16:19 被阅读0次

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了

相关文章

网友评论

      本文标题:cocos creator 使用i18n多语言探索

      本文链接:https://www.haomeiwen.com/subject/tebpqrtx.html