众所周知,在Drupal中要本地化,需要首先开启Locale模块,然后添加中文语言支持,再将中文包导入。其实还有一个很隐秘的地方可以放置翻译字符串,它在settings.php中。看下面的代码:
/**
* String overrides:
*
* To override specific strings on your site with or without enabling locale
* module, add an entry to this list. This functionality allows you to change
* a small number of your site's default English language interface strings.
*
* Remove the leading hash signs to enable.
*/
# $conf['locale_custom_strings_en'] = array(
# 'forum' => 'Discussion board',
# '@count min' => '@count minutes',
# );
如果你只需要翻译Drupal网站中的
少部分字符串,那么就不需要开启Locale模块,再导入翻译包那样费劲了。在settings.php中,可以添加一些翻译字符串,Drupal在显示字符串时,会首先用这里面的字符串去进行替换。这样会省去很大一部分的资源消耗。比如:
$conf['locale_custom_strings_zh-hans'] = array(
'forum' => '讨论组',
'@count min' => '@count 分钟',
);
有两点需要注意:
- 要翻译中文,需要使用locale_custom_strings_zh-hans
- 要将settings.php存为utf-8格式
Enjoy!
Drupal目录下的sites文件夹是用于存放所有开发者对Drupal自定义的模块脚本以及主题文件的地方。同时,还可以用于存放不同的站点配置文件。在sites目录下,默认有两个子文件夹:all和default。其中,default文件夹用于存放settings.php,即网站配置文件,里面主要包括数据库连接信息。all目录用于存放第三方或自定义模块。
Drupal支持多站点共用一个Drupal程序,意味着我们可以通过在sites目录下创建以
网站域名为名称的子文件夹。Drupal就会根据网站域名读取对应的配置。
举一个经常碰到的应用场景:
在发布了网站后,需要维护本地开发用的程序和网站发布程序之间的同步。一般情况下,生产服务器的数据库配置等信息与本地开发环境是不同的。如果只有一个配置文件的话,那么在同步网站程序和本地程序时,就需要手工过滤或更改配置文件。
这时就可以利用Drupal支持多站点配置文件的特性,在其sites目录下创建一个localhost子目录,以及www.example.com的子目录。然后分别将settings.php放置于这两个文件夹,并更改为相应的配置。那么当对本地程序和服务器程序进行同步时,就不需要更改配置文件了。
使用Drupal 6.0后,可以在后台管理的“报告”中收到Drupal最新更新的提示。如下图:
比如,我现在使用的是D6.8,Drupal提示我要升级为D6.9。那么如何升级呢?
首先直接下载D6.9的安装包,其中有一个UPGRADE.txt文件,用Editplus或其它高级点的notepad打开(因为是UNIX换行,所以在Windows的记事本中看是一团文字。),里面便是Drupal的升级建议,其中首要的几条是:
- 确定你的系统符合Drupal新版的要求。要求(Requirements)可以在http://drupal.org/requirements中查看。
- 备份所有的相关数据
- 检查自定义模块和主题的兼容性
- 确保你阅读了整个文件内容
第1条没的说,只要是LAMP或能运行PHP和MySQL即可。推荐使用APACHE。
第2条比较重要,我一般是备份一下整个数据库,以及sites/all下面的我自己安装的modules和themes。要不怎么说不要轻易更改Drupal内核文件呢,现在就看出好处来了。如果你开发时偷懒,不使用Drpual API和Hook来开发自定义模块,要升级系统时就很郁闷了,你需要记住你修改了哪些内核文件,而且还要和新版的文件对比再合并,so troubled。另外,建议大家读一下新版有哪些升级,是否对数据库有大的改动。
同时,还有sites/default/下的settings.php配置文件、.htaccess以及robot.txt文件等会被开发者修改的文件,都要留意的备份一下。OK,总结一下,列个表:
- 数据库
- sites/all下面的所有文件
- sites/default/settings.php配置文件。如果是多站点,还需要备份每个站点settings.php文件。如sites/example.com/settings.php。
- .htaccess
- robots.txt
第3条其实也很简单,去你使用的module和theme的project首页,检查一下是否可以使用在新版本中。一般情况,module或theme都是默认适用于同一版本系列的,比如5.x或6.x,微小的版本升级都可直接使用。不过对于像D5到D6这样的重大升级,还是要先看看是否支持D6,然后去下载新版本。
第4条写给英语好的朋友们,UPGRADE.txt文档里列出了升级的步骤,还是值得参考的。下面是我整理的步骤:
- 备份。备份所有能备份的东西。
- 获得超级管理员帐户。就是UserID = 1的用户。
- 将站点设置为off-line即下线状态,这样可以防止在升级时有用户访问。
- 将主题切换至默认主题——Garland。
- 关闭所有的第三方模块和自定义模块。
- 将Drupal自带的安装目录和程序全删除。这里指drupal根目录中除files、sites外其它的任何目录。
- 将新的Drupal程序包解压缩至相同位置。
- 设置好配置文件,如settings.php等。并且要确认是正确的。
- 关键的步骤:运行站点下的update.php,如http://www.example.com/update.php。如果你没权限运行,找到settings.php文件,将里面的$update_free_access设置为TRUE。然后在安装结束后再设置为FALSE。
- 运行update.php成功后,开启自定义和第三方模块modules。
- 再次运行update.php。
- 成功后,将站点设置为“上线on-line”。
- 更新结束。
欢迎朋友们交流升级心得,分享遇到的问题。