在 vue 中使用 translate.js
方式一:
package.json 文件
增加
"i18n-jsautotranslate": "^3.12.7",
页面上出现语言切换的Select下拉切换菜单
<template>
<div id="translate"><!-- 这里是显示语种切换的select,不需要时直接删掉这个div即可。 --></div>
</template>
JS部分:
import translate from 'i18n-jsautotranslate'
window.translate = translate; //方便审核元素用控制台调试
translate.service.use('client.edge'); //翻译通道
translate.whole.enableAll(); //整体翻译
//页面渲染完毕后触发执行 translate.execute();
nextTick(() => {
translate.execute();
setTimeout(function(){
//vue的input中的placeholder属性会在nextTick之后延迟渲染,而这个属性是没有别的方式来监听的,所以额外加一个定时器
translate.execute();
}, 500);
translate.listener.start(); //开启html页面变化的监控
});
onUpdated(() => {
translate.execute();
});
这里有个示例可以参考: https://lruihao.github.io/vue-el-demo/#/translate-js
方式二:
<script src="https://cdn.staticfile.net/translate.js/3.5.2/translate.js"></script>
<script>
translate.language.setLocal('chinese_simplified'); //设置本地语种(当前网页的语种) 具体参考 http://translate.zvo.cn/41551.html
translate.service.use('client.edge');
translate.listener.start(); //开启html页面变化的监控,对变化部分会进行自动翻译。 具体参考 http://translate.zvo.cn/41552.html
translate.execute(); //执行翻译初始化操作,显示出select语言选择
</script>
完整的index.html 示例:
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + Vue</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
<script src="https://cdn.staticfile.net/translate.js/3.4.2/translate.js"></script>
<script>
translate.language.setLocal('chinese_simplified'); //设置本地语种(当前网页的语种)。如果不设置,默认就是 'chinese_simplified' 简体中文。 可填写如 'english'、'chinese_simplified' 等,具体参见文档下方关于此的说明
translate.service.use('client.edge');
translate.listener.start(); //开启html页面变化的监控,对变化部分会进行自动翻译。注意,这里变化区域,是指使用 translate.setDocuments(...) 设置的区域。如果未设置,那么为监控整个网页的变化
translate.execute(); //执行翻译初始化操作,显示出select语言选择
</script>
</body>
</html>
注意
fan方式二在vue里面进行调用,比如你vue页面中有个切换语言的按钮,点击后进行切换为某种语言,千万不要在vue页面中引入 translate.js ,这样会造成重复引入重复翻译, vue中使用时只需要前面加个windows就好了,比如 主动进行语言切换 不是vue的情况正常使用是 translate.changeLanguage('english');
而在vue代码中触发则是 window.translate.changeLanguage('english');
文档编写
方式二的文档编写者:青岛云迪智能科技有限公司 - 赵安吉
如果您在使用时有什么问题,需要付费求助,可以联系 赵安吉微信 HoneyZ1103 具体需要他帮什么、以及费用你们可以自行商谈