Python 国际化-SIG
国际化-SIG ("i18n")
此 SIG 提供了一个讨论与 Python 国际化相关问题的论坛。
在撰写本文时(2000年3月),国际化(以下简称 “i18n”,以节省打字时间)功能正在添加到 Python 中。 这个 sig 是讨论这些功能的主要论坛。涵盖的主题包括但不限于
- Unicode 支持和构建编解码器库
- 对区域设置信息、日期、数字和时间格式化的支持
- 用于翻译和本地化 GUI 和 Web 应用程序的框架
交付成果
直接交付成果与 Unicode 和编码支持有关;上面的其他主题过于笼统且特定于应用程序。
- 一旦 Unicode 补丁进入公共 CVS(2000 年第二季度),就立即测试新的 Unicode 功能和提供的单字节编解码器
- 协助编写新功能文档(2000 年第二/三季度)
- 进行一些双字节编解码器的原型实现。在此基础上,确定 C 级 Unicode API 需要哪些更改和添加,以支持专业的 i18n 工作,并帮助在 1.6 版本及时将其纳入核心。(2000 年第二季度)
- 此后,开始实现一套完整的编解码器,支持世界上大多数语言。(2000 年第三季度至第四季度及以后)
背景
1999 年中期,Python 联盟成员强烈要求将 i18n 功能添加到 Python 中。在 python-dev 列表上进行讨论后,CNRI 聘请 Marc-Andre Lemburg 添加 Unicode 字符串和对 Python 核心的相关更改(基于 Fredrik Lundh 的正在运行的 Unicode 字符串实现),并聘请 Fredrik Lundh 开发基于 Unicode 的正则表达式引擎。这些任务即将完成,并将很快发布到公共 CVS 中。
这些任务所基于的规范可以在 http://starship.python.net/crew/lemburg/unicode-proposal.txt 找到。(现在也在 Python 2.0 发行版中,作为 Misc/unicode.txt。)
该提案定义了一个“编解码器”接口,但是实现多字节语言的编解码器超出了 Marc-Andre 的范围,将留给 SIG 的成员。
在第八届国际 Python 会议上有一个 i18n 论坛,在该论坛上商定了上述交付成果,并且 SIG 是由此形成的。
主要人员和组织
如果您可以通过某种特定的方式提供帮助,并且认为应该在此处列出,请联系 Andy Robinson 并附上简短的个人简介。此列表是初稿,省略了 sig 上的许多关键人物,但是您必须告诉我您的情况才能被列出!
- Marc-André Lemburg
- 实现核心 Unicode 功能
- Fredrik Lundh,Secret Labs AB
- 实现 Unicode 正则表达式引擎
- Andy Robinson,ReportLab Inc.
- SIG 版主;日语使用者,过去一年在一家共同基金公司从事 Python 日语转换工作。ReportLab (http://www.reportlab.com/) 正在开发多语言 PDF 报告工具,并且需要在今年晚些时候实现对亚洲书写系统的全面支持。
- Brian Takashi Hooper,Digital Garage
- Digital Garage 是一家总部位于东京的咨询和互联网服务公司,拥有 70 多名员工。他们过去已经为日语实现了自己的编解码器,并且迫切需要在 Python 中支持日语。
- 惠普
- HP 是 Python 联盟的成员,最初推动了 Python 的 Unicode 工作,以协助其全球 eSpeak 计划。
- Christian Wittern
- Christian 是一位在台湾的汉学家,可以协助解决与中文相关的问题。
资源和链接
感谢 Peter Funk 启动了这个列表
- Martin von Loewis 的“Python 国际化”论文,该论文于 1997 年在第六届国际 Python 会议上发表,是全面了解所涉及问题的绝佳之处。
- Python Unicode 提案本身。
- Python Unicode 教程,作者:Andy Robinson。
- Unicode 联盟主页。
- Linux i18n 项目主页.
- 从 JavaScript 国际化中吸取的教训,来自一位 IBM 研究员。
- 适用于 Unix/Linux 的 UTF-8 和 Unicode 常见问题解答,作者:Markus Kuhn。
- Jim Breen 的日语页面。与日语和计算相关的大多数内容都可以通过一两次点击从这里找到。
- Basis Technologies 制作了一个名为 Rosette 的商业 Unicode 库;他们的网站上有一些关于设计这些库所涉及问题的很好的文档。(有一个免费的 DOS 程序叫做 uniconv,它使用这个程序在编码之间转换文件;如果我们能写一个 uniconv.py 并针对其输出进行大规模回归测试,我们就完成了我们的工作!)
- Unilib 来自 Sybase,是另一个广泛使用的商业产品。
- gettext 是一个用于处理字符串查找的 GNU 库,它是其翻译项目的核心部分。
- fintl.py - 用于读取 msgfmt 创建的 .mo 文件的纯 Python 模块。
- intl.so - 到(GNU)gettext C 库的接口。仅在国际应用程序受 GPL 保护并将在 Unix-Linux 下运行时才有用。
- pygettext - Barry Warsaw 用纯 Python 重新实现的 gettext。(现在也作为 Python 2.0 的一部分,在 Tools/i18n/ 中。)
- 用于 Python 的日语编解码器 - 由 Tamito Kajiyama 提供。
- Tom Emerson 在 2002 年于华盛顿特区举行的 Unicode 会议上发表了一篇关于亚洲编解码器统一架构的论文:为 Python 2 设计和实现一套中文转码器。