Skip to main content

Mass export / import of translations into Google Docs Spreadsheets

Project description

ftw.recipe.translations

ftw.recipe.translations provides mass export / import of translations into / from Google Docs spreadsheets for letting translators translate in a better environment.

Configuration

Using the buildout recipe generates a script bin/translations:

[buildout]
parts = translations

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

The generated bin/translations script is preconfigured with the configured spreadsheet url and applies to all .po-files in the ./src directory by default.

Google authentication and authorization

Google auth is implemented using OAuth2. This means you require to have an application set up in your Google API Console or at least have the application secrets (.json) of such an application. The application secrets need to be copied to ~/.buildout/ftw.recipe.translations.json. For instructions for creating a Google application see the Wiki page.

When using the upload and download commands, the OAuth2 authentication is done with the configure application. The browser is opened and the user can grant access for the application to his Google Drive. The received ticket is stored in the users keyring / keychain.

The sync command

The bin/translations script provides a sync command for rebuilding primary-domain .pot-files and syncing them with all languages.

As primary domain the package name (folder in the src directory) is expected. Primary domains are rebuilt (the package is searched for translatable strings) and [domain]-manual.pot-files in the locales directory are automatically merged. Non-primary domains are never rebuilt and expected to be updated manually.

All domains are then sync to all existing languages.

Example:

./bin/translations sync

Creating new languages for all packages and domains is as easy as passing a positional argument:

./bin/translations sync de

The upload command

With the upload command translations can easily be extracted from the .po-Files and uploaded into a Google spreadsheet. The upload command always creates a new worksheet in the Google spreadsheet, so that existing data is never overwritten.

See the Configuration section on how to configure the spreadsheet URL.

With positional arguments the languages to be translated can be specificied. Each defined language is included in the spreadsheet. If a message is translated in all languages, the message is not uploaded unless the --all keyword is used.

Additional languages, which are not checked for existing translations, can be added using the --additional-languages keyword, those may be useful for the translator.

Example:

./bin/translations 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"

The download command

The download command syncs translations back from the spreadsheet into the .po-files in the source directory. When starting a download, the user is asked for the worksheet and languages to download. When a message is not translated in the spreadsheet, it is never updated in the .po-file.

Example:

./bin/translated 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:

Changelog

1.0.0 (2014-01-31)

  • Initial implementation. [jone]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ftw.recipe.translations-1.0.0.zip (40.4 kB view details)

Uploaded Source

File details

Details for the file ftw.recipe.translations-1.0.0.zip.

File metadata

File hashes

Hashes for ftw.recipe.translations-1.0.0.zip
Algorithm Hash digest
SHA256 723ff817c22c5237adadc1d8aec8034d03959350e04cfbc809e00b127b848b39
MD5 568f0b664963c206d702083ac4dbbfb0
BLAKE2b-256 bf92461d027b3692e3309330c2ae4808e2a3d506f899d53105c032a6044e283b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page