Drupal Chinese Support Installation

Drupal a good Blog System, bur it is a Content Management System (CMS) rather than a just a blog system. To expand its funtions just install modules, and till now it already has a great lot of modules and skin and still in a great grow up.


It’s homesite at http://www.drupal.org/ , and sample sites using this platform is here: http://drupal.org/sites , and its Chinese Version development site: Drupal中文化项目


The following steps of install drupal is from LaoGui’s Blog


Drupal 安装指南


0. 准备服务器环境。
先把 WWW 服务器、database 服务器和 PHP 调试好。
推荐使用 Apache/Mysql 组合,虽然 Drupal 可以使用其它数据库。


1. 下载 Drupal。
Drupal.org 下载了最新版本的 Drupal 压缩包后,解开压缩。


2. 修改配置文件。
修改 drupal/includes/conf.php ,把其中的数据库、首页地址和语言修改一下。
## 修改数据库配置:
$db_url = “mysql://数据库用户名:密码@数据库服务器地址/数据库名”;
(等会建立一个数据库,比如名字叫做 drupal_database。)


## 修改首页地址:
$base_url = “http://www.hiweed.com/drupal”;
(注意后面不要斜线)


## 修改语言:
把 $languages = array(“en” => “english”); 直接修改成:
$languages = array(“zh_CN” => “Chinese”);


3. 创建数据库。
用自己的 Mysql 用户创建一个数据库,比如数据库名叫做 drupal_database。


4. 修改 SQL 文件,创建数据表。
## 修改 drupal/database/database.mysql ,找到 “CREATE TABLE locales” 所在的段,把其它语言全删除即可,只写上一行:
zh_CN blob NOT NULL,
## 然后,导入该 SQL 文件:
在命令行中,输入: mysql drupal_database < database.mysql


5. 访问您的 drupal 首页,创建第一个用户(站长)。


6. 开始享用。


Drupal 中文化指南


1. 安装 Drupal。
首先请查看Drupal安装指南。
另外,请注意一定要参照 Drupal 的 INSTALL 文件把 php.ini 的相关参数设好。


2. 导入Drupal 中文化文件 zh_CN.sql:
请先备份您 Drupal 数据库的 locales 表;
清空您 Drupal 数据库的 locales 表;
然后把zh_CN.sql 文件导入到数据库。点这里下载 zh_CN.sql


3. 如果您希望使用 localgettext 模块导入 mo 文件,安装 locale 模块:在“administer –> configuration –> modules”中,安装 locale 模块,此模块到此处下载。然后导入模块导入 mo 文件,点这里下载 zh_CN.mo


4. 如果您想自己编辑 po 文件以便于自己编译 mo 文件,点这里下载 zh_CN.po


5. 刷新一下页面,您应该可以看到中文界面了。
如果仍是英文界面,请检查:includes/conf.php 文件中,是否把 “zh_CN” => “Chinese” 写在了英文的前面?


6. 开始享用!


让drupal可以注册中文用户名


modules/user.module 这个文件里面,第 205 行是:
if (ereg(“[^ a-zA-Z0-9@_.-]”, $name)) return t(“The username contains an illegal character.”);


只要把这一行注释掉即可。但这样可能无法过滤一些特殊的字符,严格的做法是修改里面的正则表达式,使得既允许汉字通过,又防止乱七八糟的符号出现。


中文搜索问题解决办法


1. 把 search 模块修改一下。


drupal中不能搜索中文的原因是因为drupal不能判断中文的词语,所以中文字联在一起的时候就会看成是一个词,导致不能搜索。


解决的方法就是在搜索的词汇前后默认加上*号,让drupal搜索“含有”搜索汉字的词语,这样就可以了。


具体方法:
在search.modules里查找:
$keys = str_replace(“*”, “%”, $keys);


把它变成
$keys = ‘%’.str_replace(“*”, “%”, $keys).’%’;
就可以了。


2. 修改各个模块的 do_search 函数


用下面的内容替代modules里的对应内容:


node.module:
$find = do_search(array(“keys” => $keys, “type” => “node”, “select” => “SELECT n.nid AS lno, n.title AS title, n.created AS created, u.uid AS uid, u.name AS name, 1 AS count FROM node n LEFT JOIN users u ON n.uid = u.uid WHERE ( n.title LIKE BINARY ‘%’ OR n.teaser LIKE BINARY ‘%’ OR n.body LIKE BINARY ‘%’) AND n.status = 1”));


comment.module:
$find = do_search(array(“keys” => $keys, “type” => “comment”, “select” => “SELECT c.cid as lno, c.nid as nid, c.subject as title, c.timestamp AS created, u.uid AS uid, u.name AS name, 1 AS count FROM comments c LEFT JOIN users u ON c.uid = u.uid WHERE (c.comment LIKE BINARY ‘%’) AND c.status = 0;”));



magic_quotes_gpc 错误解决办法


很多主机 PHP.ini 里的 magic_quotes_gpc 是关着的,magic_quotes_gpc的作用是在提交的表单中如果存在敏感符号如双引号、单引号、反斜杠,那么这些符号之前会被自动的加上一个反斜杠号,最笨也是最直接的办法是释掉index.php文件的“check_php_setting”这一行,但这样可能会出现安全问题,详细可以参考 http://www.phpe.net/articles/372.shtml


在windows下面无法使用diff文件


很多module里是diff文件,是linux特有的补丁格式,你可以在 Linux 下面把补丁打好,再拷贝到 Windows 中去,当然有时间的话可以自己分析diff文件,一行一行改。前面带“—”的是要删除的行,前面带“+”的是要添加的行。