Welcome to Transifex 0.9, codenamed Mojo.
Transifex 0.9 ‘Mojo’ is a production release of Transifex. It 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.9 is an interim release, sorts of. It does ship a number of new features and a multitude of important bugfixes. It also prepares the ground for the next major release, which will include some huge changes in Transifex’s codebase. Stay tuned for more, but until then, let’s enjoy the fresh air Transifex 0.9 brings to our daily multilingual life.
Here’s a 40K-foot view of the release major features and numbers:
336 changesets recorded
38 tickets resolved
798 files changed, 132258 insertions(+), 87223 deletions(-)
Transifex 0.9 is a release of the open-source, community-powered Transifex flavor. It is suitable for very large projects with their own existing translation community, such as the Fedora Project, the GNOME Desktop etc.
Transifex is also offered as a Software-as-a-Service, at www.transifex.net, ready to serve your translations with a few clicks. Transifex.net is a one-stop, batteries-included hosted service serving more than 870 independent projects and businesses which don’t want to worry about deploying their own Transifex instance.
Transifex.net is managed by Indifex, the company sponsoring the development of Transifex itself.
For a hassle-free translation management platform, visit Transifex.net.
Let’s see what’s fresh!
Transifex 0.9 sports a brand-new extension engine called django-addons, which allows developers to write plug-and-play extensions (or plug-ins) which extend or override parts of the core functionality. django-addons was developed by the Transifex team and is now shipped as a reusable Django application.
Here are some of the benefits of this support:
A number of Transifex applications have been converted to addons, which may be disabled if needed. Here’s a list of them:
$ ./manage.py addons
Available addons:
* charts - Google Charts for Transifex
* locks - Locking mechanism for Transifex
* presubmit_checks
* repowatch - Repository watching
* timeline - Timeline for Transifex
* txcron - Transifex Cronjobs
* widgets - Transifex Widgets
Finally, for the Django developers out there, here are some of the features supported by django-addons:
For a full list of features and code examples, please refer to the django-addons documentation itself.
A great new feature is the ability to share translation teams between projects. A Transifex project can now ‘outsource’ its language teams to another one, effectively trusting and re-using the other project’s community to translate its own resources.
Why is this useful? Open source software projects tend to group together in larger communities. Good examples of such project collections are desktop environments, such as GNOME and KDE, or distributions, such as Fedora and Moblin. Since Transifex supports per-project translation teams, these communities requested the ability to re-use the collection’s translation teams instead of managing their own.
This control can accessed by Project Maintainers under the tab “Access Control”. Note that this project’s fine-grained permission and team controls are disabled once the project outsources its access control.
The Teams Outsourcing feature is the major lever behind the very influential website http://meego.transifex.net/. There, the MeeGo project, a common effort between Intel, Nokia and the Linux Foundation, hosts the translations of a large number of projects, all being translated by the same community: The MeeGo Localization Community.
Starting with this version, each Transifex project now has its own Widgets. You may now display your project’s translation statistics on your website as a simple image. Perfect for embedding in wiki pages, Trac instances, emails. The chart will always reflect your live Transifex numbers.
Widgets are publicly accessible from a tab on the Project Details page. Additional widgets may be available in the next releases in the same place.
The file locking feature has been greatly improved in this version. The new functionality more closely resembles “file ownership”. Here’s a list of the improvements which have taken place:
Transifex 0.9 introduces an overhaul of the guess_language method using regular expressions (tickets #541, #542), adding support for a number of i18n directory structures and shows improved extensibility.
This method is run whenever the statistics are refreshed, so approximately once per day. The new code has no visible overhead (when run against 30.000 files, it takes 0.30 seconds, compared to 0.14 seconds it took before).
The standard directory structures supported now are the following:
Transifex now supports more validation checks for a submission. This helps avoiding wrong submissions and can reduce the maintenance overhead for the developer and Transifex administrator. Here is a list of the checks added:
The search box now also crawls in project names and descriptions, components, repository URLs. Now, users can search for projects having specific keywords in their description, projects hosted on a particular hosting website such as gitorious, etc.
Transifex now shows in the UI what’s going on with the related VCS backend whenever something goes wrong. This will allow project developers to better understand what’s wrong with their project repository URL and fix it accordingly.
You can experience Transifex 0.9 live at the upstream instance hosted by Indifex, at http://www.transifex.net/.
Project and community managers who want to deploy Transifex for their own community can get Transifex in a variety of ways. A tarball is available from the following locations:
RPM packages for the latest versions of Fedora may soon be available via yum. The same applies for RHEL 5, CentOS 5, and Scientific Linux 5, from the Fedora EPEL yum repository:
yum install transifex transifex-extras
Information about installing Transifex can be found in the Installation documentation.
If you want to play with the latest Transifex code, you may want to use our development images for the Transifex Appliance. Following the stand-alone, “batteries included” model of software appliances, you get a complete Transifex system with all dependencies and services pre-configured so that you can start experimenting with it right away. Choose from ISO, VMware or EC2 images, for both x86 and x86_64 architectures to run on a virtual machine, dedicated server or using a virtualization software.
Your appliances can be updated using its own web based management system by pointing your browser to the appliance’s IP using port 8003. Login with the credentials ‘admin’ and ‘password’. Make sure to change the password once you’ve successfully logged in.
This appliance version is based on the latest branch of Transifex, where a couple of projects have already been created for you to play with. Log in using either guest/guest or editor/editor as your user name and password combination and tinker to your heart’s content!
Make sure to read the documentation and file issues/send us your feedback.
To upgrade the code, update your package distribution as usual:
The following dependencies were added in this version:
Instructions on how to install them can be found at the Installation docs. You’ll need to complete this step before actually doing the database upgrade.
Transifex includes a script which will automatically migrate your database to the new schema from the previous version. All you need to do, from a clean schema of the previous version, is run the following:
./manage.py syncdb
./manage.py migrate
./manage.py build_static
cd transifex/site_media/
mv userprofile media/userprofile
mv reviews_files media/reviews_files
The following people have contributed to this release, with one way or another:
For a list of our awesome translators, refer to the Translations section.
This release includes an important command called ‘txcreatemap’, which is necessary to upgrade to 1.0:
$ ./manage.py txcreatemap --help
Usage: ./manage.py txcreatemap [options] <project_slug project_slug ...>
Create a JSON formatted mapping of the POT files and theirs translations
(PO) for projects, converting components into resources. Each project
component has it own mapping which is stored in the database within the
``jsonmap.models.JSONMap`` model.
This mapping can be used by the CLI app of Transifex as the ``.tx/txdata``
file content in the remote repository.
Project slugs can be passed by argument to map specific projects. If no
argument is passed the mapping will happen for all the projects in the
database.
This mapping is used to migrate versions <= 0.9.x to the 1.0 version of
Transifex.
Please refer to the full Transifex 0.9 changelog for more information on what has changed between the development releases and final one.
Sep 24, 2010