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 willing to upgrade to a new major version to take advantage of new features.
Transifex 0.9 is kind of an interim release. It does include a number of new features and many important bugfixes. It also lays the groundwork for the next major release, which will include some huge changes in Transifex’s codebase. Stay tuned for more, but until then, enjoy the fresh air Transifex 0.9 brings to your 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(-)
Ultimate Mojo – Art by Stuart Immonen, Wade von Grawbadger, and Justin Ponsor.
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 translation needs with a few clicks. Transifex.net is a one-stop, batteries-included hosted service serving more than 900 independent projects and businesses who don’t want to worry about deploying their own Transifex instance.
Transifex.net is managed by Indifex, the company sponsoring the development of Transifex.
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 feature:
A number of Transifex modules have been converted to addons, which can be disabled if required by circumstance. 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 a project’s fine-grained permission and team controls are disabled when 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, and email. 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:
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 300 milliseconds, compared to 140 milliseconds previously).
The standard directory structures now supported are the following:
Transifex now supports more validation checks for a submission. This helps avoid bad submissions and can reduce the maintenance overhead for the developer and Transifex administrator. Here is a list of the new checks:
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 errors from the related VCS back-end in the UI. 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 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:
Warning
This version is not compatible with Django 1.2 or later, due to numerous changes in this version. To install a specific version of Django using easy_install you may run easy_install Django==1.1.2.
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.
A big “Thanks” goes to the MeeGo Project, Intel and Nokia for their support in this release.
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.