模块介绍:Localizer

Localizer 模块扩展了 Drupal 处理人类语言的能力,它能够控制站点的用户界面语言,可以输入和控制多语言内容,可以正确显示对应语言的内容。 下面列出了这个模块的一些特性:

语言选择

  • 提供一个语言切换区块 (可选),访问者可以通过点击它来切换语言
  • 提供了自动语言选择 (4 种方式,全部可选和可配置):
    1. 通过主机名 : it.example.com, en.example.com
    2. 直接源自访问过的节点的所属语言
    3. 通过可添加到路径别名的本地化前缀
    4. 通过一个本地化参数,格式为: locale=en
  • 为访问者提供一个多语言选择区块 (可选) 这样就可以为访问者显示所有属于选定语言的内容

多语言内容处理

  1. 节点内容可以翻译为其他语言,并且能够保持各语言间内容的跟踪
  2. 翻译的内容作为一个新的节点
  3. 可以翻译菜单
  4. 支持多语言的分类和术语
  5. 区块可以与特定语言关联

参数选项的处理

  1. 可为首页选择默认语言,可为内容设置默认显示语言,可以一种语言显示用户界面同时以另外一种语言显示内容。这些都可以配置。
  2. 注册用户可以设置自己的参数 (通过我的账户),可设置用户界面语言和内容语言
  3. 注册用户可以设置 (通过我的账户) 查看一个或多个语言的内容

可访问性和扩展性

  1. 本地化引擎有一个可以与其他模块协作的 API
  2. 已经支持 Views 模块

杂项
Localizer 使用下面的次序来检测要显示的语言

  1. 来自选择语言区块 (如果有的话)
  2. 来自用户参数选择 (如果用户已经登陆的话)
  3. 来自站点的全局参数设置
  4. 来自访问者浏览器参数设置中的本地化设置

原文: http://drupal.org/node/103419

00. HOWTO:使用 Localizer 建立多语言网站

本指南的目的是介绍如何设置和配置一个可切换的多语言用户界面的 Drupal 站点,同时说明如何输入和管理多个语言的内容。 本文假设目标站点运行着 Drupal 5.x。

注意本文并没有涵盖 Localizer 模块本身的安装过程,请参阅 Localizer 模块的 README.txt 文件以了解安装须知,同时本站还有一个更详细的安装过程的 HOWTO

原文: http://drupal.org/node/114750

01.准备

  1. 确认你已经有一个工作正常的 Drupal 站点,如果你是全新安装,请建立一些节点,看看是否正常 (此时不要安装 Localizer 模块)。 这个时候你可能希望安装一些与 Localizer 模块兼容的基本模块,例如 Views (注意 Localizer 兼容 Internationalization 模块,即著名的 “i18n”,因此如果你已经安装了该模块,请立刻卸载之)。
  2. 计划你的分类,虽然这个不是必须的,不过预先规划好分类很有好处。
  3. 下载你将要使用的用户界面语言文件,就是那些 .po 文件,通常可以在 http://drupal.org/project/Translations 页面找到,不过一些本地社区站点 (如大陆的 www.drupalchina.org、台湾的 www.drupaltaiwan.org、日本的 www.drupal.jp、意大利的 www.drupalitalia.org 等) 会有一些最新版本的.po 和其他有用的文件,动手之前搜索一番是个不错的主意。
  4. 下载最新版本的 Localizer (此时不安装 Localizer)。

原文: http://drupal.org/node/114751

02.启用必要的核心模块

  1. 以站点管理员身份登陆站点。
  2. 在 Administer > Site building > Modules 页面启用下列核心模块 – 在列表中勾选下列的模块: Locale, Menu, Taxonomy,然后单击 Save configuration 按钮。
  3. 如果你安装了其他兼容的模块 (如 Views),你也可以在此时启用他们。

原文: http://drupal.org/node/114754

03.配置 Localizer

  1. 现在是时候安装 Localizer 了,虽然 Localizer 的安装与其他模块的安装类似,但因为 Drupal 5.x 的核心和可选模块并没有完全根据国际化需求来开发,所以有可能在安装的某个过程要求打一些额外的补丁。 请参考 Localizer 模块附带的 README.txt 文件,同时还有一个 HOWTO 详细说明了安装过程。
  2. 当 Localizer 安装后,到 Administer > Site building > Modules 启用 Localizer 相关的模块(目前可以启用的模块有: LocalizerLocalizer blockLocalizer menuLocalizer nodeLocalizer taxonomyLocalizer userLocalizer views)。
  3. 然后,来到 Administer > Site configuration > Localizer,根据你的站点规划配置 Localizer 参数,如果此时你没打定主意,下面有些建议:

    在 Locale switching block 部分保持默认设置 (如:Hide the current locale(隐藏当前本地化)、Show language name(显示语言名称)、Show flags(显示国旗标志)、国旗和语言分隔符为空格、国旗图标路径就是显示那个、国旗图标大小是 16 x 12)。 在这个示范的设置中,假设一个站点有英语、日语和意大利语等本地化被启用,那么当你以英语来访问这个站点时,Select language 区块 会显示意大利和日本的国旗,国旗后面分别标注着 “Italian” 和 “Japanese”;当你以意大利语访问站点时,则显示英国和日本的国旗以及 “English” 和 “Japanese” 文本;依此类推。

    在 Locale initial detection options 部分启用 Detect through browser's locale(根据浏览器的本地化设置检测要显示的语言),这意味着如果访问者的浏览器上设置的本地化语言在站点中可用的话,站点会自动切换到该语言。 这个特性大多数时候时针对匿名访问者的,因为注册用户可以在用户账户中设置自己的本地化参数。 此外,匿名用户仍然可以通过点击 Select Language 区块 中的语言来切换各种语言。

    在 Locale switching options 部分,保持默认设置 (也就是:Redirect front page to the localized version(重定向首页为本地化版本)、Switch by locale parameter(根据本地化参数切换)、Switch by node's locale(根据节点本地化切换)、Switch by url's locale prefix(根据 URL 的本地化前缀切换)都被启用)。 非常重要一点是禁止 Switch by hostname(按主机名切换) (使用这个特性需要设置 Drupal 为多站点,并需要设置相应的 DNS,另外一点是如果你确实要使用 Switch by hostname,你应该禁止其他选择)。

    此时让 Multilingual support(多语言支持)保持禁止,这是为了让访问者可以同时查看多个语言版本的内容。最好也同时禁止所有的多语言内容区块,因为他们往往会让第一次访问的用户感到很困惑。 不过这些设置都可以在用户账户中自行设置。

    Views 支持可以启用,无论你是否安装了 Views。

原文: http://drupal.org/node/114757

04.添加用户界面语言

  1. 来到 Administer > Site configuration 选择 Localization,看到一个列表,对于一个新安装的 Drupal,此时应该只有 English 被列出来,选择 Add language
  2. 从下拉菜单中,选择你要添加的语言的名称,然后单击 Add language 按钮,每次只能添加一个语言,因此重复前面的步骤添加每个你希望添加的语言。 这个过程其实仅仅是为实际的用户界面翻译建立相应的容器。
  3. 当你设置完所有的语言容器后,单击 Import 链接,浏览到你之前下载的 Drupal 核心 .po 文件,然后指定给正确的语言 (你刚才添加的语言会出现在下拉菜单的顶部),模式选择 Strings in the uploaded file replace existing ones, new ones are added 然后点 Import
  4. 这时可能最好的建议就是验证本地化是否工作正常,单击 Localization 主菜单下的 List 看到新添加的语言,确认启用新的语言并且临时设置为默认语言,当你单击 Save configuration 后,站点的用户界面应该按新的语言显示了。
  5. 重复这些步骤解决所有语言,注意在导入 Drupal 核心以外模块 .po 文件应该在完成了 Drupal 核心 .po 文件导入工作后添加,同时,当你添加这个非核心 .po 文件时,应该选择 Existing strings are kept, only new strings are added 模式。

原文: http://drupal.org/node/114756

05.配置语言选择区块

当 Localizer 设置完成后,来到 Administer > Blocks 并启用 Select language 区块以提供一个语言选择区块给访问者。 当然你要根据自己的需求来进行配置。

如果稍后决定允许匿名访问者启用多语言内容显示,并且相应地你激活了 Localizer 设置中的 Multilingual support,那么也可以配置 Select content languages 区块。

原文: http://drupal.org/node/114910

06.添加和查看多语言内容

  1. 随着设置的完成,站点已经准备好接受多语言内容了。 要测试的话,选择 Create content > Page,注意到输入页面的顶部有一个本地化下拉菜单,为该本地语言添加一些内容然后单击 Submit (出于测试的目的,你可以将这个节点发布到首页以便更容易查看语言切换时的效果)。
  2. 你的内容已经发布了吗?注意到一个叫做 Translations 的菜单项目了吗?单击它将出现一个其他语言的列表。选择 create translation 为其他语言建立一个翻译版本,它会直接取出原来建立的内容,你可以直接对其进行本地化翻译,翻译完单击 Submit (仍然出于测试目的,你可以将它发布到首页以便更容易查看语言切换时的效果)。
  3. 现在有了两个语言的内容,使用语言选择区块来切换这两种语言 (注意: 如果你激活了 Select content languages 区块,那么不要在其中选择任何内容),如果在语言切换的同时,内容相应地改变了,就说明一切正常。
  4. 假设内容被发布到了首页,并且启用了 Select content languages 区块,那么我们也可以测试它,单击 Home,启用所有你建立了内容的语言,然后单击 Change,你会看到所有内容,不管是什么语言的。 尝试禁止某个语言,则相应语言的内容就不显示了。

看!就这样--一个多语言站点正等着添满内容呢!

Bye! Ciao! Sayonara!

原文: http://drupal.org/node/114760

01.HOWTO: 安装 Localizer (全新安装)

本文的目的给大家一个比 README.txt 文件更详细的安装指导。 这个文档可能更适合于新手,如果你是一个熟练的 Linux 用户,你可能会说,这太基本了--直接去看更简洁明了的 README.txt 文件好了。 对于我们其他人,希望本文有帮助。 注意本文基于 Localizer version 5.x-1.7 (虽然也提示它可能适用于 Localizer 4.7.x- 需配合 Drupal 4.7.x,不过我们的重点是 version 5.x)。 事物变化之快可能会远远超出本文档,因此任何情况下都应该仔细阅读 README.txt 文件。

首先说些背景知识。 Drupal 使用 Unicode (具体来说是 UTF-8) 编码,因此这个世界上大多数语言可以正确显示--这正是我们所需要的。 然而,Drupal 核心并没有提供一个真正的 "多语言" 环境,意味着它只有有限的语言切换能力,且没有任何方式保持多语言间内容的对应,而这就是 Localizer 要做的工作。

因为这个多语言能力必须非常紧密地集成到 Drupal,它需要安装 Localizer 模块,部分的 Drupal 还需要 "打补丁" 或者修改以适应 Localizer。 虽然 Localizer 的开发者 Roberto Gerola 已经很努力地减小补丁的需求,但无论如何还是需要的,至少在 Drupal 核心有更多的多语言支持之前是这样。 因此,安装 Localizer 可能会比安装其他模块有更多的问题需要你去处理。 给自己一些时间来完成安装罢。

原文: http://drupal.org/node/116338

01.准备

确认你已经有了一个工作正常的 Drupal 站点。 如果你刚刚安装它,建立一些内容以确认它是否正确,在建立了内容后,检查 Administer > Logs > Recent log entries 看看是否有错误记录,如果有,先修复。

备份你的站点。 我们将打一些补丁,因此请留心这个警告,除非不介意将站点搞的一团糟时重头再来。

如果你已经安装了 Internationalization (即 "i18n") 模块,你需要卸载它且去除为它做的任何补丁,如果不,多数时候你会遇到冲突。

假设你正在使用 Drupal 5.x,那么在你的站点 /sites/all/ 目录下建立一个名为 modules 的目录,稍后 Localizer 会上传到该目录 (对于 4.7.x,直接将 localizer 文件夹放到 Drupal 根目录的 modules 目录下好了)。

在安装 Localizer 模块前先安装用户界面语言也许更有逻辑性,但不是必须的。 要了解如何做,请参考这个 HOWTO

原文: http://drupal.org/node/116339

02.上传 Localizer 模块

第一件事情时取得 localizer 文件夹,保持其目录结构完整,放到服务器 Drupal 的 /sites/all/modules 目录下 (对于 4.7.x 只要上传到 Drupal 根目录下的 modules 目录即可)。 有几种方法完成这项任务,一种方法时通过 ftp 对 /sites/all/modules 进行操作;另一种方法我觉得更可靠:

  1. 用你喜欢的压缩程序打包 localizer 文件夹,或者右键点击并发送到 Windows zip 工具以建立 localizer.zip
  2. 用 Cpanel 的文件管理器 (或者你的主机使用的其他前端) 上传 localizer.zip 到 Drupal 的 /sites/all/modules 目录。
  3. 在 Cpanel 的文件管理器中选择 localizer.zip 并点击 "Extract file contents"。
  4. 现在你会看到 localizer 文件夹位于 Drupal 的 /sites/all/modules 目录下了,检查内容是否在里面。
  5. 此时先不要激活 Localizer。

原文: http://drupal.org/node/116340

03.给 Drupal 打补丁

在激活 Localizer 之前我们需要应用补丁。 回到你的本地计算机,看看 Localizer 目录下的 patches 文件夹,如果你有站点的 shell 访问权限,你可以按照 patchesREADME.txt 文件的说明做,它告诉你将 *.patch 文件移到你的 Drupal 根目录并运行 "patch" 命令。

如果你没有 shell 访问权限,最简单的办法是使用开发者预先打好补丁的文件 (请阅读 补丁文件免责声明),他们位于 localizer-patched-files-5.x-1.7.tar.gz 压缩包中。 解开这个文件,结果是一个名为 localizer 的文件夹 (不要与之前那个同名文件夹混淆了),在这个文件夹中,是一些与 Drupal 根目录结构相同的文件夹,我们要做的是将这些文件夹内的每个文件替换(覆盖)同名文件。 虽然有快速的办法,不过现在我们先了解个慢的、烦人的但“安全”的 (有人说是保守的) 方法。

includes 文件夹开始,有两个文件: bootstrap.inccommon.inc

  1. 用 Cpanel 文件管理器,来到 Drupal 的 includes 目录,重命名 bootstrap.incbootstrap.bakcommon.inccommon.bak
  2. 用 Cpanel 文件管理器上传 patches > localizer > includes 中的 bootstrap.inc 和 common.inc
  3. 暂时保留那些 .bak 文件。

接下来到 modules 文件夹,有三个子目录,分别有一个文件。 同样地:

  1. 用 Cpanel 文件管理器,来到 Drupal 的 modules > block 目录,重命名 block.moduleblock.bak
  2. 用 Cpanel 文件管理器,上传 patches > localizer > modules > block 中的 block.module 。
  3. 重复上述过程完成其他目录中的文件,仍然保留 .bak 文件。

原文: http://drupal.org/node/116341

04.启用 Localizer

现在前期准备工作就绪,是时候启用 Localizer 了。

以站点管理员身份登陆到 Drupal (user ID 1)。

来到 Administer > Site building ,选择 Modules ,找到列表中的 Localizer。

勾选所有 Localizer 相关的模块然后单击 Save configuration

检查看你的站点是否工作正常。 添加一些测试性的内容,看看有没有什么错误出现。来到 Administer > Logs,选择 Recent log entries 确认没有出现任何错误。

记得到 Administer > Site configuration > Site maintenance 取消站点维护模式。

就这么多!如果要了解如何设置 Localizer 参数和开始使用,请参考这个 HOWTO.

原文: http://drupal.org/node/116343

05.如果真的出错了

如果某些 "坏事" 发生了,可能最好的做法是将他们恢复原始状态,然后重新开始。 因为你可能希望以另一种方式重新试一遍,下面教你如何将你的站点恢复原来的状态:

  1. 用 Cpanel 文件管理器,从 Drupal 的 sites/all/modules 目录删除 localizer 文件夹及其内容。
  2. 用 Cpanel 文件管理器,删除所有打过 "补丁" 的文件,然后重命名 *.bak 文件为原始文件名。 (注意: 从技术上说你不用非得删除这些打了补丁的文件,因为在设计上,如果 Localizer 不存在就会忽略 Localizer 代码。不过如果你遇到问题,也许最好的方式是 "抹去所有痕迹" 并重头再来。)

记得取消站点的维护状态。
如果你的站点 仍然 不能运作--好吧,我们之前有提醒你备份整站,对吧? :-)

原文: http://drupal.org/node/116345

定制用户界面本地化切换区块

在一个使用 PHP 输入格式的区块中加入以下代码 :

<?php
$languages
=localizer_block_switchuilocale_links(variable_get('localizer_switchblock_showflags', TRUE), variable_get('localizer_switchblock_showlangname',TRUE), variable_get('localizer_switchblock_flagseparator', ' '));

echo
'<ul>';
foreach(
$languages as $i=>$link) {
  echo
'<li>' . $link . '</li>';
}
echo
'</ul>';
?>

localizer_block_switchuilocale_links 函数的语法是 :

localizer_block_switchuilocale_links($flags=TRUE, $names=TRUE, $separator = ' ')

$flags : 显示/隐藏国旗
$names : 显示/隐藏语言名
$separator : 国旗和语言之间的分隔符

原文: http://drupal.org/node/111588