Michal Čihař - Blog Archives for Weblate

Weblate 1.4

Weblate 1.4 has been released today. It comes with lot of improvements, especially in configurability, admin interface and usability.

Full list of changes for 1.4:

  • Fixed deleting of checks/comments on unit deletion.
  • Added option to disable automatic propagation of translations.
  • Added option to subscribe for merge failures.
  • Correctly import on projects which needs custom ttkit loader.
  • Added sitemaps to allow easier access by crawlers.
  • Provide direct links to string in notification emails or feeds.
  • Various improvements to admin interface.
  • Provide hints for production setup in admin interface.
  • Added per language widgets and engage page.
  • Improved translation locking handling.
  • Show code snippets for widgets in more variants.
  • Indicate failing checks or fuzzy strings in progressbars.
  • More options for formatting commit message.
  • Fixed error handling with machine translation services.
  • Improved automatic translation locking behaviour.
  • Support for showing changes from previous source string.
  • Added support for substring search.
  • Various quality checks improvements.
  • Support for per project ACL.
  • Basic unit tests coverage.

You can find more information about Weblate on it's website, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Ready to run appliances will be soon available in SUSE Studio Gallery.

Weblate is also being used https://l10n.cihar.com/ as official translating service for phpMyAdmin, Gammu, Weblate itself and others.

If you are free software project which would like to use Weblate, I'm happy to help you with set up or even host Weblate for you (this will be decided case by case as my hosting space is limited).

Roadmap for Weblate 1.4 and 1.5

As usual, I've changed my plans for Weblate 1.4. Simply before I got to implementing features I wanted to have there, I've already implemented bunch of other things, which are worth releasing.

So my plan is to release Weblate 1.4 next week with current feature set (you can check list of fixed issues) and focus on 1.5 development then.

Some major features which will be available in Weblate 1.4:

  • Added various configuration options to allow more customization.
  • Added sitemaps to allow easier access by crawlers.
  • Improved notification emails (added links and HTML version with colored diff).
  • Provide hints for production setup in admin interface.
  • Indicate failing checks or fuzzy strings in progressbars.
  • Support for per project ACL.

As a clear consequence, some of the big features were moved to 1.5, but I've added also some other things I'd like to implement, see 1.5 milestone on GitHub.

Weblate has per project ACL

I've got yet another question whether Weblate has any sort for ACL to limit access to project. As usual, my answer was no, but I started to think how I would implement such feature.

After a little bit of thinking and playing with code, I've realized, that this is not that hard as I thought and implemented it in few minutes. So there is another ofter requested feature which will come in Weblate 1.4 - ACL.

It provides simple way to limit access to some projects to some users. The default behavior is still that anybody logged in can do anything, but this can be changed per project by enabling ACL for it. More details are available in our documentation.

Improvements in Weblate master

As there is still some development ongoing in Weblate, it's time to share information about some of the features you can expect in upcoming release.

Recently, Weblate gained ability to display changes which caused string to be fuzzy. This currently only works with Gettext PO files as no other format provides this information. If this is available Weblate shows differences between current and previous string, what allows translator to easily spot what has been changed. Example can be seen on Uzbek translation of phpMyAdmin (until somebody translates that).

While working on this feature, I've realized, that Django does not include this information in PO files. Fortunately it was pretty easy to fix and I've created a pull request to implement this. Looking at this file made me fix another thing which annoyed me since I've used translations in Django for first time - it generates POT file for every language, making the updates really slow. Fortunately it was also easy to fix and pull request is here. So if you feel makemessages is too slow, this is patch for you.

But back to Weblate as there are more changes. For example automatic locking now works more fine grained and uses AJAX to update lock period. This means translation will be unlocked much faster if you close browser with Weblate.

Also searching for messages has been updated to include substring search as well as it is sometimes more useful than fulltext search.

Going to FOSDEM 2013

I've just confirmed my flight and hotel bookings for FOSDEM 2013, so I'm looking to meet all great people there again.

This year my schedule is not that packed as I have no talks (Weblate lightning talk was not accepted) and also there will be no big phpMyAdmin team meeting, so get in touch if you want to discuss anything with me.

As most of the rooms still don't have a schedule, I can't give you hint where I will be present, but I definitely won't miss Friday beer event and Dieter's talk about phpMyAdmin in MySQL room. The rest pretty much depends on who I will meet :-).

Free software plans for 2013

Year 2013 has just started and it's time to think how to spend my free time during this year.

Weblate

Weblate was my toy project number one in last year and I expect it to stay for next year as well. I have several ideas for new features, but all that depends on free time. I will most likely spend my hackweek on that as well.

phpMyAdmin

I think my involvement will stay at about same level at phpMyAdmin - doing few random bugfixes, mostly security ones, taking care of infrastructure for translations and wiki and mentoring few GSoC students.

Gammu and Wammu

Gammu and Wammu has not seen much activity from me in past year and it will probably not change. I don't use the program anymore and this pretty much limits my interest in adding new features. In case somebody active will pop up on mailing list, I'd be happy to transfer the project ownership.

Mobile apps

I'd like to make some progress here, I was also thinking about making some of them working on Android as well, but this involves lot of learning and time is always an issue here. Anyway this might be good challenge for hackweek as well.

Debian

No changes expected here :-).

Others

I consider pretty much anything else from my software projects abandoned or finished.

PyGtk in virtualenv on Travis

Weblate is using Travis CI for continuous integration. That in turn uses virtualenv to test against different Python version.

Unfortunately one of dependencies in Weblate are PyCairo and PyGtk (actually Pango for text rendering) and these does not support installation using distutils. Fortunately this can be workarounded, but it took me some time to make all this properly. Ffirst you need to choose correct versions not as I did mistakenly mixed PyGObject 3 with PyGtk 2. The next step is to manually run configure and make with correct paths to install within virtualenv.

For example for Gtk it looks like following:

wget http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.24/pygtk-2.24.0.tar.bz2
tar xf pygtk-2.24.0.tar.bz2
cd pygtk-2.24.0
export PKG_CONFIG_PATH=/home/travis/virtualenv/python$TRAVIS_PYTHON_VERSION/lib/pkgconfig
./configure --prefix=/home/travis/virtualenv/python$TRAVIS_PYTHON_VERSION/
make
make install

The complete Travis configuration file can be found in Weblate's Git repository.

Flexible commit messages in Weblate

Next release of Weblate, the web based translation tool, will bring more flexibility in creating commit messages to allow include there whatever your project would like to see.

Originally commit message was fixed string hardcoded withing the code. Later it has been moved to configuration file to be finally placed into database to allow per project customization.

During these steps, it was also possible to add some basic information into the message (project and language code at the beginning). Weblate 1.4 will add some more options to add there, including translation stats. You can find all supported format strings in our documentation.

The default value now includes language name and translation status as can be seen in Weblate repository.

Multi part progress in Weblate

Weblate is still evolving and it recently got new feature to allow better overview of translation status - multi part progress bars.

The motivation to show more information is to have better overview of the translation. The numbers have been always shown withing Weblate, but making it graphical gives it much better visibility:

Multi part progress in Weblate

I'm still unsure about colors to use for highlighting different state - the failed checks should not be too different from translated strings as they might contain quite some false positives while fuzzy strings need to be really different as they absolutely need attention from translator. If you have better ideas about color scheme, please let me know!

You can see live example at Polish summary at l10n.cihar.com.