TinyMCE windowManager открыть HTML-форму с переводом

Я перевожу плагин TinyMCE 3.x в 4.x

Плагин использует несколько диалогов, определенных отдельными HTML-файлами. Эти файлы имеют интернационализированные строки, например,

<select id="reading" name="reading">
  <option value="corr">{#wce.correction}</option>
  <option value="comm">{#wce.commentary}</option>
  <option value="alt">{#wce.alternative}</option>
</select>

В TinyMCE 3.x кажется, что всплывающий плагин запускал этот контент через средство перевода tinymce, но с использованием 4.x, вызывая:

tinymce.activeEditor.windowManager.open

строки не переводятся.

Любой совет?

1 ответ

Итак, глядя на код 3.x tinymce_popup, я собрал соответствующие строки и сейчас делаю это в моих HTML-файлах диалога:

$(document).ready(function() {
   translate();
 });
 function translate() {
   var c=document.body.innerHTML;
   var d=document.title;
   var a;
   if(top.tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}
   a=c.replace(/\{\#([^\}]+)\}/g, function(a, b) {
     var c=top.tinymce.translate(b); 
     return (c != b) ? c : '{#' + b + '}';
   });
   if(a!=c){document.body.innerHTML=a}
   a=d.replace(/\{\#([^\}]+)\}/g, function(a, b) {
     var c=top.tinymce.translate(b);
     return (c != b) ? c : '{#' + b + '}';
   });
   if(a!=d){document.title=d=a}
 }

Мне также пришлось отредактировать файлы локали моего плагина, чтобы удалить имя плагина из регистрации строк. например, из:

tinyMCE.addI18n('en.wce',{
  'key' : 'value',
  ...

в

tinymce.addI18n('en',{
  'key' : 'value',
  ...

и все мои

 {#wce.tokens}

просто

 {#tokens}

в моем HTML.

Это заставляет меня в основном работать сейчас. Надеюсь, что это полезно для других.

Другие вопросы по тегам