跳转到主要内容

批量导出/导入翻译到Google Docs电子表格

项目描述

ftw.recipe.translations 提供以下批量功能

  • bin/i18n-build:用于单个包安装的包重建脚本。

  • bin/masstranslate:将翻译导出到/从Google Docs电子表格,以便翻译者在更好的环境中进行翻译。

bin/i18n-build

i18n-build 脚本为单个包安装。执行时,将重建此包中所有域的所有语言的全部语言。

脚本期望只有一个主要域。域名应等于包名(可配置)。

脚本执行的操作

  • 脚本使用 i18ndude 重建主要包:它扫描代码中的翻译字符串并重建主要域的 .pot

  • 它同步所有域的所有语言的 .po-文件。

安装和配置

只需使用 zc.buildout 食谱 ftw.recipe.translations:package 进行安装。

[buildout]
parts = i18n-build

[i18n-build]
recipe = ftw.recipe.translations:package
package-name = my.package

选项

package-name

包的 setuptools-名称(必需)。

i18n-domain

此包的主要域名称(可选,默认为包名)。

package-namespace

重建主要域时扫描代码所使用的包命名空间(可选,默认为包名)。

完整示例

[buildout]
parts = i18n-build

[i18n-build]
recipe = ftw.recipe.translations:package
package-name = MyPackage
i18n-domain = mypackage
package-namespace = my.package

用法

重建并同步所有现有语言

$ bin/i18n-build
Rebuilding .../my/package/locales/mypackage.pot
.../my/package/locales/de/LC_MESSAGES/mypackage.po: 0 added, 2 removed
.../my/package/locales/en/LC_MESSAGES/mypackage.po: 1 added, 2 removed
.../my/package/locales/de/LC_MESSAGES/plone.po: 1 added
.../my/package/locales/en/LC_MESSAGES/plone.po: 1 added

为新的语言创建翻译(.po文件)

$ bin/i18n-build fr it
Rebuilding .../my/package/locales/mypackage.pot
.../my/package/locales/de/LC_MESSAGES/mypackage.po: 0 added, 2 removed
.../my/package/locales/en/LC_MESSAGES/mypackage.po: 1 added, 2 removed
.../my/package/locales/fr/LC_MESSAGES/mypackage.po: 80 added, 0 removed
.../my/package/locales/it/LC_MESSAGES/mypackage.po: 80 added, 0 removed
.../my/package/locales/de/LC_MESSAGES/plone.po: 1 added
.../my/package/locales/en/LC_MESSAGES/plone.po: 1 added
.../my/package/locales/fr/LC_MESSAGES/plone.po: 3 added, 0 removed
.../my/package/locales/it/LC_MESSAGES/plone.po: 3 added, 0 removed

bin/masstranslate

masstranslate 脚本安装在一个构建包中,该构建包将所有相关包检出到一个 src 目录(例如使用 mr.developer)。

然后,您可以上传源目录中所有包的所有翻译到一个谷歌表格进行翻译。当翻译完成时,脚本可以下载所有翻译并将它们同步回包的正确位置。

安装和配置

使用构建包菜谱生成一个 bin/masstranslate 脚本

[buildout]
parts = translations

[translations]
recipe = ftw.recipe.translations [masstranslate]
spreadsheet = https://docs.google.com/spreadsheet/ccc?key=0AgoYEZSDYCg1dEZvVGFTRUc3RDd6123DAFDER

生成的 bin/masstranslate 脚本预先配置了配置的 spreadsheet url,默认情况下适用于 ./src 目录中的所有 .po 文件。

Google身份验证和授权

使用 OAuth2 实现谷歌身份验证。这意味着您需要在您的谷歌 API 控制台中设置一个应用程序,或者至少拥有该应用程序的应用程序密钥(.json)。需要将这些密钥复制到 ~/.buildout/ftw.recipe.translations.json。有关创建谷歌应用程序的说明,请参阅 Wiki 页面

当使用 uploaddownload 命令时,OAuth2 认证使用配置的应用程序。浏览器将被打开,用户可以授权应用程序访问他的谷歌驱动。收到的票据将被存储在用户的密钥环/密钥链中。

如果运行此脚本的服务器没有网络浏览器(例如您通过 SSH 登录的共享计算机上运行它),弹出的浏览器无法处理授权过程,或者如果您更喜欢使用自己的网络浏览器进行授权,请将 --noauth_local_webserver=True 参数添加到脚本中。使用此选项,脚本将显示一个 URL,您需要手动使用浏览器打开该 URL,然后在控制台中输入在该浏览器中显示的授权代码。

sync 命令

bin/masstranslate 脚本提供了一个 sync 命令,用于重新构建主域 .pot 文件并将其与所有语言同步。

作为 主域,期望是包名(src 目录中的文件夹)。主域将被重新构建(搜索可翻译的字符串),并且 locales 目录中的 [domain]-manual.pot 文件将自动合并。非主域永远不会重新构建,并期望手动更新。

然后,将所有域同步到所有现有语言。

示例

./bin/masstranslate sync

为所有包和域创建新语言就像传递一个位置参数一样简单

./bin/masstranslate sync de

upload 命令

使用上传命令,可以轻松地从 .po 文件中提取翻译并将其上传到谷歌表格。上传命令始终在谷歌表格中创建一个新的工作表,因此现有数据永远不会被覆盖。

有关配置表格 URL 的说明,请参阅 配置 部分。

使用位置参数可以指定要翻译的语言。每个定义的语言都包含在表格中。如果一条消息在所有语言中都已翻译,则除非使用 --all 关键字,否则不会上传该消息。

可以使用 --additional-languages 关键字添加未检查现有翻译的额外语言,这可能对翻译者很有用。

示例

./bin/masstranslate upload de fr --additional-languages en es
Spreadsheet: https://docs.google.com/spreadsheet/ccc?key=0AgoYEZ....
Loading translations
Starting Upload
1 of 191 (0%): Upload
9 of 191 (4%): Upload
...
Finished Upload
Uploaded into worksheet "013: 2014-01-31"

download 命令

下载命令将从电子表格同步翻译回源目录中的 .po 文件。在开始下载时,用户需要选择要下载的工作表和语言。如果电子表格中没有翻译消息,则它永远不会更新到 .po 文件。

示例

./bin/masstranslate download
Please select a worksheet to download:
[1] 011: 2014-01-31
[2] 012: 2014-01-31
[3] 013: 2014-01-31

Please enter the spreadsheet number: 1
Please select the languages to synchronize:
- de
- fr

Enter one language code at a time, finish selection with an empty enter.
Language: fr
Language:

翻译标题

同步命令将删除 .po 文件标题 语言名称语言代码。这种行为的原因是,此软件包主要是为 Plone 软件包设计的,而 Plone 不读取这些标题(它从路径中获取信息,例如 locales/[lang-code]/LC_MESSAGES/[domain].po)。由于标题无关紧要,它们通常没有得到妥善维护,因此通常不正确。

变更日志

1.2.6 (2017-01-09)

  • 支持子软件包中的附加 locales 目录。[jone]

  • 支持最新路径.py 版本 10.0。[jone]

1.2.5 (2015-11-24)

  • 只有在安装 masstranslate 软件包时才需要 oauth2client(和 six)依赖项。这减少了与 six 的依赖性问题。[jone]

1.2.4 (2015-11-17)

  • 更新 oauth2client 版本约束,以提高与 plone 的兼容性。[maethu]

1.2.3 (2015-04-16)

  • 忽略不再存在的翻译。[phgross]

1.2.2 (2015-03-13)

  • 删除过于严格的 six 版本锁定。six 在 Plone 4.3 KGS 及更高版本中已锁定。对于旧版本的 Plone,应将其锁定,例如到 1.4.0。[jone]

1.2.1 (2014-12-14)

  • 通过锁定 oauth2client 和 six 依赖项来保持 Plone KGS 兼容性。[jone]

1.2.0 (2014-06-05)

  • Masstranslate:添加对 Google Oauth –noauth_local_webserver 的支持。当没有本地浏览器时(例如通过 ssh 连接到服务器时),此选项很有用。[jone]

1.1.1 (2014-03-05)

  • i18nbuild:删除“域”、“语言代码”和“语言名称”标题。Plone 不需要这些标题,它从路径中获取信息。这些标题通常设置不正确,所以我们只是删除它们。[jone]

1.1.0 (2014-03-05)

  • 实现新的 bin/i18n-build 软件包和脚本。[jone]

  • 将 bin/translations 重命名为 bin/masstranslate。[jone]

1.0.2 (2014-01-31)

  • 修复以前的 brown bag 发布:使 buildout 软件包正常工作。[jone]

1.0.1 (2014-01-31)

  • 修复缺少发行版 buildout 错误。[jone]

1.0.0 (2014-01-31)

  • 初始实现。[jone]

项目详情


下载文件

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

源发行版

ftw.recipe.translations-1.2.6.tar.gz (32.4 kB 查看散列)

上传

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面