fex-team / umeditor

ueditor的mini版本,特点是体积小巧和更快的加载速度
http://ueditor.baidu.com/website/umeditor.html
1.43k stars 441 forks source link

JSP多语言设置问题 #565

Closed linj0218 closed 6 years ago

linj0218 commented 6 years ago

在vue.js项目中初始化富文本对象,想要默认英语,但是不管传什么参数都是默认中文

html: <template> <div> <div id="editor" type="text/plain" style="width: 1024px;height:500px;"></div> </div> </template>

js: import '@/../static/uedit/ueditor.config.js'; import '@/../static/uedit/ueditor.all.js'; import '@/../static/uedit/lang/zh-cn/zh-cn.js'; import '@/../static/uedit/lang/en/en.js';

mounted () { this.ue = window.UE.getEditor('editor', { BaseUrl: '', UEDITOR_HOME_URL: 'static/uedit/', lang: 'en' }); }

linj0218 commented 6 years ago

发现一个问题,实例化富文本对象的时候允许传入lang参数,但是没有读取这个默认值,上代码:

ueditor.all.js文件: Editor方法: var Editor = UE.Editor = function (options) { var me = this; me.uid = uid++; EventBase.call(me); me.commands = {}; me.options = utils.extend(utils.clone(options || {}), UEDITOR_CONFIG, true); me.shortcutkeys = {}; me.inputRules = []; me.outputRules = []; //设置默认的常用属性 me.setOpt(Editor.defaultOptions(me)); ` /* 尝试异步加载后台配置 */` ` me.loadServerConfig();` if(!utils.isEmptyObject(UE.I18N)){ //修改默认的语言类型 me.options.lang = checkCurLang(UE.I18N); // 注意checkCurLang这个方法 UE.plugin.load(me); langReadied(me); ` }else{` ` utils.loadFile(document, {` ` src: me.options.langPath + me.options.lang + "/" + me.options.lang + ".js",` ` tag: "script",` ` type: "text/javascript",` ` defer: "defer"` ` }, function () {` ` UE.plugin.load(me);` ` langReadied(me);` ` });` ` }` UE.instants['ueditorInstant' + me.uid] = me; };

checkCurLang方法: function checkCurLang(I18N){ for(var lang in I18N){ return lang } }

checkCurLang这个方法返回遍历i18N对象的第一个key,因为我把中文、英文都引入了,所以默认都是选择中文,而不是读取实例化时候传给的lang参数。把上面的Editor方法中获取默认语言的逻辑修改一下就可以了: 原本: me.options.lang = checkCurLang(UE.I18N); 改为: me.options.lang = me.options.lang || checkCurLang(UE.I18N);