TinyMCE使用Javascript动态更改语言?

时间:2012-08-21 09:29:50

标签: javascript jquery tinymce

我正在构建一个在线编辑器,其中语言由用户设置设置,可以使用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
    });
}

有关如何做到这一点的想法或我做错了什么?

3 个答案:

答案 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行的评论:

https://jsfiddle.net/antd3tsf/19/