2

我正在将 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

字符串没有被翻译。

有什么建议吗?

4

1 回答 1

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 中。

这让我现在大部分时间都在工作。希望对其他人有帮助。

于 2016-03-14T19:58:55.460 回答