如何在 TinyMCE v4 中动态设置语言文件

How to set language file dynamicly in TinyMCE v4

我尝试以一种从 <html> 属性获取语言的方式设置我的脚本。作为一个运行良好的基本概念,唯一的问题是我有一个自定义的本地化文件所在的位置。

如何为 en_US 设置参数 language_url。我尝试了一个空字符串 '' 以及值 false 但没有成功。我收到错误:

Failed to load plugin url: https://localhost/js/tinymce/langs/en_US.js

那是因为没有en_US的语言文件。

var lang = $('html').attr('lang');

tinymce.init({ 
    selector: 'textarea',
    language_url: (lang === 'en' ? '' : '/js/tinymce/langs/de.js'),
    language: (lang === 'en' ? 'en_US' : 'de')
});

language_url没有默认值吗?

对此有两条评论...

如果您将语言文件放在 TinyMCE 的 langs 文件夹中,您根本不需要使用 language_url 配置选项。仅当您想将文件存储在不同位置时才需要这样做。您上面的示例似乎暗示您将语言文件放在 TinyMCE 发行版的 langs 文件夹中,如果是这种情况,您根本不需要该设置。

如果您确实需要该设置(但只是有时),您可以使用 JavaScript 来实现...

您首先在页面上创建一个 "default" 初始化对象作为 JavaScript 变量,然后稍后引用它。例如:

var default_init = {
  theme: "modern",
  plugins....,
  toolbar....
}

...那么当你想调用一个 TinyMCE 实例时,你可以使用该基础对象来创建你的 init:

var lang = $('html').attr('lang');
if (lang !== 'en') {
  default_init.language_url = '/js/tinymce/langs/' + lang + '.js';
}
tinymce.init(default_init);