The translator who emailed me

If you want your app translated, the usual advice is to lower the barrier. Don’t make people file pull requests against a strings file. Give them a web UI where they can see the English, type the translation, and submit, without touching git or a build. So I did the thorough thing and stood up my own Weblate instance, self-hosted next to everything else I run, wired to Calendula’s repo. The pipeline was ready. Then it sat there, empty. Setting up the invitation hadn’t brought anyone in yet.

The bug that only a person could find

The first translator didn’t come through the pipeline. He came through my inbox.

Roberto is Italian, and he was generous enough to lead with why rather than what. He’d been waiting years, he said, for a well-made Android calendar that was open source and privacy-focused, and he wanted to help translate it.

But he couldn’t register on my Weblate. The registration page told him there were problems with the server. He’d signed up fine on the public Weblate site, so he rightly suspected the fault was on my self-hosted end and asked whether it could be fixed.

It could, and the cause was almost funny in how mundane it was: I’d never configured email for the instance. Weblate sends a verification message on registration. With no mail server behind it, that step failed silently for everyone. My own testing never caught it because I was already an admin. I had built a careful front door with no doorbell, and I had no way of knowing until someone stood outside and told me.

The same day, I set up mail, checked that registration worked end to end, and wrote back. His reply, once he was in, was that it worked and he’d started translating.

What the infrastructure couldn’t do

I keep thinking about this part. I’d invested in the scalable solution, a hosted platform anyone in the world could use without talking to me. Its first real outcome was a silent failure that turned away every prospective contributor, invisibly, until one person took the un-scalable path of emailing a stranger to say “your thing is broken, I’d like to help anyway.”

The tooling is still worth it. But what got Calendula translated was a person who cared enough to push past a broken sign-up instead of closing the tab. No form submission would have told me the form was broken.

By morning

I fixed the mail config in the evening. By the next morning the Italian translation was at 40% and Spanish had appeared at 34%. Two languages were moving, from basically nothing, within a day of the sign-up working.

That’s a small open-source project in miniature. You build the proper infrastructure, it fails in some dumb invisible way, someone who wants the thing to exist reaches through the gap to tell you, you fix it in an evening, and suddenly your calendar speaks Italian because Roberto wrote an email.

If you’re the kind of person who emails the developer instead of quietly giving up: thank you. You tell me things the analytics never will.


Want to help translate Calendula? Registration works now: weblate.dev.jeanlucmakiola.de.