AI i18n,两行js实现html全自动翻译。
2 min
介绍
使用示例
在浏览器中使用(html + js)
<!-- 增加某种语言切换的按钮。注意 ul上加了一个 class="ignore" 代表这块代码不会被翻译到 -->
<ul class="ignore">
<li><a href="javascript:translate.changeLanguage('english');">English</a></li>|
<li><a href="javascript:translate.changeLanguage('chinese_simplified');">简体中文</a></li>|
<li><a href="javascript:translate.changeLanguage('chinese_traditional');">繁體中文</a></li>
</ul>
<!-- 引入多语言切换的js -->
<script src="https://cdn.staticfile.net/translate.js/3.12.0/translate.js"></script>
<script>
translate.selectLanguageTag.show = false; // 不出现的select的选择语言
translate.service.use('client.edge'); // 设置机器翻译服务通道
translate.ignore.class.push('ignore'); // 忽略翻译
translate.listener.start() // 开启html页面变化的监控
translate.execute(); // 执行翻译初始化操作
</script>
在Vue中使用
安装
npm i i18n-jsautotranslate
使用
import translate from 'i18n-jsautotranslate' translate.selectLanguageTag.show = false // 不出现的select的选择语言 window.translate = translate // 方便审核元素用控制台调试 translate.service.use('client.edge') // 设置机器翻译服务通道 translate.whole.enableAll() // 整体翻译 // 页面渲染完毕后触发执行 translate.execute(); nextTick(() => { translate.execute() // 执行翻译初始化操作 // vue 的 input 中的 placeholder 属性会在 nextTick 之后延迟渲染,而这个属性是没有别的方式来监听的,所以额外加一个定时器 setTimeout(() => { translate.execute() // 执行翻译初始化操作 }, 500) translate.listener.start() // 开启html页面变化的监控 }) onUpdated(() => { translate.execute() // 执行翻译初始化操作 })
注意: 比如你vue页面中有个切换语言的按钮,点击后进行切换为某种语言,千万不要在vue页面中引入 translate.js ,这样会造成重复引入重复翻译, vue中使用时只需要前面加个windows就好了; 不是vue的情况正常使用是
translate.changeLanguage('english')
; 而在vue代码中触发则是window.translate.changeLanguage('english')
;
完。