此文为上篇文字的后续《网站多语言实现技术细节之一》。
编写第三方的翻译接口实现,我们以百度翻译为例,首先需要注册百度开放平台的账号,成为开发者,平台会分配一个appid。然后进行开发者认证(如仅需标准版可跳过),接着开通通用翻译api服务,最后编写实现接口的方法。百度翻译技术文档提供了demo代码,可以参照,大概的逻辑是先编写签名算法,然后编写调用接口方法,这个方法参数里含签名和你要进行翻译的内容,以及平台分配的appid,最终生成一个url,然后通过您的开发语言中的执行url方法去获取内容。内容获取之后就可以解析了,接口返回内容一般都是json格式,如:{“from”: “zh”, “to”: “en”,”trans_result”: [{“src”: “中国”, “dst”: “china”}] }。
获取翻译内容之后我们还需要进一步处理,我们在做软件开发时候的做法是将该翻译内容以json方式存入缓存文件中,这个缓存文件就是我们自动生成的语言包,针对不同的语言,我们只需按照对应的语言缩写,如:en.json文件命名即可,这么做的目的,下次页面再加载的时候不用再调用翻译接口,因为翻译接口都是有调用数量限制的,超过时需要付费,并且执行返回结果需要时间,如果页面要翻译的内容较多,会有很大延迟。我们完全可以预先将翻译的内容准备好,这样用户在访问页面的时候,加载都是秒开的,用户体验做到最佳。
通过了上面的执行之后,要翻译的内容都会被翻译,有了翻译好的语言包文件,页面再显示就很easy了,其实上面我们已经介绍了方法,就是我们在收集页面待翻译的字符串的函数。