[Improvement][All parts of Exercism] Translating to languages other than English

This is a big and long-term project proposal. Still, it might work with our active community, and it would broaden its size, which might mean more donors as well.

Exercism is by far the best way to learn programming, hands down, no competition. Still, it’s only available in English, which considerably limits access.

Here’s a Brazilian subreddit for developers which has over 100 000 members. Upon closer inspection, you’ll notice their suggestions for learning material are exclusively in Brazilian Portuguese. There are over 20 suggestions, and also a really long FAQ regarding mostly a developer’s career, but also plenty of other topics;

Furthermore, a quick look at the flairs (you’ll want the “Dúvida …” ones for questions) suggests the subreddit has way more beginners/enthusiasts than senior devs.


That said, there are plenty of collaborative translation platforms available, with settings for roadmaps, milestones, peer review, and so on. I believe our community can pull it off. I already translated every string for a few Android apps simply because devs were nice to me (via email), and Exercism’s collaborative culture/environment already cultivates those feelings!

Here’s how I’m envisioning this project:

  1. The initial languages are chosen. Spanish, French and Brazilian Portuguese (European Portuguese can be extremely different, and let alone the 20x bigger population, pt-BR tends to be more compatible with African and other variants) are widely spoken and plenty of those speakers also speak English (as opposed to, e.g., Mandarin, which has far more speakers, but way fewer translators, I guess);

  2. Volunteers are “recruited” to evaluate if it’s feasible to translate to that language (mostly by the number of volunteers and perhaps a “how much time do you think you can spare a week?” form). I think this shouldn’t be done on an assignment basis, but as an invitation, a spare time job (which I think is the model Exercism already follows for contributions);

  3. Priority #1 for any given language is to translate the main website, which will be the basis/entry point for the next steps;

  4. Translations are made per programming language. Python students will feel more comfortable translating what they’re working on (and improving their understanding). This means separate sibling translation projects per language per track. There are platforms which support multi-language translations (and stats etc.) for the same source. I’m not sure if those multi-language projects per track can be grouped under Exercism’s big umbrella, but that should not be a big problem;

  5. Users get to choose on their profile settings what is their preferred language and which ones they’d accept as a backup (i.e., non-native or partially understood languages);

  6. Whenever a user starts a track, they’re presented their languages’ availability (main language fully supported, percentage translated, fallbacks available, or even if none of their languages are supported and the only fallback is the English original etc.) and choose whether to enroll or not;

  7. Optionally, more language features could be implemented, such as listing programming languages by translation stats, so someone who is open for/intends to study more than 1 programming language another parameter for choosing.


Obviously, this would be a continuing, never-ending project. There will always be new text to translate, changes in original English text should somehow will also happen and may require adjustments, other languages may be added, and so on.

I don’t think it’s reasonable to ever foresee an end with a fully functional multi-language Exercism. But that’s not the goal. We should aim at making Exercism more available, not fully. People can google translate a few untranslated words or sentences if needed. The goal is to try to attract more people, and I think it could have very good results.

1 Like

No replies here? I would love to have Spanish translation for several languages. I can even translate some texts in my free time.

I’m a software/programming teacher and some students aren’t proficient in English so even this page is really good I cannot use it in a daily basis or recommend it.

This was not the first time translations were requested. My view on it is:

  • Translations would be great, but…
  • The current frontend, way of storing exercises, and everything else does not support translations (well). Exercism would need a big amount of work to support that
  • The amount of work required for maintaining even one additional language would overwhelm the contributor capacity by far (keeping all tracks up-to-date currently is a challange)
  • Exercism would need to support the community in the additional languages, too (forum posts, Discord, Mentoring)
  • Exercism would need at least one native speaker to decide on wording, voice and tone of texts and conversations, so the Code of Conduct can be enforced if necessary

Hi,

I haven’t even been programming (or studying) for quite some time now, but just to keep the ball rolling, I believe that most of the points you mentioned could be somewhat easily dealt with by using a crowdsourced translation platform.

In my experience, even commercial platforms usually offer their services free of charge for FOSS projects to endorse them!

Perhaps @Tostys would be willing to research further into this, if Exercism’s maintainers feel that the parts that can’t be crowdsourced (i.e., the actual implementation of the translated text) can be handled.

Of course, this is just a suggestion, I wouldn’t ask for others to do the work I could do myself, but then again, I probably didn’t even log in in 2024, so I’m not a part anymore, at least for now.

Cheers :)

1 Like