-
Notifications
You must be signed in to change notification settings - Fork 349
Open
Description
背景:
我们产品本身是简体中文语言,但是某些页面的部分内容会显示国外网站的信息(这些信息语种不固定,什么都有可能),需要将这些信息翻译成简体中文
使用:
onMounted(()=>{
const el = document.querySelect('className')
translate.setDocuments([el])
translate.listener.start()
nextTick(()=>{
translate.execute()
setTimeout(()=>{
translate.execute()
}, 500)
})
})
// 等接口获取了内容,dom渲染之后调用的方法
const changeLanguage = () => {
translate.changeLanguage('chinese_simplified')
}
效果:
- 如果这些原文信息是英文,日文这种的能成功翻译,但如果是匈牙利语,就会翻译失败
- 可是假如我直接调用 translate.request.translateText方法,传入正确的from,to参数是能翻译成功的,也就是说不是翻译能力有问题,而是changeLanguage方法有问题(个人猜测)
- 看了控制台请求,发现这个changeLanguage方法请求translate.json接口时,传的from:english ,可是明明是匈牙利语,所以个人认为是from参数导致的问题
- 查看源码里面的方法,发现getCharLanguage方法只判断了russian,english,romance,等几种语言,所以导致from参数只能判断这几种语言,如果是其他语言就会失败了
- 而且我在使用setLocal设置本地语言时,发现也没有作用
- 不管我是使用script引入的js还是用npm安装的 i18n-jsautotranslate都有这个问题
请问我改怎么做才能实现需要的需求
页面整体是简体中文,部分内容需要翻译成简体中文,而且需要翻译的原文语种不固定,有可能是任何一种语言
目前我是自己通过修改了源码里面的getCharLanguage方法,强行获取setLocal方法设置的语种,来修改from参数才能实现的
但是这样使用有个问题,就是每次进入这个页面我都得先调用setLocal方法先设置原文语种,然后再执行 changeLanguage方法
或者建议修改changeLanguage方法,添加一个from参数,现在我的理解是这个方法只有to参数
如果是我使用有问题,麻烦指导一下修改,谢谢
Metadata
Metadata
Assignees
Labels
No labels