批量导出/导入翻译到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 文件。
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)。由于标题无关紧要,它们通常没有得到妥善维护,因此通常不正确。
链接
版权
本软件包版权所有 4teamwork。
ftw.recipe.translations 根据 GNU 通用公共许可证,版本 2 许可。
变更日志
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 的散列
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0590923260b9bb1820d80e428f7ffa41929b19ced546d9c3377714954f95f569 |
|
MD5 | e2c525a444bcc1bdc2aac6112d0caa4a |
|
BLAKE2b-256 | 44909eca57241d09a5aea4f82d94fd476ddddfae926e71fadc7f5810d2ff770e |