第四部 多语言支持
本文是Drupal 8终极指南的第四章
在上一节中,我们列举了一些Drupal 8在建站方面的增强,而关于Drupal 8的新的多语言能力,因其特殊性,我们将用独立一篇的篇幅来描述。
Gábor Hojtsy领导的Drupal 8多语言提案,该计划的参与者多达千人,是Drupal 8的主要开发焦点之一。本文将抢先报道Drupal 8的多语言站点建设过程。
(注意,本文的多数内容都是从Gábor的系列大作Drupal 8多语言花絮借用而来,所以如果如果你想知道D8MI的全部细节,可以在引文中获得更多信息)。
##“多语言优先”
在Drupal 8的安装过程的开始阶段,我们就能看到Drupal 8的多语言界面:
Drupal 8自动检测浏览器语言,然后自动从下拉列表中选择;更好地是,如果你确定选择一种非英语的语言(或者事后为你的站点新增一种语言),Drupal 8会自动从https://localize.drupal.org/下载最新的界面翻译。所以,用户可以在自己的母语环境下完成站点安装和设置。相对Drupal 7用一大篇英文来解释如何下载文件,放到什么目录来说,是一个巨大的进步。
而且,这一界面还能适应阿拉伯语等的自右向左的对齐方式(当然,Drupal 8还在开发之中,所以有些翻译还是缺失的,如下图所示)
最后,Drupal 8不再将英文作为一个特例。如果选择的不是英文,那么英文选项在站点设置里将不再出现,除非你开启他。同样的,可以把英文进行“翻译”,例如把”Log in/Log off”转成“Sign in/Sign off”。
总之,Drupal 8对非英文用户的访问性极大增强了。
##更少模块,更强功能
Drupal 7中要简历一个多语言站点需要大概30个模块,以及一大堆繁琐的设置。Drupal 8中,这些功能(甚至更多)被集成到仅仅四个模块中,这使得Drupal 8的多语言功能比Drupal 7更加友好。
###Language
Drupal 8多语言功能的基础模块。
###Configuration Translation
类似Durpal 7的Internationalization模块。使Blocks, Menues, Views等元素可进行翻译。
###Content Translation
为Nodes, Taxonomy Terms以及评论提供翻译能力(同Drupal 7的核心”Content Translation”模块不同,更像是Entity Translation模块)。
###Interface Translation
翻译Drupal的用户界面(同Drupal 7的Locale核心模块一致)。
你可能想知道,为什么是四个模块而不是一个?因为非英文的单语言站点也是一种需要考虑的情况,即使是多语言站点,也可能不需要部分功能(例如这样的需求:用户生成的的内容仅使用母语)。这样的模块划分使得站点建设可以依据实际需求对翻译功能进行取舍。
##随处可选的语言
从系统配置到Block, Views和菜单等站点组件,甚至是单独的字段值都是可翻译的。
对于评论,Node, 用户,分类词等“内容”Entity,Drupal 8还提供了更多选项。例如配置语言选择器是否可见,是否把新生成的内容缺省设置为站点的缺省语言,内容编辑的首选语言等。
##更集成的翻译界面
另外,Drupal 8的多语言功能实现过程中,花费了很多精力来增进用户体验。新的高集成度的界面是用户可以更高效率的进行翻译。
##音译支持
最后一个很有用的新特性是把Transliteration模块集成进了核心。他会自动的把部分字符例如”ç”翻译成”c”,”ü”翻译成”u”,这样就生成了更加友好的机读名称,在文件上传,Path和搜索结果等情况下变得更加友好。
##还有更多
还有一些对于站点建设者来说值得一提的东西:
很多核心页面使用的是Views,这样就更加容易进行语言相关的定制了,尤其是管理的Views——添加语言过滤,语言列等,只需要点击鼠标即可。
同Drupal 7的Entity Translation模块集成不同,Drupal 8的核心内容翻译模块同Search和Search API的协同更好,能获取更多的语言信息。
语言选择系统支持分离的”管理”语言,这也是多语言站点管理员的福音。