Selecting a tool for managing Localization
Selecting a tool to manage XWiki Localization
We definitively need to improve our translations or the XWiki Platform and products as well as support more languages. In order to achieve this we need:
- a good tool
- a way to involve the community
Our requirements for this tool is as far as I can list them:
For content types with need to be able to import and export:
- support Java Application Resources
- support translations in XWiki pages
- support translations of full XWiki pages
The tool should have:
- being able to import directly from SVN is a plus
- easy export in the right format
- organization of translations by applications and files
- ways to propose new translations (multiple proposal is nice to have)
- ways to review and validate them (with a secure group of reviewers)
- a system to detect missing translations
- a system to detect outdated translations (the main language translation was changed)
- ability to manage big volumes of translations
- ability to work on translations by screens of 20 to 50
- good UI is necessary
- ability to work with multiple people at the same time on the translations
- ability to edit multiple translations in one screen is nice to have
- direct commit to SVN is nice to have or ability to automatically create a JIRA issue with a patch attached. This solves the issue of reviewing since it gets sent to the list and a reviewer has to assign himself and apply the patch. Other solution includes the ability to send the patch to the mailing list for review.
- notification for translators is nice to have
- ability to improve the application is nice to have
- control our application is nice to have
- being able to deliver the translation app as part of XWiki is nice to have
In the last few weeks, Jean-Vincent has worked on a small tool allowing to detect missing translations and propose updates for them. On my side, I've been thinking about a workflow for a community working on translations, and worked on a prototype for it. I also had a look at http://launchpad.net which is an online site launched by Ubuntu which can manage translations. Here is a quick review of all three methods:
Simple translation check and edit tool
This tool allows to read the translations from SVN (currently ApplicationResources), compare them and detect missing translations. It then offers a textarea interface allowing to add the missing translation. A javascript allows to simulteneously scroll the original language text and the translated language text. The tool can then generate a patch than could be sent to JIRA.
Analysis: while this is a quick and simple way to update translations, it does not allow community work around the existing and new translations. It cannot handle full wiki pages translations. It is also required to handle the patches quickly in order to not have the contributors work on the same thing while we wait for applying the work.
The application is available at: http://platform.xwiki.org/xwiki/bin/view/Localization/XL10N
XWiki L10N application
The objective of the XWiki L10N application would be to fullfill almost all requirements. The initial version would fullfill probably around 80%. The initial prototype is promising but wil need work to allow concurrent access and faster handling of big volumes of data. Currently the concept is ongoing translation. Reimport of the main language (english) file can be done regularly. The application would become the master for the translations files and these could be generated regularly and commited.
The main advantage of this solution is that we control it. The main drawback is that we control it and that we need to do all the work.
The prototype is at http://l10n.myxwiki.org where the main XWiki core translation files have been loaded for a few languages.
Launchpad.net
Launchpad.net allows to import gettext compatible file (it seems possible to convert java resources to that format with some python tools). Once it is loaded on launchpad.net there is a quite extensively developed translation application. The concept seems to work by application version. We need to verity if this is the way we want it to work.
While registering on launchpad.net I've already seen a few issues linked to the fact that we don't control it:
- my pot template files have not been approved and loaded yet.
- registration email takes a long time to arrive (a single sign on with xwiki.org is much cooler)
Now launchpad.net is an open source application and we could install it locally (but this might not be easy as it is mixed with other tools).
The XWiki launchpad project is not yet active since my template have not yet been accepted: http://translations.launchpad.net/xwikil10n
Comparative table
Feature | Importance | Simple translation tool | L10N App | Launchpad | |
---|---|---|---|---|---|
support Java Application Resources | Mandatory | YES | YES | convert to gettext necessary | |
support translations in XWiki pages | Mandatory | NOT YET | YES | convert to gettext necessary | |
support translations of full XWiki pages | Nice to have | NOT POSSIBLE | NOT YET | Not sure it's possible | |
being able to import directly from SVN is a plus | Nice to have | YES | YES | Not possible | |
easy export in the right format | Mandatory | Patch only | YES | Not possible | |
organization of translations by applications and files | Mandatory | Need work | YES | YES | YES |
ways to propose new translations | Mandatory | YES | YES | YES | |
multiple proposal is nice to have | Nice to have | NO | NOT YET | YES | |
ways to review and validate them (with a secure group of reviewers) | Mandatory | NO | YES | YES | |
a system to detect missing translations | Mandatory | YES | YES | YES | |
a system to detect outdated translations (the main language translation was changed) | Nice to have | NO | YES | NO | |
ability to manage big volumes of translations | Mandatory | Test needed | Work needed | YES | |
ability to work on translations by screens of 20 to 50 | Mandatory | N/A | Work needed | Not sure you can quickly edit translations by batches | |
good UI is necessary | Mandatory | OK for what it does | We control it | No control but a lot of work done | |
ability to work with multiple people at the same time on the translations | Nice to have | NO | Work needed | I think it works well | |
ability to edit multiple translations in one screen is nice to have | Nice to have | YES | YES | Not sure | |
direct commit to SVN is nice to have | Nice to have | Patch | Possible | NO | |
notification for translators is nice to have | Nice to have | NO | NO | NO | |
ability to improve the application is nice to have | Nice to have | YES | YES | NO unless we install locally | |
control our application is nice to have | Nice to have | YES | YES | NO unless we install locally | |
being able to deliver the translation app as part of XWiki is nice to have | Nice to have | Need work | YES | NO |