Skip to main content

将翻译大量导出/导入到 Google Docs 电子表格中

项目描述

ftw.recipe.translations提供大量主题功能:

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

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

<nav class="contents" id="table-of-contents" role="doc-toc">

目录

</nav>

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 文件。

谷歌身份验证和授权

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

使用上传下载命令时,OAuth2 身份验证通过配置应用程序完成。浏览器打开,用户可以授予应用程序访问他的 Google Drive 的权限。收到的票存储在用户钥匙圈/钥匙串中。

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

同步命令_

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 文件头DomainLanguage-NameLanguage-Code。这种行为的原因是这个包主要是为 Plone 包制作的,Plone 不会读取这些头文件(它从路径中获取信息,例如locales/[lang-code]/LC_MESSAGES/[domain].po)。因为标题不相关,所以它们通常没有正确维护,因此通常是错误的。

变更日志

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 (32.4 kB 查看哈希

已上传 source