Joomla! 2.5 - 基础指南20:多语言网站

Lived multilingualism - 2010-03-30我住在欧洲。欧盟有23种官方语言。如果你在这样的地方创建网站,你就必须考虑多语言。这里涉及两个挑战:静态的Joomla文本字符串翻译和内容项的翻译。第一个挑战通常容易克服,第二个才是真正的挑战。

Joomla 2.5核心包括了超过40种语言,而且有望添加更多的语言。

本章我们利用Joomla 2.5核心创建多语言网站。

Joomla! 语言包

你可以从Joomla CodeJoomla 扩展目录下载翻译包并使用扩展管理器安装(阅读全文: Chapter 13: 扩展管理)。我安装了德语包和法语包。安装后打开后台的扩展 → 语言管理 就可以找到有三种已安装语言(图 1) 。

Installed Languages

图 1: 已安装的语言(英语,德语)

语言配置

现在,还有必要看下语言配置,确认语言是否已发布(扩展 → 语言管理  → 已安装)和语言内容属性是否正确(图 2)。打开(扩展→语言管理→内容)。如果安装好的语言没有内容项,点击新建图标创建。这就是我安装好法语包后所做的。

Language attributes

图 2: 编辑内容语言

语言筛选器插件

要让 Joomla 能分辨不同的语言,必须激活系统–语言筛选 插件(扩展→插件)。你只要通过选项设置就可以配置显示给访客的语言,不管是网站语言还是客户浏览器设置。另外一个要配置的是 自动选择语言。 启用后,内容语言会根据前台语言设置自动发生变化。

Plug-In Language Filter

图 3: 插件 - 语言筛选

用户在登录前台后都可以配置他的前台语言。 多数时候,根据你的权限会有个用户菜单提供了不同的菜单项。在该用户菜单,你还可以找到链接您的资料。点击该链接,你可以查看和编辑自己的个人资料。在基 本设置的资料编辑表单,用户可以选择配置并设定他们的前台语言(图 4)。你可以使用默认的网站语言或可用的内容语言。根据这些设置, 语言插件可以让你查看相应语言的网站内容。

Front-end language

图 4: 用户资料 – 基本设置

语言切换模块

通过激活语言切换 模块,你可以在前台切换语言,不管你是访客还是登陆用户。在基本设置你可以添加文本并选择语言是以名称还是国旗图标的形式显示。我相信有些第三方模板在不 久就会为该模块提供对应的模板位置。在默认的模板Beez2 中, position-7 和国旗一起结合工作。

Language switcher

图 5: 语言切换

仔细阅读说明文本是很要紧的

当切换语言但显示该页的菜单项未关联到其它菜单项,模块会重定向到选定语言的首页。
然而,如果设定了语言筛选插件的菜单关联参数,它会重定向到选定语言的关联菜单项。之后,就使用该语言所定义的导航了。
如果插件'系统- 语言筛选' 未启用,会达不到预期结果。
方法:

  1. 打开语言管理的内容标签,确保你想在内容内使用的语言已发布,还需要用于网址的语言代码和模块显示使用的图片前缀。
  2. 在菜单项创建指定语言的首页,并定义每种已发布语言的默认首页。
  3. 之后,你可以给Joomla内的任意文章、分类、模块、新闻源、友情链接指定语言。
  4. 确保模块已发布、插件已启用。
  5. 当使用关联菜单项,确保模块显示在有关页面上。
  6. 国旗或语言名称的显示方式取决于语言管理–内容 的语言排序。

如果发布了该模块,建议也发布管理员多语言状态模块。

多语言内容项

正如我先前提到,每个内容项,比如文章,可以指定语言。困难就在于需要创建所有源和目标语言的内容项(图 6)。你可以创建任意语言的内容项,但不幸地是, Joomla 2.5 不支持翻译工作流,这意味着你要自己注意避免错误。

Language field

图 6: 语言字段

多语言网站

我的示例网站包括

  • 带有文章的首页,
  • 博客,
  • '关于我们' 页面,
  • 一个联系人表单。

所有的内容项都已备好不同语言的版本(图 6)。

Multi-language website

图 7: 示例网站

首页

我已经为每种语言都创建了一些带精选属性的文章(参阅章节:典型文章)
为了让你易于上手,我专门录制了视频(2.5的不久后发布)。这是针对1.7 版本 (一样有效)

我创建的菜单包含个默认叫做default的菜单项, 链接到 精选文章。 我通过点击首页图标把该菜单项设置为首页。菜单default 不需要对应的模块,它只要存在即可 (Joomla 2.5版本实际存在该行为,它有望在下个更新中得到更改)。

然后我针对每种语言创建菜单和相应的菜单模块。我为每种语言创建了菜单项: (Home, Startseite, Accueil)。通过点击首页 图标可以配置菜单链接为首页(图 8)。如果你看到菜单项旁边的国旗了,一切就正常,否则 ... 看视频去吧 :)

Menüs zur Mehrsprachigkeit

图 8: 每种语言的首页

博客

我在cocoate.com已经有了一个博客,所以我就是用了新闻源组件来显示外部的博客条目。我针对每种语言创建了新闻源项和对应的菜单项(参阅章节: 新闻源)。

'关于我们' 页面

我针对每种语言都创建了 '关于我们' 页面,如同章节如何创建 '关于我们' 页面描述的那样。

联系人表单

我使用单一联系人表单应对普通查询。我仅需要一个联系人项,所以没必要分配语言。仅当不同语言的联系人数据有区别时,比如地址或邮件不同,才有必要针对每种语言都创建一个联系人项。

登录表单

每个页面都得配上登录表单。我复制了两次英文的登录模块,配置了菜单分配,修改了标题并分配了正确的语言。现在就能在我的网站登录和注册了。

用户菜单

我使用了现成的用户菜单,上面有个人资料的链接,还能创建文章或友情链接(图 9)。

Article frontend editing

图 9: 前台编辑

如你所见,用Joomla创建多语言网站是非常的简单!

语言覆盖

如果你发现网站的语言字符串不合适,可以通过扩展 -> 语言管理 -> 覆盖更改。

语言字符串由两部分组成:特定的语言常量和它的值。比如,字符串内:

COM_CONTENT_READ_MORE="Read more: "

'COM_CONTENT_READ_MORE' 是常量、 ' Read More:' 就是数值。
要创建数值覆盖必须使用特定的语言常量。因此,你可以通过下方的搜索字段搜索要更改的常量或数值。
点击所需的结果就会在表单内自动插入正确的常量。

你可以搜索语言字符串并把自定义文本填入表单以便覆盖(图 10)。

Language Overrides

图 10: 语言覆盖

文章评论功能仅对网站会员开放,请先 登录 注册