gpt4 book ai didi

javascript - TinyMCE 4 插件 : Can't get tinymce. Editor.getLang() 工作

转载 作者:搜寻专家 更新时间:2023-11-01 04:36:57 25 4
gpt4 key购买 nike

我目前正在将一个插件从 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

我可以看到变量 buttontitle 都可用。

问题:

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

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

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

@见https://github.com/tinymce/tinymce/blob/4.0.26/js/tinymce/classes/Editor.js#L1105

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

最佳答案

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

以下所有内容在 TinyMCE 4.2.6 版中都可以正常工作。

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

  • plugins/example 中创建您的插件目录
  • 创建所需的插件 JS 文件 plugins/example/plugin.min.js(查看示例 http://pastebin.com/jEARrtWN)- 按照 @msqar 的建议,我添加了 requireLangPack 在我的插件函数之前调用。
  • 现在在 langs/de_AT.jsplugins/example/langs/de_AT.js 中创建您的翻译文件(请用您的语言代码替换 de_AT)

tinymce.addI18n('de_AT', {
'Title': 'Titel',
'Example plugin': 'Beispielplugin'
});

  • 在像这样设置 TinyMCE 时,所有(在我的示例中)英文标签都自动转换为 de_AT:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="">
</head>
<body>
<textarea name="test"></textarea>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="tinymce/tinymce.min.js"></script>
<script>
jQuery(document).ready(function ($) {
$('textarea').tinymce({
theme: "modern",
plugins: 'example',
toolbar: 'example',
language:'de_AT'
});
})
</script>
</body>
</html>

结果

使用工具栏内的按钮打开对话框时,窗口标题 Example plugin 会自动转换为 Beispielplugin

无需特别调用 editor.getLang。

我希望本指南也适用于附近的其他开发人员。我将不胜感激任何积极或消极的反馈。

非常感谢@stackoverflow 的所有开发人员。

关于javascript - TinyMCE 4 插件 : Can't get tinymce. Editor.getLang() 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com