Localizer 模块扩展了 Drupal 处理人类语言的能力,它能够控制站点的用户界面语言,可以输入和控制多语言内容,可以正确显示对应语言的内容。 下面列出了这个模块的一些特性:
语言选择
多语言内容处理
参数选项的处理
可访问性和扩展性
杂项
Localizer 使用下面的次序来检测要显示的语言
原文: http://drupal.org/node/103419
本指南的目的是介绍如何设置和配置一个可切换的多语言用户界面的 Drupal 站点,同时说明如何输入和管理多个语言的内容。 本文假设目标站点运行着 Drupal 5.x。
注意本文并没有涵盖 Localizer 模块本身的安装过程,请参阅 Localizer 模块的 README.txt 文件以了解安装须知,同时本站还有一个更详细的安装过程的 HOWTO。
原文: http://drupal.org/node/114750
在 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。
当 Localizer 设置完成后,来到 Administer > Blocks 并启用 Select language 区块以提供一个语言选择区块给访问者。 当然你要根据自己的需求来进行配置。
如果稍后决定允许匿名访问者启用多语言内容显示,并且相应地你激活了 Localizer 设置中的 Multilingual support,那么也可以配置 Select content languages 区块。
看!就这样--一个多语言站点正等着添满内容呢!
Bye! Ciao! Sayonara!
本文的目的给大家一个比 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
确认你已经有了一个工作正常的 Drupal 站点。 如果你刚刚安装它,建立一些内容以确认它是否正确,在建立了内容后,检查 Administer > Logs > Recent log entries 看看是否有错误记录,如果有,先修复。
备份你的站点。 我们将打一些补丁,因此请留心这个警告,除非不介意将站点搞的一团糟时重头再来。
如果你已经安装了 Internationalization (即 "i18n") 模块,你需要卸载它且去除为它做的任何补丁,如果不,多数时候你会遇到冲突。
假设你正在使用 Drupal 5.x,那么在你的站点 /sites/all/ 目录下建立一个名为 modules 的目录,稍后 Localizer 会上传到该目录 (对于 4.7.x,直接将 localizer 文件夹放到 Drupal 根目录的 modules 目录下好了)。
在安装 Localizer 模块前先安装用户界面语言也许更有逻辑性,但不是必须的。 要了解如何做,请参考这个 HOWTO。
第一件事情时取得 localizer 文件夹,保持其目录结构完整,放到服务器 Drupal 的 /sites/all/modules 目录下 (对于 4.7.x 只要上传到 Drupal 根目录下的 modules 目录即可)。 有几种方法完成这项任务,一种方法时通过 ftp 对 /sites/all/modules 进行操作;另一种方法我觉得更可靠:
在激活 Localizer 之前我们需要应用补丁。 回到你的本地计算机,看看 Localizer 目录下的 patches 文件夹,如果你有站点的 shell 访问权限,你可以按照 patches 中 README.txt 文件的说明做,它告诉你将 *.patch 文件移到你的 Drupal 根目录并运行 "patch" 命令。
如果你没有 shell 访问权限,最简单的办法是使用开发者预先打好补丁的文件 (请阅读 补丁文件免责声明),他们位于 localizer-patched-files-5.x-1.7.tar.gz 压缩包中。 解开这个文件,结果是一个名为 localizer 的文件夹 (不要与之前那个同名文件夹混淆了),在这个文件夹中,是一些与 Drupal 根目录结构相同的文件夹,我们要做的是将这些文件夹内的每个文件替换(覆盖)同名文件。 虽然有快速的办法,不过现在我们先了解个慢的、烦人的但“安全”的 (有人说是保守的) 方法。
从 includes 文件夹开始,有两个文件: bootstrap.inc 和 common.inc。
接下来到 modules 文件夹,有三个子目录,分别有一个文件。 同样地:
现在前期准备工作就绪,是时候启用 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.
如果某些 "坏事" 发生了,可能最好的做法是将他们恢复原始状态,然后重新开始。 因为你可能希望以另一种方式重新试一遍,下面教你如何将你的站点恢复原来的状态:
记得取消站点的维护状态。
如果你的站点 仍然 不能运作--好吧,我们之前有提醒你备份整站,对吧? :-)
在一个使用 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 : 国旗和语言之间的分隔符