自定义翻译术语

如果你感觉某些翻译不准确,可进行针对性的定义某些词的翻译结果,进行自定义术语库。使用的方法为:

  1. translate.nomenclature.append(from, to, properties);

传入参数解释:

  • from 要转换的语种,传入如 chinese_simplified
  • to 翻译至的目标语种,传入如 english
  • properties 配置表,格式便是properties的格式,每行一个规则,每个前后用等号分割,等号前是要翻译的词或句子,等号后是自定义的翻译结果。传入如:
  1. 你好=Hello
  2. 世界=ShiJie

比如,要自定义 “网市场云建站系统” 、 “国际化” 这两个词由 简体中文 翻译为 英文 的结果,可以这么写:

  1. translate.nomenclature.append('chinese_simplified','english',`
  2. 网市场云建站系统=wangmarket CMS
  3. 国际化=GuoJiHua
  4. `);

这个自定义术语库的可以单独用一个js文件来定义,如此定义一次,在类似的项目中有使用,可直接将之前定义的js术语库文件复制来引入即可方便使用。

示例

这里给出一个示例用于参考,链接地址: https://res.wang.market/translate/doc/demo_nomenclature.html
您可打开后查看页面源代码,即可看到它是如何设置的。

注意

  • 自定义术语仅仅只是对某些词进行自定义,而不是直接对一整个句子!切记。如果你要直接对一整个句子或者整个翻译元素来进行设置其翻译结果,请查阅 离线翻译能力 ,此能力可以对所有翻译结果进行自定义修改。它会自动生成类似于传统的i18n的翻译前后的键值对。
  • 如果你是 翻译服务私有化部署 的方式,建议你不要用js的方式进行自定义术语,而是采用 翻译服务私有化部署 所自带的管理后台中 术语库 的能力,来更方便的增加自定义术语设置。
  • 自定义术语的设置要放到 translate.execute(); 上面
  • 建议你的版本在 translate.js v3.18.111.20260122 及以上版本

不传from参数的场景使用

针对这种场景: 用户做的网站,可能是中文的,也可能是韩语的,这个本地语种并不确定的场景, from 参数没法精确指定,这时
你还可以不设定固定的form参数,而是传入空字符串的方式,来自动适配当前网页语种。
使用示例:

  1. translate.nomenclature.append('','english',`
  2. 网市场云建站系统=wangmarket CMS
  3. 国际化=GuoJiHua
  4. `);

可以看到, from 参数传入的是 ‘’ 一个空字符串,这时它将会自动匹配当前本地语种作为from 。
针对这种from不设定的场景,需要注意几点:

  1. 要确保 translate.nomenclature.append 是放在</body></html>之间,也就是确保dom完毕后再触发它,这样它自动去获取当前网页翻译区域的语种时,因为dom渲染完了,才能准确的获取语种。 如果你把它放在head标签里,body都还没有,它如果去自动获取网页翻译区域语种,它都获取不到body,啥也获取不到,自然也就什么语种也获取不到了。
  2. 如果你使用 translate.language.setLocal(‘chinese_simplified’); 设置本地语种了,那么你这个 translate.nomenclature.append 可以放到任何位置,比如放到head里都是可以的,因为设置本地语种后, translate.js 就不会再去获取翻译区域的语种了,而是直接使用 translate.language.setLocal('chinese_simplified'); 所设置的语种作为from参数的值。
  3. 需要 translate.js v3.18.11.20250829 及更高版本 才支持不设置from