-
Notifications
You must be signed in to change notification settings - Fork 80
Workflow between GitHub and Transifex
WARNING: WORK IN PROCESS!!!
Find out how to create a perfect workflow for the plone.app.locales package between GitHub & Transifex with the .TX Client command tool.
This a proposal to improvement the concurrent Plone i18n workflow, using the Transifex platform and GitHub repository.
There a several open-source projects that using different workflow for translations, using some features like:
-
Terminology database (vocabularies).
All these feature are including into the Transifex platform, these very useful to more people working on Plone translations process.
Thera a good examples of open-source projects that using the Transifex platform, as the following:
-
WP-Translations, is a community that aims to be a bridge between developers and translators. We are dedicated entirely to translate WordPress, it’s themes, plugins and documentations.
-
Plone Intranet, is the code name for Quaive, a Social Intranet Collaboration Solution based on Plone.
-
Plone 5 Training, A collection of Plone 5 trainings developed and created by the Plone Community.
-
Plone 4 Training, A collection of Plone 4 trainings developed and created by the Plone Community.
-
Plone 5 Documentation, The translation of Plone 5 Documentation.
Transifex is a dedicated platform for translation, trusted by the Open Source Community, so perfect for Plone projects.
Based on a cloud platform, no need to install anything on your computer. If you’re used to translate on your own locally, with Poedit, no problem, you can import your translated files.
With a clear dashboard and the notifications system stay up to date is everything that happens to our projects.
Transifex integrates lots of tools to create way to communicate between users, at every level of a project, from the management to the translation with tools like global announcements, discussions places (forums) for every languages. At the string level you have a detailed area (extracted from the source language file and the comments of the authors), a tag system, an history system, a glossary and the suggestions.
The suggestions system use a globalized TM (Translation Memory) shared between all the projects of our community. It means a better uniformation of regular stings used in different projects but also a gain of time for every translators with the autocomplete of similar strings.
Every project as in Plone got is own use role system to easily manage them : coordinators, reviewers and translators and to create quality translations files.
Project can be linked to your .pot source file and every changes you do to it will automatically be reflected on Transifex side. No more hassle managing i18n files and getting in touch with translators, you’re free to spend your time coding.
The Transifex dedicated command line client tool, integrates perfectly in your workflow. Like a Git or svn client simply push and pull to your local folder the translations and get everything ready for your next update.
But enough talking, the best thing to do is using it isn’t it?
The proposal details about this workflow improvement are:
-
The Plone backend guys add i18n, generate / update the Gettext files (pot and po files).
-
Using the transifex client (like a git command) to push the pot files (source translation) or translations (po files) to the transifex project.
-
The Plone translators write his translations and later when the every Team language leader, example Spanish translation team leader, believes the translation is ready to use, then make a pull for translations made (po files) from transifex organizatation using transifex client into plone.app.locales package.
-
Add a new commit and pull request, for wait to the maintainer guys or owner plone.app.locales package, that for check out and merge the pull request.
Our Plone organization into Transifex.
At the moment for Open source projects Transifex only support a specific version for every Transifex project, for example:
-
Plone 5 CMS.
-
Plone 5 Documentation.
-
Plone 5 someting.
-
Plone 4 CMS.
-
Plone 4 Documentation.
-
Plone 4 someting.
Every Transifex project is configured with the Transifex client configuration file (.tx/config) into a specific github repository branch.
The following requirements are needed for works with this workflow proposal:
-
A Git tool.
-
A GitHub account.
-
A update working copy of the plone.app.locales package from GitHub repository.
-
Update the pot and po files.
-
A Transifex account.
-
The TX client installed.
Linux and Mac OS X installation
The Transifex Client is written in Python and most Unix-based systems have Python pre-installed. The easiest way to install it is with pip. Like most Python development tools, you probably want to install it inside a virtualenv, but you can surely install it as root using sudo.
$ sudo pip install transifex-client
Windows installation
The Transifex Client is also available for Windows. You can download the latest version from http://files.transifex.com/transifex-client/0.10/tx.exe. This executable is standalone and does not need to be installed. You can find more details for Windows
To use it, download the executable inside your project, open the cmd program that comes bundled with Windows and hit the command:
$ cd \path\to\project\
More details check out http://docs.transifex.com/client/setup/
To initialize a project, use the tx init command. This is very similar to the way most version control systems handle initialization. This command will create a Transifex project in the current directory.
$ tx init
Creating .tx folder...
Transifex instance [https://www.transifex.com]:
Press Enter (changing the host name is not recommended)
Creating skeleton...
Creating config file...
No configuration file found.
No entry found for host https://www.transifex.com. Creating...
Please enter your transifex username: user
Password: <...>
Updating /home/username/.transifexrc file...
Done.
More details check out http://docs.transifex.com/client/init/#a-sample-client-init
More details about configuration TX client, check out http://docs.transifex.com/client/config/
You can request the creation of a new Transifex project via register a issue https://github.com/collective/plone.app.locales/issues/new.
You can request the creation of a new Transifex language via register a issue https://github.com/collective/plone.app.locales/issues/new.
More details check out http://docs.transifex.com/projects/adding-and-removing-project-languages/
Creates or updates the Gettext files (pot and po files) from the plone.app.locales package.
Then push the Gettext files (pot files) to the Transifex server using the tx push command:
$ tx push -s
For push the Gettext files (po files) to the Transifex server using the tx push command:
$ tx push -t
For push the Gettext files (pot and po files) to the Transifex server using the tx push command:
$ tx push -s -t
For push the Gettext files (pot files) to the Transifex server using the tx push command:
$ tx push -s -r <myproject>.<myresource>
For push the Gettext files (po files) for specific Transifex language to the Transifex's server using the tx push command:
$ tx push -t -l <mylanguage>
Pulls all translations (all languages po files) to the Transifex server using the tx pull command:
$ tx pull -a
Pulls all translations (all languages po files) with the minimum percentage change to whatever you want (example, all translations are 100% done and with the mode of the translation file to pull, is 'reviewed' from the Transifex server) update as translation done from to the Transifex server using the tx pull command:
$ tx pull -a --minimum-perc=100 --mode=reviewed
For pull the Gettext files (po files) to the Transifex server using the tx pull command:
$ tx pull -r <myproject>.<myresource>
For pull all translations (all po files) for specific Transifex language to the Transifex's server using the tx pull command:
$ tx pull -l <mylanguage>
Display or erase Transifex resources / languages (translations) from Transifex.