2.8. 区域与语言:将 Drupal 从英文翻译为其他语言。
Drupal 拥有强大的多语言翻译功能。让我们看看如何为网站添加一种新语言,例如德语。在此之前,你需要确保已启用以下模块:Language、Configuration Translation、Content Translation、Interface Translation。
现在我们来逐一查看该部分中的所有设置。
区域设置(Regional settings)
这一部分基本上都很直观,但建议将每周的第一天改为星期一。你还可以允许用户在注册时选择时区(或关闭该选项)。当网站涉及时间相关功能(例如事件 Events)时,这非常有用——每个用户都可以在自己的时区中查看事件时间。
日期与时间格式(Date and time formats)
我们可以通过管理面板自定义日期格式。例如,在新闻内容中通常需要显示“日-月-年”的格式。我们来设置一下。
点击 +Add format 按钮,为新闻添加一个新格式。输入格式字符串 d-m-Y
。
关于日期格式字符串的详细说明,可以参考 PHP 官方手册:
http://php.net/manual/ru/function.date.php
现在,我们可以将此日期格式应用于所有日期字段以及其他日期输出。
语言(Languages)
我们来添加德语(German)。
添加语言后,Drupal 会开始下载并更新该语言的翻译文件。此过程需要联网,并可能花费一些时间。
完成后,我们的网站就添加了新语言。你可以启用并切换到德语,确认一切正常。
我们再切换回英文语言。如果进入「Detection and selection(检测与选择)」选项卡,可以设置网站语言的检测方式。最推荐的方式是通过 页面 URL。
打开德语语言的编辑页面:
可以看到这里有一个语言代码(Language code)设置。该代码会添加到页面 URL 中,用来识别页面语言。例如:
http://site/de/node/10
—— 表示德语页面。
http://site/en/node/10
—— 表示英语页面。
对于默认语言(例如英语),可以省略语言代码:
http://site/node/10
—— 同样表示英文页面。
此外,如果进入内容类型(例如 Article)的编辑页面:
/admin/structure/types/manage/article
你可以启用“创建节点时选择语言”的选项。
我们不仅可以为节点选择语言,还可以为区块(blocks)、用户(users)、评论(comments)以及其他实体设置语言。
例如,在添加区块时,我们可以选择该区块适用的语言:
用户界面翻译(User Interface Translation)
你可能已经注意到,Drupal 并不会 100% 翻译所有界面文字:
对于未被自动翻译的文本,我们可以使用「手动翻译(Manual translation)」功能:
/admin/config/regional/translate
输入英文短语后,Drupal 会列出所有包含该短语的字符串。填写翻译内容并点击页面底部的「保存翻译(Save translation)」按钮。
通过这种方式,我们可以在整个 Drupal 系统中逐条翻译字符串。
你还可以通过「导出(Export)」选项卡手动导出翻译:
Drupal 会导出一个 .po
文件,你可以在其他网站上导入该文件(通过「导入(Import)」选项卡):
最后,在「设置(Settings)」选项卡中,你可以配置翻译更新检查的频率。例如,每月检查一次。Drupal 会提示你哪些文本尚未翻译。由于每次安装新模块都会新增未翻译的字符串,翻译工作实际上是一个持续的过程。