Welcome to the Transifex 0.6 release, codenamed Apocalypse.
This release marks a major release in the advancement of Transifex, and includes a number of new exciting new features and many, many bugfixes. It was released in late April 2009 and is targeted for new installations of Transifex and parties who choose to migrate to a new major version and enjoy the new features.
Transifex 0.6 is intended for production use.
Here’s a 40K-foot view of the release in numbers:
745 files changed, 72695 insertions(+), 65554 deletions(-)
The following major features were introduced in this release.
In addition to pulling from sources hosted on revision-controlled repositories, Transifex now adds beta support for tarball sources (.tar.gz files). With this feature, the need that projects should be hosted on a VCS is raised, and shipped releases of projects can now be translated as well.
Tarball sources also features experimental support for submission of translation files. These submissions are not being pushed upstream to the tarball but reside on the Transifex server itself. In the future, translations could be sent to an email address too.
Warning
Clearing the local cache of tarball brings in a newly pulled tarball, overwriting the local files. Projects enabling submissions to tarballs should note that any submissions sent would be overwritten with a fresh extract of the tarball from the remote server.
Notifications can be delivered in a number of ways. The user’s latest notifications are collected on the user’s profile page. In addition, users have the choice to also receive the notifications by email. In the future, more channels could be supported.
Transifex now adds support for components shipping multiple translation files per language. The groups of files per language-component are now identified and associated with their language, and their completion percentages are grouped in one statistics bar for the language. The breakdown of the files is shown on a separate page, along with the usual actions on each file (download, view, lock, etc).
For each of these translation files, the source file is also identified and its contents are msgmerged with the files, producing up-to-date statistics.
Transifex’s user interface is now internationalized, and includes support for viewing it in the user’s preferred language. A drop-down menu shows the available languages on the top-right part of the screen, allowing overriding of the detected preference.
A new management command has been added, txmakemessage, which creates the PO files on-the-fly from the source code and templates.
Following the policy ‘eat our own dogfood’, Transifex is in fact translatable through Transifex itself. Volunteer contributions for new translations and improvements in the existing translations are submitted through Transifex at http://www.transifex.net/.
Transifex now adds support for downloading compressed archives containing the files belonging to a release for a particular language. The compressed archive types supported are zip files and gzipped tarballs.
Translators can now retrieve a compressed file containing all the files needed to translate the release’s components to their language. An example URL providing this feature is /languages/fr/collection/gnome/2.26/download_zip/.
This feature eliminates the need to download one file at a time, and is especially useful for very active contributors and people with slow Internet connectivity.
During the development cycle of 0.6, quite a few improvements in the user interface took place here and there. Here’s a list of the most important ones:
The language-release page now include a list of components which haven’t had any translations so far. This gives a better picture of the parts which need translation to make the completion status increase.
The release page with the completion percentage of each language is now published also as an RSS feed, allowing people like release engineer to easily check the translation status of their release.
The ‘advanced’ submission form now supports either editing a remote file or creating a new one. The user can choose either to overwrite an existing file or create a new one.
The tables presented are now sortable by a number of variables, including the language name and the completion percentage.
Custom file submissions can now define their own message to be used for the file submission. This allows users to publish the state of the translation and other useful information to be shared with the project maintainer and the rest of the translators.
In addition, commits are now using the user’s full name in the author commit information instead of just the username.
Statistics bars now support arbitrary lengths (and by default longer), making better use of the whitespace, increasing readability and allowing the designer to more easily choose how to present the information.
This release introduces some improvements in the platform itself, which might interest people who administrate their own Transifex instance or build on top of the platform.
Settings are now organized in multiple files under the settings/ directory, allowing easier management and override. (r456)
Backend support for repositories has been improved to allow more types of repos to pull from. The new codebases application has been introduced which abstracts the VCS functionality for the vcs and tarball applications.
The action log support has been re-engineered to allow more notifications of changes and better reporting. It includes more clear HTML templates and text and can refer to different objects resulting in increase of performance and usability.
The transifex code has been moved under the transifex/ directory in the source tree. This improves the packaging and installation procedure, avoiding common pitfalls with python imports.
In addition to the bugfixes introduced in the maintenance 0.5.x releases, the following issues have also been fixed:
The schema has undergone many changes, and 0.6 includes code to perform a schema evolution using django-evolution.
Warning
Due to heavy changes in the schema, the following were only tested and guaranteed to work only with PostgreSQL.
Here are the steps:
Finally, execute the following code on the command line:
cd <transifex_path>/transifex/
./manage.py shell
from translations.models import POFile
for po in POFile.objects.all():
if po.language:
po.language_code = po.language.code
else:
po.language_code = po.object.trans.tm.guess_language(po.filename)
po.save()
Also note that the settings files have been broken down for easier maintenance in settings/. The settings.py file needs to be overwritten with the new version and settings migrated to the respective .conf files.
The following people have contributed to this release, with one way or another:
Sep 24, 2010