关于Drupal的汉化

11 Jun 2005 53 Comments

by kzeng in

 

Drupal 4.6 汉化的CVS版彻底完成,修正了所有已知错误,点击这里从Drupal总站下载。或从本站下载未经合并的汉化文件。如果有任何问题,欢迎到汉化论坛讨论。

Drupal 4.5.x的汉化是由Hiweed做的,大致完成了百分之六十几,现在Drupal下载页面里提供的汉化翻译是我根据tnds的翻译,重新制作的,只完成了技术上的更新,内容上还有不少不确之处,我在使用中也发现了不少问题,譬如 管理->评论 中关于评论显示的选项的翻译出现了笔误等等。但是考虑到Drupal几千条的翻译量,TNDS能做到这样已经很不错了,还是要由衷地赞一下!现在所要做的工作就是校正:更正一些错误的和不合习惯的翻译。所以如果你发现了现在的翻译中有任何的错误,请“添加评论”指出,或是到 drupal.org 提交bug,最新的更正只在CVS中体现,目前的4.6.x的汉化仍然是TNDS的原始翻译,等对Drupal的核心文件的校正完成,我会做一个新的4.6.x的release的,多谢多谢!:)

Update 1: 把这个帖子置顶了,以后方便随时报告进度:)

Update 2:在Drupal的中文化项目下新建立了一个Additional Modules的文件夹,用来存放非核心的Drupal模块汉化文件。另外在论坛中开放了注册用户的上穿文件权限,可以上传 .po .pot .rar .zip文件,方便大家交流。开源软件的好处就是人多力量大,Drupal的中文化也不例外,需要大家一起努力,所以打算仿照Linux的汉化草拟一个大致的规则,方便大家一起努力把Drupal的汉化做好:)

 Drupal 4.6汉化最终更新: 这里

Comments

大米
Jun 13 2005 @ 04:12:38

问一个POEdit里单复数的问题,我试着导入了一下CVS里的archive-module.po(v1.3),总是出现‘复数形式不能解析’的错误。一般来说中文不分单复数,所以plural form是这样的:Plural-Forms: nplurals=1; plural=0;
但是drupal里一般复数形式是这样写的: msgid "1 post"
msgid_plural "%count posts"

在archive-module.po里的翻译写作: msgstr[0] "%篇文章",多半是msgstr[0] "%count篇文章" 的笔误,但即便是这样也是不对的,因为如果是单数,msgstr里是1而不是%count,这个%count从何而来?也许我的理解错了,但感觉msgid像这样写才对:

msgid "%count post"
msgid_plural "%count posts"

如果不修改模块本身的话,就只好作如下调整:
首先不得不采用类似英文的两种复数形式:"Plural-Forms: nplurals=2; plural=n!=1;\n"
然后翻译时分别翻译单复数:
msgstr[0] "1 篇文章"
msgstr[1] "%count 篇文章"

看起来实在比较笨,不知道我的理解对不对。

kzeng
Jun 13 2005 @ 10:34:35

呵呵,archive-module.po(v1.3)是我调整过单复数的版本啊,本地打开没有提示“复数形式不能解析”的错误啊。tnds的翻译中复数形式没有定义,所以我现在正在逐一的加入,一般来说汉语的复数形式应该是像你的说得那样的:

"Plural-Forms: nplurals=1; plural=0;\n"

这个语句的意思是说 汉语单复数变化只有一种,用msgstr[0]来表示。

msgid "1 post" 没有问题,因为即便是你写作 %count post,实际上仍然是 1 post。

msgstr[0] "%篇文章" 是错误的,你注意看这条翻译的上面一行,有一个 #,fuzzy, 说明这个是模糊翻译,在正式的汉化文件里是不出现的。

模糊翻译的出现是因为在用 msmerge时无法100%匹配时出现的猜测翻译。因为tnds没有定义单复数,所以凡是和单复数有关的翻译都有可能出现fuzzy。

正确的正如你猜测的那样,应该是 msgstr[0] "%count篇文章"

所以这个string的正确翻译应该是:

#: modules/archive.module:136
msgid "1 post"
msgid_plural "%count posts"
msgstr[0] "%count 篇文章"

大米
Jun 14 2005 @ 02:40:15

谢谢。我又试了一下archive-module.po(CVS里那个v1.3的版本),导入是出现如下错误:
Translation file archive-module.po broken: syntax error in line 6.
Translation file archive-module.po broken: Could not be read.
Translation import of archive-module.po failed.
奇怪。

BTW:我大概改了改user-module.po,你可以diff看看是不是合适,供你参考。

BTW2:archive-module.po里星期的翻译,如Mo是否可以从‘周一’改成‘一’,这个好像是在archive calendar里用的,一个字比较符合日历的习惯,也比较好看。别的模块里的星期的短格式用的是Mon,还是‘周一’,所以应该不受影响。

kzeng
Jun 14 2005 @ 04:00:12

呵呵,我又仔细研究了一下 Drupal 的单复数形式,发现先前我的那种方法是有问题的,因为Drupal的单数全部给的是 "1 post/read/trackback" 这样的形式,而非 %count 所以我觉得复数表达式应该是这样的:

"Plural-Forms: nplurals=2; plural=1;\n"

而复数的相关翻译应该是:

#: modules/archive.module:136
msgid "1 post"
msgid_plural "%count posts"
msgstr[0] "1篇文章"
msgstr[1] "%count posts"

我重新更新了一下 archive-module.po ,现在的最新版本是 v1.4,可以在[url=http://cvs.drupal.org/viewcvs/*checkout*/drupal/contributions/translations/zh-hans/archive-module.po?rev=1.4]这里[/url],你测试一下看看怎样,我在我的测试站点里导入了,没有问题。另外我更该了周一、周二的显示方式,我也觉得一、二、这样子比较好,不然 calendar的那个框子会被撑得很大。

多谢你更正的user-module.po,呵呵,我还没有更新到user-module.po,这下子可以拿来用了,多谢,多谢!:)

shunz
Jun 15 2005 @ 09:05:40

请问一下,http://drupal.org/project/zh-hans 这里的版本是最新版本麽?

kzeng
Jun 15 2005 @ 09:15:06

呵呵,不是,那个版本基本上还是tnds的,我现在正在做cvs,等都弄完了在正式发表:)

shunz
Jun 17 2005 @ 03:37:56

期待ing...

dennis
Jun 29 2005 @ 01:05:04

多谢站长的工作,我还有三个小问题,想问一下,希望能够解答:
1,添加的评论的时候,如果没有自己写标题,怎样在提交之后,自动把此评论的前面几个字作为此评论的标题显示?我自己安装的系统现在如果没有写评论标题的话,那么提交之后,此评论的标题栏就是空的,在"Recent comments"里面显示也是空的。
2,我已经安装并启用了taxonomy_menu模块,怎样在菜单里面显示”Categories“(也就是文章分类)呢?我在板块里面没有找到。
3,我已经安装并启用了gallery模块,请问怎样在发表的blog中贴图。

还望指教!

kzeng
Jun 29 2005 @ 07:02:31

呵呵,关于评论无法截取标题的问题,可以参看这篇blog;文章分类的区块是自己写的,可以参看这篇blog;就插图而言还是觉得 image.module + img_assist.module比较好用,配合 img_filter.module效果就更好了:)

dennis
Jun 29 2005 @ 07:03:43

谢谢站长,评论的问题已经解决了,
不过我加入文章分类这个模块的时候,出现:
Fatal error: Call to undefined function: user_access() in /var/www/drupal-4.6.1/modules/category.module on line 2

Post new comment

The content of this field is kept private and will not be shown publicly.
Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.