Available Languages: | Deutsch | English | Français | 中文 (简) (Simplified Chinese) |

Fink 国际化(i18n) 指南

这是一份这在编写中的文档。

欢迎阅读 Fink 网站国际化指南。 本文档的编写目录目的是给那些希望帮助 Fink 网站的国际工作的人提供一个工作指引。

Contents

1 介绍

1.1 现在 Fink 网站的国际化工作进展如何?

Fink 项目已经付出了很多努力来为它的网站添加完全的国际化支持,使得它的网站可以被全球的人所利用。 感谢马场美彦先生的工作,现在已经有了一个可以支持多语言的网页架构。

1.2 语言

我们现在有志愿者在进行提供下面语言的工作:

1.3 组织

i18n 团队的组织架构图可以在这里获得。

1.4 提供帮助。

如果你愿意给我们的国际化工作提供帮助,下面有几件事情是你可以做的:

2 文档文件

本章的目的是对 Fink 的文档文件进行介绍,如何去访问它们,如何把你的修改通知 Fink 网站以及如何激活你的修改。

2.1 需求

要作为翻译团队的一员,开始对文档的翻译,你需要:

附注:“团队成员”定义为负责翻译但不对最终上载文件到 Fink 站点负责的人。

团队领导必需符合上述要求,同时要:

附注:“团队领导”在这里定义为负责实际上传修改过的文件到 Fink 网站,并激活有关修改的一个团队成员。

2.2 环境设置

你也许会希望事先设置好一些环境。 下面的讨论假设你在使用 Mac OS X 或其它类 Unix 系统的内置命令行工具。

  1. 仅对团队领导:修改你的登录文件添加一个 CVS_RSH 环境变量。
    1. 如果你使用的是 bashzsh 添加下面一行:
      export CVS_RSH=ssh
      到你的 .profile 文件中。
    2. 如果你正在使用 tcsh,添加下面一行:
      setenv CVS_RSH ssh
      到你的 .cshrc 文件中。

      这会告诉 cvs 程序使用 ssh 来下载文件。 这个步骤是必需的。

  2. 对所有成员:在你的主目录中创建一个称为 .cvsrc 的文件,里面包括下面一行:
    cvs -z3
    这样,CVS 会默认使用第三级的压缩(这是个好东西!)。

这样做完以后,你需要重新开启一个新的终端窗口以使得你的 CVS_RSH 环境变量生效。

2.3 获取需要翻译的文件。

现在,你需要签出网站的 xml 分支:

  1. 打开终端窗口
  2. 创建一个你打算保存 Fink 网页文件树 XML 分支的目录,比如:
    mkdir -p ~/Documents/Fink-i18n
  3. 进入这个目录:
    cd ~/Documents/Fink-i18n
  4. 对于非团队领导的成员(或仍在等待修改许可的团队领导): 以匿名方式登录 fink.cvs.sourceforge.net:
    1. cvs -d:pserver:anonymous@fink.cvs.sourceforge.net:/cvsroot/fink login
    2. 按回车键(匿名方式不需要密码)
    3. 签出 xml 模块:
      cvs -d:pserver:anonymous@fink.cvs.sourceforge.net:/cvsroot/fink co xml
    对团队领导:用你的用户帐号来签出:
    1. 你不需要上面的登录步骤,而直接:
      cvs -d:ext:yourusername@fink.cvs.sourceforge.net:/cvsroot/fink co xml
      其中 yourusername 是你的 SourceForge 用户名。
    2. 这时,在提示输入密码的时候,你需要输入你的 SourceForge 用户密码。你也许会得到一个服务器的 DSA 密钥不能识别的警告信息,回答 yes 就可以了。

2.4 文件格式

作为一个翻译者,你需要处理两种格式的文件:

  1. 静态文件(仅PHP)

    这些文档的结构(比如文本项的数目)不会每天改变。 这种文档只使用 PHP 文件,你翻译它就可以了。

  2. 动态文件(由 XML 产生的 PHP 和 HTML)

    这些文档(比如,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.

2.5 更新到最新修订版

由于其它翻译者可能会在你签出文件以后,又对一些文件进行了修改(不用担心这一点,我们的 CVS 程序能够很好地处理它)。所以经常更新的版本到最新的修订版是一个好主意。

对于非团队领导的成员:

  1. 进入包含你签出的文件的目录,例如:
    cd ~/Documents/Fink-i18n/xml
  2. 按照 2.3 中关于登录的步骤说明,登录到 CVS。

  3. 进行更新,例如:
    cvs -d:pserver:anonymous@fink.cvs.sourceforge.net:/cvsroot/fink update -dP

对于团队领导:

  1. 进入包含你签出的文件的目录,例如:
    cd ~/Documents/Fink-i18n/xml
  2. 进行更新,例如:
    cvs update -dP
    在提示的时候,输入你的 SourceForge 密码。

当你更新的时候,你会发现显示的信息中,有些文件前面又一个字母。 查阅《附录》或 CVS 的帮助页获取更多的信息。

2.6 初始翻译

要翻译的文件,按照优先次序是:

标题(英语版本文件)

  1. 常数文件(xml/web/constants.*.inc)(参考下面)
  2. 静态 PHP 文件(例如:xml/web/*.en.php
  3. FAQ(xml/faq/faq.en.xml
  4. 用户指南(xml/users-guide/uguide.en.xml
  5. 运行 X11 (xml/x11/x11.en.xml
  6. 文档目录(xml/doc/doc.en.xml,但由于尚余的 xslt 问题,它的 PHP 文件还不能用运行 make 的方法生成)
  7. User's Guide (xml/users-guide/uguide.en.xml)
  8. Advanced (xml/advanced/advanced.en.xml)
  9. Running X11 (xml/x11/x11.en.xml)
  10. CVS Access (xml/cvsaccess/cvs.en.xml)
  11. Net Etiquette (xml/netiquette/netiquette.en.xml)
  12. Internationalization (xml/multilingual/multilingual.en.xml)
  13. ReadMe (xml/fink-readme/readme.en.xml)
  14. Security (xml/security/security.en.xml)
  15. Packaging Tutorial (xml/quick-start-pkg/quick-start-pkg.en.xml)
  16. 打包(xml/packaging/packaging.en.xml
  17. 移植(xml/porting/porting.en.xml
  18. 新闻(xml/news/news.en.xml

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》这份文档到简体中文):

  1. 拷贝 xml 文件
    cp x11.en.xml x11.zh.xml
  2. 编辑文件里面的这行来声明它是简体中文,以及它的字符编码是 UTF-8
    <?xml version='1.0' encoding='utf-8' ?> ...
    <document filename="index" lang="zh" > ...
  3. Very important notice: Check that the cvsid line near the beginning of the file is not splitted.
  4. 保存为 UTF-8。注意字符编码格式必需为 utf-8,除了真正的文本内容以外,不要去修改任何其它内容(也就是那些尖括号里面的内容)。
  5. 翻译完成以后,或者你希望测试一下的话,编辑 Makefile 来包括你的语言:
    LANGUAGES_AVAILABLE = en ja zh

    然后在这个目录里面运行 make 命令。这应该会生成中文的 PHP 文件(可能还有一些其它文件),同时还有英语和其它已经在 Makefile 中添加了的语言版本。

注意:如果你发现英文文件的一些错误,不要修改它,而应该报告到 fink-i18n 邮件列表,这样英语主版本会得到更新。

2.7 检查你的工作

在你的工作被上传到 Fink 网站之前,你应该检查文档看起来是否正常。

2.8 当你获得提交修改的权限(团队领导)

当你被授予提交修改的权限以后,你应该

2.9 提交修改(团队领导)

现在你需要把你的修改发送到主服务器。 要这样做,你需要有提交修改的权限。 你还需要确保你使用的未稳定树里面的最新的 XSLT 版本,写本文档时用的是 Fink 的 libxslt-1.1.4-1

对于静态和动态的文档,根据它们的性质不同,提交方法也有不同:

2.10 更新我们的网站

想现在我们的网站上就看到你的成果吗?你只需要这样做:

  1. 打开一个终端程序
  2. 用 ssh 登录网页服务器:
    ssh username@shell.sourceforge.net
    你会需要输入你的 SourceForge 密码。
  3. 进入包含我们网页文件的目录:
    cd /home/groups/f/fi/fink/htdocs
  4. 根据 CVS 的内容更新网页:
    ./update.sh
    重要提示:当你这样做的时候,你会更新web/xml下的所有内容到网站上。
  5. 从服务器上注销:
    exit
  6. 检查你的成果:
    open /

3 更新文档的流程

因为英文文档是基准,所以它必需被首先更新。 这个更新可能来自于 i18n 团队(比如英文文档作者)或核心开发人员。

为了使得整个更新过程顺畅进行,应该遵循下面的流程。

3.1 通知进行翻译

当一份新文档发表,或英文文档发生修改以后,应该要有一个消息发到 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.

3.2 新文档:

文档的英文版本会被提交激活,然后按下面的办法进行翻译

3.3 新翻译作品:

该语言团队的领导(或其它具有 CVS 访问权限的人)负责在翻译完成以后提交以及激活翻译的作品。

分类包括:

3.4 提示更新一个已经翻译的文档:

基准英文文档被提交并立即激活-修改者应该提交相应的 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.

注意:

  1. 对国际化指南(本文档),总是按这个模式处理,因为它的改变影响所有翻译团队。
  2. 对静态文档(那些不是由 XML 产生的 PHP 文件)也总是按照这个模式处理,因为它们很难延迟激活。

3.5 延迟更新现有文档(仅限由 XML 产生的文档):

这种情况下,XML 文件的英文版本会被提交,但不会提交相应的 PHP 和 HTML 文件,也就是说,在 2.9节的关于动态文件部分的第 5 步完成后就结束。所有的翻译者在一个大家确定的时间段内进行翻译并仅仅提交相应的 XML 文件(也就是说,和英文版一样)。在这个时间段以后,由一个人,例如 i18n 核心团队的一员负责生成,提交和激活所有的 PHP 和 HTML 文件。

3.6 对开发者和英语文档作者

当前的政策是所有文档应该按照 提示更新 流程进行更新,除非你有很特别的理由不这样做。

4 附加的资源

4.1 重要链接

国际化是个复杂的题目。 下面提供的资源可以作为很有加值的辅助信息。 如果你愿意深入研究这个课题,建议你仔细地阅读它。

  1. 在 XML 和其它标柱语言中使用 Unicode
  2. 教程:字符集以及编码
  3. W3C 国际化工作
  4. Unix/Linux 中有关 UTF-8 和 Unicode 的常见疑问

4.2 编辑器

有几种编辑器你可以用来编辑文件。 这时一个关于推荐的编辑器的简单列表。 有些编辑器使用很复杂或者仅有命令行版本,因此不适用于每个人。 我们试图提供一个清单,每个人都能从中找到适合自己的编辑器。

4.3 一些有用的工具

命令行界面不是每个人都适应的。 下面的清单是一些有用的工具,它们通常是命令行工具的图形化前端界面。 我们把它们列在这里方便你查找。

5 附录

5.1 CVS 代号。

当你更新你的 CVS 签出文件的时候,你会看到文件名之前的一些字母。 这代表下面的一些情况:


Copyright Notice

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 $