[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Experiences with Weblate and po4a for Sonic Pi OSS development

Hi there,

I quickly wanted to give a quick unsolicited report about my
experiences with adding Weblate to Sonic Pi development.

To summarize upfront, I'm *seriously impressed* with Weblate. Since
adding it to the development workflow, we have seen a massive increase
in translation activity by volunteer translators, plus we see new
translations coming in much quicker than before.

Sonic Pi is a recent addition to the Debian archive (thanks to Petter,
who helped me packaging it). It's an open source project that wants to
help teach coding through music.

You will find lots of resources at [1] and some impressive examples [2]
plus conference talks on Youtube.

The project is developed by Sam Aaron and the code is maintained at his
github repo at [3].

I helped implement i18n hooks in Sonic Pi in January 2015. Back then,
we required translators to set up their own git repo on their local
box, install the Qt linguist tools and send in pull requests to the
main Github repo.

After implementing that, it actually took 8 months for volunteers to
show up and submit translations to the project.

Also, Sonic Pi comes with an extensive and long tutorial, written in
Markdown. How to translate this turned out to be quite a headache. Sam
keeps developing the software and updating the tutorial at a rapid pace
and translators had a hard time keeping up with his changes, so the
translations quickly went out of sync with the English version.

I always wanted to include some sort of online editor for translation,
but finding a good way to edit the Markdown texts was a road block [4].

That's when Petter suggested using po4a. I chose against using it: The
Sonic Pi developer team is on OS X, Linux _and_ Windows and adding Perl
as yet another build dependency makes that a problem. Also po4a had
some minor trouble converting the Github-variant of Markdown used by
the tutorial. So I wrote a small special-purpose ruby script that does
what the generic po4a does, but only for our specific document type.

But the idea behind po4a is great and the tool is very clever, if
Windows were not a development target of Sonic Pi, the tool for the job
would have been po4a.

So now, we have switched the translation workflow [5] to using Hosted
Weblate [7]. They provide free hosting for open source projects and the
admins were friendly and responsive despite me having many questions.

Unlike the competition, Weblate supports the file formats we needed and
their hosted site comes with Github sync included. As a result, Weblate
tracks changes to the message strings from Github automatically,
informs subscribed translators automatically and pushes translation
updates back to Github automatically.

I'd call it a roaring success.

While the existing translations were already beginning to smell funny
in the Github repo, just hours after the switch to Weblate volunteers
now quickly came to update and complete the Qt linguist translations of
the GUI and new translations are coming in, too.

The Sonic Pi tutorial translation has only just been added to Weblate
and still needs a massive proofreading, which is why much of it is
shown as incomplete. But again, we can watch a massive increase in
translation activity.

I hope you guys don't mind this little endorsement on this list, but
I wanted to share this little success story and can only recommend
the tool for other open source projects.

Kind regards,


[1] http://sonic-pi.net
[2] https://www.youtube.com/watch?v=cydH_JAgSfg
[3] https://github.com/samaaron/sonic-pi/
[4] https://github.com/samaaron/sonic-pi/issues/316
[5] https://github.com/samaaron/sonic-pi/blob/master/TRANSLATION.md
[6] https://github.com/samaaron/sonic-pi/blob/master/TRANSLATION-WORKFLOW.md
[7] https://hosted.weblate.org/engage/sonic-pi/

Reply to: