Michal Čihař - Blog Archives for Weblate

Libravatar support in Weblate

For some time, Weblate was showing avatars for users. Just as I've discovered Libravatar - free and federated alternative to Gravatar, I thought it would be better replacement.

Quickly looking at their website, it seems that they transparently provide all avatars from Gravatar as well, so the migration seems to be pretty much painless. Basic replacement to use their server is just matter of changing base URLs, however to support federated behavior, you have to install pyLibravatar. Weblate in Git now supports both these ways.

While implementing the client side, I did also setup my own instance of Surrogator to provide avatars for some of my domains. Surprisingly this worked fine without problems, but let's see how much used this will actually become.

Weblate with Mercurial or Bazaar

Recently, I've learned about git remote helpers feature in Git, which allows to transparently use Git with other version control systems. As Weblate currently supports only Git, it was quite obvious to give this approach a try.

After some testing, it actually worked just fine - everything works as expected and you can use Weblate with Mercurial or Bazaar with these helpers. Of course there might be some rough edges, but all standard things I've tried worked just fine.

This is now also covered in Weblate's FAQ, which includes basic instructions on how to setup this.

Weblate charts of activity

Weblate recently got another new feature - charting of translation project activity.

It counts and charts daily contributions in last month and weekly contributions in last year and draws nicely looking charts out of that:

Weblate activity chart

Originally I wanted to use some existing charting library and first implementation was actually done using PyCha, but in the end I ended up rendering charts using completely custom code, what allowed me to draw better graphs.

Hosted Weblate and new website

Today, Weblate got new website. It should better promote it's unique features and give users better idea what it is about.

I was pretty much convinced by few Weblate users at FOSDEM to do something like this, so I hope the new website will serve good it's purpose. Same as previous version, the code is hosted on GitHub, so feel free to make improvements and open pull requests :-). Also the new website misses some translations, your help is especially welcome in this area.

Together with launching this website, I've decided to make more visible that there is option to get your free software project hosted for free on my server. This is now being called Hosted Weblate and your project will be hosted at http://hosted.weblate.org/.

Currently there is already first user of this service - Freeplane, but you are welcome to ask for inclusion.

FOSDEM 2013 summary (Sunday)

FOSDEM 2013 is over and it's time to look what interesting I have seen there on Sunday.

Sunday was supposed to start for me with L20N, but it was postponed to 13:00 as the presenters weren't on time. I could have used one more hour of sleep, but at least I spent some time on coding.

Detect merge conflicts in realtime was quite interesting talk, though I was pretty surprised that the conflict detecting does not at all care about underlying version control system, but does purely file based guesses.

The Hardening MySQL talk pretty much described why security in MySQL sucks and what you should do to make it secure. Quite good introduction to the topic, but not much new information for me.

Introduction of Firefox OS, was quite nice demo showing they have something working, though it had some problems with flaky network on FOSDEM. Looking forward to see phone being sold, though it will probably not be something I'd buy.

To add some fun, I've stayed on systemd, Two Years Later presentation, which gave some summary of what is currently in systemd and where it wants to go. Still it did not move systemd from category of "I don't care as long as it works".

Now followed delayed L20N talk - it showed new Mozilla's effort for localization. Which is quite powerful and has nice features, on the other side it put's quite more load to translators - now they would have to understand some basics of programming as well to be able to use the new features (or not so new ones as plurals). Their motivation is to remove localization effort from developers, but I'm not really convinced it will work nicely.

After some meetings and lunch, I went to LibreOffice: cleaning and re-factoring a giant code-base, which showed some challenges LibreOffice has to take and how they dealt with that. I think it's pretty great job done and I'm looking forward to new releases.

Being GNOME user, I could not skip Has the GNOME community gone crazy?. It of course tried to tell that they did not :-).

Last, but not least my friend Dieter from phpMyAdmin had talk Present and future of phpMyAdmin. He listed some of the new features, demoed 3.5 and 4.0 version (of course the demo of 4.0 version broke due to some caching). Even when the talk had quite unpleasant timing, it has attracted some people and they even asked few questions.

This years FOSDEM was again great and looking forward to be there next year.

FOSDEM 2013 summary (Saturday)

FOSDEM 2013 is over and it's time to look what interesting I have seen there on Saturday.

First of all the most important for me is to meet people. As usual, I came with SUSE folks, but it's not that unusual to meet people from company where you work :-). I've met some current and former phpMyAdmin developers and surprisingly I've met few Weblate users or people who consider using it on their project. This gave me some important feedback and one of first thing you will see in near future is remade Weblate website to give more information about some of it's unique features. As for the talks, I think I've managed to visit quite lot of them.

How we made the Jenkins community explained some ways Jenkins has used to build good community - mostly focused on extensibility of the code and having everything as an extension, but with some focus on social things as well (and important thing that with Git people are not that motivated to join the team).

Better software through user research was about various way to gather information of what your users hate on the software. It was pretty interesting, though many of that can not easily be used on small scale free software product.

OSS code goes in and never comes out talk focused about licensing issues of various software as a service platforms. As I've never used Amazon cloud or such, it was quite surprising how these behave in relation to GPL and actually made me thing more about AGPL and attend related panel discussion later.

An Integrated Localization Environment is Mozilla approach to online translation, quite different than anything we have before, but mostly for reasons which were explained later on Sunday talk on l20n. Maybe reverse ordering of these would make it easier to understand the motivation.

Scale your Jenkins build pipeline automatically to minimize test time was not that useful as I thought - increasing test speed by buying EC2 instances and pushing part of the work to them is not something what will help me in near future.

Trends in Open Source Security explained what is going on in distributions security, mostly focused on Redhat (but touching Debian as well). It has some interesting thoughts about sharing the information between vendors, so let's see if it will really work in future.

QML’s many faces showed some other ways to use QML besides using QtQuick. Some uses were quite interesting, though I'm not really fan of creating yet another buildsystem based on it.

Panel Discussion: GNU Affero General Public License, version 3 was last thing I've visited on Sunday and it was really interesting to listen all that opinions on AGPL. Still I was not confirmed to consider switching to this license.

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.