自定义翻译术语
如果你感觉某些翻译不准确,可进行针对性的定义某些词的翻译结果,进行自定义术语库。使用的方法为:
translate.nomenclature.append(from, to, properties);
传入参数解释:
- from 要转换的语种,传入如 chinese_simplified
- to 翻译至的目标语种,传入如 english
- properties 配置表,格式便是properties的格式,每行一个规则,每个前后用等号分割,等号前是要翻译的词或句子,等号后是自定义的翻译结果。传入如:
你好=Hello
世界=ShiJie
比如,要自定义 “网市场云建站系统” 、 “国际化” 这两个词由 简体中文 翻译为 英文 的结果,可以这么写:
translate.nomenclature.append('chinese_simplified','english',`
网市场云建站系统=wangmarket CMS
国际化=GuoJiHua
`);
这个自定义术语库的可以单独用一个js文件来定义,如此定义一次,在类似的项目中有使用,可直接将之前定义的js术语库文件复制来引入即可方便使用。
注意,这行要放到 translate.execute(); 上面
示例
这里给出一个示例用于参考,链接地址: https://res.wang.market/translate/doc/demo_nomenclature.html
您可打开后查看页面源代码,即可看到它是如何设置的。
注意
- 建议你的版本在 translate.js v3.11.0.20241206 及以上版本
- 还有个能力跟自定义术语类似,离线翻译能力 ,此能力可以对所有翻译结果进行自定义修改。它会自动生成类似于传统的i18n的翻译前后的键值对。
不传from参数的场景使用
针对这种场景: 用户做的网站,可能是中文的,也可能是韩语的,这个本地语种并不确定的场景, from 参数没法精确指定,这时
你还可以不设定固定的form参数,而是传入空字符串的方式,来自动适配当前网页语种。
使用示例:
translate.nomenclature.append('','english',`
网市场云建站系统=wangmarket CMS
国际化=GuoJiHua
`);
可以看到, from 参数传入的是 ‘’ 一个空字符串,这时它将会自动匹配当前本地语种作为from 。
针对这种from不设定的场景,需要注意几点:
- 要确保
translate.nomenclature.append
是放在</body>
跟</html>
之间,也就是确保dom完毕后再触发它,这样它自动去获取当前网页翻译区域的语种时,因为dom渲染完了,才能准确的获取语种。 如果你把它放在head标签里,body都还没有,它如果去自动获取网页翻译区域语种,它都获取不到body,啥也获取不到,自然也就什么语种也获取不到了。 - 如果你使用 translate.language.setLocal(‘chinese_simplified’); 设置本地语种了,那么你这个
translate.nomenclature.append
可以放到任何位置,比如放到head里都是可以的,因为设置本地语种后, translate.js 就不会再去获取翻译区域的语种了,而是直接使用translate.language.setLocal('chinese_simplified');
所设置的语种作为from参数的值。 - 需要 translate.js v3.18.11.20250829 及更高版本才支持不设置from