跳转到主要内容

Zope本地化提取和管理工具

项目描述

zope.app.locales

此软件包提供了一些用于提取和管理Zope软件中出现的i18n消息的功能。具体来说,i18n消息可以出现在Python代码中、页面模板中和ZCML声明中。 zope.app.locales 提供了一个工具,可以从这三个地方提取消息并将它们写入标准的gettext模板(pot 文件)。

用法

版本4.2不包含任何 *.mo 文件。它们是编译的翻译文件(*.po)。(未来的版本将再次包含它们。)

要实时生成或更新 *.mo 文件,设置以下环境变量

zope_i18n_compile_mo_files=True

要限制允许的语言,将 zope_i18n_allowed_languages 设置为语言列表。示例

zope_i18n_allowed_languages=de,en,es,fr

详细文档

国际化(I18n)和本地化(L10n)

本文件假设您已安装了Zope 3源代码和gettext工具。

创建/更新消息目录模板(POT)文件

每当您对Zope进行更改,影响i18n消息时,您需要从代码中重新提取i18n消息。为此,请从您的Zope 3源代码检查目录的utilities目录执行i18nextract.py

$ python utilities/i18nextract.py -d zope -p src/zope -o app/locales

这将更新zope.pot文件。请确保检查的src目录是您的PYTHONPATH环境变量的部分。

之后,您需要将更改合并到所有现有翻译中。您可以通过执行Zope 3检查目录的utilities目录中的i18nmergeall.py脚本来完成此操作

$ python utilities/i18nmergeall.py -l src/zope/app/locales

翻译

要翻译消息,您需要执行以下步骤

  1. 如果您的语言已经有了翻译并且您只想更新,请跳到步骤2。如果您想在一个新语言上开始翻译,您需要

    1. 创建一个目录

      src/zope/app/locales/<lang_code>/LC_MESSAGES

      使用您的语言的适当代码作为<lang_code>。请注意,指定语言的两个字母应始终为小写(例如,‘pt’);如果您还指定了一个区域,这些字母应为大写(例如,‘pt_BR’)。

    2. zope.pot模板文件复制到<lang_code>/LC_MESSAGES/zope.po

    3. 编辑新创建的zope.po文件的PO头,并填写所有必要的信息。

  2. 在PO文件中翻译消息。请确保gettext语法保持完整。像poEdit和KBabel这样的工具可以帮助您。

  3. 最后,翻译完成后,使用msgfmt工具将PO文件编译为其二进制等效文件

    $ cd <lang_code>/LC_MESSAGES $ msgfmt -o zope.mo zope.po

变更

5.0 (2023-08-28)

  • 添加对Python 3.11的支持。

  • 停止对Python 2.7、3.5、3.6的支持。

4.3 (2022-09-12)

  • 从存储库中删除*.mo文件,并在README中说明如何动态生成它们。(#7

  • 在发布过程中自动创建*.mo文件,因此此版本将再次包含*.mo文件。

4.2 (2022-06-10)

  • 添加对Python 3.9、3.10的支持。

  • 在ZCML提取中使路径相对。

  • 此版本不包含任何*.mo文件。

4.1 (2019-06-24)

  • 使用flake8对代码进行审查。

  • 添加对Python 3.7、3.8b1和PyPy3的支持。

  • z3c.recipe.i18n此处移植自定义POT文件头模板。(#11

  • 防止POT文件随着时间的推移收集重复的位置指定符。(#12

4.0.1 (2018-06-29)

  • 重新编译翻译文件*.mo

4.0.0 (2017-05-02)

  • 添加对Python 3.5、3.6和PyPy的支持。

3.7.5 (2016-03-28)

  • 为zcml_extraction添加测试。

  • 删除zope.app.applicationcontrol和zope.app.appsetup依赖项。

  • 将支持的Python版本列表添加到Trove分类器。

3.7.4 (2012-05-14)

  • 在版本3.7.2中,msgids和默认值被强制转换为unicode。这太严格了,因为至少TAL提取器返回UTF-8编码的默认值。通过允许默认值为字符串来修复此问题。

3.7.3 (2012-01-06)

  • i18nextract错误修复:_("msgid",mapping={...})没有默认值,就像_("msgid")一样。以前它会在.pot文件中获得#. Default: ""注释。

3.7.2 (2011-12-12)

  • 处理Unicode msgids和默认值。

  • 为每个msgid进行源文件名的统一排序。同时按数字排序行号,而不是按字典顺序排序。

3.7.1 (2011-12-07)

  • 修复nl翻译。

  • 更新了巴西葡萄牙语翻译 [erico_andrei]

3.7.0 (2011-03-02)

  • configure.zcml中包含zcml依赖项,通过一个zcml额外项需要必要的包,为zcml添加了测试。

  • 使用Python的doctest模块而不是已弃用的zope.testing.doctest

3.6.2 (2010-07-31)

  • 更新版权信息为Zope Foundation,即使在pot模板中也是如此。

  • 在pot模板中更新了电子邮件地址,以反映zope邮件列表的当前地址。

  • 添加了对zope.i18n的缺失测试依赖项。

3.6.1 (2010-05-17)

  • 更新了荷兰语和德语翻译。

3.6.0 (2009-12-28)

  • 添加了configure.zcml,该文件在包中注册了翻译。因此,包包含其配置。(直到现在,这是在zope.app.zcmlfiles中完成的。)

3.5.2 (2009-12-22)

  • 更新测试以正确处理Unicode。

  • 更新了日语翻译(感谢山本隆志)。

3.5.1 (2009-01-27)

  • 为测试添加了缺失的依赖项(zope.tal)。

3.5.0 (2009-01-26)

  • 将提取控制台脚本的依赖项移动到extract extras_require中,以避免运行时依赖项。

  • 修复了bug #227582(zh_CN区域设置中的大小错误)

3.4.5 (2008-07-16)

  • 为tal_strings添加了filePattern参数,以便能够解析不仅仅是.pt文件。

  • 更新了荷兰语翻译

3.4.4 (2008-03-05)

  • 更新了西班牙语翻译

3.4.3 (2008-02-20)

  • 更新了西班牙语翻译

  • 更新了日语翻译

3.4.2 (2008-02-06)

  • 修复并更新了俄语翻译。修复了问题#186628(俄语翻译中的错别字和错误)

3.4.1 (2007-12-12)

  • 修复并更新了法语翻译

3.4.0 (2007-10-25)

  • 将i18nextract脚本整合到zope.app.locales.extract中,并将其作为控制台脚本入口点公开。

3.4.0a1 (2007-04-22)

  • 作为独立项目首次发布,对应于Zope 3.4.0a1中的zope.app.locales

下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

zope.app.locales-5.0.tar.gz (1.2 MB 查看哈希值)

上传时间 源代码

构建分发

zope.app.locales-5.0-py3-none-any.whl (1.2 MB 查看哈希值)

上传时间 Python 3

支持者