Available Languages: | Deutsch | English | Français | 中文 (简) (Simplified Chinese) | |
这是一份这在编写中的文档。
欢迎阅读 Fink 网站国际化指南。 本文档的编写目录目的是给那些希望帮助 Fink 网站的国际工作的人提供一个工作指引。
Fink 项目已经付出了很多努力来为它的网站添加完全的国际化支持,使得它的网站可以被全球的人所利用。 感谢马场美彦先生的工作,现在已经有了一个可以支持多语言的网页架构。
我们现在有志愿者在进行提供下面语言的工作:
i18n 团队的组织架构图可以在这里获得。
如果你愿意给我们的国际化工作提供帮助,下面有几件事情是你可以做的:
不过请注意,如果你是你语言的第一个翻译者,那么在一开始的时候,你会有不少的文件需要翻译。 做完这些以后,后面的通常就是一些小的修改。
本章的目的是对 Fink 的文档文件进行介绍,如何去访问它们,如何把你的修改通知 Fink 网站以及如何激活你的修改。
要作为翻译团队的一员,开始对文档的翻译,你需要:
附注:“团队成员”定义为负责翻译但不对最终上载文件到 Fink 站点负责的人。
团队领导必需符合上述要求,同时要:
附注:“团队领导”在这里定义为负责实际上传修改过的文件到 Fink 网站,并激活有关修改的一个团队成员。
你也许会希望事先设置好一些环境。 下面的讨论假设你在使用 Mac OS X 或其它类 Unix 系统的内置命令行工具。
export CVS_RSH=ssh到你的 .profile 文件中。
setenv CVS_RSH ssh到你的 .cshrc 文件中。
这会告诉 cvs 程序使用 ssh 来下载文件。 这个步骤是必需的。
cvs -z3这样,CVS 会默认使用第三级的压缩(这是个好东西!)。
这样做完以后,你需要重新开启一个新的终端窗口以使得你的 CVS_RSH 环境变量生效。
现在,你需要签出网站的 xml 分支:
mkdir -p ~/Documents/Fink-i18n
cd ~/Documents/Fink-i18n
cvs -d:pserver:anonymous@fink.cvs.sourceforge.net:/cvsroot/fink login
cvs -d:pserver:anonymous@fink.cvs.sourceforge.net:/cvsroot/fink co xml
cvs -d:ext:yourusername@fink.cvs.sourceforge.net:/cvsroot/fink co xml其中 yourusername 是你的 SourceForge 用户名。
作为一个翻译者,你需要处理两种格式的文件:
这些文档的结构(比如文本项的数目)不会每天改变。 这种文档只使用 PHP 文件,你翻译它就可以了。
这些文档(比如,FAQ 部分)会经常更新和调整结构,所以它需要一种可以动态重新组织的机制。 这类文档使用 XML 文件作为产生 PHP 和 HTML 文件的基础,我们可以通过一个脚本从它生成需要的文件。 作为翻译者,你的职责是翻译 XML 文件。
In addition, you will have to translate or modify a few other files, such as Makefile, nav.xx.inc, constants.xx.inc. Without them, the pages either will not appear on the web site or will not appear correctly.
All files are utf-8 encoded, consequently you should not change the encoding unless it is wrong (i.e. not utf-8), or use any html entities but those already in the English files.
由于其它翻译者可能会在你签出文件以后,又对一些文件进行了修改(不用担心这一点,我们的 CVS 程序能够很好地处理它)。所以经常更新的版本到最新的修订版是一个好主意。
对于非团队领导的成员:
cd ~/Documents/Fink-i18n/xml
按照 2.3 中关于登录的步骤说明,登录到 CVS。
cvs -d:pserver:anonymous@fink.cvs.sourceforge.net:/cvsroot/fink update -dP
对于团队领导:
cd ~/Documents/Fink-i18n/xml
cvs update -dP在提示的时候,输入你的 SourceForge 密码。
当你更新的时候,你会发现显示的信息中,有些文件前面又一个字母。 查阅《附录》或 CVS 的帮助页获取更多的信息。
要翻译的文件,按照优先次序是:
标题(英语版本文件)
constants.*.inc 文件是用于被 PHP 文件引用的固定编码的常数。 它们主要是一些菜单项的内容,位于页面的上方或左方。你应该从脚本中分离它们,并创建一个你的语言的 constant.xx.inc 文件。你可以在终端窗口输入类似下面的命令:
cp constants.de.inc constants.xx.inc
这个 xx 是你的语言代码(例如:zh 是简体中文)。 然后,你需要把 define 语句中的单引号内的内容翻译到你的语言。 如果你不懂德语的化,下面是那个文件的英语版本:
/* The Sections. Used in Menu Navigation Bar */ define (FINK_SECTION_HOME, 'Home'); define (FINK_SECTION_DOWNLOAD, 'Download'); define (FINK_SECTION_PACKAGE, 'Packages'); define (FINK_SECTION_HELP, 'Help'); define (FINK_SECTION_FAQ, 'F.A.Q.'); define (FINK_SECTION_DOCUMENTATION, 'Documentation'); define (FINK_SECTION_MAILING_LISTS, 'Mailing Lists'); /* The Home Subsections. Used in Menu Navigation Bar */ define (FINK_SECTION_HOME_INDEX, 'Index'); define (FINK_SECTION_HOME_NEWS, 'News'); define (FINK_SECTION_HOME_ABOUT, 'About'); define (FINK_SECTION_HOME_CONTRIBUTORS, 'Contributors'); define (FINK_SECTION_HOME_LINKS, 'Links'); /* The word 'Sections'. Used in Menu Navigation Bar */ define (FINK_SECTIONS, 'Sections'); /* Contents as Table of Contents. Used in FAQ/Documentation Sections */ define (FINK_CONTENTS, 'Contents'); /* Printer */ define (FINK_PRINTER, 'Printer'); define (FINK_PRINT_VERSION, 'Print Version'); /* Footer */ define (META_KEYWORDS, 'Mac OS X, Fink, Debian, Macintosh, Apple, UNIX, Open Source, download, free software, port, development, package management'); define (META_DESCRIPTION, 'The Fink project wants to bring the full world of Unix Open Source software to Darwin and Mac OS X. We modify Unix software so that it compiles and runs on Mac OS X and make it available for download as a coherent distribution.'); define (HEADER_HOSTED_BY, 'Hosted by {img}'); define (FOOTER_AVAILABLE_LANGUAGES, 'Available Languages'); define (FOOTER_GENERATED_DYNAMICALLY, 'Generated dynamically from'); define (FOOTER_DATABASE_LAST_UPDATED, 'Last updated: %x %X'); define (FOOTER_LAST_CHANGED, 'Last changed by {author} on %a, %d %b %Y, %R %Z');
注意:Footer 部分的第一行由于显示的原因被分割成两行,在实际的文件不要这样分割。
在你翻译的时候,你通常会按照下面的步骤( 假设你正在翻译《运行 X11》这份文档到简体中文):
cp x11.en.xml x11.zh.xml
<?xml version='1.0' encoding='utf-8' ?> ... <document filename="index" lang="zh" > ...
LANGUAGES_AVAILABLE = en ja zh
然后在这个目录里面运行 make 命令。这应该会生成中文的 PHP 文件(可能还有一些其它文件),同时还有英语和其它已经在 Makefile 中添加了的语言版本。
注意:如果你发现英文文件的一些错误,不要修改它,而应该报告到 fink-i18n 邮件列表,这样英语主版本会得到更新。
在你的工作被上传到 Fink 网站之前,你应该检查文档看起来是否正常。
sudo pico /etc/httpd/httpd.conf
#LoadModule php4_module libexec/httpd/libphp4.so然后删除它前面的 # 号。
#AddModule mod_php4.c删除它前面的 # 号
AddType application/x-httpd-php.php并在前面放一个 # 号。
http://127.0.0.1/~USERNAME/xml/web/index.php这里 USERNAME 应该替换为你的用户名。
当你被授予提交修改的权限以后,你应该
cat ~/.ssh/id_dsa.pub | pbcopy这会把文件的内容直接拷贝到你的剪贴版,而避免那些讨厌的换行符问题。 注意在你完成下一步操作之前,不要再拷贝其它东西到剪贴板。
cd ~/Documents/Fink-i18n
cvs -d:ext:yourusername@fink.cvs.sourceforge.net:/cvsroot/fink co xml这里 yourusername 当然是你的 SourceForge 用户名。在提示的时候输入你的密码。
现在你需要把你的修改发送到主服务器。 要这样做,你需要有提交修改的权限。 你还需要确保你使用的未稳定树里面的最新的 XSLT 版本,写本文档时用的是 Fink 的 libxslt-1.1.4-1。
对于静态和动态的文档,根据它们的性质不同,提交方法也有不同:
cd ~/Documents/Fink-i18n/xml/web
上面假设你把你的 xml 代码树建立在你主目录下的 Documents/Fink-i18n/ 文件夹下,并且你打算提交 xml/web 目录里面的 PHP 文件。
cvs add download.ru.php在提示的时候输入你的 SourceForge 密码。 你也许会获得一个未知的服务器的 DSA 密钥的警告。 输入 yes 就好了。
如果是一个现有的文件,你可以跳过这一步而进入下一步。
cvs ci -m "message" download.ru.php这里 message 应该能够描述你大概做了什么修改。 在提示的时候输入你的 SourceForge 密码。
附注:你可以一次提交多个文件。
cd ~/Documents/Fink-i18n/xml/faq如果你是在翻译 FAQ 部分的话。
make check验证文件的格式是正确的。
cvs add faq.ru.xml在提示的时候输入你的 SourceForge 密码。
如果是一个现有的文件,你可以跳过这一步而进入下一步。
cvs ci -m "message" faq.ru.xml Makefile
message 是一个关于你的操作的描述性信息。 在提示的时候输入你的 SourceForge 密码。 我们这里假设你还修改过 Makefile 文件(例如,你在里面添加了你的语言),如果你没有对它修改过,你只需要提交 xml 文件就可以了。
make && make install
cd ~/Documents/Fink-i18n/xml
上面假设你把你的 xml 代码树建立在你主目录下的 Documents/Fink-i18n/ 文件夹下。
cvs add web/faq/index.en.php web/faq/general.ru.php \ web/faq/relations.ru.php web/faq/usage-fink.ru.php \ web/comp-general.ru.php web/faq/comp-packages.ru.php \ web/faq/usage-general.ru.php web/faq/usage-packages.ru.php \ web/faq/upgrade-fink.ru.php web/faq/mirrors.ru.php \ web/faq/faq.ru.html web/faq/header.ru.inc \ scripts/installer/dmg/faq.ru.html对于其它文档,文件当然会不同──你应该添加 make install 命令所新产生的和你语言有关的文件。
如果这些文件原来已经有,你可以跳过这一步。
cvs ci -m "message"
这里 message 也是一个描述性的日志信息(你可能会使用你提交 XML 文件相同的信息)。 在提示的时候输入你的 SourceForge 密码。
要分两次进行 commit 的原因是只有这样才能在生成的网页上正确显示修改时间和最后修改者的名字。
想现在我们的网站上就看到你的成果吗?你只需要这样做:
ssh username@shell.sourceforge.net你会需要输入你的 SourceForge 密码。
cd /home/groups/f/fi/fink/htdocs
./update.sh重要提示:当你这样做的时候,你会更新web/xml下的所有内容到网站上。
exit
open /
因为英文文档是基准,所以它必需被首先更新。 这个更新可能来自于 i18n 团队(比如英文文档作者)或核心开发人员。
为了使得整个更新过程顺畅进行,应该遵循下面的流程。
当一份新文档发表,或英文文档发生修改以后,应该要有一个消息发到 fink-18n 邮件列表通知所有翻译者。 这个通知包括下面的内容:
附注:由于提交对 XML 文件的修改后会自动在 fink-commits 邮件列表中产生满足这个条件的邮件,所以一个方便的办法是修改这个邮件的主题然后把它重新发送作为通知。不过,当连续发生了很多更新的时候,可能就无法这样做了。
Note: When the new document is inside a new directory, you shoould add that new directory to the Makefile located in the xml directory. Otherwise the built process will not complete successfully.
该语言团队的领导(或其它具有 CVS 访问权限的人)负责在翻译完成以后提交以及激活翻译的作品。
分类包括:
基准英文文档被提交并立即激活-修改者应该提交相应的 PHP 和 HTML 文件,并负责激活更新。 翻译团队需要更新它们的版本,提交所有的文件(XML 和 PHP),然后激活更新。
Never change a dynamically generated php file; change the xml file instead.
Check that the cvsid line near the beginning of an xml file is not splitted.
注意:
这种情况下,XML 文件的英文版本会被提交,但不会提交相应的 PHP 和 HTML 文件,也就是说,在 2.9节的关于动态文件部分的第 5 步完成后就结束。所有的翻译者在一个大家确定的时间段内进行翻译并仅仅提交相应的 XML 文件(也就是说,和英文版一样)。在这个时间段以后,由一个人,例如 i18n 核心团队的一员负责生成,提交和激活所有的 PHP 和 HTML 文件。
当前的政策是所有文档应该按照 提示更新 流程进行更新,除非你有很特别的理由不这样做。
国际化是个复杂的题目。 下面提供的资源可以作为很有加值的辅助信息。 如果你愿意深入研究这个课题,建议你仔细地阅读它。
有几种编辑器你可以用来编辑文件。 这时一个关于推荐的编辑器的简单列表。 有些编辑器使用很复杂或者仅有命令行版本,因此不适用于每个人。 我们试图提供一个清单,每个人都能从中找到适合自己的编辑器。
命令行界面不是每个人都适应的。 下面的清单是一些有用的工具,它们通常是命令行工具的图形化前端界面。 我们把它们列在这里方便你查找。
当你更新你的 CVS 签出文件的时候,你会看到文件名之前的一些字母。 这代表下面的一些情况:
你可以使用
rm file;cvs update file
来消除冲突。这里 file 是指发生冲突的文件。然后在根据名为 .#file-version
的备份文件把你的修改重新汇入其中,这里 version 是你开始修改文件时候的修订版号。Copyright (c) 2001 Christoph Pfisterer, Copyright (c) 2001-2020 The Fink Project. You may distribute this document in print for private purposes, provided the document and this copyright notice remain complete and unmodified. Any commercial reproduction and any online publication requires the explicit consent of the author.
Generated from $Fink: multilingual.zh.xml,v 1.1 2004/03/10 02:23:16 alexkhansen Exp $