目前比较成熟的翻译服务有:deepl,google, 有道,百度,必应 并且他们都有自己的一套api,本身也会支持网页翻译,但是这些api收费都比较贵。基础api可用,但是基础api 翻译字符受限,并且不支持html, json文件翻译。
先直接上官网体验地址:https://web-tools.cn/translate/。
本文主要讲解如何使用现有的这些api服务来翻译网页,json技术。
以下以google 翻译为准:
语种:en
<div class="name is">my name is team</div>
目标语种:ja
<divclass = "nameis">私の名前はチームです</ div>
翻译结果标签被强制去掉了空格,class包含的样式也被翻译,很明显,不符合期望。
如何才能做到标签不被翻译呢?我们继续下面的实验:
首先,我们将标签用特殊标记替换,最终再替换回来,如下:
# 将<div class="name is"> 替换为 1000-1 ,</div> 替换为1000-2,并且添加换行
1000-1
my name is team
1000-2
翻译结果:
1000-1
私の名前はチームです
1000-2
如果我们将1000-1 替换回去,就会发现我们翻译成功了!
原理:
- 为什么要用数字?
因为数字不会被翻译,最好使用比较长的数字,并且可标志。 - 为什么要用换行?
在多个语种中尝试过,如果不换行,翻译api会根据前后文关系,将标签位置被替换或者被翻译 - 如何替换标签,复原翻译结果:
可以先将转换标签先保存到一个对象中,当翻译完成后,将这些大数字替换回去。
以上的翻译方案,还存在着不足,后续文章继续完善。
如果对以上的技术方案有疑问,扣扣:1796958708,我这里有一套更完善的免费翻译api,当前已经翻译过上万文章,并且一直很稳定。