一道关于PHP的代码题

我们公司招聘PHP开发人员的时候,电话面试之前会有一个笔试。也就是说,给应聘者几道PHP语言和MySQL数据库开发方面相关的问题,再给他一个晚上的时间来回答这些问题;第二天早上之前应聘者需将答案通过电子邮件发回来,随后公司的核心开发人员会根据其回答问题的情况来决定是否需要进行下一阶段的面试(电话面试或当面面试)。

设计比较好一点的技术方面的问题是比较困难的,因此公司常常也会让新来的开发人员设计几道问题以供参考。

2007年12月4日(周二),我在编写程序生成两份数据报告的时候,根据程序调试过程中出现的问题总结了如下一道问题。这个问题着重考察对PHP中变量引用(variable reference,相当于C里面的指针)、数组遍历这两方面的掌握,需要对相关知识有清晰的理解才能回答准确。这类问题并不一定适合在面试的时候用,不过,用这个问题来温习一下PHP中的一些技术要点还是有些意思的,因此我一直把这个问题收录着。

<?php
$data = array('a', 'b', 'c');

foreach ($data as $key => $val) {
    $val = &$data[$key];
}
?>


问题1: 程序执行时,每一次循环结束后变量$data的值是什么?请解释。
问题2: 程序执行完以后,变量$data的值是什么?请解释。

补充说明:本文草稿完成于2008-10-21。

标签:

类别:

未曾真正拥有过的权利——选举权

== 事情前后 ==

周三(10月1日)晚上,用电脑整理个人资料。按照以前自己拟定的修改加拿大住址的细则在修改住址的时候,看到加拿大选举的网站,于是想起来马上加拿大要换届选举了。本来投票选举国家领导人对我而言是无所谓轻重缓急的,何况我不在加拿大已经快2年了,但是转而一想:作为一名新的加拿大公民,在好些方面表现好一点对未来也许会更有利(例如以后办理亲属团聚移民等);而且,本来就对加拿大颇有感情的我也想做个模范公民。于是乎,我填了一份海外公民申请在大选中投票的表格,并很积极地请在多伦多的同学帮忙将申请表格传真到政府相关部门。

第二天(周四)中午乘公司午餐时间去办汽车保险。办完后回公司的路上,在手机上看到一个来自加拿大首都渥太华的未接电话(之所以我一看到613的区号就知道是渥太华打来的的,是因为我有个很熟悉的高中师弟在渥太华生活)。我以为是高中师弟打来的,所以并未在意(当然,如果是师弟打来的话,我当然希望他能有些好的消息和我分享)。下午上班的时候,我拿出电话来看看,才注意到还有一个语音留言。听了那个语音留言后,我才明白原来中午那个未接电话是加拿大政府机构工作人员从首都渥太华打来的。工作人员在留言中告诉我说收到了我注册参加选举的申请,但还需要我提交护照等文件。

我的好些个人证件、重要收据等都已经扫描成PDF文档,以备不时之需。晚上回家后,把加拿大护照、公民证等合并成PDF文档,通过FaxZero网站把这些文档传真到加拿大政府机构。

当天夜里入睡前,想起加拿大政府工作人员给我打电话这一事情,不由得回想起来我在大陆国内的那些岁月。想起来20世纪末、21世纪初的时候,不论是我在成都工作、还是在北京工作的时候,不论我的工作表面上看上去怎么光鲜,我还是得乖乖地去有关政府部门申请一份暂住证,还是得低三下四地被相关部门在暂住证上写下一些自己觉得郁闷的文字,甚至我在成都的暂住证还要在同学的母亲帮忙下才得以顺利办成。于是,入睡前的我脑海中浮现出来一句话:未曾真正拥有过的权利!我感觉到我的某些权利受到了尊重,为此,我感谢加拿大。

第三天(周五)中午的时候,又接到来自渥太华的电话。原来是加拿大政府机构的工作人员没有注意到我前一天晚上补发的身份证明材料,于是又打过来就此事和我联系。我告诉她我前一天晚上已经把身份证明文件传真过去了。工作人员说她才注意到电脑系统里面有新的更新信息,如果还有问题的话,她会回头再和我联系。

== 感想 ==

有些权利(不是权力)我父母未曾真正拥有过,我也未曾真正拥有过。现在,我拥有了点原本属于我的权利。也许这权利还是虚无缥缈、还是微不足道,但至少,加拿大政府至少在表面上认真对待我的申请、并尊重我作为这个国家一分子的基本权利。

== 补充说明1 ==

我并非完全谴责国内某些现状。我从小到现在,包括以后相当一段时间内,都始终如一地支持中共对中国的绝对领导地位(国情使然),并始终认为中共的领导是最符合中国国情、最符合中国需要、最能保证中国稳定发展的。但是,在这种国情下,个体的权利在国内常常得不到应有的尊重。

== 补充说明2:关于在北美免费收发传真 ==

在北美(指美国和加拿大),如果需要传真收发服务的话,在对传真服务要求有限的情况下,可通过eFax提供的免费传真接收号码收传真,通过FaxZero提供的免费传真发送服务发传真。

如果需要测试的话,可以在eFax注册一个传真号码,然后通过FaxZero给自己在eFax的号码发一个传真。关于网络传真,还可参阅我的文字《Skype和网络传真》。

类别:

不知所云 (1)

== 前言 ==

大概两年前我曾在jiaoyou8网站(北美的一个华人交友、征婚网站)上看到一个女孩说过这么一句话(可能是在她的自我介绍上看到的)。她说(大意):“如果男方还是留学生的话,她可以不在乎他的经济情况;但是如果男方已经35岁了却还没房没车的话(deminy注:这里所说的有房有车是指在美国的生活),她就要问:这些年你都在干嘛了?”我觉得这个女孩对男方所说的要求是颇为合理的。

== 乱谈 ==

最近两三年我都把gmail作为自己主要的email账号,很多个人事务(包括日程提醒等)都是通过gmail来提醒、管理和处理的。我的gmail邮箱中,已经处理完毕的email我都会从“收件夹”中移出放到其他文件夹中。因此,我的gmail邮箱里面“收件夹”中的邮件数量往往代表当前我的生活状态。

2007年的绝大部分时间里我都能把gmail“收件夹”中的邮件数量保持在个位数以内,也就是说,当时我都能够比较及时地处理掉生活中遇到的事情,个人时间还相对比较宽裕。在2008年上半年,曾有一次“收件夹”中的邮件数量逼近100份,随后被我快刀斩乱麻清理到只剩40余封email。但不久之后,我的gmail邮箱“收件夹”中的邮件数量又开始不断增加,目前已经达到了138份。我暂时还没有准备清理这些邮件的打算。

这些未清理的邮件(或者说未处理的邮件)表明我目前有好些计划中的事情没有能按照预定计划处理完毕。比如说,很多银行的电子帐单没有按时从网上下载并归类存档(我在北美的银行和信用卡帐单都有电子存档)、个人百科中的有关文字没有及时更新(我个人2008年的年鉴已经好久没更新了)、有些计划中的网志文字没有按计划编写(例如我曾计划每隔几年就回答一次的《我的普鲁斯特问卷》就还没有按照计划写今年的答案)、应该给国内个别亲友拨打的电话没有按时拨打等等……

目前,我个人平时工作比较忙,而且我现在在尽量集中工作之余的精力起步开始建立自己的在线电子业务。建立自己的在线电子业务是我在美国生活、工作一年多之后对自己以后所作出的发展计划。因此,目前我没有很多时间顾及自己的网上生活,而且,我把生活中的一些其他计划给推迟了,例如考MySQL的工程师证书、例如重新找份工作和搬到加州等等。

== 总结 ==

在美国一年多的生活和工作中,我有很多很多感想(但没时间写下来),也对个人的发展有一些明确的认识,而我现在就在想尽量把自己的一些想法付诸实践。简而言之,就是很多问题要靠经济能力说话。生活让我得出的结论之一就是:现在要努力挣钱,以后再享受生活。

当然,除了挣钱,以后我想做的事情(包括有意义的事情)还很多很多很多很多,一辈子都忙不完。估计我这辈子最不缺的就是有事做。

== 尾巴 ==

最近写了几次网志草稿,现在发现自己文字越写越差了,写写就半途而废了。以后要坚持写完。哪怕写的是涂鸦,那也至少是自己真实想的。

标签:

类别:

浅谈Magento

最近一个月开始深入研究Magento(一套开源网上商店系统)。

Magento这套开源网上商店系统非常非常非常非常出色。其基于经典的PEAR架构和Zend Framework架构,使用EAV(实体-属性-值)模型,设计完美,扩展性极好。明显超越phpMyAdmin、Smarty等众多著名的PHP开源系统,是PHP开源系统中惊艳、典范、登峰造极之作,是未来网上电子商务站点的首选。

Magento应该是当今开源电子商务系统的翘楚,能跟其在同一档次的同类系统应该没有。和Magento比起来,osCommerce……不堪入目。

Magento瑕疵很少,很难得。我想起来《笑傲江湖》里面好像说过,练武不仅仅是武功高的问题,而且还有如何减少自己武功中的瑕疵和漏洞的问题;瑕疵、漏洞越少,才能更立于不败之地(例如武当掌门用滴水不漏的剑法将自身武功的漏洞雪藏其中,让外人不易识破、很难攻入)。就像早先的phpBB3,万众期待,结果居然对UTF-8的支持颇为糟糕,引来一片非议,最终phpBB3还是决定完善地支持UTF-8编码了。Magento在不断减少自身漏洞、缺点方面做得很好。(这段描述只是说Magento在设计上很合理,即便有bug也往往能很快修补;但并不是说Magento没有什么bug)。

使用Zend Studio for Eclipse (仅限于v6.0.1或以上)这款IDE来管理、开发Magento,是最完美搭配。

Magento的缺点:
* 功能很好很强大,在没有专人指导的情况下用户不太容易直接上手,虽然它的易用性其实很不错。
* 二次开发或对其作修改的话,需要有较好的计算机编程知识、PHP编程水平以及web编程水平,最好对Zend Framework这套框架比较了解。对于程序员而言,这不是一个入门级的开源产品可以随便轻易上手的。

其他的就不深入展开了,太花时间。谢绝讨论细节,抱歉。

标签:

类别:

南京师大附中95届高三(2)班北美同学2008聚会方案

南京师大附中95届高三(2)班北美同学2008聚会方案

最后修订日期:2008224
方案总结人:殷德敏

一、前言

此份方案主要根据2008224日美东时间下午5时召开的电话会议期间各位同学达成的大致意见总结而成,对本班北美同学2008年的聚会作出相关计划。

二、聚会地点

美国东部,PrincetonNew York附近,偏向于以Princeton为主要参考地点选择酒店并作为同学聚集地点。

冯某、许、朱三人负责协商并决定最终聚集地点、并提供酒店列表供外地同学参考。三人应于200831日之前作出最终决定、由冯同学总结三人最终决定并分发给所有同学。该决定内容应清晰、明了。
在该决定作出后,原则上其他同学对他们三人所作决定不该再发表异议,但可在其协商期间向三人提供个人看法和建议。

外地同学应(尽可能)居住在同一酒店,便于活动。

有关随后的航班订票等事宜,可群发邮件讨论,或者向冯、许、朱等三人咨询。
外地同学如果需要接机的话,建议互相协调飞机抵达时间,避免提供接机的同学多次往返机场和酒店。能够提供接机服务的同学请修改此处、将自己名字列上、并提出相关注意事项等。

三、聚会时间和内容

聚会时间为2008516日(周五)至2008518日(周日)。

2008516日(周五):签到日。所有参与聚会同学应于该日23:59之前抵达所在酒店。

2008517日(周六):该日是聚会最主要的一天。该日活动是强制性的,所有参与聚会的同学皆应参加、统一活动。
活动主要分为午餐、午后活动、晚餐、晚上活动等四个时间段。
我们认为重要的是聚会本身,而活动的内容则是其次的。在224日的会议电话期间并未就具体活动内容作出明确决定,具体的活动内容有待协商并欢迎提供建议、意见。目前的初步看法是:由于时间有限,因此在这一天不宜集体前往纽约市区观光、游玩。

2008516日(周日):该日为返程日期。美西地区的同学可能早上就要乘飞机离开,其他外地同学可能中午、午后或晚上离开。
该日的活动没有任何强制性安排。如果有愿意结伴去纽约市区观光、游玩的同学可以自行组织前往,或者自行组织其他活动。

以上时间均以美东时间为准。

四、聚会人员

· (上海。来美国休假)

· (北卡)

· (北卡)

· (迈阿密,佛罗里达)

· (多伦多,安大略,加拿大)

· (新泽西)

· (圣迭戈,加州)

· 殷德敏(拉斯维加斯,内华达)

· (俄亥俄)

· (新泽西)


以上人员均表明有参与此次聚会的愿望,并愿意尽量参与。由于各种不可测的因素,并不一定代表以上人员能够全部列席。

此次聚会并不具有强制性,我们只是真诚地希望每一位同学都能尽量排除困难、参与此次聚会。

其他因故不能参与此次聚会的北美同学有:丁、王

五、费用

费用并未列在224日电话会议讨论内容之列。以下内容为殷德敏代为拟定。

机票、酒店住宿费用自理。集体活动的费用AA

建议在购买机票、预定酒店等方面各位同学互相交流,避免额外的花费,也欢迎有经验的同学在这些方面共享相关信息。

六、其他事项

如果阅读完本文后有修改、补充或建议,请在此处列出,并将修改后的文档于200831日前email给殷德敏。殷德敏将在200831日收集各方修改建议后提供一个更完善的方案分发给各位同学。
请注意的是:聚会的时间、聚会的每日大致日程安排、聚会的大致地点范围(美国东部,PrincetonNew York附近)这三点原则上是不可以再修改的,因此请不要对此三点作出修改建议。各位同学可对活动的具体细节、活动内容等方面提出修改、补充和建议。

类别:

关于电影《上甘岭》

《上甘岭》是上个世纪中国著名的战争影片。我对某些历史比较感兴趣,尤其是抗美援朝战争。在我看来,抗美援朝战争是中国军队第一次有信心、有决心、有能力正面对抗外族威胁、对抗世界最强大军事集团,洗血了百年外战耻辱。我曾读过作家周明写的纪实文学《上甘岭战役》不下10遍,我还读过不少其它关于上甘岭战役的文学作品,因此对于上甘岭战役的前因后果、过程进展等,还是比较熟悉的。

我觉得抗美援朝战争在心理上具有重大意义。其意义就像刘翔夺得奥运会直道比赛冠军、就像姚明在NBA成为巨星、就像罗纳尔多在对日本的比赛中独中两员、就像1994年阿根廷失去了马拉多纳。

昨晚在文学城看到一篇文章《红色音乐经典之<我的祖国>》(参考网址:1234),文章介绍了影片《上甘岭》中的插曲《我的祖国》的词作者、著名词作家乔羽老师创作《我的祖国》歌词的经过。

《我的祖国》是一首非常动听、富有感情的歌曲,于是在读完该文后,我去百度下载了郭兰英原唱的《我的祖国》,反复听。并且,我还去eMule,下载电影《上甘岭》,想再看看。后来MSN上有亲戚告诉我,“……上线就看到了你在播的音乐~ 我在线搜索了一下也听了~而且是电影中的原有版本~不知怎么的就想‘家’了~……”。

一直等到夜里2点多那部电影才下载完成,然后我马上看完了这部2个多小时的电影。

记得以前有人比较中国画和西方绘画艺术的区别,提到中国画强调写意,而西方强调写实。这一点放在电影作品中也可以看得出来,

和美国的那些描写战争的影片比起来, 写实的成分不够。

限于历史局限性,这些缺点都是不可避免的。但是,《上甘岭》和《英雄儿女》这些影片的重要意义是不可低估的。这些影片在当时的影响力,远大于现在所谓的大片的影响力。

2006-06-27 14:43:53

[补充说明1] 如果今天(2008-01-31)我不在午夜12点前写点什么出来,那么将创下一项不好的个人记录:自2003年7月以来首次在某个月份里面一篇网志文字都没写。因此翻出一篇以前的草稿文字贴出来。

此次贴出来时没有对原始文字(包括文字标题)做任何修改。另外请注意的是,此篇文字写于2006-06-27 14:43:53,而非今日。

标签:

类别:

PHP的前途

== 前言 ==

我原来想给这篇文字起的名字是《PHP大有前途》,后来觉得还是不要这么煽情的比较好,于是就把文章的名字改成了现在这样子。

本文的目的是总结最近半年内PHP技术方面的一些重要进步,并基于此来谈谈PHP技术应用的前途。我自己不会详细叙述每个细节,也不会把每个提到的事件、术语给出具体的出处(相关事件或术语可在google搜索到),但会把所要谈到地方大体讲清楚。

我个人认为最近半年内PHP最重要的三项进步是:Zend Framework v1.0.0的正式发布;Zend Studio for Eclipse (Neon beta)这款集成编辑环境(IDE)工具的推出;命名空间(name spaces)和后期绑定(late binding)将成为PHP 5.3/PHP 6的一部分。

== Zend Framework v1.0.0的正式发布 ==

从PHP Framekwork(框架)而言,有将近十个左右明显出色的框架1,其中最出色的可能有5、6个左右,这包括Zend Framework, CakePHP和Symfony这三款最知名的。Symfony功能相当强大,但CakePHP在易用性等方面更胜一筹。我个人曾优先推荐使用CakePHP

最近一个来月我开始在公司和家里使用Zend Framework。我的使用感觉是,Zend Framework的设计特别出色,其编程设计所具有的美感可以和Smarty相媲美(Smarty是我特别欣赏的一套PHP程序)。我认为Zend Framework将是未来大型PHP项目开发的重要框架(我个人认为它应该是首选框架)。

我认为选择Zend Framework有如下几条主要原因:
  • Zend Framework是面向企业级开发的框架(抱歉,这个论述是别人可能曾经说过的,但目前我找不到出处)。

  • Zend Framework代码本身的优化和在服务器端的优化是有保障的(抱歉,这个论述是别人可能曾经说过的,但目前我找不到出处)。

  • Zend Framework本身的设计哲学遵循PHP的设计哲学: 简单、易用、易于扩展!(当然,首先你要比较熟悉它,才会觉得它简单、易用)

  • Zend Framework有着Zend公司的专业性和强大技术保证。Zend Framework不是草莽英雄型、昙花一现型的开源软件,而是由最专业的、最权威的PHP公司组织下开发的框架。

(就我个人而言,我会优先使用Zend Framework, PEAR和Smarty这套组合作为开发工具,另外还要加上PHPUnit, Subversion等。至于Ajax,我个人会选择Dojo这款Ajax引擎。)

Zend Framework目前的缺点是:该框架似乎依然在作一些比较明显的调整(例如从v1.0.0到v1.0.3之间所作的调整),但可以接受;官方文档比较丰富,但是都是化整为零式的描述,缺乏基于完整项目的好的实例;可用于参考的、与时俱进的实例代码有限(不过你还是可以从Google代码搜索中找到个别完整的基于Zend Framework的开源项目代码)。

== Zend Studio for Eclipse这款IDE的推出 ==

我在今年秋天之前使用Zend Studio作为PHP的编辑软件,大概自十月份Zend Studio for Eclipse推出后就改用了Zend Studio for Eclipse。Zend Studio for Eclipse(不免费)与Eclipse with PDT(免费)相当类似,但有着一些额外的不免费的功能。

一直以来我个人最推崇的IDE是JBuilder企业版(Visual Studio近几年没深入用过,因此无法评价)。Zend Studio for Eclipse目前所能达到的高度虽然(明显)不及JBuilder,但是我已经相当满意了。

Zend Studio for Eclipse依然处于beta状态,依然有着一些缺点(例如界面颜色样式设置不方便、在building projects时可能停止响应等),但就Zend Studio for Eclipse相对于以前的Zend Stuido的改进来讲,我认为这款IDE的前途是光明的。(和Zend Studio for Eclipse比起来,Zend Studio就显得挺傻。)

Zend Studio for Eclipse在管理庞大代码库的时候,其所具有的优势是相当明显的。因此,Zend Studio for Eclipse应是大型PHP项目开发的重要工具。

== 命名空间和后期绑定将成为PHP 5.3/PHP 6的一部分 ==

命名空间的出现便于组织规模庞大的代码系统,便于在不同系统中共享代码。后期绑定将使得PHP与Java的面向对象的风格更接近一步,使得PHP编成的灵活性大大增加,并且将会明显丰富PHP的设计模式(目前PHP可用于实践的设计模式还是很有限的)。

PHP对命名空间的引入在过去的一两周引起较大的讨论。我个人认为命名空间的引入是无需有太多争议的。PHP超强的编程灵活性并不意味着命名空间是可有可无的。没有命名空间,PHP将始终被Java、 .NET开发者们视为小打小敲型的工具而已,难登大雅之堂;没有命名空间,PHP离企业级开发始终有那么一些距离,始终还只是更像是一把瑞士军刀,而不具有航空母舰的气质。

== 结尾 ==

以上三点重要进步为PHP未来进一步扩大应用范围提供了重要的技术保障,但是PHP在企业级开发中被更大范围地接受还是需要一定时间的。首先是因为PHP 5.3和PHP 6的推出及其稳定性依然有待时间考验,其次是在新的技术手段下依然需要一定时间进行技术积累。

如果互联网在未来2到3年还是如今天一般景气的话,那么PHP在未来三年后将应比现在更上一层楼。

[注1] 就国产中文PHP框架而言,有两款可能是最知名的:FleaPHPThinkPHP。可惜的是我并不研究或使用中文PHP框架,因此无法对其作出具体评价。

标签:

类别:

2007年感恩节的感谢

== 背景介绍 ==

过去4年来,每年在感恩节的时候,我都会写一份感谢信发布在自己的网站上,感谢那些在过去的一年中给予自己关心、帮助的个人或团体。

在2007年美国感恩节(11月22日,星期四)到来之前的2个月,我时常在想,在2007这一年里,有哪些个人或团体是我应该向其表示感谢的。

起初的时候,我总是想不起来需要感谢谁。这也许是因为整个2007年,我大部分时候都处于一个人生活的状态(至少在精神上是这样),大部分事情都是自己一个人解决,常常连个可以商量的人都没有。既然什么事情几乎都是我自己来处理的话,那么又有谁值得我去感谢呢?

临近感恩节的时候,我才想起来,还是有那么一些朋友在2007年里面真心实意地帮助过我的。这些朋友在帮助我的时候,并没有指望图什么私利,只是出于他们自己的一份热心和对朋友的关心而帮助我的。我需要对他们表示感谢。

2007年感恩节的时候,我忙于琐事,无暇及时写下我这一年度的感谢信。因此,在这里补上。

== 感谢信 ==

在2007年感恩节,我想对以下个人或团体表示感谢:
  • 我要感谢部分温莎的友人在2006年底、2007年初我求职的时候给予我的帮助,其中包括徐莉、黄炼夫妇、Renee (He, Liu)、Suzuki等。徐莉当时非常热心地帮我推荐工作机会,现在回想起来,可惜的是当时我的简历准备得过于粗糙,而且当时美国汽车行业可能在走下坡。1月下旬我从芝加哥回温莎的时候,在Suzuki处住了一个多星期,这为我提供了相当的便利。

  • 我想对过去温莎大学计算机系的同学严海伦表示感谢。1月份我在美国求职碰到麻烦的时候,严海伦给予了我非常热心、真诚的帮助。

  • 我想对我刚来拉斯维加斯时的室友Collins(黑人)和Frank(意大利裔)表示感谢。在我们做室友的近半年的时间里,他们给了我很多美国生活方面的信息和建议,并且非常热心、诚恳地愿意帮助我解决各种面临的麻烦。他们的生活方式和我不同,我和他们之间也曾有过比较激烈的矛盾。但是,当偶尔回想过去一起做室友的日子里他们曾给予我的真诚的关心和帮助,任何彼此间之前的矛盾都是可以消逝的。

  • 我想对2007年7月份认识的朋友Lin, Yuyu表示感谢。虽然彼此认识很短,但她非常热心地在我8月初搬家之后提供了重要的帮助,包括一手操办我的大部分家具等等,这不仅是对于我这种不善于操持家居的人雪中送炭,而且还节省了我大量的时间和精力。Lin和她的丈夫还帮助过好些其他刚来拉斯维加斯的华人朋友。

[补充说明1] 关于曾让我特别感谢的个人和团体的列表,请参考《曾让我特别感谢的……》一文。

类别:

关于Serendipity网志系统的中文翻译

自2007年11月16日晚到今天(2007年12月1日)下午,在半个月的时间里,我断断续续地完成了Serendipity v1.2官方程序包的全部中文翻译工作。

== 背景介绍 ==

在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一词翻译为“永久链接”,而非“静态链接”或“固定链接”。

    • 在选择使用“发布文章”还是“发表文章”的时候,我决定采用前者。因为使用网志系统而公布的文章并不一定是添加文章的人自己写的,不一定是其发表的,而只是其发布的而已。
有关更多的我在此次语言包翻译过程中对有关词语翻译的思考,请参考我的个人百科中《Serendipity中文翻译手记》一文。

== PHP(开源)项目的中文化和国际化问题 ==

我已经在这次翻译语言包的过程,整理了一份提纲草稿,未来可能就PHP(开源)项目的国际化方面阐述些个人看法:例如在语言文件命名的标准化方面、在自然语言的自动甄别方面、在多字节支持方面等(我在某张草稿纸上大概写了六点但现在只能记得这三点,也许是因为我能谈得比较好的也就是这三点)。这几个方面是好些开源项目的通病。Serendipity在大部分方面做得不错,但在个别方面依然存在不足,例如在语言文件命名的标准化方面(Serendipity的中文语言文件的命名是不标准的,不管是简体的还是繁体的)。

== 补充信息 ==

目前本站已经在使用这个中文语言包了。需要该中文语言包的用户可以在此下载该中文语言包。安装方式很简单:直接将压缩包里面的文件覆盖到你的Serendipity安装目录。这个语言包应该适用于绝大部分版本的Serendipity。

估计过2天Serendipity官方就会将这个中文语言包加入到其每日更新的Serendipity程序包之中。

虽然我已尽力而为,但此中文语言包不可能尽善尽美,同时也可能存在一些不足。如果你在使用该语言包的过程中发现翻译方面的错误等,请通过email、留言或网志回复等方式告诉我,我会尽快对其进行检测。如果你有意为Serendipity翻译其插件的中文语言包,我也乐意在自己有时间的情况下提供技术方面的协助。

[补充说明1] 原文中给出的中文语言包下载路径是错误的,目前已经作出修改。特此更正。2007-12-02 16:02:08

标签:

类别:

2006年第44周周末琐事

最近杂事比较多,也比较忙,以至于连写文字的情绪都没有。

有些事如果不及时写下来的话,时间一久就忘了。因此,我还是督促自己写下这段文字,来记录上周末的琐事。

言归正传。

2006-10-28 (周六)

2006-10-29 (周日)

今天是冬时制的第一天。

今天是Luo乔迁新居的日子。有好几个朋友帮他搬家,其中有他的同事、邻居、朋友等等。在南温莎的新居,大概8年新的房子,相当不错。

2000年10月3日,我和高中同学周建栋在大厂扬子小聚,他跟我是完全不同类型的人1。他当时跟我说过一段话,我一直记着。他说,当你看到比你好的人,你就更有动力2。我感觉他这句话说得非常对。

烫死了。养懒人。3这就是为什么我要离开成都、离开加拿大。我不是一个特别奋进的人,把我丢在成都那种安逸的地方,只能让我像个青蛙一样最终被同化4

说过5毕业后我想去美国发展。我第一次去参观郭红6的家,顿时让我对美国产生了好感。想想看,一对结婚不久的夫妻,一位刚从大学毕业不到1年的MBA学生(虽然老公已工作多年),就能够买这么好的一栋房子,怎能不激发自己的欲望?

温莎的房价的确很便宜,20万左右就可以买一栋很不错的房子了。

总之,看到朋友乔迁新居后,首先要祝福他们;其次,要鼓励自己,相信自己。道路是曲折的,前途是光明的。

[注1] 周是那种很注意气质、仪表的人,因此“跟我是完全不同类型的人”。

[注2] 周当时跟我在饭馆吃饭聊天的时候,所说内容的主要意思并非完全如本文中所述,而是这样的:“你要想更上一层楼,做得越来越好,就应该跟那些比自己更有能力、更有成绩/成就的人多交往,而不要老是跟做得没你好的人在一起。当你看到那些做得比你好的人所取得的成绩,你就更有动力。”。

[注3] 此处草稿文字应是仓促间写下的思路片断,其所要表达的意思应该是:温水煮青蛙,最终会把青蛙给烫死、给葬送;一个人长期在不适合自己发展的环境中最终会被同化,消磨掉自己的冲劲,葬送掉自己的未来;成都这个城市过于悠闲,年轻人缺乏足够的冲劲和上进心。

[注4] 此处应补充一句话:进而消磨掉自己冲劲、葬送掉自己的未来。

[注5] 此处链接为公开发布时添加。

[注6] 郭红是我在温莎的前房东。其在美国上班,毕业后不到1年即和老公购买了一套很棒的房子。我第一次参观郭红的家是在2005-09-03

[补充说明1] 此文一年前以草稿形式(未公开)于2006-11-05 20:48保存于本站。此次发布出来,未对原始草稿文字作任何修改,但会以补充说明、备注形式对原文含糊不清之处加以说明。

标签:

类别:

页面