ueditor 动态设置多语言

i18n 在切换语言时,是不会刷新浏览器的

ueditor 为什么切换不了多语言

f = UE.Editor = function(a) {
        var d = this;
        d.uid = e++, EventBase.call(d), d.commands = {}, d.options = utils.extend(utils.clone(a || {}), UEDITOR_CONFIG,
            !0), d.shortcutkeys = {}, d.inputRules = [], d.outputRules = [], d.setOpt(f.defaultOptions(d)), d.loadServerConfig(),
          utils.isEmptyObject(UE.I18N) ? utils.loadFile(document, {
            src: d.options.langPath + d.options.lang + "/" + d.options.lang + ".js",
            tag: "script",
            type: "text/javascript",
            defer: "defer"
          }, function() {
            UE.plugin.load(d), c(d)
          }) : (d.options.lang = b(UE.I18N), UE.plugin.load(d), c(d)), UE.instants["ueditorInstant" + d.uid] = d
      };

原因在这里:

(d.options.lang = b(UE.I18N)

b方法是在 UE.I18N 中寻找,只要有语言就返回,也就是返回第一个

function b(a) {
      for (var b in a) return b
    }

而我们改变语言时 还是取的第一个

所以我们只要


import "@public/lib/UEditor/lang/zh-cn/zh-cn.js";
import "@public/lib/UEditor/lang/en/en.js";

if (Object.keys(UE.I18N).length > 1) {
      // 浅拷贝 UE.I18N 的属性 到 UE.I18N1
      UE.I18N1 = Object.assign({}, UE.I18N);
    }
    UE.I18N = {};
    // 重新赋值语言
    UE.I18N[this.config.lang] = UE.I18N1[this.config.lang];

即可

当然最优的方式是使用 ueditor的 utils.loadFile 不过等他加载完毕,又给合到了UE.I18N里面,到时候切换多语言还有问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值