(Human) Languages on the homepage

The julia homepage when viewed in a different locale than english is partially translated. While I (as a french speaker) appreciate the effort, this is very confusing. This is a copy-paste of the homepage as I see it:

Compilateur JIT à haute performance
Julia’s LLVM-based just-in-time (JIT) compiler combined with the language’s design allow it to approach and often match the performance of C. To get a sense of relative performance of Julia compared to other languages that can or could be used for numerical and scientific computing, we’ve written a small set of micro-benchmarks in a variety of languages: C, Fortran, Julia, Python, Matlab/Octave, R, JavaScript, Java, Lua, Mathematica. We encourage you to skim the code to get a sense for how easy or difficult numerical programming in each language is.

A quick taste of Julia
Pour donner un avant-goût de ce à quoi Julia ressemble, voici le code utilisé dans les benchmarks de Mandelbrot et des statistiques de matrice aléatoire :

This happens all over the homepage. Even weirder is Multidimensional algorithms and iteration, which is entirely in english, except for the title of the post, the title of the last section, and a random “Voyons ce que sont ces objets:” in the middle of the post.

The mental overhead of switching languages mid-paragraph is way higher than that of reading english. I think that’s the case for most users (and I doubt the pool of people interested in Julia who don’t know english is very large). More importantly, the documentation isn’t translated, so there is little point in having a translated homepage. I imagine it’s very hard to keep the translation current in all languages. My suggestion would be to just remove the translations.

10 Likes

I agree with you assessment and suggestion. The sustainability of translation efforts has come up in connection with the manual, too.

This has been an ongoing discussion at https://github.com/JuliaLang/julialang.github.com/issues/549. The gist of it is that @Ismael-VC set up a nice Transifex interface for translating the julialang.org website (#252), and set it up so that only translations that were reasonably complete would show up on the main page.

However, it hasn’t been made sufficiently visible how readers could contribute translations, so the translations started lagged behind as the website’s pages changed content. This is tracked in issue #428, which was meant to be addressed in PR #686. Unfortunately, there was an error in that PR so the code is not functional yet. The technical explanation is that the local script added by #686 attempts to access a DOM element that is created dynamically by a remote script, which runs after the local script. #687 and #688 are attempts at solving this, but haven’t been merged yet.

What is needed: if you or someone else could download the code of those PRs, build the site locally (using Jekyll I think – the README has instructions), and report whether they work (i.e. that an “Add your language!” entry appears in the language dropdown), then the PRs could be merged confidently, and the site would have the prompt which would allow people like you, who notice incompleteness or incorrectness issues in the translations, to fix them directly.

The other step that might alleviate the issue is changing the threshold for making translations visible on the website. I’m not sure how things are configured at the moment, but it could be something like allowing only complete (single-page) translations, or bypassing the requirement of translation review. That’s something that @Ismael-VC would be better able to respond to.

2 Likes

One problem is that even if the homepage is fully translated at some point (that was the case for French some time ago), as soon as a change is introduced English reappears. Translation teams need to be really reactive to avoid this.

I think that’s why the threshold is not set to only show 100% translated pages. That way visitors can see that a translation exists and that it’s incomplete, and hopefully will then contribute the missing pieces.

As a reader, I personally prefer the inconvenience of seeing such pieces of untranslated content on the live site and having the ability to quickly fix them, than not seeing the translation at all.

As a contributor, I also like this approach because making the gaps very visible reduces the chance that large blocks of untranslated text would accumulate, which makes the translation process less appealing. By failing fast and often, we ensure that we also fail small, and are able to correct quickly.

2 Likes

It’s 2017, almost 2018. Is translation even necessary anymore? Personally I get distressed when my computer tries to interact with me in german.

8 Likes

The current Transifex behavior is that, when a string is updated, it shows the new untranslated string, I’m making a petition to the Transifex staff to add a mode in which instead of doing this, the translated pages retain the translated strings even if they are not updated and in sync with the English versions.

That way translators can push to production when things are ready, and maybe have a way to show users that the site is not updated, but at least correctly translated.

1 Like

Please please please don’t. It’s infinitely worse seeing an outdated string than an untranslated one, especially for a fast-moving target like julia.

3 Likes

Do you have any other suggestion apart from removing the translations?

Not that it’s not an option, but please think about the work of all the people involved too (around 100 good willing folks from some 20 different languages) why they did it, and why they felt this is needed.

I think we can find a way to make this work, it’s just that I’m out of ideas for the time being.

For me it’s like saying that since Julia has issues too, why not better remove the repository and move on, at least for me, that is not an option, but this clearly is a community effort and I’m OK if the community thinks it’s not a good idea to keep the translations effort anymore.

I could continue to do the Spanish translations as a separate project independent from Julia itself, since I want to teach Julia to Spanish speakers too in Spanish, which is why I started the project. And I’m sure others would do so as well on their own for their own languages and their own purposes, as it was before this project anyway.

I hope the discussion with the Transifex staff can recommend some other options, thanks for stating your opinion.

The other idea I have it to pay for professional translations, with my new job, this is becoming a new possibility for me (at least for the Spanish translations), but I wonder if we can make a case for having a small amount of monies from the funds that donate to Julia, so it can be destined for this purpose at some point.

I want to also state that before this, I had zero experience with this kind of stuff.

The idea is that for example, if the Spanish translations are near 100% completion at some point, then it will be easy to keep updated, given there are many people willing to translate.

I will ask for a quotation for Spanish translations to the Transifex team, and report back.

1 Like

That may be (relatively), but that is what I want to change, bring more people to Julia, and as a programming instructor, that loves to teach to kids, I can not require them to learn English first.

I even want to translate Julia itself to at least Spanish, Esperanto and Nahuatl which is a language of the Uto-Aztecan language family. So I can go to rural schools with some Raspberri Pis loaded with translated Julia in their language and give those kids that don’t even know Spanish a competitive advantage and at least the opportunity to become interested in programming.

This could potentially be life changing for them as most of them live in extreme poverty, thanks to my new job this is also becoming a real possibility, I’m already part of the of the Social Responsibility Committee at EPAM, the company I work for:

3 Likes

About the homepage, I don’t have any good suggestions other than removing the translations, no. It feels like such a huge effort to maintain a complete set of translations that I don’t see how that is workable without severely hampering the ease of change for the reference English version. Outdated information is a big no for me. The only reasonable alternative is what exists now, and I prefer no translation to the current state (but I understand how reasonable people can disagree with that)

I think the suggestion of @DNF over at Is there any manual translated into another language? seems like the best way to go: make high quality tutorials and resources in different languages. If the tutorials are complete enough, there is usually no need to refer to the manual for simple tasks. This is the way programming languages usually get taught in France (although I usually advise students to just learn English, which is certainly more important for them than learning julia or any other “niche” programming languages) The fact that julia is not fully mature is an obstacle, but 1.0 should help with that.

3 Likes

According to Wikipedia only about 5.52% of the world population are native English speakers, also I’m interested in teaching kids too, not just already educated and either native English speakers or bilingual people.

All I’d like to require from them is to be able to reason logically (something they can do at a very early age), not to know English before hand.

Yes, the need to know English before Programming is a paradigm I would love to help dismantle.

6 Likes

Translations are definitely useful in many parts of the world. For example, Rust’s homepage is translated, even though it’s a more low-level than Julia.

It will just take some time until we reach a reasonable coverage for a large number of languages, and until teams for each of these languages are formed. The release of Julia 1.0 will surely help in that regard by increasing the size of the user base.

1 Like

I’ll get in touch with the Rust community, looking for advice about they accomplished their translations.

3 Likes

You have my respect for volunteering to teach programming to kids, especially kids in poverty or disadvantaged social backgrounds.

But I have doubts that Julia, in its present state, is a good language for this purpose. Even if you translate the homepage, the manual, and keep up with the changes (a daunting task), you still have the docstrings and error messages in English, and of course packages will be documented in English (if at all). Julia offers great advantages, but at a price of dealing with minor issues constantly, which require interaction with the community at large, including asking questions on forums, diving into the the source code, opening issues and occasionally submitting PRs.

Lacking these, the user can easily be stuck. Of course a mentor would be able to help kids in these situations, but my concern would be that this would happen at such a frequency that the experience would not be very empowering for the students.

I think once it offers stability in v1.0 it will be way more easy, but it is definitely possible, and specially appealing to me in Julia thanks to meta-programming, I already had a working proof of concept to translate the language itself to any other language, back when I was a recent newcomer to Julia! :smiley:

I can’t wait to put my hands on JuliaParser.jl v1.0.

But the ever changing guts of Julia made me keep waiting and develop patience, in the mean while I also got in love with this community, learned lots thanks to them, and started working on the none code parts of internationalization.

  • manual (I choose Transifex for the website, but Crowding for the manual, since they provided me there with machine adied translation and machine memory, things that cost in Transifex, but transifex live, made very easy to translate the website and put the languages widget, etc.)
  • websites

And

Before all this I did’t even knew what i18n stands for.

At times it seemed like a bad idea, at times I was discouraged by others (thankfully I am stubborn), at times it seemed like if I was alone in these lines of thought (but many others had though along the same lines before me), then I started exploring all these languages:

Clearly I’m not alone! - I said

Clearly it is possible! - I thought

It is a daunting task indeed, so I turned to the community (this also made me use Twitter for the first time, and still I only use it for Julia stuff mostly). I learned the ins and outs of social networks and opened Julia groups in Spanish in Facebook, Google groups, Gitter, etc. so people didn’t get stuck, I also wanted to meet amazing people, help and learn from them, which I still do.

Not all of those ideas worked great, turns out social engineering is way more difficult for me than software engineering.

I am extremely inclusive, I have been inviting everyone from day 1.

There were other i18n efforts for the manual, in some languages, each on their own, I wanted to bring organization to the table, reuse of resources and to eliminate redundancy caused by each separate effort trying to do the same things on their own, but at times people perceived the project as my personal project. So I started delegating responsibilities (the idea of me dying in an accident and the project dying with me gave me nightmares), creating groups for each language, and each variation, invited Viral and others core devs to join, so others could see the support from the founders and the community.

Then the magic happened, people started to step in, and take initiative, and make progress, but as you point out, keeping up with Julia currently fast moving target has proven very trying (good luck I’m still young and full of energy!).

So for me currently the priority is to have the proper communication, support from the community, infrastructure, workflow and tools, not having 100% professional grade translations now.

I want 100% i18n Julia, with errors, warnings, docstrings and all, and packages too (opt in, ie. Gettext.jl)

It’s not that I don’t like or believe learning English is important, it is! What I’m not OK is that it is required to first learn English, then learn programming. I would be OK if I could teach programming 100% in Spanish, and then make an interactive Julia package to teach English so children and adults alike can also learn it, but this I haven’t even started yet.

We need help and support from all of you guys, but if this is not needed I will keep doing it by myself anyway, I guess I am greedy …full Julia i18n, that is my only “ungracious demand” :stuck_out_tongue:

2 Likes

If we remove the language widget form the webite, how can people know there is this project, how can they feel they have acomplished something when translating and reviewing if they don’t see a result?

I’ll ask to Transifex if instead of the default of automatically trying to detect the user language and display the site in that language, have an option to make the widget not do this, and require that the user have to explicitly select a language from the dropdown list instead.

This way, the project remains visible, but people not interested in it are not annoyed by uncompleted translations. @antoine-levitt, @cortner what do you think about this? It seems like a good compromise for me.

Sorry this has been annoying you, I will try to find a way to make it work for all of us.

2 Likes

I think having a visible way of switching the language of the site would be great! I also think that certainly the website itself should be translated and I would like to thank you for your efforts.

I also belong to the camp who prefers English over the local language (really matlabs website is useless in Japan, for non Japanese speakers) and I would caution against anything that is based on geolocation, but querying the users browser/system what language it is using should be possible.

5 Likes

I have also been using Latino a language fully in Spanish, “If you know how to read and write, you know how to program” is their slogan, the problem is that it is a toy language (The core developer of Latino, was evangelized by me LOL and he is looking into implementing Latino in Julia precisely because of this).

I can teach programming with it, but can’t make them do anything serious or performant with it, translated Julia would still be 100% Julia, with all the goodies it have, then when they learn English, they can keep using Julia.

At some point I would also need a package to translate symbols from any language to English, so packages written in other languages can be also used my everyone!

I thought of calling it Porter.jl, now that Femtocleaner.jl exists, I can take it as a base and example to develop this package in the future.

The limits of my language mean the limits of my world. - Ludwig Wittgenstein

1 Like

It would be very unusual to require people to select their language manually. All websites I know that support translations automatically use the language you have chosen in your browser preferences.

3 Likes