随着国际化的发展,越来越多的网站要求有多语言功能,而多语言站点的设计有多种实现方式,下面笔者就简单介绍下几种网站多语言实现的思路。

配置文件法

做过国际化的人都知道,我们在进行国际化的时候都是通过各种配置文件进行语言翻译的,我们将各国语言事先的翻译写入到配置文件中,然后网站加载的时候,通过识别哪种语言,然后去各个配置文件加载所需要的翻译。

这种方式适合一些固定的企业站,就是页面内容不多,且都是固定的,不经常修改的,通过这种方式实现简单,同时也方便修改。

页面内容替换法

我们使用谷歌浏览器的时候,它有个功能是翻译网站,借鉴这个思路,我们可以使用页面内容替换法来进行多语言的设计。

思路就是先获取到网页的内容,然后对整个网页进行翻译。因为现在有很多翻译的api,我们使用它们就可以对整个网页内容进行翻译。这里需要注意的事项是网页源码内容会包含各种html标签,我们需要将标签过滤才能翻译,当然有些强大的翻译api可以无视html标签进行翻译,但是这样返回给我们的数据我们没法使用,我们需要将标签添加上,才能在页面上显示。所以我们的思路就是将去掉html的网页内容保存起来,然后替换的时候,根据原内容进行匹配替换,这样就解决了html标签问题。

数据库额外字段法

我们都知道网站的数据是保存到数据库中的,然后展示的时候从数据库中获取出来,如果我们保存的时候就保存成多份语言,然后获取的时候就可以获取到多语言了。

对于如何保存额外翻译字段到数据库有两种方式

  • 统一插入法
    插入字段的时候,先对插入内容进行翻译,然后一起插入数据库,这种方式对代码的侵入比较高,不适合大型项目。

  • 拦截器法
    这种方法是通过在插入数据库层的时候进行拦截,然后统一翻译,插入数据库,也就说,我们的业务代码不需要修改,只需要对数据库插入进行拦截,然后插入额外翻译字段就可以。

总结

多语言国际化是软件开发过程中经常遇到的,一个优秀的软件一定是面向世界的。国际化是一项繁琐的工作,要想做好,需要做很多工作,每个单词的翻译,每个句子的翻译,都需要做到严丝合缝。

细节决定成败,对于国际化,我们需要思考的是如何优雅省时的完成高质量的翻译,这是需要不断研究的。