插件链接地址:
translate: 两行js实现html全自动翻译,页面无需改动,无语言配置文件,无API Key,对SEO友好!
支持语种:
/language.json
存在问题:
页面中类似弹窗那种,初始化时未显示的那部分,无法直接翻译,只能翻译可视区域内,无法翻译部分还需借助vue-i18n处理。
在html页面中使用:
<body> <div>普京将对中国进行国事访问热</div> <div>歌手导演洪啸:报名确认好档期呀热</div> <div>扫码可领个人劳动补贴?不实</div> <div>普京将对中国进行国事访问热</div> <div>歌手导演洪啸:报名确认好档期呀热</div> <div>扫码可领个人劳动补贴?不实</div> <div>普京将对中国进行国事访问热</div> <div>歌手导演洪啸:报名确认好档期呀热</div> <div>扫码可领个人劳动补贴?不实</div> <div>普京将对中国进行国事访问热</div> <div>歌手导演洪啸:报名确认好档期呀热</div> <div>扫码可领个人劳动补贴?不实</div> <div>普京将对中国进行国事访问热</div> <div>歌手导演洪啸:报名确认好档期呀热</div> <div>扫码可领个人劳动补贴?不实</div> <div id="translate"> <span>2</span> </div> </body> <script src="https://cdn.staticfile.net/translate.js/3.1.7/translate.js"></script> <script> translate.language.setDefaultTo('russian'); //chinese_traditional-繁体 chinese_simplified-简体 english-英语 translate.execute(); </script>
复制
vue中使用:
项目入口文件:index.html 引入:<script src="https://cdn.staticfile.net/translate.js/3.1.7/translate.js"></script> <script> translate.ignore.class.push('global_lang_btn'); //忽略不翻译的元素节点 let lang = localStorage.getItem("current_lang"); //页面刷新后能获取到之前设置的语种 if(lang){ translate.language.setDefaultTo(lang); translate.execute(); } <script> <el-dropdown placement="bottom"> <span class="el-dropdown-link"> <img src="@/assets/image/Language.svg" /> </span> <el-dropdown-menu slot="dropdown"> <el-dropdown-item> <span class="ignore" @click="setLang('zh')">中文简体</span> </el-dropdown-item> <el-dropdown-item> <span class="ignore" @click="setLang('hk')">中文繁體</span> </el-dropdown-item> <el-dropdown-item> <span class="ignore" @click="setLang('en')">English</span> </el-dropdown-item> </el-dropdown-menu> </el-dropdown> js: setLang(lang){ localStorage.setItem("current_lang",lang); translate.changeLanguage(lang); //不跳页面直接切换语言 //this.$nextTick(()=>{ //设置菜单下的选中状态的距离左侧的距离 //this.$refs.bgBarRef.style.width=this.$refs.navRefs[0].offsetWidth+"px"; //}) this.$i18n.locale = lang; }
复制