Javascript TinyMCE 4插件:Can';无法使tinymce.Editor.getLang()正常工作

Javascript TinyMCE 4插件:Can';无法使tinymce.Editor.getLang()正常工作,javascript,jquery,tinymce,tinymce-4,Javascript,Jquery,Tinymce,Tinymce 4,我目前正在将一个插件从TinyMCE 3.x切换到新版本TinyMCE 4.0.26。我在尝试国际化我的插件标签时遇到了严重的问题 在plugin.js中,我通过调用 tinymce.PluginManager.requireLangPack('myplugin'); 我的i18n文件langs/de.js如下所示: tinyMCE.addI18n('de', { myplugin: { button : 'Link einf\u00FCgen/bearbeiten', t

我目前正在将一个插件从TinyMCE 3.x切换到新版本TinyMCE 4.0.26。我在尝试国际化我的插件标签时遇到了严重的问题

在plugin.js中,我通过调用

tinymce.PluginManager.requireLangPack('myplugin');
我的i18n文件langs/de.js如下所示:

tinyMCE.addI18n('de', {
  myplugin: {
    button : 'Link einf\u00FCgen/bearbeiten',
    title : 'Link einf\u00FCgen/bearbeiten'
  }
});
当我访问静态上下文时

tinymce.i18n.data.myplugin
我可以看到变量按钮和标题都是可用的

问题是:

调用editor.getLang('myplugin.button')时,我得到的是{#myplugin.button},而不是相应的变量值

在我稍微研究了一下源代码之后,我发现它希望语言代码存在于tinyMCE.i18n.data…中,而tinyMCE.i18n.data…中不可用

getLang: function(name, defaultVal) {
            return (
                this.editorManager.i18n[(this.settings.language || 'en') + '.' + name] ||
                (defaultVal !== undefined ? defaultVal : '{#' + name + '}')
            );
        },
@看


我做错什么了吗?是否有人为新的TinyMCE版本创建了插件并设法使国际化工作?

您可以使用以下方法直接访问正确的字符串:

tinymce.EditorManager.i18n.data[ed.getParam('language') + '.myplugin_name']['my_key'];

我终于成功了,也许它能帮上忙,虽然这是一岁的孩子,但可以帮助其他人。 由于创建插件的整个方式从3.X更改为4.X,因此我添加到插件中的requireLangPack的位置不正确

我在做:

tinymce.PluginManager.add('myplugin', function(editor, url) {
     tinymce.PluginManager.requireLangPack('myplugin');
     ...
});
何时应该:

tinymce.PluginManager.requireLangPack('myplugin');
tinymce.PluginManager.add('myplugin', function(editor, url) {

         ...
});
此外,我访问这些变量的方式是:

editor.getLang("myplugin").title;
而不是

editor.getLang("myplugin.title");

希望它能在同样的情况下对其他人起作用。

感谢所有人,他们都试图在这方面帮助我。不幸的是,我无法使我的插件在弹出窗口中使用翻译后的标签,但最终找到了解决方案

在TinyMCE 4.2.6版中,下面的所有内容都可以正常、轻松地工作

下面是使用名为example的插件使一切正常工作的步骤:

  • 在plugins/example上创建插件目录
  • 创建所需的插件JS文件plugins/example/plugin.min.JS(看看这个例子)——根据@msqar的建议,我在我的插件函数之前添加了requireLangPack调用
  • 现在在langs/de_AT.js和plugins/example/langs/de_AT.js上创建翻译文件(请用语言代码替换de_AT)
tinymce.add18n('de_AT'{
“Title”:“Titel”,
“示例插件”:“Beispielplugin”

});至少你可以看到可用的变量,在我的上,对象数据是空的:(到目前为止有没有解决方案?我也有同样的问题。使用Tiny 4.1.10。@msqar:你有什么问题?仍然不适合我,而且即使我的语言是
zh_TW
它加载
langs/en.js
…缺乏示例