Michal Čihař - Blog Archives for Weblate

Weblate hacking #4

Fourth day of Hackweek VIII was for me again mostly spent on Weblate. This time there are no new nice features, but rather general improvements to the code.

First task was to add support for django-registration 0.8. Originally my plan was to support both 0.7 and 0.8, but that proven to be too complicated so Weblate now requires 0.8, which brings quite a lot of differences in API.

Later I've installed django-debug-toolbar and looked at some bottlenecks in some hot paths. This resulted in few optimizations of translations merging and new caching for translation stats. This turned out to be too expensive for bigger translations and caching these can save few seconds on page load.

I will probably focus more on performance tuning tomorrow as I don't plan to add any new features to 1.2 release.

Weblate hacking #3

As you can see on github, there are currently no open issues for Weblate's 1.2 milestone. Looks like I've done most of my Hackweek VIII project faster than expected, but I might add some more improvements.

Everything went quite smoothly, but anyway I've decided to postpone some issues. The major reason is that I'm not really sure whether these are good ideas and won't implement something until I'll get more feedback. You can find such issues labeled "needs decision". Comments there are especially welcome :-).

On the code side, I've improved support for po file headers, did various improvements on maintenance scripts and improved about page.

Also current code from git is now deployed at demo.weblate.org, so feel free to test it. I'm especially curious how the simple and stupid spam protection will work in reality.

Now it's time for ice cream and then I'll think what to implement next :-).

Weblate hacking #2

Second day of Hackweek VIII is over and there has been again great progress on Weblate.

I've started with improving documentation. Most of improvements were possible by using djangodocs extension for Sphinx, which allows better documenting of Django admin commands and settings.

Then I've focused on handling languages as there were some things which I did not like. Most importantly, Weblate will now try to use existing languages even if used code does not 100% match (eg. cs_CZ and cs-CZ are treated equal). Also with help of locale aliases, some specific variants won't be created and generic one used instead (eg. cs_CZ will use cs, as these are actually same). If there will be need to differentiate them, you still can create language manually and Weblate will use matched one.

Last thing is translation locking - translator can now lock translation for exclusive use and nobody else will be able to work on that. This will help in situations where more people started to work on same translation and basically duplicated the effort.

There are 3 open issues targeted for 1.2 release, but I'm not sure if some of these are good ideas, let's keep the decision for next days.

Weblate hacking #1

The first day of Hackweek VIII is about to end for me and it's time to share some of the results.

As planned, I've started hacking on Weblate. The most prominent feature from today are email notifications. You can now monitor the translation in various ways - be informed about new strings to translate, new contributor, added suggestion or simply watch all translations.

Another bigger change is rearranging of main page, which now provides instant access to per language stats, which were quite hidden before.

Rest of time was spent on adding some sort of spam protection (need to deploy this to demo to see how successful it is) and one more promoting widget (88x31 pixels).

There are 6 open issues targeted for 1.2 release, so there is still something to do in next days :-).

New Weblate widget to embed in your site

Weblate just got new feature, which might help you attracting new translators - embeddable widgets. You can put them to your website to show current state of the translation and attract new ones to simple introduction page.

Right now, there is only one widget, but I hope to add more in future. However I'm far from being good in graphics, so if anybody could come up with some templates, I'd gladly use them :-).

Anyway the current widget for Weblate itself looks like this:

Roadmap for Weblate 1.2

As Weblate 1.1 is out, it's time to schedule next release. This release will bring some small improvements to the workflow, especially it will allow to tune it to different use cases than I originally had in mind.

I've already started tagging bugs and feature requests to be fixed in 1.2 in [issue tracker][4]. Basically no big features on the list, just smaller things like notifications and locking. And of course dozen of bugfixes as the bugs will appear :-).

As you can see there as well, 1.2 should be ready about month from now. This will be possible only thanks to Hackweek VIII (the wiki is still showing last one), which will happen from July 23rd to July 27th. The rest is time for testing the features and polishing the features.

Anyway I might have time for some other features as well, so 1.2 might bring more things than I currently plan. But that depends on how fast I will be in implementing planned stuff.

Weblate 1.1

Pretty much on schedule, Weblate 1.1 has been released today. It comes with translation updates, bug fixes, improvements in working with Git repositories and brings support for offloading indexing.

Full list of changes for 1.1:

  • Improved several translations.
  • Better validation while creating subproject.
  • Added support for shared git repositories across subprojects.
  • Do not necessary commit on every attempt to pull remote repo.
  • Added support for offloading indexing.

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 can be found 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).

Update: Weblate appliace has now also been updated to 1.1.

Surprising uses of Weblate

When I wrote Weblate I expected that major use cases will be free software projects, which will use it for public translating service. At least this was my intention for it.

But I seem to be wrong, at least for now. Most of people who contact me regarding Weblate are doing private installations and I already know few places where it was massively used. Unfortunately most of them rejected to be publicly mentioned, so I can't tell you the names. But they do exist :-).

Anyway I hope for some free software projects to adopt Weblate as well, otherwise I should have written it as commercial software :-)

Preview of Weblate 1.1

Upcoming Weblate 1.1 is now installed on both http://demo.weblate.org and http://l10n.cihar.com. There release is almost ready (I plan to add only one minor feature) and this setup was done to get more testing in real life setup before making actual release.

As you can see from list of changes, there are no big changes from user point of view. In case indexing offloading is enabled (what is the case for l10n.cihar.com), the interface should respond more quickly while translating (and not produce errors in some setups). The rest of changes are even more hidden, like smarter handling of merges and commits (still there is place for improvements here) or better validation of admin forms.

Anyway I hope to complete missing features and do possible bug fixes in first two week of July and you can expect 1.1 to be released around Friday 13th.

Weblate - over 20000 translations in 3 months

Today, I wondered how much translations were done using Weblate since it was born. Of course I can give only numbers for services I maintain, the biggest one being translation server for phpMyAdmin, Gammu and Weblate.

Looking at the logs, the server l10n.cihar.com helped to contribute over 20000 (actually little bit more as tracked are only changes after releasing Weblate 0.8), what is quite impressive number. Of course biggest amount of contributions came in time of preparing phpMyAdmin 3.5.0 release, where I gave it huge amount of publicity (AKA spamming my blog), but number of people accessing the website still grows since then (still number of submitted translations is slightly lower).

Now as 1.0 release proved to be quite stable, it's time to focus on 1.1 development, which will bring offloading of fulltext indexing (it was proven to be unreliable to update index online for bigger sites). Almost all issues targeted for 1.1 are already fixed and all what needs to be done is testing in real life situations.