By Jake Edge
March 25, 2009
Translating text strings into other languages, called "localization" or
"l10n", is a critical part of extending the reach of free software. But
it is equally important that those translations make their way upstream, so
that the translation work is not duplicated, and that all future versions
can benefit. Making all of that easy is the goal of Transifex, which is a platform for doing
translations that is integrated with the upstream version control system
(VCS). The project recently released
Transifex 0.5—a complete rewrite atop the Django web
framework—with many new features
Transifex came out of work done in the 2007 Google Summer of Code for the
Fedora project. Dimitris Glezos worked on a project
to create a web interface to ease localization for Fedora. In the year and a half
since then, Transifex has grown greatly in capabilities, and is now used as
the primary tool for Fedora translations. One of the key aspects, as can
be seen in the SoC application is a focus on being upstream friendly.
People who are able to translate text into another language—for good
or ill, most software is developed with English text—are not
necessarily developers, so their knowledge of VCS systems may be small. In
addition, they are unlikely to want to have multiple accounts with various
projects who might need their services. Transifex abstracts all of the
VCS-specific differences away, so that it presents a single view to
translators. This allows those folks to concentrate on what they are good at.
Transifex interfaces with multiple different VCS systems that a development
project might choose to hold its source code. The five major VCS packages
used by free software projects:
CVS, Subversion, Bazaar, Mercurial, and Git; are all handled seamlessly by
Transifex. A translator doesn't have to know—or care—what the
project chose, and their translations will be properly propagated into the
repository.
This stands in contrast to Canonical's Rosetta, which is also a web-based
translation tool, but it is tightly integrated with Launchpad. That
requires that projects migrate to Launchpad to take advantage of the
translations made by Ubuntu users. Many projects are skittish about moving
to Launchpad, either due to its required use of Bazaar, or due to the
non-free nature (at least as yet) of the Launchpad code. No doubt there
are also
projects who are happy with their current repository location and are
unwilling to move.
Because of the centralized nature of Rosetta, translations tend to get
trapped there, leading some to declare it a poor choice for doing
free software translations. Perhaps when Launchpad opens its code, and
support for more VCS systems is added, it may be a more reasonable choice.
For now, Transifex seems to have the right workflow for developers as well
as translators.
The 0.5 release adds a large number of new features to make
it even easier to use and to integrate with various projects. The data
model has been reworked to allow for arbitrary collections of projects (i.e
Fedora 11 or GNOME), with multiple branches for each project. A lot of
work has also gone into handling different formats of localization files (such as
PO and POT formats), as well as supporting variants of languages for
specific countries or regions (e.g. Brazilian Portuguese).
For users, most of whom would be translators, 0.5 has added RSS feeds to
follow the progress of translations for particular projects. User account
management has been collected into its own subsystem, with features like
self-service user registration and OpenID support for authentication. In
addition,
the VCS and localization layers are easily extensible to allow for supporting other
varieties of those tools. Transifex 0.5 has the look of a very solid release.
Glezos and others from the Transifex team have started a new company, Indifex to produce a hosted version of
Transifex (at Transifex.net) that
will serve the same purpose as Wordpress.com
does for Wordpress blogs. Projects that don't want to host their own
Transifex installation can work with Indifex to set up an localization solution for
their code. Meanwhile, Indifex employees have been instrumental in the 0.5
rewrite and will be providing more development down the road.
Glezos outlined
their plans in a blog post in December.
Because of its openness, and its concentration on upstream-friendliness,
Transifex has an opportunity to transform localization efforts for free software
projects. There are a large number of willing translators out there, but
projects sometimes have difficulty hooking up with them. Transifex will
provide a place for translators and projects to come together. That
should result in lots more software available in native languages for many
more folks around the
world.
(
Log in to post comments)