TinyMCE使用Javascript动态更改语言

TinyMCE change language dynamically with Javascript?

本文关键字:语言 动态 使用 Javascript TinyMCE      更新时间:2023-09-26

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

有什么想法吗?或者我做错了什么?

我创建了一个fiddle fork,试图使其工作,并认为您可能需要正确关闭以前的实例。语言没有正确更改-您可能需要在此处报告此错误修复程序。

我在他们的网站上报告了这个错误,他们告诉我在修复它时使用一个变通方法(似乎加载lang调用只是在init中运行一次)。在init之后使用这一行,语言更改工作正常:

tinyMCE.ThemeManager.requireLangPack(THEME_IN_USE);

检查这个小提琴,看看它在上工作

您可以使用这样的东西:

 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/