CMS的多语言机制

 

CMS做为内容管理平台,多语言是必备的功能之一。不过多语言本身也是比较复杂的,因此很多国内的CMS都无法支持多语言,有支持的,但是考虑不够全面,开发的时候,会出现各种BUG,导致很难完全使用。

整体上来讲,多语言类似把CMS的维度升级了,之前是一维的,平面的,多语言相当于增加了一个维度,每个语言就是一个站点,相当于之前是做一个站点,多语言可以在一个站点里面做出N个子站点。

比如,我们翻译英文,其实也可以翻译成其他中文,这边是服务1,翻译成服务2,类似多一个子站。站1叫服务1,站2叫服务2,两个还是有关联。听起来有点绕口,但是道理是一样的。

 

 

多语言主要涵盖界面翻译、内容翻译,此外还有一些配置、货币符号等相关联的,所以,不仅仅是翻译的问题,是要有一套完整的多语言体系和机制,本文就CMS的多语言机制做一个简单分析,仅供参考。

之前也讲过几篇关于CMS和多语言的,有兴趣可以点击阅览。

构建英文网站应该用什么框架?

常见的CMS平台比较

外贸网站如何实现网站多语言版本开发?

 

 

 

 

1. 界面如何翻译

 

很久很久以前,做软件都有一个语言包,用来翻译界面,语言包一般通用的格式是PO格式,里面的内容其实就是一一对应的翻译而已,没有什么特别。

这个只是对于界面,或者说皮肤的翻译,这个比较简单。

类比网站就是写死在代码的里面的翻译,比如代码里面写了个Home,那就翻译成首页。

但是问题来了,CMS几乎所有的内容都是用户可以管理的,比如菜单,后台是可以编辑的,页脚版权所有,文字也是可以编辑的,内容分类更是,用户可以增加自己想要的任何分类信息,所以界面翻译,基本上在CMS里面用不上。

补充一下,还是用得上 :)  后台界面很多是固定的,所以完全可以写死代码,界面翻译,这种就是类似于传统软件。

 

2. 菜单如何翻译?

 

 

一般CMS中,这种菜单类的功能都是可以配置的,甚至很多页面都是CMS可以直接建出来的,但这部分可以属于建站部分,也可以属于内容部分,严格来讲,其实这部分不属于内容部分,因为内容只是article和tag之类的,菜单等部分属于建站部分。

在Drupal里面,对这类内容起了一个名字,叫配置,所有的这些设置,包括网站的名字、网站的介绍等等,类似于建站部分的工作,但是需要翻译,都叫配置。

Drupal的核心配置是可以翻译的,因此,只要生成了一个配置,这个配置在Drupal里面,就默认可以翻译了。

因此,解决了这类配置的翻译,也就是顺理成章的实现了菜单的翻译。

 

 

举例来说:

1. 全站的配置,站名、Logo、站点说明等。

2. 全站的主菜单,和菜单对应的URL,都要支持翻译。

3. 我们开发了一个功能,API读取淘宝店铺信息,后台要填写淘宝店铺名称、API Key等信息。

那么新建的这个页面和后台页面都要翻译的话,这些配置信息都要可以翻译,所以就是类似的配置翻译。

 

 

 

3. 内容如何翻译?

 

内容的翻译,是重中之重,那么要实现内容翻译,应该如何架构?

Drupal的内容翻译在内核自带,也就是每一个content,默认就有一个语言,如果只有一种语言,就是默认语言,如果启用了多语言,那么就有一个语言版本。

1)所有的语言的content id是相同的,所以启用了多语言加载content的时候,需要指定语言版本。

2)同一个content的翻译的不同语言的版本,做一个记录。

     所以,数据表里面有一个source content,就是标记是从那个内容翻译过来的。

 

整体的架构,我们可以参考下图,从建站的角度来讲,配置翻译是一个核心要点,这样可以让所有模块都能兼容多语言。

 

 

另外,想要了解跟过关于CMS管理视频的产品,也可以了解我们的《开源在线视频教学平台介绍》。

 

 

1、常见的CMS平台比较

2、CMS最基础的核心功能清单

4、Headless CMS:以API为输出的内容系统的构建

5、基于Drupal的在线教育网站案例

6、构建英文网站应该用什么框架?

7、外贸网站如何通过SEO和内容引流

8、如何用开源的系统来构建知识库平台?

9、外贸网站如何实现网站多语言版本开发?