我正在构建一个在线编辑器,其中语言由用户设置设置,可以使用AJAX动态更改(页面不重新加载),因此我第一次正确初始化tinyMCE对象但是在用户尝试初始化之后再次,编辑器控件中的文本具有不正确的值(“advanced.bold”而不是“Bold”,advanced.italic_desc而不是“Italic”等),但插件弹出窗口的语言正确!
基本上我的代码每次用户更改首选项中的语言时都会执行init方法...
initMCE: function(lang) {
tinyMCE.init({
language : lang,
mode : "textareas",
theme : "advanced",
relative_urls : false,
editor_selector : "tinymce",
plugins : "emotions,spellchecker,advhr,insertdatetime,preview,media,inlinepopups,xhtmlxtras",
// Theme options - button# indicated the row# only
theme_advanced_buttons1 : "fontselect,fontsizeselect,bold,italic,underline,forecolor,|,bullist,numlist,|,blockquote,|,image,|,link,unlink,|,code,spellchecker",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "right",
theme_advanced_resizing : true,
content_css : "../_style/_css/style.css",
inline_styles : false
});
}
有关如何做到这一点的想法或我做错了什么?
答案 0 :(得分:0)
我创建了一个fiddle fork,尝试让它工作,并认为您可能需要正确关闭以前的实例。语言没有正确更改 - 您可能希望报告此here的错误修正。
答案 1 :(得分:0)
我在他们的网站上报告了这个错误,他们告诉我在修复它时使用解决方法(看起来加载lang调用只是在init中运行一次)。在init之后使用这一行,语言更改工作正常:
tinyMCE.ThemeManager.requireLangPack(THEME_IN_USE);
检查this fiddle是否正常工作
答案 2 :(得分:0)
您可以使用以下内容:
function init(lang) {
//language_url: lang === 'en' ? null : 'url to es file',
options.language = lang;
tinymce.remove(editor);
tinymce.init(options);
tinymce.execCommand('mceRepaint');
}
这个小提琴对我有用,请注意第31行的评论: