跳转到主要内容
蓝眼泪 提交于 21 May 2014

原文链接:Localized and Multi-Lingual Content in Drupal 7

Drupal管理翻译的方式一直随着Drupal的不同版本在发展.在Drupal中总能找到一些如何设置设置多语言站点的东西,它需要核心与贡献模块的结合起来共同起作用.

在Drupal7中有一些很棒的新特性,但是由于我们是以两个不同的管理内容翻译系统为结束的,所以也有很多新的问题和选择.如果你是Drupal多语言系统或Drupal7的新手,你将遇到很多关于这方面的问题.

为使整个过程更容易,我们在本文中概括如下:

理解界面和内容翻译的区别

讨论Drupal7中两个内容翻译的不同系统以及它们之间是如何不同

走一遍安装和设置Drupal7多语言站点的过程

提供大量有益的模块,文章和资源列表

界面翻译

翻译系统有两个基本组成:界面翻译和内容翻译.

界面翻译与网站使用的多种多样的文本串有关,如标签上使用的文本按钮.无论网站包含什么实际内容,这些元素都是一样的.因为这些字符串是标准化的,Drupal能够建立一个系统为每个人提供这些元素在不同语言中翻译的值.利用这一点你可以启用核心区域模块,这可以允许你抓取从Drupal站点定位器翻译的文本并将它们引入你的网站.然后,你会发现无需自己翻译就可以在你的网站上有法语或德语版本的界面文本.

对开发团队来说,接口系统的核心是经过t()函数处理的字符串。在Drupal站点定位器主页的图上你可以看到有多少这样的字符串被翻译成各种语言版本。该网站起到一个中心的作用,它使用来自世界各地的翻译者为所有Drupal项目维护的界面翻译,包括核心和贡献模块。

内容翻译

当你完成了界面翻译,接下来真正的挑战就是找到一种好的方式翻译内容。世界上没有内容完全相同的两个网站,所以不可能实现自动下载。要做到这一点,你需要一个可以让你存储内容翻译版本的地方和一个选择显示内容的系统。

这个问题已经在Drupal的早期版本中通过创建完整的需要翻译的节点副本解决了。所以在法语节点有所有的法语内容翻译,在英语节点有所有的英语内容翻译。然后这些被集成了翻译集,因此Drupal中可以知道哪些是相同内容。

这是在使用Drupal7旧版本的系统,如果启用了内容翻译模块的核心,它在Drupal7中仍是可用的。

实体翻译

在Drupal7种创建了一个新的内容翻译的模型。在这个系统中每块内容包含一个单独的节点,但在节点的字段中可以有多个副本,在不同的语言中,可以连接到相同的实体。

获取系统的API在核心内,但是核心中没有UI。所以创建了实体翻译模块为网站管理员和翻译者提供一种使用新的字段翻译系统的方式。

在D7的翻译系统中最令人困惑的问题是这些系统在D7中都是可用的。你甚至可以使一个一同使用一种内容类型而另一个系统使用另一种内容类型。如果你只想要D6类型的翻译系统,那么您只需要启用内容翻译模块核心而无需使用实体翻译模块。如果你只想要D7域翻译系统,你只需启用实体翻译模块即可。

 

优势与劣势

每个系统都有优缺点:创建翻译集的原系统是在新系统进入核心之前最简单的解决方法,但是它留下了多个相同的节点。SEO是一个问题,和一些贡献模块结合的时候也是问题。举例来说,如果你有一个描述活动的节点,你希望人们注册,但是你不会想让他们分别在在不同的语言节点注册而是希望他们可以在同一个节点上注册。

如果你有一个带有翻译字段的节点,有不同菜单项和工作流的节点为每个语言做什么会变得更难。The Content Translation Models Debate(内容翻译模型辩论会)是一个出自于说明每个选项优缺点的Gabor Hojsty的视频。注意,每个模型的许多问题得到了解决,至少在某种程度上,贡献模块——需要许多模块才能使系统工作的原因之一的问题得到了解决。

如果你不是到使用那个模型,或者你想让他们看起来同样可满足你的需求,你可能需要选择新的模型,这个模型要允许你在单个节点上有多字段的翻译。这种模型在一些用例中仍有一些问题,但是有些人在努力解决这些问题,使系统在何处工作都足够灵活。

Drupal 版本