serendipity
关于Serendipity网志系统的中文翻译
deminy 在 周六, 2007-12-01 23:43 提交
自2007年11月16日晚到今天(2007年12月1日)下午,在半个月的时间里,我断断续续地完成了Serendipity v1.2官方程序包的全部中文翻译工作。
== 背景介绍 ==
在PHP编写的网志(blog,也常被称为博客)程序中,和WordPress比起来,Serendipity的名气要小一些(可能甚至小很多)。但是,在技术等方面,Serendipity是公认的最出色的网志程序。这体现在多个方面。就我自己使用过程中所涉及到的而言,Serendipity在国际化支持、反垃圾回复(评论)、插件(plugin)开发和部署等方面非常出色。具体的可参考我前两年写的一些相关文字。
但是Serendipity的中文化进程却一直不尽如人意:其中文语言包长期处于残缺不全的状态、部分(重要)条目的翻译存在谬误之处、其中文有关设置缺乏中文特色等等。
在今年7月初,Serendipity的负责人给我发了一条消息,希望我能对一份他人最新提供的中文语言包提些看法。我在8月中下旬大体检查了一遍该中文语言包的翻译,觉得这份中文语言包虽然翻译得不容易,但不宜采用。在表达了自己的看法的同时,我也向该负责人承诺未来我会尽量提供一份中文语言包。
我之所以答应提供这么一份语言包,一是因为我自己的网志需要它,但更主要的原因是这么久以来居然没有人为这么一个出色的开源程序提供一份准确的、让开发者和使用者都放心的中文翻译,这让我感觉挺不舒服。
== 此份中文语言包的特点 ==
Serendipity中文翻译手记》一文。
== PHP(开源)项目的中文化和国际化问题 ==
我已经在这次翻译语言包的过程,整理了一份提纲草稿,未来可能就PHP(开源)项目的国际化方面阐述些个人看法:例如在语言文件命名的标准化方面、在自然语言的自动甄别方面、在多字节支持方面等(我在某张草稿纸上大概写了六点但现在只能记得这三点,也许是因为我能谈得比较好的也就是这三点)。这几个方面是好些开源项目的通病。Serendipity在大部分方面做得不错,但在个别方面依然存在不足,例如在语言文件命名的标准化方面(Serendipity的中文语言文件的命名是不标准的,不管是简体的还是繁体的)。
== 补充信息 ==
目前本站已经在使用这个中文语言包了。需要该中文语言包的用户可以在此下载该中文语言包。安装方式很简单:直接将压缩包里面的文件覆盖到你的Serendipity安装目录。这个语言包应该适用于绝大部分版本的Serendipity。
估计过2天Serendipity官方就会将这个中文语言包加入到其每日更新的Serendipity程序包之中。
虽然我已尽力而为,但此中文语言包不可能尽善尽美,同时也可能存在一些不足。如果你在使用该语言包的过程中发现翻译方面的错误等,请通过email、留言或网志回复等方式告诉我,我会尽快对其进行检测。如果你有意为Serendipity翻译其插件的中文语言包,我也乐意在自己有时间的情况下提供技术方面的协助。
[补充说明1] 原文中给出的中文语言包下载路径是错误的,目前已经作出修改。特此更正。2007-12-02 16:02:08
== 背景介绍 ==
在PHP编写的网志(blog,也常被称为博客)程序中,和WordPress比起来,Serendipity的名气要小一些(可能甚至小很多)。但是,在技术等方面,Serendipity是公认的最出色的网志程序。这体现在多个方面。就我自己使用过程中所涉及到的而言,Serendipity在国际化支持、反垃圾回复(评论)、插件(plugin)开发和部署等方面非常出色。具体的可参考我前两年写的一些相关文字。
但是Serendipity的中文化进程却一直不尽如人意:其中文语言包长期处于残缺不全的状态、部分(重要)条目的翻译存在谬误之处、其中文有关设置缺乏中文特色等等。
在今年7月初,Serendipity的负责人给我发了一条消息,希望我能对一份他人最新提供的中文语言包提些看法。我在8月中下旬大体检查了一遍该中文语言包的翻译,觉得这份中文语言包虽然翻译得不容易,但不宜采用。在表达了自己的看法的同时,我也向该负责人承诺未来我会尽量提供一份中文语言包。
我之所以答应提供这么一份语言包,一是因为我自己的网志需要它,但更主要的原因是这么久以来居然没有人为这么一个出色的开源程序提供一份准确的、让开发者和使用者都放心的中文翻译,这让我感觉挺不舒服。
== 此份中文语言包的特点 ==
- 此中文语言包基于其英文语言包(因为英文语言包是Serendipity最全的、最官方的语言包)。所有在英文语言包中出现的条目都被翻译了,并且我也逐条检查并翻译了所有条目。
- 在这个语言包中,大约80%到90%以上的条目都被重新翻译过。中文语言包中的条目的相关描述可能比英文语言包更丰富、更易懂。
- 中文语言包的语言及区域设置更加具有中国特色。这大概体现在以下几点:
- 数字中间是没有逗号的。例如1000就是1000,而不是1,000。
- 尽量使用中国人习惯的日期格式。以前,默认情况下中文界面的日期格式是“星期三, 十一月 14. 2007”,而现在,我已将它改成“2007年11月14日, 星期三”。
- 补充了所见即所得(WYSISYG)编辑器的中文语言包。文章编辑时采用的所见即所得(WYSISYG)编辑器的提示信息(当鼠标移动到编辑器工具栏某一图标时会显示其提示信息)是英文的,现在已经改成中文提示了。
- 尽量追求翻译的精确化。当前部分条目的中文翻译不是最佳的,但其意思的准确性是相当高的。这里举几个例子。
- 在翻译blog一词的时候,几经斟酌后我决定优先使用“网志”一词而非“博客”一词。
- 这不仅仅是我个人的喜好,也是对中文语言的尊重。因为blog翻译成为中文的原意就应该是“网志”,“博客”这一翻译是blog一词音译的变体。“博客”这一翻译是以娱乐的方式在玩弄语言之间的翻译。娱乐是可以接受的,但现在的问题是整个社会的娱乐已经过头了。
- blog作为一个时代出现的一种现象,是不大可能长久的,因此“博客”一词迟早是要退出历史舞台的。200年以后,当提到网志的时候,我们的后辈可能还能从字面上知道网志大概是个什么玩意;但是提到“博客”的话,他们可能就不知所云了。
- 这年头,“博客”一词被各大所谓的最知名门户网站等搞得已经越来越缺乏足够的严肃性(这也是各大所谓的最知名门户网站最擅长的:尽其所能地糟蹋中文和中文词语)。“对艺人冠以老师的称谓”让人感觉庸俗,“说某人在写博客”也快让人有差不多的感受了。
- 在对plugin一词翻译的时候,我选择使用“插件”这一译法,而非“外挂”。
- 在对login一词翻译的时候,我选择使用“登录”这一译法,而非“登陆”。关于这一点我曾在网上做过简单的调研,觉得使用“登录”使更妥当的译法。
- 在对feature一词翻译的时候,我认可《Feature是"特性"吗?》一文的看法,将其翻译为“功能部件”。
- 经过斟酌我决定将permalink一词翻译为“永久链接”,而非“静态链接”或“固定链接”。
- 在选择使用“发布文章”还是“发表文章”的时候,我决定采用前者。因为使用网志系统而公布的文章并不一定是添加文章的人自己写的,不一定是其发表的,而只是其发布的而已。
- 在翻译blog一词的时候,几经斟酌后我决定优先使用“网志”一词而非“博客”一词。
== PHP(开源)项目的中文化和国际化问题 ==
我已经在这次翻译语言包的过程,整理了一份提纲草稿,未来可能就PHP(开源)项目的国际化方面阐述些个人看法:例如在语言文件命名的标准化方面、在自然语言的自动甄别方面、在多字节支持方面等(我在某张草稿纸上大概写了六点但现在只能记得这三点,也许是因为我能谈得比较好的也就是这三点)。这几个方面是好些开源项目的通病。Serendipity在大部分方面做得不错,但在个别方面依然存在不足,例如在语言文件命名的标准化方面(Serendipity的中文语言文件的命名是不标准的,不管是简体的还是繁体的)。
== 补充信息 ==
目前本站已经在使用这个中文语言包了。需要该中文语言包的用户可以
估计过2天Serendipity官方就会将这个中文语言包加入到其每日更新的Serendipity程序包之中。
虽然我已尽力而为,但此中文语言包不可能尽善尽美,同时也可能存在一些不足。如果你在使用该语言包的过程中发现翻译方面的错误等,请通过email、留言或网志回复等方式告诉我,我会尽快对其进行检测。如果你有意为Serendipity翻译其插件的中文语言包,我也乐意在自己有时间的情况下提供技术方面的协助。
[补充说明1] 原文中给出的中文语言包下载路径是错误的,目前已经作出修改。特此更正。2007-12-02 16:02:08
类别:
Serendipity插件使用 (1)——内容重写 (Content Rewriter)
deminy 在 周二, 2006-08-15 22:05 提交
参数设置
外挂名称 (Plugin-Title):
该插件在你网志的插件列表中的可识别名称。此处可为任意可识别标题,种族歧视内容除外。
改写字符 (Rewrite string):
将要重写的内容的模版。这里需要使用特殊标记“{from}”和“{to}”。前者({from})对应于下面“改写名称/新改写名称 (Title #/New Title)”文本区域中的内容,后者({to})对应于下面“改写字/新改写字 (Description #/New Description)”文本区域中的对应内容。
改写符号 (Rewrite char):
假设你的网志中出现一个单词“serendipity*”,你希望对“serendipity”这个单词重写,而希望其后面“*”所含的内容被自动去处掉,那么把“*”所对应的字符填在此处(“*”指代的可能是多个字符)。
改写名称/新改写名称 (Title #/New Title):
要被改写的内容。
改写字/新改写字 (Description #/New Description):
改写后的内容。
文章主内容:
对文章主内容中出现的上述关键字进行重写、替换。如果你不懂这是什么意思,选“是”。
文章副内容:
对文章副内容中出现的上述关键字进行重写、替换。如果你不懂这是什么意思,选“是”。
回复:
对文章回复中出现的上述关键字进行重写、替换。如果你不懂这是什么意思,选“是”。
HTML 信息:
对文本块(一般指侧栏插件产生的文本块)中出现的上述关键字进行重写、替换。如果你不懂这是什么意思,选“是”。
举例一
我们打算给文字网志中所有的关键字“deminy”添加一个HTML链接到http://www.deminy.net这个网站。HTML中,链接一般是这么表示的:<a href="http://www.deminy.net">deminy</a>。如果在网志正文中,我们只写了deminy这个关键字,而没有加上相应的HTML链接,那么我们可以通过这个“内容重写”插件重写相关的关键字以添加链接。方法如下:
改写字符 (Rewrite string):<a href="{to}">{from}</a>
改写名称/新改写名称 (Title #/New Title):deminy
改写字/新改写字 (Description #/New Description):http://www.deminy.net
举例二
我们打算给文字网志中所有的关键字“RSS”添加一个全称说明“Rich Site Summary,网站内容聚合”。XHTML中,标签acronym是可以用来标记、解释缩写词的。那么,我们可以通过这个“内容重写”插件重写相关的关键字以添加对缩写词的全称说明。也就是:
原文:RSS;现在:RSS。
方法如下:
改写字符 (Rewrite string):<acronym title="{to}">{from}</acronym>
改写名称/新改写名称 (Title #/New Title):RSS
改写字/新改写字 (Description #/New Description):Rich Site Summary,网站内容聚合
举例三
我们打算给文字网志中所有的关键字“emails”添加一个全称说明“电子邮件”,同时要在网页上去除掉最后一个多余的“s”字符。也就是:
原文:emails;现在:email。
方法如下:
改写字符 (Rewrite string):<acronym title="{to}">{from}</acronym>
改写符号 (Rewrite char):s
改写名称/新改写名称 (Title #/New Title):emails
改写字/新改写字 (Description #/New Description):电子邮件
特别提醒
1. 在当前版本的serendipity(v1.1之前)中,该插件可能仅对文本中最后一行之前出现的关键字产生效果。
2. 该插件可重复安装。
3. 用户可考虑使用另外一个类似的插件:Tooltips(提醒工具)。
[补充说明1] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
外挂名称 (Plugin-Title):
该插件在你网志的插件列表中的可识别名称。此处可为任意可识别标题,种族歧视内容除外。
改写字符 (Rewrite string):
将要重写的内容的模版。这里需要使用特殊标记“{from}”和“{to}”。前者({from})对应于下面“改写名称/新改写名称 (Title #/New Title)”文本区域中的内容,后者({to})对应于下面“改写字/新改写字 (Description #/New Description)”文本区域中的对应内容。
改写符号 (Rewrite char):
假设你的网志中出现一个单词“serendipity*”,你希望对“serendipity”这个单词重写,而希望其后面“*”所含的内容被自动去处掉,那么把“*”所对应的字符填在此处(“*”指代的可能是多个字符)。
改写名称/新改写名称 (Title #/New Title):
要被改写的内容。
改写字/新改写字 (Description #/New Description):
改写后的内容。
文章主内容:
对文章主内容中出现的上述关键字进行重写、替换。如果你不懂这是什么意思,选“是”。
文章副内容:
对文章副内容中出现的上述关键字进行重写、替换。如果你不懂这是什么意思,选“是”。
回复:
对文章回复中出现的上述关键字进行重写、替换。如果你不懂这是什么意思,选“是”。
HTML 信息:
对文本块(一般指侧栏插件产生的文本块)中出现的上述关键字进行重写、替换。如果你不懂这是什么意思,选“是”。
举例一
我们打算给文字网志中所有的关键字“deminy”添加一个HTML链接到http://www.deminy.net这个网站。HTML中,链接一般是这么表示的:<a href="http://www.deminy.net">deminy</a>。如果在网志正文中,我们只写了deminy这个关键字,而没有加上相应的HTML链接,那么我们可以通过这个“内容重写”插件重写相关的关键字以添加链接。方法如下:
改写字符 (Rewrite string):<a href="{to}">{from}</a>
改写名称/新改写名称 (Title #/New Title):deminy
改写字/新改写字 (Description #/New Description):http://www.deminy.net
举例二
我们打算给文字网志中所有的关键字“RSS”添加一个全称说明“Rich Site Summary,网站内容聚合”。XHTML中,标签acronym是可以用来标记、解释缩写词的。那么,我们可以通过这个“内容重写”插件重写相关的关键字以添加对缩写词的全称说明。也就是:
原文:RSS;现在:RSS。
方法如下:
改写字符 (Rewrite string):<acronym title="{to}">{from}</acronym>
改写名称/新改写名称 (Title #/New Title):RSS
改写字/新改写字 (Description #/New Description):Rich Site Summary,网站内容聚合
举例三
我们打算给文字网志中所有的关键字“emails”添加一个全称说明“电子邮件”,同时要在网页上去除掉最后一个多余的“s”字符。也就是:
原文:emails;现在:email。
方法如下:
改写字符 (Rewrite string):<acronym title="{to}">{from}</acronym>
改写符号 (Rewrite char):s
改写名称/新改写名称 (Title #/New Title):emails
改写字/新改写字 (Description #/New Description):电子邮件
特别提醒
1. 在当前版本的serendipity(v1.1之前)中,该插件可能仅对文本中最后一行之前出现的关键字产生效果。
2. 该插件可重复安装。
3. 用户可考虑使用另外一个类似的插件:Tooltips(提醒工具)。
[补充说明1] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
类别:
网站变更记录 v2.1.7
deminy 在 周六, 2006-07-08 11:07 提交
* 升级网志系统
2006-06-15 15:55左右,将本站使用的网志系统Serendipity从v1.0 beta 3升级到v1.0。
* 更新搜索引擎所用的机器人文件
发现Google上收录了本站不少内容重复的网页,因此在2006-06-22 02:48:51前后重新定义了搜索引擎所用的本站机器人文件“/robots.txt”,大体上对其增加了如下限制:
Disallow: /bookmark/tag/
Disallow: /bookmark/rss/
Disallow: /bookmark/rss92/
#############################
Disallow: /blog/authors/
Disallow: /blog/categories/
Disallow: /blog/feeds/
Disallow: /blog/unsubscribe/
Disallow: /blog/approve/
Disallow: /blog/delete/
Disallow: /blog/admin/
Disallow: /blog/entries/
Disallow: /blog/plugin/
Disallow: /blog/search/
# Disallow: /blog/archives/
* 解决了本站网志的某些乱码问题
2006-06-22 17:15:55前后,研究了Serendipity网志系统的代码,解决了本站网志中相关乱码问题。
* 启用Gmail邮箱
Gmail是一款我非常欣赏、推崇的网络产品。
2006-06-27 20:07:57前后,启用Gmail作为自己日常用个人邮箱。
发往我原先使用的damon@deminy.xxx和yin6@uwindsor.xx等邮箱的email都会被转发到我Gmail邮箱中去处理。
* 更新本站首页导航条
2006-06-28 15:58:20前后,在本站首页和网志的导航条中,去除了“我的感想”和“更新记录”的链接,增加Skype我等链接。
这个更改顺应了时代发展的需要。
* 升级本站所用的GeShi系统
2006-07-02 13:00:24前后,将本站使用的GeShi程序(高亮源代码的web工具)从v1.0.7.6升级到v1.0.7.11。本站使用GeShi来显示本站相关源代码。
* 开始启用Google Calendar
2006-07-03 18:58:38前后,启用“Google Calendar”作为我的个人日程安排工具,取代原先使用的日程安排。由于我还在不断发掘Google Calendar的功能中,因此暂时还没有更改本站日程安排相关的链接。
Google为我(和其他网民)造就了一个(比较)完美的个人日程安排、提醒工具(在把Google Calendar、Gmail和FireFox浏览器结合起来使用的情况下)。
* 安装LightBox插件1
2006-07-05 09:33:01前后,阅读了Serendipity官方的一篇新网志,据此在本站安装了LightBox这个插件。
如果你不知道这个插件的功能是什么,我来告诉你:打开这个网页,点击文字中的图片,你就会看到效果了(在当前页显示图片链接内容,并且在图片下方提供一个“关闭”图片的按钮)。
* 看到一则笑话
2006-07-08 13:03:26前后,在新浪网站看到一则新闻:《4名俄罗斯工人在打扫猪圈时被熏死》。在访客评论中,有访客写道,“天哪,看了这新闻真感到后怕,我在一个大学的教务处工作,是专门负责检查男生宿舍楼卫生的。”。
暴笑。
[注1] 我觉得LightBox插件用于web上不够友好,尤其是在网速慢、面对汉语用户的情况下。因此去除了该插件。
[补充说明1] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
2006-06-15 15:55左右,将本站使用的网志系统Serendipity从v1.0 beta 3升级到v1.0。
* 更新搜索引擎所用的机器人文件
发现Google上收录了本站不少内容重复的网页,因此在2006-06-22 02:48:51前后重新定义了搜索引擎所用的本站机器人文件“/robots.txt”,大体上对其增加了如下限制:
Disallow: /bookmark/tag/
Disallow: /bookmark/rss/
Disallow: /bookmark/rss92/
#############################
Disallow: /blog/authors/
Disallow: /blog/categories/
Disallow: /blog/feeds/
Disallow: /blog/unsubscribe/
Disallow: /blog/approve/
Disallow: /blog/delete/
Disallow: /blog/admin/
Disallow: /blog/entries/
Disallow: /blog/plugin/
Disallow: /blog/search/
# Disallow: /blog/archives/
* 解决了本站网志的某些乱码问题
2006-06-22 17:15:55前后,研究了Serendipity网志系统的代码,解决了本站网志中相关乱码问题。
* 启用Gmail邮箱
Gmail是一款我非常欣赏、推崇的网络产品。
2006-06-27 20:07:57前后,启用Gmail作为自己日常用个人邮箱。
发往我原先使用的damon@deminy.xxx和yin6@uwindsor.xx等邮箱的email都会被转发到我Gmail邮箱中去处理。
* 更新本站首页导航条
2006-06-28 15:58:20前后,在本站首页和网志的导航条中,去除了“我的感想”和“更新记录”的链接,增加Skype我等链接。
这个更改顺应了时代发展的需要。
* 升级本站所用的GeShi系统
2006-07-02 13:00:24前后,将本站使用的GeShi程序(高亮源代码的web工具)从v1.0.7.6升级到v1.0.7.11。本站使用GeShi来显示本站相关源代码。
* 开始启用Google Calendar
2006-07-03 18:58:38前后,启用“Google Calendar”作为我的个人日程安排工具,取代原先使用的日程安排。由于我还在不断发掘Google Calendar的功能中,因此暂时还没有更改本站日程安排相关的链接。
Google为我(和其他网民)造就了一个(比较)完美的个人日程安排、提醒工具(在把Google Calendar、Gmail和FireFox浏览器结合起来使用的情况下)。
* 安装LightBox插件1
2006-07-05 09:33:01前后,阅读了Serendipity官方的一篇新网志,据此在本站安装了LightBox这个插件。
如果你不知道这个插件的功能是什么,我来告诉你:打开这个网页,点击文字中的图片,你就会看到效果了(在当前页显示图片链接内容,并且在图片下方提供一个“关闭”图片的按钮)。
* 看到一则笑话
2006-07-08 13:03:26前后,在新浪网站看到一则新闻:《4名俄罗斯工人在打扫猪圈时被熏死》。在访客评论中,有访客写道,“天哪,看了这新闻真感到后怕,我在一个大学的教务处工作,是专门负责检查男生宿舍楼卫生的。”。
暴笑。
[注1] 我觉得LightBox插件用于web上不够友好,尤其是在网速慢、面对汉语用户的情况下。因此去除了该插件。
[补充说明1] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
类别:
Serendipity中文乱码解决方案 (3)
deminy 在 周四, 2006-06-22 15:06 提交
本文讨论的是如何消除内置插件“serendipity_archives_plugin”和侧栏插件“serendipity_plugin_comments”在页面显示的时候出现乱码的问题。
本文适用于Serendipity v0.8.x到v1.0。
乱码可能只在特定的情况下出现。
出现乱码的可能原因有几个,例如系统不支持多字节函数、使用了wordwrap等不支持多字节的函数等。
以下用Serendipity v1.0代码举例说明。该系统采用了简体中文(utf-8)编码。
1. 解决内置插件“serendipity_archives_plugin”的乱码
在文件“./include/lang.inc.php”中,函数serendipity_mb()里,第63行代码原先为:
return mb_strtoupper(mb_substr($args[1], 0, 1)) . mb_substr($args[1], 1);
将其修改为:
return mb_strtoupper(mb_substr($args[1], 0, 1, mb_detect_encoding($args[1])), mb_detect_encoding($args[1])) . mb_substr($args[1], 1, mb_strlen($args[1], mb_detect_encoding($args[1])), mb_detect_encoding($args[1]));
这其实可能是多此一举的做法,因为一般默认相关的多字节函数会自动选取默认编码,不需要明确写出来。但是不知何处有bug(也许是PHP的,也许是Serendipity的,也许是我所作的配置方面的),使得这里必须明确说明所采用的编码。
2. 解决侧栏插件“serendipity_plugin_comments”的乱码
在文件“serendipity_plugin_comments.php”中,函数generate_content(&$title)里,从153行到202行左右,做2个工作:
2.1 将“$serendipity['lang'] == "ja"”改成“$serendipity['lang'] == "cn"”;1
2.2 将mb_strimwidth和mb_strlen等多字节函数全部加上编码参数。例如,
原先:mb_strlen( $comment)
现在:mb_strlen( $comment, mb_detect_encoding($comment))
[注1] 看上去这段像小日本写的代码,只顾自己,不顾别人。
[补充说明1] 本文的方法可能不是治本的方法。该系统太大,因此调试困难。
[补充说明2] 我昨天已向Serendipity官方提出这个bug及其解决方法。其技术人员已将相关代码修改,因此该bug将不会出现在下一个版本的Serendipity中。2006-06-23 10:03:44
[补充说明3] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
本文适用于Serendipity v0.8.x到v1.0。
乱码可能只在特定的情况下出现。
出现乱码的可能原因有几个,例如系统不支持多字节函数、使用了wordwrap等不支持多字节的函数等。
以下用Serendipity v1.0代码举例说明。该系统采用了简体中文(utf-8)编码。
1. 解决内置插件“serendipity_archives_plugin”的乱码
在文件“./include/lang.inc.php”中,函数serendipity_mb()里,第63行代码原先为:
return mb_strtoupper(mb_substr($args[1], 0, 1)) . mb_substr($args[1], 1);
将其修改为:
return mb_strtoupper(mb_substr($args[1], 0, 1, mb_detect_encoding($args[1])), mb_detect_encoding($args[1])) . mb_substr($args[1], 1, mb_strlen($args[1], mb_detect_encoding($args[1])), mb_detect_encoding($args[1]));
这其实可能是多此一举的做法,因为一般默认相关的多字节函数会自动选取默认编码,不需要明确写出来。但是不知何处有bug(也许是PHP的,也许是Serendipity的,也许是我所作的配置方面的),使得这里必须明确说明所采用的编码。
2. 解决侧栏插件“serendipity_plugin_comments”的乱码
在文件“serendipity_plugin_comments.php”中,函数generate_content(&$title)里,从153行到202行左右,做2个工作:
2.1 将“$serendipity['lang'] == "ja"”改成“$serendipity['lang'] == "cn"”;1
2.2 将mb_strimwidth和mb_strlen等多字节函数全部加上编码参数。例如,
原先:mb_strlen( $comment)
现在:mb_strlen( $comment, mb_detect_encoding($comment))
[注1] 看上去这段像小日本写的代码,只顾自己,不顾别人。
[补充说明1] 本文的方法可能不是治本的方法。该系统太大,因此调试困难。
[补充说明2] 我昨天已向Serendipity官方提出这个bug及其解决方法。其技术人员已将相关代码修改,因此该bug将不会出现在下一个版本的Serendipity中。2006-06-23 10:03:44
[补充说明3] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
类别:
网志系统Serendipity评测 (2)
deminy 在 周四, 2006-06-15 17:37 提交
在跳票4个月1后,今天,Serendipity网志系统终于发布了Serendipity v1.0最终版。为此,我特地完成这篇草稿于1个多月前的网志2,以表心中高兴之情。
本文承接《网志系统Serendipity评测 (1)》一文,进一步讨论Serendipity的一些使用技巧和使用细节。本文的部分讨论内容同样适用于其它网志系统,例如WordPress等。
首先统一一下相关名词翻译。本文中“侧栏插件”指的是sidebar plugin,事件插件指的是“event plugin”。
下面开始正式讨论。
1. 不要使用不需要的插件,不要启用过多插件
现在,Serendipity提供的插件比较多,这为Serendipity网志系统提供了丰富多彩的功能。但是对于网志而言,并不是插件使用得越多越好。很明显,过多地使用插件是会(明显)影响网页性能的。
我的个人建议是:选择使用插件一定要慎重,尽量少装插件,以免影响性能(主要指网页打开速度)。
一些简单的使用插件的规则如下:
(a). 不要启用过多插件,尤其是功能花哨的插件。
(b). 插件如果不使用的话,尽量将其从“当前使用的插件列表”中删除,而不是将其隐藏。
(c). 能合并的(侧栏)插件,尽量合并。例如,你可能想在页面侧栏中显示重要提示、文章类别、友情连接、版权声明、Google站内搜索等等内容。Serendipity提供不同的插件实现这些功能,但我并不推荐你安装全部这些插件。由于这些插件所生成的HTML代码并不会经常被改动,因此我的建议是:使用某个nugget侧栏插件(文本块插件,例如Language-Specific HTML Nugget这个插件),将相关HTML代码写到这个文本块中,然后将其显示出来。通过这种手法,你只用一个文本块侧栏插件就能将其它几个侧栏插件想实现的功能(通过变通的方法)全部实现了。
2. 插件选择
哪些插件是必选的?哪些插件是可选的?哪些插件是不必选的?
很多时候,为大多数用户提供一个“必备插件列表”的行为是愚蠢的。因此,在这里我仅仅是为他人提供我对于插件选择的一些看法。我无法告诉你哪些插件是必选的、哪些是可选的、哪些是不必选的,我只能列出我认为是相当重要的一些插件,并描述我对它们的看法。
需要注意的是,这里列出的插件的中文名称并不一定是标准的中文翻译。
我认为比较重要的侧栏插件有:
(a). 文本块 (Language-Specific HTML Nugget): 我很推荐使用这个插件,具体原因可以参考本文相关说明。
(b). 保存文库 (Archives): 我很推荐使用这个插件,因为通过它用户可以方便地访问你的所有历史网志。
(c). Google 快速搜寻 (google Quick Search): 我很推荐使用这个插件,否则你很难实现中文网志的站内搜索。这个插件需要和事件插件“Google网站地图生成器”结合起来使用。我建议你不要安装这个插件,而把相应的功能集成到某个文本块插件中。
(d). “创作共用”授权条款 (Creative Commons): 我很推荐使用这个关于版权声明的插件。但我建议你不要安装这个插件,而把相应的功能集成到某个文本块插件中。
(e). 回响 (Comments): 我比较推荐使用这个插件。通过它,大家可以知道访客留下的最新评论。
(f). 最新网志 (Recent Entries): 我比较推荐使用这个插件。通过它,用户可以在任何页面轻松地访问你最新写下的网志。
(g). 显示标签 (Show tagged entries): 我比较推荐使用这个标签。通过它,用户可以知道你特别关注、特别感兴趣的话题,能够更好地和访客分享你的爱好、兴趣。
(h). 文章同步 (Syndication): 如果你想提供访客RSS订阅功能的话,这个插件非常重要。但是,我建议你把这个插件设为隐藏状态,然后在某个文本块插件中添加一个RSS订阅用的链接。
(i). 我的日历 (My Calendar): 我不倾向于使用日历插件,觉得它浪费网页显示速度。
我认为比较重要的事件插件有:
(a). 插件管理 (Spartacus): 我很推荐使用这个插件,具体原因参见《网志系统Serendipity评测 (1)》一文。
(b). 垃圾评论屏蔽 (Spamblock): 我很推荐使用这个插件,具体原因参见《网志系统Serendipity评测 (1)》一文。
(c). 系统备份 (Backup Interface): 我很推荐使用这个插件,具体原因可以参考本文相关说明。
(d). Google网站地图生成器 (Google sitemap): 我很推荐使用这个插件,否则你很难实现中文网志的站内搜索。这个插件需要和侧栏插件“Google 快速搜寻”结合起来使用。
(e). 网志标签 (Tagging of entries): 标签是网志系统中很重要的一个功能。如果你对网志中标签(tag)和trackback的含义不是很理解的话,建议你读读这篇文章。我比较推荐使用这个插件。
(f). Trackback控制 (Trackback-Control): 我比较推荐使用这个插件,否则你很难知道哪些人在网上引用了你的网志。
(g). 网志发布 (Announce entries): 这个插件用来向各大网志搜索引擎系统提交你新发布的网志。我比较推荐使用这个插件,但不建议你向所有的网志搜索引擎发布你的网志,因为那样子会导致你发布新网志时速度很慢;而且,这些搜索引擎都是英文的,你没有必要向所有的这些英文搜索引擎提交。我自己只选择向“technorati.com”和“Yahoo!”提交我新发表的网志内容。
(h). 起始类别 (Start Page Category): 我比较推荐使用这个插件,这样你可以通过某种方式隐藏某些你不想在网志上显示的内容。
(i). 另外,我强烈建议使用换行标记 (Markup: NL2BR)、浏览器兼容 (Browser Compatibility)、网志扩展属性 (Extended properties for entries)这三个有关网志内容编辑的事件插件。
其它未在本文提及的插件可以根据你的需要取舍。
3. 页面布景模版的选择
布景(theme)这个单词,也有人翻译为“样式”、“模版”、“外观”等等。总而言之,它表示的是你的页面的样式。本文中使用“模版”一词来表达“布景”这个意思。
Serendipity提供很多不同风格的模版。我大体统计了一下,目前在Serendipity的Spartacus自动更新系统中,提供了68个模版。
但这并不意味着每个模版都适合你。
对我而言,基本上我绝对不会选择“门”字形风格(页面两侧有侧栏)的模版,也不会选择侧栏放在页面左边的模版。实际上,我只会在侧栏放在页面右边的模版中进行选择,正如你现在在本站网志系统中看到的那样。
为什么要做这样的选择??因为页面布局是会影响页面显示速度的。
页面的主体是页面中间的正文。如果你把侧栏放在页面左边,侧栏显示的内容一般就应该在主体内容之前显示出来。但是万一你的侧栏某块被堵塞的话,那么主体内容将可能显示不出来,或者要花很长时间才能显示出来。
这种问题出现在很多中国网站上。当你访问某个网站的页面的时候,经常可以看到页面标题、顶部很早就显示了,但正文却迟迟打不开。这就是页面布局设计、HTMl代码设计有问题。
因此,为了避免这个问题,你应该尽量选择“侧栏放在页面右边的模版”,这点对那些带宽不充分的访客尤其重要。
换句话说,侧栏插件应该尽量放在页面右边,尤其是那些可能影响页面打开速度的侧栏插件。
4. 使用备份插件
受过感情伤害才知道真情的可贵,丢失了电脑数据才知道数据备份的重要。
数据备份是非常重要的一项工作。如果你还没有意识到要去注意电脑数据的备份工作,我也懒得再多强调备份的重要性了。
Serendipity通过一个备份插件提供了自动化的备份机制。可以备份整套程序、全部上传文件、全部数据库信息。你可以选择备份的内容、备份的周期,你还可以选择自动备份或者手动备份。
关于备份的进一步细节我就不详谈了。
5. 再谈“垃圾评论阻挡功能”
现在,网页垃圾广告非常泛滥。针对各种网志系统、BBS系统的垃圾广告攻击行为非常常见。因此,反垃圾功能是很多web系统的重要组成功能之一。
我曾说过,“Serendipity的垃圾评论阻挡功能非常强劲”。但再强劲的系统也要善于使用。
这里提几点Serendipity中反垃圾评论、反垃圾trackback的通用技巧 (一般读者可以跳过此段,我写得比较随意、不够清晰,因此读起来有点晦涩):
(a). 启用发表评论时的Captchas图形验证码功能;启用发表评论时的时间间隔限制。
(b). Trackback必须经过验证才能发布。
(c). 严格限制评论中允许的网址数量。我的规则是:评论中含2个网址时需要管理员审核;含3个以上网址自动拒绝。如果可能的话,我会拒绝在评论中留下任何网址的行为。
(d). 必要的时候对评论中的关键字进行过滤。
(e). ……
在使用上述过滤机制的时候,你不必担心会过滤掉重要的、善意的访客评论。我曾为此担忧良久,最后认为这种担忧的确是多余的。事实证明的确如此。
6. 关于留言本插件
根据对网志的通俗定义,留言本不是网志系统的组成部分之一。但对于网志而言,一个留言本往往还是需要的,即使在网志有评论功能的情况下。
为此,Serendipity提供了一个留言本插件,但这个插件功能非常简单。例如,它没有回复功能,并且,它的页面样式过于简单。
我目前不推荐使用这个留言本插件。可惜的是,迄今为止,我尚未发现非常令我满意的、可以用来和Serendipity结合起来使用的留言本系统。
7. 中文字符集选择:GB2312还是UTF-8?
我曾写过两篇网志(1, 2)讲述我曾在Serendipity字符集选择时遇到的麻烦和解决方案。不过那2篇文章中的技术方案基本上可以认为已经过时了。
对于中文简体网页界面,Serendipity提供两种字符集供选择:一是Simplified Chinese (GB2312),一是Simplified Chinese (UTF-8)。最近2年,在网页编码中,UTF-8被越来越广泛地使用。就我目前的理解,从多个角度来讲,在绝大部分情况下,使用UTF-8将会比使用GB2312有明显优势,使用UTF-8更好。
8. 关于Serendipity中文版本
Serendipity v1.0 beta 3之前的中文翻译文件不够好(或者说马马虎虎)。一则相当部分没有翻译(尤其是大部分插件没有翻译),二则翻译的准确性也有待提高。
最近有一个叫Li, Aphonex的网友投入精力把Serendipity绝大部分语言文件(包括插件的语言文件)翻译了一遍。我曾简单地测试了一下他提供的文件,虽然还有一些瑕疵,但毕竟比之以前,要进步很多。
需要注意的一点是:汉化不完全等于翻译。翻译仅仅是汉化工作的一部分。好的汉化工作包括翻译、测试等几个必不可少的部分,缺一不可。
[注1] Serendipity v1.0原定于今年2月15日发布。
[注2] 本文最初草稿于2006-05-09 10:08:47。
[补充说明1] 由于本文过长、很可能存在错别字等,因此,不排除以后对个别错别字等作修正。
[补充说明2] 本文不大欢迎评论和提问。我已经投入比较多的精力来写这篇文章了,不想因为无益的讨论而额外浪费时间。
[补充说明3] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
本文承接《网志系统Serendipity评测 (1)》一文,进一步讨论Serendipity的一些使用技巧和使用细节。本文的部分讨论内容同样适用于其它网志系统,例如WordPress等。
首先统一一下相关名词翻译。本文中“侧栏插件”指的是sidebar plugin,事件插件指的是“event plugin”。
下面开始正式讨论。
1. 不要使用不需要的插件,不要启用过多插件
现在,Serendipity提供的插件比较多,这为Serendipity网志系统提供了丰富多彩的功能。但是对于网志而言,并不是插件使用得越多越好。很明显,过多地使用插件是会(明显)影响网页性能的。
我的个人建议是:选择使用插件一定要慎重,尽量少装插件,以免影响性能(主要指网页打开速度)。
一些简单的使用插件的规则如下:
(a). 不要启用过多插件,尤其是功能花哨的插件。
(b). 插件如果不使用的话,尽量将其从“当前使用的插件列表”中删除,而不是将其隐藏。
(c). 能合并的(侧栏)插件,尽量合并。例如,你可能想在页面侧栏中显示重要提示、文章类别、友情连接、版权声明、Google站内搜索等等内容。Serendipity提供不同的插件实现这些功能,但我并不推荐你安装全部这些插件。由于这些插件所生成的HTML代码并不会经常被改动,因此我的建议是:使用某个nugget侧栏插件(文本块插件,例如Language-Specific HTML Nugget这个插件),将相关HTML代码写到这个文本块中,然后将其显示出来。通过这种手法,你只用一个文本块侧栏插件就能将其它几个侧栏插件想实现的功能(通过变通的方法)全部实现了。
2. 插件选择
哪些插件是必选的?哪些插件是可选的?哪些插件是不必选的?
很多时候,为大多数用户提供一个“必备插件列表”的行为是愚蠢的。因此,在这里我仅仅是为他人提供我对于插件选择的一些看法。我无法告诉你哪些插件是必选的、哪些是可选的、哪些是不必选的,我只能列出我认为是相当重要的一些插件,并描述我对它们的看法。
需要注意的是,这里列出的插件的中文名称并不一定是标准的中文翻译。
我认为比较重要的侧栏插件有:
(a). 文本块 (Language-Specific HTML Nugget): 我很推荐使用这个插件,具体原因可以参考本文相关说明。
(b). 保存文库 (Archives): 我很推荐使用这个插件,因为通过它用户可以方便地访问你的所有历史网志。
(c). Google 快速搜寻 (google Quick Search): 我很推荐使用这个插件,否则你很难实现中文网志的站内搜索。这个插件需要和事件插件“Google网站地图生成器”结合起来使用。我建议你不要安装这个插件,而把相应的功能集成到某个文本块插件中。
(d). “创作共用”授权条款 (Creative Commons): 我很推荐使用这个关于版权声明的插件。但我建议你不要安装这个插件,而把相应的功能集成到某个文本块插件中。
(e). 回响 (Comments): 我比较推荐使用这个插件。通过它,大家可以知道访客留下的最新评论。
(f). 最新网志 (Recent Entries): 我比较推荐使用这个插件。通过它,用户可以在任何页面轻松地访问你最新写下的网志。
(g). 显示标签 (Show tagged entries): 我比较推荐使用这个标签。通过它,用户可以知道你特别关注、特别感兴趣的话题,能够更好地和访客分享你的爱好、兴趣。
(h). 文章同步 (Syndication): 如果你想提供访客RSS订阅功能的话,这个插件非常重要。但是,我建议你把这个插件设为隐藏状态,然后在某个文本块插件中添加一个RSS订阅用的链接。
(i). 我的日历 (My Calendar): 我不倾向于使用日历插件,觉得它浪费网页显示速度。
我认为比较重要的事件插件有:
(a). 插件管理 (Spartacus): 我很推荐使用这个插件,具体原因参见《网志系统Serendipity评测 (1)》一文。
(b). 垃圾评论屏蔽 (Spamblock): 我很推荐使用这个插件,具体原因参见《网志系统Serendipity评测 (1)》一文。
(c). 系统备份 (Backup Interface): 我很推荐使用这个插件,具体原因可以参考本文相关说明。
(d). Google网站地图生成器 (Google sitemap): 我很推荐使用这个插件,否则你很难实现中文网志的站内搜索。这个插件需要和侧栏插件“Google 快速搜寻”结合起来使用。
(e). 网志标签 (Tagging of entries): 标签是网志系统中很重要的一个功能。如果你对网志中标签(tag)和trackback的含义不是很理解的话,建议你读读这篇文章。我比较推荐使用这个插件。
(f). Trackback控制 (Trackback-Control): 我比较推荐使用这个插件,否则你很难知道哪些人在网上引用了你的网志。
(g). 网志发布 (Announce entries): 这个插件用来向各大网志搜索引擎系统提交你新发布的网志。我比较推荐使用这个插件,但不建议你向所有的网志搜索引擎发布你的网志,因为那样子会导致你发布新网志时速度很慢;而且,这些搜索引擎都是英文的,你没有必要向所有的这些英文搜索引擎提交。我自己只选择向“technorati.com”和“Yahoo!”提交我新发表的网志内容。
(h). 起始类别 (Start Page Category): 我比较推荐使用这个插件,这样你可以通过某种方式隐藏某些你不想在网志上显示的内容。
(i). 另外,我强烈建议使用换行标记 (Markup: NL2BR)、浏览器兼容 (Browser Compatibility)、网志扩展属性 (Extended properties for entries)这三个有关网志内容编辑的事件插件。
其它未在本文提及的插件可以根据你的需要取舍。
3. 页面布景模版的选择
布景(theme)这个单词,也有人翻译为“样式”、“模版”、“外观”等等。总而言之,它表示的是你的页面的样式。本文中使用“模版”一词来表达“布景”这个意思。
Serendipity提供很多不同风格的模版。我大体统计了一下,目前在Serendipity的Spartacus自动更新系统中,提供了68个模版。
但这并不意味着每个模版都适合你。
对我而言,基本上我绝对不会选择“门”字形风格(页面两侧有侧栏)的模版,也不会选择侧栏放在页面左边的模版。实际上,我只会在侧栏放在页面右边的模版中进行选择,正如你现在在本站网志系统中看到的那样。
为什么要做这样的选择??因为页面布局是会影响页面显示速度的。
页面的主体是页面中间的正文。如果你把侧栏放在页面左边,侧栏显示的内容一般就应该在主体内容之前显示出来。但是万一你的侧栏某块被堵塞的话,那么主体内容将可能显示不出来,或者要花很长时间才能显示出来。
这种问题出现在很多中国网站上。当你访问某个网站的页面的时候,经常可以看到页面标题、顶部很早就显示了,但正文却迟迟打不开。这就是页面布局设计、HTMl代码设计有问题。
因此,为了避免这个问题,你应该尽量选择“侧栏放在页面右边的模版”,这点对那些带宽不充分的访客尤其重要。
换句话说,侧栏插件应该尽量放在页面右边,尤其是那些可能影响页面打开速度的侧栏插件。
4. 使用备份插件
受过感情伤害才知道真情的可贵,丢失了电脑数据才知道数据备份的重要。
数据备份是非常重要的一项工作。如果你还没有意识到要去注意电脑数据的备份工作,我也懒得再多强调备份的重要性了。
Serendipity通过一个备份插件提供了自动化的备份机制。可以备份整套程序、全部上传文件、全部数据库信息。你可以选择备份的内容、备份的周期,你还可以选择自动备份或者手动备份。
关于备份的进一步细节我就不详谈了。
5. 再谈“垃圾评论阻挡功能”
现在,网页垃圾广告非常泛滥。针对各种网志系统、BBS系统的垃圾广告攻击行为非常常见。因此,反垃圾功能是很多web系统的重要组成功能之一。
我曾说过,“Serendipity的垃圾评论阻挡功能非常强劲”。但再强劲的系统也要善于使用。
这里提几点Serendipity中反垃圾评论、反垃圾trackback的通用技巧 (一般读者可以跳过此段,我写得比较随意、不够清晰,因此读起来有点晦涩):
(a). 启用发表评论时的Captchas图形验证码功能;启用发表评论时的时间间隔限制。
(b). Trackback必须经过验证才能发布。
(c). 严格限制评论中允许的网址数量。我的规则是:评论中含2个网址时需要管理员审核;含3个以上网址自动拒绝。如果可能的话,我会拒绝在评论中留下任何网址的行为。
(d). 必要的时候对评论中的关键字进行过滤。
(e). ……
在使用上述过滤机制的时候,你不必担心会过滤掉重要的、善意的访客评论。我曾为此担忧良久,最后认为这种担忧的确是多余的。事实证明的确如此。
6. 关于留言本插件
根据对网志的通俗定义,留言本不是网志系统的组成部分之一。但对于网志而言,一个留言本往往还是需要的,即使在网志有评论功能的情况下。
为此,Serendipity提供了一个留言本插件,但这个插件功能非常简单。例如,它没有回复功能,并且,它的页面样式过于简单。
我目前不推荐使用这个留言本插件。可惜的是,迄今为止,我尚未发现非常令我满意的、可以用来和Serendipity结合起来使用的留言本系统。
7. 中文字符集选择:GB2312还是UTF-8?
我曾写过两篇网志(1, 2)讲述我曾在Serendipity字符集选择时遇到的麻烦和解决方案。不过那2篇文章中的技术方案基本上可以认为已经过时了。
对于中文简体网页界面,Serendipity提供两种字符集供选择:一是Simplified Chinese (GB2312),一是Simplified Chinese (UTF-8)。最近2年,在网页编码中,UTF-8被越来越广泛地使用。就我目前的理解,从多个角度来讲,在绝大部分情况下,使用UTF-8将会比使用GB2312有明显优势,使用UTF-8更好。
8. 关于Serendipity中文版本
Serendipity v1.0 beta 3之前的中文翻译文件不够好(或者说马马虎虎)。一则相当部分没有翻译(尤其是大部分插件没有翻译),二则翻译的准确性也有待提高。
最近有一个叫Li, Aphonex的网友投入精力把Serendipity绝大部分语言文件(包括插件的语言文件)翻译了一遍。我曾简单地测试了一下他提供的文件,虽然还有一些瑕疵,但毕竟比之以前,要进步很多。
需要注意的一点是:汉化不完全等于翻译。翻译仅仅是汉化工作的一部分。好的汉化工作包括翻译、测试等几个必不可少的部分,缺一不可。
[注1] Serendipity v1.0原定于今年2月15日发布。
[注2] 本文最初草稿于2006-05-09 10:08:47。
[补充说明1] 由于本文过长、很可能存在错别字等,因此,不排除以后对个别错别字等作修正。
[补充说明2] 本文不大欢迎评论和提问。我已经投入比较多的精力来写这篇文章了,不想因为无益的讨论而额外浪费时间。
[补充说明3] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
类别:
近日悲欢离合
deminy 在 周五, 2006-05-12 17:48 提交
悲
前天傍晚,跟室友闲聊,惊闻上周五一名温莎本地的便衣警察在执行公务的时候被两个(家庭氛围不美满的)18岁小孩枪杀了。据《温莎星报》(Windsor Star)报道,虽然温莎曾经发生过在一场意外车祸中三名警察身亡的事故,但在最近120年以来却从未发生过警察被杀害的事件。这名37岁的警察身后留下了一个妻子和两个不满10岁的小孩,真让人惋惜、遗憾。
最近还有一个新闻,就是多伦多的一位上海移民1个月前猝死,而且身后事比较凄凉。据“文学城”网站的相关报道,这名来加拿大近3年的移民开了一个电脑店,(可能)由于操劳过度等原因导致猝死,身后留下两位年迈的父母。好在多伦多华人热心捐款使得这名华人最终能够顺利下葬。
这件伤感的事情,首先提醒我们,无论如何要注意“个人保健”问题;其次提醒我们,要有关爱的精神。自己落难的时候需要别人帮助,自己得意的时候也不要忘记帮助别人。说到这里,我不由得想起来温莎“两大”华人社团(大温莎华人协会和大温莎中国艺术学院)近期的内讧。两派都是由一帮在温莎安家立业已久、衣食无忧的华人牵头组织的,本来就应该是为华人社区服务的,但却搞成现在这种(为了名利而)“争斗”的场面。丢人啊……
欢
今天下午,Serendipity官方发布了四个模版(布景),其中Abdussamad Abdurrazzaq制作的这个“Brown paper”仿古风格的模版我非常喜欢。我立即在本站采用了该模版,用它替代了本站先前使用的Serendipity默认的“RTL-Languages v0.3”模版。13
不过,这个模版目前还有一些小bug。正如你现在所看到的:本站网志页面某些同类链接的颜色、样式不一致。不过没关系,我已经留言给该模版的作者了,相信这个小问题会很快被解决的。2
这个模版真好看。有理由相信我是全球第一个使用该模版的中文网志作者 :)
离
昨天一早,室友小才走了,去多伦多搭乘回国的飞机。昨天一早,我听到楼下他临走前收拾东西的声音,但没起“床”,也就没下去送别。
自古送别多伤感,索性还不如默默地走了的好。
现在想想,还是应该起来送别的。虽然会让我暂时觉得心里更不舒服,但对远行者,也许是一种慰籍。
但这种慰籍对他的未来有好处吗?未必。那么,还是躺着继续睡觉吧。
记得2000年的时候,我曾在网上写下这么一句话(大意):天涯无限远,网络若比邻。
合
前天晚上,忽然接到温莎大学一同学Shaly小姐的电话。电话里,她跟我说,周六要结婚了,想邀我也参加。她一说要结婚的时候,我当时像傻子一样,差点没反应过来。觉得真是有点不可思议,有些人不知不觉就结婚了。
嘿嘿,不过,这将是我在北美参加的第一场婚礼。
本来我可能参加的第一场婚礼是2003年孙建成的,只是当时我不喜欢和生人多打交道,也不喜欢去教堂,于是谢绝了当时室友们的邀请;后来2004年我前房东结婚,本来我也该参加的,可惜她跑美国结婚去了,而我当时没美国签证,只好作罢;再后来,本来我参加的第一场婚礼应该是今年7月份在Hamilton友人的婚礼,现在倒好,Shaly抢先了 :)
[注1] 不排除以后(或者最近)恢复原先模版的可能。
[补充说明2] 实际上这不是一个bug,只是由于模版作者对于“访问过的链接”和“未访问过的链接”采用了不同的显示样式而已。 2006-05-12 21:55:56
[补充说明3] 此处描述错误。本站先前使用的是“Serendipity v2.3”模版,而非“RTL-Languages v0.3”模版。由于这两个模版风格非常接近,因此导致此处笔误。 2006-05-15 19:36:17
前天傍晚,跟室友闲聊,惊闻上周五一名温莎本地的便衣警察在执行公务的时候被两个(家庭氛围不美满的)18岁小孩枪杀了。据《温莎星报》(Windsor Star)报道,虽然温莎曾经发生过在一场意外车祸中三名警察身亡的事故,但在最近120年以来却从未发生过警察被杀害的事件。这名37岁的警察身后留下了一个妻子和两个不满10岁的小孩,真让人惋惜、遗憾。
最近还有一个新闻,就是多伦多的一位上海移民1个月前猝死,而且身后事比较凄凉。据“文学城”网站的相关报道,这名来加拿大近3年的移民开了一个电脑店,(可能)由于操劳过度等原因导致猝死,身后留下两位年迈的父母。好在多伦多华人热心捐款使得这名华人最终能够顺利下葬。
这件伤感的事情,首先提醒我们,无论如何要注意“个人保健”问题;其次提醒我们,要有关爱的精神。自己落难的时候需要别人帮助,自己得意的时候也不要忘记帮助别人。说到这里,我不由得想起来温莎“两大”华人社团(大温莎华人协会和大温莎中国艺术学院)近期的内讧。两派都是由一帮在温莎安家立业已久、衣食无忧的华人牵头组织的,本来就应该是为华人社区服务的,但却搞成现在这种(为了名利而)“争斗”的场面。丢人啊……
欢
今天下午,Serendipity官方发布了四个模版(布景),其中Abdussamad Abdurrazzaq制作的这个“Brown paper”仿古风格的模版我非常喜欢。我立即在本站采用了该模版,用它替代了本站先前使用的Serendipity默认的“RTL-Languages v0.3”模版。13
不过,这个模版目前还有一些小bug。正如你现在所看到的:本站网志页面某些同类链接的颜色、样式不一致。不过没关系,我已经留言给该模版的作者了,相信这个小问题会很快被解决的。2
这个模版真好看。有理由相信我是全球第一个使用该模版的中文网志作者 :)
离
昨天一早,室友小才走了,去多伦多搭乘回国的飞机。昨天一早,我听到楼下他临走前收拾东西的声音,但没起“床”,也就没下去送别。
自古送别多伤感,索性还不如默默地走了的好。
现在想想,还是应该起来送别的。虽然会让我暂时觉得心里更不舒服,但对远行者,也许是一种慰籍。
但这种慰籍对他的未来有好处吗?未必。那么,还是躺着继续睡觉吧。
记得2000年的时候,我曾在网上写下这么一句话(大意):天涯无限远,网络若比邻。
合
前天晚上,忽然接到温莎大学一同学Shaly小姐的电话。电话里,她跟我说,周六要结婚了,想邀我也参加。她一说要结婚的时候,我当时像傻子一样,差点没反应过来。觉得真是有点不可思议,有些人不知不觉就结婚了。
嘿嘿,不过,这将是我在北美参加的第一场婚礼。
本来我可能参加的第一场婚礼是2003年孙建成的,只是当时我不喜欢和生人多打交道,也不喜欢去教堂,于是谢绝了当时室友们的邀请;后来2004年我前房东结婚,本来我也该参加的,可惜她跑美国结婚去了,而我当时没美国签证,只好作罢;再后来,本来我参加的第一场婚礼应该是今年7月份在Hamilton友人的婚礼,现在倒好,Shaly抢先了 :)
[注1] 不排除以后(或者最近)恢复原先模版的可能。
[补充说明2] 实际上这不是一个bug,只是由于模版作者对于“访问过的链接”和“未访问过的链接”采用了不同的显示样式而已。 2006-05-12 21:55:56
[补充说明3] 此处描述错误。本站先前使用的是“Serendipity v2.3”模版,而非“RTL-Languages v0.3”模版。由于这两个模版风格非常接近,因此导致此处笔误。 2006-05-15 19:36:17
类别:
网站变更记录 v2.1.1
deminy 在 周日, 2006-05-07 14:53 提交
本站当前的图库系统采用的是Gallery2,网志(blog)系统采用的是Serendipity。
Gallery2的样式表(CSS)设计是针对英文字体而优化的,用来显示中文字体的话效果并不好,需要手工对CSS进行修改、美化。而美化网站是我的弱项。
今天下午,启用Serendipity的插件“serendipity_event_g2embed”。该插件用于将Gallery2图库系统集成到Serendipity网志系统中。这样一来,就省得我去考虑美化图库的样式表这种问题了。
点此查看现在“我的照片”(图库)的显示效果。
并顺手把图库使用的Gallery2从v2.0.2升级到当前最新版v2.1.1。
[补充说明1] 2006-06-21晚发现图库界面描述文字为乱码。问题原因:可能是升级造成的。解决方案:在管理界面的“ 系统维护”中选择“删除数据库缓存”。2006-06-21 22:50:00
Gallery2的样式表(CSS)设计是针对英文字体而优化的,用来显示中文字体的话效果并不好,需要手工对CSS进行修改、美化。而美化网站是我的弱项。
今天下午,启用Serendipity的插件“serendipity_event_g2embed”。该插件用于将Gallery2图库系统集成到Serendipity网志系统中。这样一来,就省得我去考虑美化图库的样式表这种问题了。
并顺手把图库使用的Gallery2从v2.0.2升级到当前最新版v2.1.1。
[补充说明1] 2006-06-21晚发现图库界面描述文字为乱码。问题原因:可能是升级造成的。解决方案:在管理界面的“ 系统维护”中选择“删除数据库缓存”。2006-06-21 22:50:00
类别:
闲扯Serenditpity
deminy 在 周五, 2006-04-14 12:50 提交
我曾N次在网志上提到了Serendipity,而且每次提到的时候,我都会附带说一下这是一个网志系统,也就是用来写网志的一个工具/程序。
和另外一个著名的网志程序WordPress相比,Serendipity的名气明显要小一些。在中文世界,由于语言的限制,Serendipity的名气就更小一些了。因此,有必要对Serendipity的含义、背景和花絮做一点介绍。
1. Serendipity的英文具体意思是什么
在“Google翻译”中,serendipity的中文意思是“意外的收获”;在“金山词霸”里, serendipity的中文意思是“有意外发现珍宝的运气”。
其实,如果说《serendipity》是美国2001年推出的浪漫爱情电影《缘份天注定》(见右图)的英文名称的话,就会有很多人一下子恍然大悟了。当然,虽然serendipity的中文意思不是“缘份天注定”,但在电影中把它意译为“缘份天注定”,我认为还是非常贴切、甚至经典的。
2. Serendipity的logo有什么具体的含义
Serendipity的logo(图标,见右上图)不容易被读懂。其实,这个logo是一个从上向下拍摄的咖啡杯的图像、再加上s9y的文字组合而成的。我想这个logo的创作者要表达的本意是:Serendipity就是一个能够让你一边轻松地喝咖啡、一边写下你心情的网志系统,网志是轻松心情的一种表达方式。
由于这个logo的可读性比较差,因此最近相关人员也在讨论是否有必要在VI(视觉形象)等方面做一些改进,例如设计新的logo等等。可以从这个网址获得相关讨论的进一步信息。
3. Serendipity官方网站的域名“s9y.org”中的s9y是什么意思
Serendipity官方网站的域名“s9y.org”中的s9y是Serendipity这个英文单词的缩写。但这个缩写形式看起来有点怪异。IT技术人员好些都知道i18n这个术语,其实它是"Internationalization" (国际化)这个单词的缩写。为什么是i18n呢?因为头一个字母i和最后一个字母n中间有18个字母。那么,为什么是s9y呢?因为单词Serendipity中头一个字母s和最后一个字母y中间有9个字母。
[补充说明1] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
和另外一个著名的网志程序WordPress相比,Serendipity的名气明显要小一些。在中文世界,由于语言的限制,Serendipity的名气就更小一些了。因此,有必要对Serendipity的含义、背景和花絮做一点介绍。
1. Serendipity的英文具体意思是什么
在“Google翻译”中,serendipity的中文意思是“意外的收获”;在“金山词霸”里, serendipity的中文意思是“有意外发现珍宝的运气”。
其实,如果说《serendipity》是美国2001年推出的浪漫爱情电影《缘份天注定》(见右图)的英文名称的话,就会有很多人一下子恍然大悟了。当然,虽然serendipity的中文意思不是“缘份天注定”,但在电影中把它意译为“缘份天注定”,我认为还是非常贴切、甚至经典的。
2. Serendipity的logo有什么具体的含义
Serendipity的logo(图标,见右上图)不容易被读懂。其实,这个logo是一个从上向下拍摄的咖啡杯的图像、再加上s9y的文字组合而成的。我想这个logo的创作者要表达的本意是:Serendipity就是一个能够让你一边轻松地喝咖啡、一边写下你心情的网志系统,网志是轻松心情的一种表达方式。
由于这个logo的可读性比较差,因此最近相关人员也在讨论是否有必要在VI(视觉形象)等方面做一些改进,例如设计新的logo等等。可以从这个网址获得相关讨论的进一步信息。
3. Serendipity官方网站的域名“s9y.org”中的s9y是什么意思
Serendipity官方网站的域名“s9y.org”中的s9y是Serendipity这个英文单词的缩写。但这个缩写形式看起来有点怪异。IT技术人员好些都知道i18n这个术语,其实它是"Internationalization" (国际化)这个单词的缩写。为什么是i18n呢?因为头一个字母i和最后一个字母n中间有18个字母。那么,为什么是s9y呢?因为单词Serendipity中头一个字母s和最后一个字母y中间有9个字母。
[补充说明1] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
类别:
关于网志标签的使用
deminy 在 周二, 2006-03-28 10:37 提交
以前我没考虑过使用网志(blog)的标签(tag)功能,因为觉得这种需要不断的手工操作的功能很麻烦。
昨天晚上,我在本站启用了Serendipity(本站用来写网志的程序)的标签插件,并给所有2006年里写的网志定义了相应的标签。很快,我就喜欢上了网志的标签功能。
今天,我阅读本站网志的RSS原文,却发现一个让我诧异的地方:RSS中把本站文字的类别定义为RSS中的一个类别(category),但把本站文字的标签也定义为RSS中的一个类别。
举例而言,如果我写了一篇网志,叫做“刘德华 - 你是我的骄傲”,把它归类到“往事悠悠”这个类别中,但同时给这篇文字定义了三个标签:“PPLive”、“刘德华”、“演唱会”的话,那么,在本站网志的RSS原文中,这篇文章就会被被定义为属于四个类别:“往事悠悠”、“PPLive”、“刘德华”、“演唱会”。
起初我觉得这是一个荒谬的做法:怎么能够把标签也当作类别来看待呢?于是我去寻找相应的设置和插件,希望能改变这个“荒谬的”设置。不过没有找到。
于是我去Serendipity的官方论坛查找有关信息,并没有发现相关的具体论述,只是看到Garvin Hicking (Serendipity的负责人)自己也认为类别和标签是有区别的。
然后又想起来多天前看到的一篇文章:“Trackback与Tag”。重新翻出来看了一遍,于是开始认可了Serendipity的做法:标签某些时候也可以当作类别来使用。
[补充说明1] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
昨天晚上,我在本站启用了Serendipity(本站用来写网志的程序)的标签插件,并给所有2006年里写的网志定义了相应的标签。很快,我就喜欢上了网志的标签功能。
今天,我阅读本站网志的RSS原文,却发现一个让我诧异的地方:RSS中把本站文字的类别定义为RSS中的一个类别(category),但把本站文字的标签也定义为RSS中的一个类别。
举例而言,如果我写了一篇网志,叫做“刘德华 - 你是我的骄傲”,把它归类到“往事悠悠”这个类别中,但同时给这篇文字定义了三个标签:“PPLive”、“刘德华”、“演唱会”的话,那么,在本站网志的RSS原文中,这篇文章就会被被定义为属于四个类别:“往事悠悠”、“PPLive”、“刘德华”、“演唱会”。
起初我觉得这是一个荒谬的做法:怎么能够把标签也当作类别来看待呢?于是我去寻找相应的设置和插件,希望能改变这个“荒谬的”设置。不过没有找到。
于是我去Serendipity的官方论坛查找有关信息,并没有发现相关的具体论述,只是看到Garvin Hicking (Serendipity的负责人)自己也认为类别和标签是有区别的。
然后又想起来多天前看到的一篇文章:“Trackback与Tag”。重新翻出来看了一遍,于是开始认可了Serendipity的做法:标签某些时候也可以当作类别来使用。
[补充说明1] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
类别:
网志系统Serendipity评测 (1)
deminy 在 周一, 2006-03-13 16:07 提交
使用Serendipity作为本站的网志(blog)系统已经有2个来月了。在这个过程中我越来越欣赏这款个人网志系统,因此把使用过程中相关的具体感受写下来,以便其它用户参考。
本文只会介绍/讨论Serendipity中几个让我眼睛发亮的优异功能。也许部分功能别的网志系统(例如WordPress)也有,但是我没有怎么用过别的网志系统,因此也就无从做出比较。我只能说,Serendipity所提供的这几个优异功能让我很开心。
1. 全站文字导入导出功能
好像这个功能看起来很普通,但在信息管理中这是一个极其重要的功能。当你准备做整个系统的迁移、切换的时候,这个功能很重要。Serendipity的这个功能使得用户使用Serendipity很轻松:想用就用,想走就走,切换容易;而不是像某些别的系统,一旦你采用了,想要切换到别的系统很困难。从这一点上来讲,Serendipity为用户考虑得还是很体贴的。
当然,如果你要导入、导出更详细的信息(例如访客评论信息等)的话,那么还是要费点功夫的。
2. 垃圾评论阻挡功能
Serendipity的垃圾评论阻挡功能非常强劲。最近(指2006年3月上旬)本站开始陆续收到来自同一源头的、具有较高智商的垃圾广告评论骚扰/攻击,但是我并不需要对垃圾评论做什么手工的删除操作等,Serendipity自动把这些垃圾评论挡住了,省了我很多事。
因此我对Serendipity的垃圾评论阻挡功能赞誉有加。想想吧,如果Serendipity不能有效地挡住这些垃圾评论的话,那么我每天都将要花一些时间去删除这些垃圾评论,那会多么烦人……
3. 模块/模版自动侦测功能 (Spartacus)
Senrendipity有一个插件叫做Spartacus: [S]erendipity [P]lugin [A]ccess [R]epository [T]ool [A]nd [C]ustomization/[U]nification [S]ystem (Serendipity插件自动获取、配置、协调系统),允许用户连接到在线插件库并下载、安装相关插件。插件库提供的插件包括插件(plugin,可理解为模块)和模版(theme)两种类型。这个功能是相当重要并且相当有利于用户使用的:让你能够比较轻松地从插件库中找到你所需要的插件,易于用户使用和维护插件。
4. Google站点地图模块
这是一个很实用、让人激动的模块。对于中小型信息发布类型的网站而言,如果没有自己的有效的站内搜索功能的话,那么采用Google站点地图功能来实现站内搜索是非常好的一个思想。这个模块能够在最短时间内把你的网站更新的内容通知Google,使得Google能够很快地将你网站的最新内容添加到其搜索引擎中。根据我的使用体验来看,顺利的话一篇文字发布后24小时到48小时内就能够出现在google的搜索引擎中。
5. 草稿模式
我写文字的方式是断断续续、涂涂改改,有时候一篇文字从雏形到写完需要好几天,甚至很久。以前我专门用一个文本文件来记录我正在写和已经写完的草稿文字,日积月累下来这个文件大约有6000行/段的文字了,操作起来比较繁琐;所以后来我又创建了第二个文本文件用来记录自己的草稿文字。
但现在,我改变了我的草稿文字书写的习惯。我正在写的草稿文字都以“草稿”的状态保存在Serendipity中,等到哪天我觉得写好了、改好了,我就把该文字从“草稿”的状态改成“公开”的状态发布出去。这样,我有什么零星想法的时候,都能及时地记录在Serendipity中,然后以后再不断地充实该文字,直到最后成文。我可以在家里写、可以在学校写、可以在外地写,可以在任何有网络的地方写我的零星感想。
“草稿模式”是一个很实用的功能,好些别的网志系统应该也有这个功能。
[补充说明1] 本文初次编写于2006-03-09 15:25,完成于今日。
[补充说明2] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
本文只会介绍/讨论Serendipity中几个让我眼睛发亮的优异功能。也许部分功能别的网志系统(例如WordPress)也有,但是我没有怎么用过别的网志系统,因此也就无从做出比较。我只能说,Serendipity所提供的这几个优异功能让我很开心。
1. 全站文字导入导出功能
好像这个功能看起来很普通,但在信息管理中这是一个极其重要的功能。当你准备做整个系统的迁移、切换的时候,这个功能很重要。Serendipity的这个功能使得用户使用Serendipity很轻松:想用就用,想走就走,切换容易;而不是像某些别的系统,一旦你采用了,想要切换到别的系统很困难。从这一点上来讲,Serendipity为用户考虑得还是很体贴的。
当然,如果你要导入、导出更详细的信息(例如访客评论信息等)的话,那么还是要费点功夫的。
2. 垃圾评论阻挡功能
Serendipity的垃圾评论阻挡功能非常强劲。最近(指2006年3月上旬)本站开始陆续收到来自同一源头的、具有较高智商的垃圾广告评论骚扰/攻击,但是我并不需要对垃圾评论做什么手工的删除操作等,Serendipity自动把这些垃圾评论挡住了,省了我很多事。
因此我对Serendipity的垃圾评论阻挡功能赞誉有加。想想吧,如果Serendipity不能有效地挡住这些垃圾评论的话,那么我每天都将要花一些时间去删除这些垃圾评论,那会多么烦人……
3. 模块/模版自动侦测功能 (Spartacus)
Senrendipity有一个插件叫做Spartacus: [S]erendipity [P]lugin [A]ccess [R]epository [T]ool [A]nd [C]ustomization/[U]nification [S]ystem (Serendipity插件自动获取、配置、协调系统),允许用户连接到在线插件库并下载、安装相关插件。插件库提供的插件包括插件(plugin,可理解为模块)和模版(theme)两种类型。这个功能是相当重要并且相当有利于用户使用的:让你能够比较轻松地从插件库中找到你所需要的插件,易于用户使用和维护插件。
4. Google站点地图模块
这是一个很实用、让人激动的模块。对于中小型信息发布类型的网站而言,如果没有自己的有效的站内搜索功能的话,那么采用Google站点地图功能来实现站内搜索是非常好的一个思想。这个模块能够在最短时间内把你的网站更新的内容通知Google,使得Google能够很快地将你网站的最新内容添加到其搜索引擎中。根据我的使用体验来看,顺利的话一篇文字发布后24小时到48小时内就能够出现在google的搜索引擎中。
5. 草稿模式
我写文字的方式是断断续续、涂涂改改,有时候一篇文字从雏形到写完需要好几天,甚至很久。以前我专门用一个文本文件来记录我正在写和已经写完的草稿文字,日积月累下来这个文件大约有6000行/段的文字了,操作起来比较繁琐;所以后来我又创建了第二个文本文件用来记录自己的草稿文字。
但现在,我改变了我的草稿文字书写的习惯。我正在写的草稿文字都以“草稿”的状态保存在Serendipity中,等到哪天我觉得写好了、改好了,我就把该文字从“草稿”的状态改成“公开”的状态发布出去。这样,我有什么零星想法的时候,都能及时地记录在Serendipity中,然后以后再不断地充实该文字,直到最后成文。我可以在家里写、可以在学校写、可以在外地写,可以在任何有网络的地方写我的零星感想。
“草稿模式”是一个很实用的功能,好些别的网志系统应该也有这个功能。
[补充说明1] 本文初次编写于2006-03-09 15:25,完成于今日。
[补充说明2] 如欲浏览更多关于Serendipity的使用、维护信息,请参考《网志程序Serendipity中文维护个人文集》一文。2007-07-15 14:23:19
类别: