将翻译大量导出/导入到 Google Docs 电子表格中
项目描述
ftw.recipe.translations提供大量主题功能:
bin/i18n-build:用于安装在单个包中的包重建脚本。
bin/masstranslate:将翻译导出/导入到 Google Docs 电子表格中/从 Google Docs 电子表格中导出,让翻译人员在更好的环境中进行翻译。
目录
bin/i18n-build
i18n-build脚本是为单个包安装的。执行时,将重建此包中翻译的所有域的所有语言。
该脚本只需要一个主域。域名应与包名相同(可配置)。
脚本的作用:
该脚本使用i18ndude重建主包:它扫描代码中的翻译字符串并重建主域的.pot。
它以所有语言同步所有域的.po文件。
安装和配置
对于安装,只需使用 zc.buildout 配方ftw.recipe.translations:package:
[buildout]
parts = <s>i18n-build</s>
[i18n-build]
recipe = <s>ftw.recipe.translations:package</s>
package-name = <s>my.package</s>
选项:
- 包裹名字
软件包的 setuptools-name(必需)。
- i18n 域
此包的主域名称(可选,默认为包名)。
- 包命名空间
重建主域时用于扫描代码的包命名空间(可选,默认为包名)。
完整示例:
[buildout]
parts = <s>i18n-build</s>
[i18n-build]
recipe = <s>ftw.recipe.translations:package</s>
package-name = <s>MyPackage</s>
i18n-domain = <s>mypackage</s>
package-namespace = <s>my.package</s>
用法
重建和同步所有现有语言:
$ 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
垃圾箱/质量翻译
masstranslate脚本安装在一个构建中,它将所有相关的包检出到一个src目录中(例如使用mr.developer)。
然后,您可以将源目录中所有包的所有翻译上传到 Googlea 电子表格中进行翻译。在 Google 电子表格中完成翻译后,脚本可以下载所有翻译并将它们同步回包中的正确位置。
安装和配置
使用构建配方生成脚本bin/masstranslate:
[buildout]
parts = <s>translations</s>
[translations]
recipe = <s>ftw.recipe.translations [masstranslate]</s>
spreadsheet = <s>https://docs.google.com/spreadsheet/ccc?key=0AgoYEZSDYCg1dEZvVGFTRUc3RDd6123DAFDER</s>
生成的bin/masstranslate脚本预先配置了配置的电子表格url,默认适用于 ./src目录中的所有 .po 文件。
同步命令_
bin/masstranslate脚本提供了一个同步命令,用于重建主域 .pot 文件并将它们与所有语言同步。
作为主域,包名(src目录中的文件夹)是预期的。重新构建主域(搜索包中的可翻译字符串)并且 自动合并locales目录中的[domain]-manual.pot -files 。非主域永远不会重建,并且需要手动更新。
然后,所有域都会同步到所有现有语言。
例子:
./bin/masstranslate sync
为所有包和域创建新语言就像传递位置参数一样简单:
./bin/masstranslate sync de
上传命令_
使用上传命令可以轻松地从 .po文件中提取翻译并上传到 Google 电子表格中。上传命令总是在Google 电子表格中创建一个新的工作表,因此现有数据永远不会被覆盖。
请参阅配置部分,了解如何配置电子表格 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"
下载命令_
下载命令将电子表格中的翻译同步回 源目录中的.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 文件头Domain、Language-Name和 Language-Code。这种行为的原因是这个包主要是为 Plone 包制作的,Plone 不会读取这些头文件(它从路径中获取信息,例如locales/[lang-code]/LC_MESSAGES/[domain].po)。因为标题不相关,所以它们通常没有正确维护,因此通常是错误的。
链接
github项目:https ://github.com/4teamwork/ftw.recipe.translations
问题:https ://github.com/4teamwork/ftw.recipe.translations/issues
皮皮: http ://pypi.python.org/pypi/ftw.recipe.translations
持续集成:https ://jenkins.4teamwork.ch/search?q=ftw.recipe.translations
版权
这个包是4teamwork的版权。
ftw.recipe.translations根据 GNU 通用公共许可证第 2 版获得许可。
变更日志
1.2.6 (2017-01-09)
支持子包中的其他语言环境目录。[琼斯]
支持最新的 path.py 版本 10.0。[琼斯]
1.2.5 (2015-11-24)
仅在安装 masstranslate 配方时才需要 oauth2client(和六个)依赖项。这减少了六的依赖性问题。[琼斯]
1.2.4 (2015-11-17)
更新 oauth2client 版本约束以提高 plone 兼容性。[马图]
1.2.3 (2015-04-16)
忽略不再存在的翻译。[phgross]
1.2.2 (2015-03-13)
删除过于严格的六版本固定。6 固定在 Plone 4.3 KGS 和更新版本中。对于较旧的 Plone 版本,它应该被固定,例如1.4.0。[琼斯]
1.2.1 (2014-12-14)
通过固定 oauth2client 和六个依赖项来保持 Plone KGS 兼容性。[琼斯]
1.2.0 (2014-06-05)
海量翻译:添加对 Google Oauth –noauth_local_webserver 的支持。当没有本地浏览器时(例如通过 ssh 连接到服务器时),此选项很有用。[琼斯]
1.1.1 (2014-03-05)
i18nbuild:删除“域”、“语言代码”和“语言名称”标题。Plone 不需要这些标头,它从路径中获取信息。标头通常设置不正确,因此我们只需将其删除。[琼斯]
1.1.0 (2014-03-05)
实施新的 bin/i18n-build 配方和脚本。[琼斯]
将 bin/translations 重命名为 bin/masstranslate。[琼斯]
1.0.2 (2014-01-31)
修复以前的棕色包发布:使构建配方工作。[琼斯]
1.0.1 (2014-01-31)
修复缺少的分布构建错误。[琼斯]
1.0.0 (2014-01-31)
初步实施。[琼斯]
项目详情
ftw.recipe.translations -1.2.6.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 0590923260b9bb1820d80e428f7ffa41929b19ced546d9c3377714954f95f569 |
|
| MD5 | e2c525a444bcc1bdc2aac6112d0caa4a |
|
| 布莱克2-256 | 44909eca57241d09a5aea4f82d94fd476ddddfae926e71fadc7f5810d2ff770e |