В настоящее время я переключаю плагин с 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
Я вижу, что обе переменные button и title доступны.
ЭТА ПРОБЛЕМА:
При вызове 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 и сумел заставить работать интернационализацию?