tinymce 如何实现动态国际化

简介: tinymce 是一个非常强大的富文本编辑器,tinymce是支持开启通过配置 language 来决定 tinymce 的语言版本例如下面配置 日文 英文 中文 且在同一个页面

tinymce 如何实现动态国际化

tinymce 是一个非常强大的富文本编辑器,tinymce是支持开启通过配置 language 来决定 tinymce 的语言版本例如下面配置 日文 英文 中文 且在同一个页面

tinymce.init({
selector: 'textarea.tinymce',
plugins: `code image imagetools media`,
toolbar: `code`,
skin: false,
language: 'ja',
min_height:240,
skeletonScreen: true,
content_css: false,
  }).then(()=>{
tinymce.init({
selector: 'div#mytextarea',
menubar: 'file edit  insert view format table tools help',
skin: false,
plugins: 'tpImportword',
toolbar: 'tpImportword',
content_css: false,
min_height:240,
skeletonScreen: true      }).then(()=>{
tinymce.init({
selector: 'div#mytextarea3',
skin: false,
language: 'zh_CN',
content_css: false,
min_height:240,
skeletonScreen: true,
plugins: `code`,
toolbar: `code`,
        })
    })
  });

网络异常,图片无法展示
|

注意 需要每一个tinymce editor 实例 完成之后才能进行实例下一个 所有需要采用 tinymce.init({...}).then(()=>{ tinymce.init({...}).then(()=>{ ... })... }) 的用法。 否则只能得到 最后一个实例的语言版本

但是问题来了 因为 tinymce 的菜单面板 是动态生成 , tinymce 官方 这一块的逻辑并没有考虑到 不同语言实例在 同一页面,【具体,可以近似看成 原型链的问题 】,所以菜单面板的语言就会出现 生成的是最后一个语言配置, 如下图 英文实例 菜单 生成 结果为中文

网络异常,图片无法展示
|

那么这个问题该 如何解决

解决方案就是 当鼠标 在每个tinymce 实列上方,立即进行一次语言重置。

具体方案 ,通过 如下代码

editor.editorContainer.onmouseover= () => {
let_language=editor.settings.languagelet_currentCodeVal=editor.editorManager.i18n.getCode()
_currentCodeVal!=_language&&editor.editorManager.i18n.setCode(_language)
  };

解决方案 我已经集成 到了 Tinymce-plugin

你可以通过下载tinymce-plugin, 并配置 tp_i18n 为 true 来实现 优雅的同时渲染多语言版本,实现代码如下:

tinymce.init({
language: 'zh_CN',
content_css: false,
tp_i18n: true,
min_height:240,
plugins: `code`,
toolbar: `code`,
  })

网络异常,图片无法展示
|

同时 tinymce-plugin 也集成实现了 tinymce动态国际化

通过配置 tp_i18n_langs: true 然后自定义菜单项 加入 tpI18n 来开启此项功能

实现如下

tinymce.init({
selector: 'div#mytextarea',
menubar: 'file edit  insert view format table tools help mymenubar',
skin: false,
tp_i18n: true,
plugins: 'tpImportword',
toolbar: 'tpImportword',
tp_i18n_langs: true,
content_css: false,
menu: {
mymenubar: { title: 'Extension', items: 'tpI18n'  },
      },
min_height:240,
skeletonScreen: true,
setup: (
editor      )=>{
      }
    })

动态修改前为英文

网络异常,图片无法展示
|

动态修改后为韩文

网络异常,图片无法展示
|

点击查看更多

目录
相关文章
|
前端开发 JavaScript 小程序
Taro框架使用canvas生成图片-附带源码和效果
Taro框架使用canvas生成图片-附带源码和效果
1358 0
Taro框架使用canvas生成图片-附带源码和效果
|
JavaScript
【vue】 vue2 中使用 Tinymce 富文本编辑器
【vue】 vue2 中使用 Tinymce 富文本编辑器
1505 6
|
JavaScript 前端开发
vue3通过render函数实现一个菜单下拉框
【8月更文挑战第18天】vue3通过render函数实现一个菜单下拉框
417 0
|
算法 前端开发 开发工具
vitepress从0到1,让每个前后端小伙伴都拥有一个属于自己的博客
这篇文章详细介绍了如何从零开始使用VitePress搭建个人博客,包括项目初始化、配置美化及部署全流程。
|
Oracle Java 关系型数据库
jdk17安装全方位手把手安装教程 / 已有jdk8了,安装JDK17后如何配置环境变量 / 多个不同版本的JDK,如何配置环境变量?
本文提供了详细的JDK 17安装教程,包括下载、安装、配置环境变量的步骤,并解释了在已有其他版本JDK的情况下如何管理多个JDK环境。
22092 0
|
消息中间件 存储 Kafka
【Kafka】Kafka 的日志保留期与数据清理策略
【4月更文挑战第13天】【Kafka】Kafka 的日志保留期与数据清理策略
|
移动开发 JavaScript 前端开发
vue/react项目刷新页面出现404的原因以及解决办法
vue/react项目刷新页面出现404的原因以及解决办法
1225 0
|
数据中心 容器
容器与虚拟机的区别:以Web应用部署为例
容器与虚拟机的区别:以Web应用部署为例
431 0
|
人工智能 算法 开发工具
【视觉智能AI场景解决方案——AI智慧运动】
  随着全民健身热潮的提升,智慧健身运动随着数字化新技术的进步,以及在运动健身领域的应用逐渐趋于成熟,智能运动健身将为传统运动健身提供更多新的方向和玩法,满足不同项目爱好者的健身需求。随着AI运动健身技术的进一步普及与应用,基于ai的智慧健身运动技术未来可打造的场景化空间会越来越多,体育运动与科技娱乐,智慧健身运动在线上体育行业未来会创新运动场景,丰富运动体验,提升竞技娱乐性,推动全民健身走向新的高度。
1612 3
【视觉智能AI场景解决方案——AI智慧运动】

热门文章

最新文章