Edgewall Software

Changes between Version 27 and Version 28 of TracL10N/Transifex


Ignore:
Timestamp:
Aug 1, 2016, 7:31:43 PM (8 years ago)
Author:
figaro
Comment:

Further cosmetic changes

Legend:

Unmodified
Added
Removed
Modified
  • TracL10N/Transifex

    v27 v28  
     1[[PageOutline(2-5,Contents,pullout)]]
     2
    13= Transifex and Trac
    24
    3 [https://www.transifex.com/ Transifex] is a modern, open-source localization platform. It is a web system which automates the translation workflow for complex international projects. It is the alternative to the more laborious [[TracL10N]] process, involving svn, Babel, make, etc.
     5Trac is available in a number of languages and the translations for the captions are performed in [https://www.transifex.com/ Transifex], which is a modern, open-source localization platform. It is a web system which automates the translation workflow for complex international projects. It is the alternative to the more laborious [[TracL10N]] process, involving svn, Babel, make, etc.
    46
    57{{{#!box info
     
    810If you just want to contribute translations by using Transifex, you can read the [#Translationteammember section for team members below] and then head directly on the [transifex: Transifex project].
    911}}}
    10 
    11 [[PageOutline]]
    1212
    1313The key is to keep all sources in sync, if there is more than one:
     
    2121== Roles
    2222
    23 Once you're familiar with Transifex (and they have some very good [http://help.transifex.com/ documentation] on their site), you can apply for membership to one translation team for a language, or create a new team if your language of choice isn't yet represented there. Be aware that a new translation for Trac represents a //lot// of work.
     23Once you're familiar with Transifex (and they have some very good [http://help.transifex.com/ documentation] on their site), you can apply for membership to one translation team for a language, or create a new team if your language of choice isn't yet represented there. Be aware that a new translation for Trac usually involves a //lot// of work.
    2424
    2525=== Translation team coordinator
     
    222222|-----------------------------------------------------------------------------
    223223
    224  - for the languages in [#group1], the translation maintainers are primarily in charge for doing the synchronization
    225  - for [#group2], there is only "normal" maintenance to do
    226  - for [#group3], the translation team coordinators are invited to ask for commit privileges and integrate [#group1]
     224 - for the languages in [#group1] the translation maintainers are primarily in charge for doing the synchronization
     225 - for [#group2] there is only the usual maintenance to do
     226 - for [#group3] the translation team coordinators are invited to ask for commit privileges and integrate [#group1]
    227227 - for [#group4] the translations will be "promoted" to [#group3], ie integrated in the repository, as soon as a decent coverage is reached (say > 50%)
    228228{{{#!comment
    229229 - for the languages in [#group5]
    230230}}}
    231  - for the languages in [#group6], there's nothing to do as long as there's no content
     231 - for the languages in [#group6] there's nothing to do as long as there's no content
    232232
    233233=== Translation team member
     
    246246
    247247You first need to install the [http://help.transifex.com/features/client/index.html#user-client Transifex client]:
    248 {{{
    249 easy_install transifex-client
     248{{{#!sh
     249$ easy_install transifex-client
    250250}}}
    251251or a [http://help.transifex.com/features/client/index.html#getting-the-client variation of the above].
     
    253253If you're on Windows, you'll also need a [https://github.com/cboos/transifex-client/tree/0.8/tx-config-posix-paths-on-windows hack].
    254254
    255 Of course, you also need to have a [TracRepositories checkout of the source] of the branch you want to work on. [source:branches//0.12-stable] will be maintained for the foreseeable future, so you may want to continue contributing there, but [source:branches//1.0-stable] is now the official stable release branch. [source:trunk] is where the new interesting stuff happen (TracDev/Proposals/ConfigEnumTranslation?).
     255Of course, you also need to have a [TracRepositories checkout of the source] of the branch you want to work on:
     256 * [source:branches//0.12-stable] will be maintained for the foreseeable future, so you may want to continue contributing there
     257 * [source:branches//1.0-stable] is now the official stable release branch
     258 * [source:trunk] is where the new interesting stuff happen (TracDev/Proposals/ConfigEnumTranslation?).
    256259
    257260Now let's go through a complete example, starting from one update to the resource corresponding to the messages catalog on 0.12 for the [Transifex:language/fr/ French translation], more specifically, on that page: Transifex:resource/0_12-stable-messages-pot/l/fr/.
     
    311314}}}
    312315
    313 A very important preparation task that must be done before pulling is to make sure the `.po` file was updated. Even if you think it must be because there are no local changes, it's a good idea to `make update-..` (`fr` in this example). Perhaps the Babel version you're using at the moment is different from the one which was used before the last version was committed, or a manual change was done at the last minute.
    314 
    315 Doing a catalog update ensures that we have a "normalized" content to compare with  the version of the catalog pulled from Transifex, after the latter has been "normalized" as well by another Babel update, as the automatic formatting done by Transifex is completely different.
     316An important preparation task that must be done before pulling is to make sure the `.po` file was updated. Even if you think it must be because there are no local changes, it's a good idea to `make update-..` (`fr` in this example). Perhaps the Babel version you're using at the moment is different from the one which was used before the last version was committed, or a manual change was done at the last minute.
     317
     318Doing a catalog update ensures that we have a "normalized" content to compare with the version of the catalog pulled from Transifex, after the latter has been "normalized" as well by another Babel update, as the automatic formatting done by Transifex is completely different.
    316319
    317320Make sure to "freeze" that updated Trac version, by making a commit in a local branch (if you use git or hg) or even a "maintenance" commit in Subversion.
     
    470473
    471474For some languages, push can fail like this:
    472 {{{
     475{{{#!sh
    473476$ tx push -t -l gl
    474477Pushing translations for resource trac.0_12-stable-messages-js-pot:
     
    479482
    480483The workaround is to push explicitly this one, by using the `-r` option:
    481 {{{
     484{{{#!sh
    482485$ tx push -t -r trac.0_12-stable-messages-pot -l gl
    483486Pushing translations for resource trac.0_12-stable-messages-pot:
     
    487490
    488491That can be done for several languages at once:
    489 {{{
     492{{{#!sh
    490493$ tx push -t -r trac.0_12-stable-messages-pot -l fa,gl,ko,pt,ro,vi
    491494Pushing translations for resource trac.0_12-stable-messages-pot:
     
    501504== Notes about the Transifex "Releases"  #Releases
    502505
    503 Transifex is not exactly clear if a release should be a line of development (branch) or a given released version. It supports both and let you choose to organize the way you wish.
    504 
    505 I opted to make the "releases" match our maintenance branches, and not individual releases; well, we still have a [Transifex:r/012-stable-3/ few of these], as apparently you can't delete a release.
     506In Transifex is not exactly clear if a release should be a line of development (branch) or a given released version. It supports both and lets you choose to organize the way you wish.
     507
     508I opted to make the "releases" match our maintenance branches, and not individual releases; we still have a [Transifex:r/012-stable-3/ few of these], as apparently you can't delete a release.
    506509
    507510The downside is that string freeze periods and release dates will need to be adjusted constantly on the same release. The alternative, creating a new "release" for each actual version we release bears as much overhead (moreover, are there's no //copy// operation) and doesn't bring any benefit besides keeping a record of the versions we made, record that we obviously maintain here anyway in the [/roadmap].
    508511
    509 On the other hand, the big benefit is that all the links from t.e.o to Tx won't need to be updated after each minor release. The only updates needed will be when introducing a new major release (i.e. for 1.2).
     512On the other hand, the big benefit is that all the links from t.e.o to Tx won't need to be updated after each minor release. The only updates needed will be when introducing a new major release, for example for Trac 1.2.