您的位置:首页 > 其它

使用Drupal创建多语言站点

2014-05-19 16:53 218 查看
记录在此备查。

界面多语言化
内置变量多语言化
内容多语言化
术语表多语言化
CCK多语言化
菜单多语言化
区块多语言化
 

界面多语言化

1.启用 Locale 模块并导入中文语言包

2.访问configuration-->Regional and language --> Languages,列出所有语言。点后面的"Edit"按钮,进入编辑语言界面,将“路径前缀(Path prefix language code)”设置为 "en",点击“保存语言”;

3.在"Languages"页面,点右上角"Detection and selection"面板,在每一列"Determine the language from the URL (Path prefix or domain)"后面打勾,即使用URL决定语言,点击后面的"设置"为"Path prefix"(路径前缀)

4.进入"Structure-->Blocks",选择"Language switcher (User interface text)",放到合适的区域,比如sidebar等,我在这里使用了一个自定义函数"render_menu_block($fmodule_name, $fblock_name)"把这个切换语言块放到了页面最顶端。

注意:(1)如果在第2步中将默认语言设置为“简体中文”,但未在第3步中为英文语言设置路径前缀,则不能正确执行语言切换

           (2)若没有正确配置第4步的操作,“语言转换”区块将不会显示

5.刷新网站,在页面顶端出现语言切换链接,点击“简体中文”和“English”的链接,试试语言的切换,发现就可以切换了。

 

        相信大家也发现了,在切换语言时,尽管界面语言都进行了中英文的切换,但是像“网站标题”这样存储在数据库里面的配置项,却没能被翻译过来。Locale 能够做到界面内容的翻译已经很不错,至于网站变量的多语言化,以及术语表、内容、CCK、菜单、区块等元素的多语言化,就交给接下来要介绍的 i18n 模块来做吧。

 

内置变量多语言化

 

        上一节我们已经使用 Drupal 核心的 Locale 模块为 Drupal 站点启用了多语言的功能,并且对 Drupal 界面进行了翻译。不过还遗留了一点点小问题,就是 Drupal 的站点标题没有翻译过来。

 

        Drupal 中的一些文本和配置存储在数据库的variables表中。比如“站点名称”和“站点口号”这样的配置文本,Drupal 核心的 Locale 模块不能实现这些配置变量的多语言化。因此创建一个更彻底的多语言站点,还需要用到 Internationalization(i18n)模块,i18n 模块提供了 Drupal 变量多语言化的功能。

 

  要实现对 Drupal 变量的多语言化操作,需要知道要翻译的变量的名称,这一步可以通过搜索 Drupal 数据库的 variables 表来实现。

 

  当你确定要对哪些变量进行多语言化操作时,你只需要按照以下格式,将变量添加到 settings.php 文件中即可。以下添加了 Drupal 站点的一些常见变量:

1,启用international (i18n)模块,还需要启动依赖模块Variable

连接:https://drupal.org/project/i18n

https://drupal.org/project/variable

 

2,修改settings,添加变量

 

/**

  * Multilingual settings

  *

* This is a collection of variables that can be set up for each language when i18n is enabled.

  * These are the basic ones for Drupal core, but you can add your own here.

  */

$conf['i18n_variables'] = array(

  // Site name, slogan, mission, etc..

   'site_name',

   'site_slogan',

   'site_mission',

   'site_footer',

   'anonymous',

  // Different front page for each language

   'site_frontpage',

  // Primary and secondary links

   'menu_primary_links_source',

   'menu_secondary_links_source',

  // Contact form information

   'contact_form_information',

  // For theme variables, read more below

   'theme_settings',

   'theme_garland_settings',

);

        当启用了 i18n 模块,并且向 settings.php 配置文件中添加了以上代码之后,可以在 管理 > 站点设置 > 语言 > Multilingual system > Variables(admin/settings/languages/i18n/variables)页面中,看到可以实现多语言化的变量名称及翻译状态。

3,进入configuration --> site information,在不同的语言下修改内容,保存,即可看到不同语言下的文字。

(注:responsive模式下的"top option text"需要在apperance --> settings --> responsive --> responsive menu,更改top option text)

 

为内容创建不同语言的翻译版本

1,启用Content translation模块

2,"structure --> content type",选择一个内容类型点击"Edit",选择下面的"Publishing options" --> "Multilingual support",选择第三项"Enabled, with translation",即允许当前内容类型使用多语言

3,创建一个文档(在创建页面选择一种语言)

4,发布后点击"Translate"翻译该文档,即可为当前文档实现多语言。

 

菜单与主链接/次链接多语言化

        只使用 Drupal 核心所提供的功能,还不能菜单项的多语言化/翻译。不过使用 i18n 模块包中提供的 Menu translation 模块,可能很好的实现菜单、主链接/次链接的多语言化功能。

  i18n 模块包中的 Menu translation 模块,提供了以下特性:

允许创建菜单时为菜单设置语言项(如中文、英文等等),设置了语言的菜单项只会在与当前使用语言一致时才会显示;
可以为未设置语言项的菜单内容进行多语言化。实现可通过 Drupal 的翻译页面对菜单项进行翻译;

创建可翻译的多语言化菜单

启用模块:启用 i18n 模块的 Menu translation 模块;
访问 管理 > 站点构建 > 菜单 > 主链接(Primary links) > 增加菜单项(admin/build/menu-customize/primary-links/add)
创建可翻译菜单项:根据以下信息填写菜单创建表单后,点击“保存”

路径:<front>

菜单链接标题:首页

语言:所有语言
说明:将语言设置为所有语言的菜单项,会在所有语言界面下显示,可尝试在中英文界面之前进行切换,都能菜单项“首页”,不过在英文界面下也还是显示中文
搜索翻译项:访问 管理 > 站点构建 > 翻译 > 搜索(admin/build/translate/search),按照以下信息填写表单后,点击“搜索”

字符串包括:首页

将搜索限制在:菜单
从搜索结果中找到要翻译的菜单项目,点击后面的“编辑”链接
翻译菜单项:在翻译界面中,填写翻译内容,Home。然后点击保存翻译;
现在再在中英文之间进行切换,就可以看到,在中文界面下,主链接显示菜单项“首页”,在英文界面下,主链接显示菜单项“Home”

创建只在指定语言环境下显示的菜单

访问 管理 > 站点构建 > 菜单 > 主链接(Primary links) > 增加菜单项(admin/build/menu-customize/primary-links/add)
创建可翻译菜单项:根据以下信息填写菜单创建表单后,点击“保存”

路径:node

菜单链接标题:内容

语言:Chinese Simplified (简体中文)
说明:在这里为菜单语言项,该菜单只有在与当前语言环境一致时,才会显示出来。
重复第2步,使用以下信息创建一个英语菜单项路径:node

菜单链接标题:Node

语言:English (英语)
现在再在中英文之间进行切换,就可以看到,在中文界面下,会显示语言设置为 Chinese Simplified (简体中文)的菜单项“内容”,在英文界面下,则会显示语言设置为 English (英文)的菜单项“Node”

使用多语言化变量设置不同的主链接/次链接

  访问 管理 > 站点构建 > 菜单 > 设置(admin/build/menu/settings)页面,可以看到“主导航菜单来源”及“次级菜单来源”都被标识为“多语言化变量(This is a multilingual variable)”,这说明这两项值,在不同的语言环境下,可以设置不同的值,并被数据库分开保存。(更多关于多语言化变量请参考《站点变量(Variables)多语言化》)

  在中文语言下,为主链接/次链接选择恰当的中文链接,在英文语言下,为主链接/次链接选择恰当的英文链接,从而实现在不同语言下,使用不同语言的菜单项,以此来实现 Drupal 网站中菜单的多语言化。

 

 

 

创建支持多语言化的区块

 

为 Drupal 创建多语言化支持的区块,需要 i18n 模块包中的 Block Translation 提供相应的支持。有两种方式可以实现区块的多语言化,一种是对区块(Blocks)中的字段进行翻译,另一种是为每一种语言创建一个对应的区块。本文将介绍这两种区块多语言化的方法。

准备工作:

下载 i18n 模块包,下载地址
bbed
:http://drupal.org/project/i18n
模块管理页面:访问 管理 > 站点构建 > 模块(admin/build/modules)页面
启用模块:启用 Internationalization 模块、String Translation 模块 和 Block Translation 模块,并点击“保存设置”

创建基于字段翻译的多语言化区块

创建区块:访问 管理 > 站点构建 > 区块 > 添加区块(admin/build/blocks/add)
设置区块语言:在添加区块页面的 Multilingual settings 中,将语言设置为 Chinese Simplified(简体中文)
添加中文区块:在添加区块页面,填写以下中文信息,然后点击“保存区块”

区块描述:多语言化测试区块(描述)

区块标题:多语言化测试区块

区块内容:这是一个用于测试区块多语言化的区块 :D
注意:实际操作时,请根据你的需要为区块填写合适的描述、标题和内容等信息
分配区块:在区块管理页面(admin/build/blocks),找到刚创建的“多语言化测试区块(描述)”,将其分配到指定的区块,如左边栏,点击“保存区块”
搜索区块中的字段:访问 管理 > 站点构建 > 翻译 > 搜索(admin/build/translate/search),在页面的搜索框中搜索第3步中填写的信息,如"多语言化测试区块",将得到如下搜索结果
说明:基于字段的翻译好像不能对区块描述进行翻译,不过对区块标题和内容的多语言化翻译都是支持的。如果希望区块描述也能够被多语言化,可以参考第二种区块多语言化的方法
翻译区块中的字段:点击“编辑”进入字段翻译页面,填写翻译内容后点击“保存翻译”
重复第5,6步,完成区块内容的翻译
查看效果:在默认中文语言界面下,创建的区块显示如下图:



切换到英文语言界面下,创建的区块显示如下图:



为不同的语言创建对应的多语言区块

创建区块:访问 管理 > 站点构建 > 区块 > 添加区块(admin/build/blocks/add)
设置区块语言:在添加区块页面的 Multilingual settings 中,将语言设置为 All languages (Translatable)
添加区块:在添加区块页面,填写以下信息后,点击“保存区块”

区块描述:多语言化测试区块(描述)

区块标题:多语言化测试区块

区块内容:这是一个用于测试区块多语言化的区块 :D
注意:实际操作时,请根据你的需要为区块填写合适的描述、标题和内容等信息
添加其它语言区块(如英语):重复第2步,将语言设置为 English(英语),重复第3步,填写以下英文信息,然后点击“保存区块”

区块描述:Multilingual Test Block(Brief)

区块标题:Multilingual Test Block

区块内容:This is a multilingual test block, :D
分配区块:在区块管理页面(admin/build/blocks),找到刚创建的“多语言化测试区块(描述)”和“Multilingual Test Block(Brief)”,将其分配到指定的区块,如左边栏,点击“保存区块”
查看效果:i18n 提供的 language section 机制会自动判断多语言项目(如区块)与当前语言的关系,只有与当前语言相同的内容才会显示出来。因此当网站界面语言为中文时,站点左边栏将会显示“多语言化测试区块”,当网站界面语言为英语时,则会显示 "Multilingual Test Block"
原始引用地址:http://lugir.com/book/export/html/432

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  drupal 7