Doing a PhD is laborious, hard, demanding, exhausting... Your thesis is usually the
result of blood, sweat and tears. And you are usually alone. Well, what woud you say
if I tell you that a researcher got helped by more than 17 thousand volunteers?
The holy grail of web developers is to do deployments without interrupting your users.
In this blog post I explain how we have achieved it using uWSGI Zerg Mode for our
Crowdcrafting servers.
How do you translate properly your product into different languages? More importantly, how do you do it involving your own community?
The answer is easy: using a crowdsourcing solution like PyBossa.
Translating PyBossa using PyBossa
Since the creation of PyBossa, I've translated it to Spanish. Other languages, like French, were added by a volunteer. However, these translations usually
get outdated as PyBossa was updated with new strings. These solo efforts, usually end up in a translation that's not updated, and you end up with a mix of translated strings.
For these reasons we decided to eat our own dog food, and I created a crowdsourcing
project to translate PyBossa using PyBossa. Why? Because PyBossa uses the open
standard Gettext for its translations, and each string could become a task in a
PyBossa project.
Also I loved the idea that anyone, even without an account, can help in the translation.
The current platforms usually need an account to just translate a few strings, and that's usually too much
for users who want to see the product they use in their own language. Obviously some
people will add fake translations, but that's not an issue as the crowd will help to clean the bad ones
and keep the best one.
As I started working on it, I realized this could be very useful not only for me and PyBossa
but also to anyone using the Gettext technology in their projects. Thus, I created a PyBossa template
project that anyone can re-use and adapt today to translate their own projects.
The Translation Template Project
The template can be used in any PyBossa server, so if you don't have one, don't
hesitate and go to Crowdcrafting to create an account and
start using it.
The Translation: 3 people translate the same string.
The Voting: 5 people vote for the best translation of the 3 translations.
The most voted, it's the one that it's going to be used as the final translated one.
As you can see the community of your project would be involved in translating but also
in selecting the best translation for them. This will ensure that your audience will
have a better understanding about the text you write, leading to better results in engagement.
1. The Translation phase
The first thing you need to do is to download the template. Then, install the required
tools (see the README file for more information), and you will be ready to start translating
your project.
Then, all you have to do is get your PO file (it's a text file with the string
to get translated from for example English to Spanish). Once you have it, you will pass it
to PBS -our PyBossa command line tool- that will
convert untranslated strings to tasks for your PyBossa project:
This will add the untranslated strings as tasks to your PyBossa project. Each string will be shown to 3 different people, so you get
3 translation for your own project. You can increase or reduce it as much as you want. It's up to you to decide.
When all the strings have been translated, you can move to the next phase if you want: the voting phase.
2. The Voting phase
In this phase, the 3 previous translations will be shown to people and they'll select
the best one for them. The most voted one will be the final translation for that string.
How do you move from one phase to the next one? As simple as this. First we create the voting project:
Then, 5 people will vote on which is the best translation. When all the strings have
been curated by your community, in other words when the project is completed, all you
have to do to create the final translation file is running the following command:
python create_mo.py
Copy the new created file into your translations project, and you'll be done! As simple as that.
Firefox extensions
Yes, PyBossa also supports Firefox extensions. Thus, if you are writing a Firefox
extension and you want to translate it to different languages, you can use
PyBossa too. It's pretty similar and you have all the documentation about it
here.
Summary
With our PyBossa translation template anyone can translate their open source project
with their community, involving them not only in the translation but also curating which
is the best translation for every string.
Thus, don't get lost in translation anymore!
Comments Off on Auto-translating PyBossa using PyBossa
As a web developer one of my main goals is performance. In this blog post I
explain how we have boosted the performance of
Crowdcrafting without touching
the PyBossa code or adding any extra layer to our
stack.
At Crowdcrafting we take really seriously shipping code. For this reason, we've
created a very simple web service (it's our own software robot) that automatically
deploys for us any Github project with Ansible playbooks and posts the status of
the deployment in our Slack chat channel.
Putting all your heart in what you do makes the difference. Why? Because as the
Baron says in the movie, The Cat
Returns, the creation is given a
soul.
How do you build a successful team? Moreover, how do you do it when you don't
have any idea about recruiting? This is my story about how I've built the
amazing team behind Crowdcrafting and
PyBossa.
Makers are getting a lot of press coverage lately. However, I haven't read any article
about the craftsmen: people who also build things with their hands and tools.
Why these articles do not write about carpenters, sculptors, turners,
etc.? Is it because they don't consider them makers?