首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TinyMCE windowManager打开带翻译的超文本标记语言表单

TinyMCE windowManager打开带翻译的超文本标记语言表单
EN

Stack Overflow用户
提问于 2016-03-14 13:58:32
回答 1查看 467关注 0票数 2

我正在将TinyMCE 3.x插件迁移到4.x

该插件使用多个由单个HTML文件定义的对话框。这些文件中包含国际化字符串,例如,

代码语言:javascript
运行
复制
<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时,调用:

代码语言:javascript
运行
复制
tinymce.activeEditor.windowManager.open

字符串不会被翻译。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-15 03:58:55

好了,看看3.x的tinymce_popup代码,我已经抓取了适当的行,现在正在我的对话html文件中这样做:

代码语言:javascript
运行
复制
$(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}
 }

我还必须编辑我的插件区域设置文件,以便从字符串的注册中删除插件名称。例如,来自:

代码语言:javascript
运行
复制
tinyMCE.addI18n('en.wce',{
  'key' : 'value',
  ...

代码语言:javascript
运行
复制
tinymce.addI18n('en',{
  'key' : 'value',
  ...

以及我所有的

代码语言:javascript
运行
复制
 {#wce.tokens}

简单地说

代码语言:javascript
运行
复制
 {#tokens}

在我的HTML中。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35980448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档