Should we enable automatic natural language translation here?

Continuing the discussion from I don’t want to read LLM output:

We can do one better — we can turn on a plugin here that’d enable automated LLM-based translation for everyone. Could a few multilingual speakers head over to meta.discourse.org and try out the language switcher? How good is it?

At least for my native language, Japanese, it looks reasonably usable at first glance. More readable, actually, than the auto-translation on Reddit or X. Haven’t tried it yet on posts with Julia-specific terms or code, so no idea how it handles those. How about other languages, though?

I find the idea interesting, but I think for the example you posted I would have to register there? Saw the announcement but I do not speak/read Japanese, so the gif they post does not help me.

I think posting the text below in another language is something we could activate here and users can use it if they like to? I personally would prefer to have the forum in a single language as I explain over on the other Meta thread you link.

Just my .02 cents speaking multiple languages often, I’d rather have translation be “opt-in” rather than “on by default, opt-out by user”.

The way this plugin works is that you can choose your “interface” language with the top-right dropdown. All posts (as well as all the UI elements) are translated into this language (if necessary).

When someone posts something in a different language, it looks like this: Swipe pour le chat - Feature - Discourse Meta — there’s a little multi-lingual button that says it was translated from French.

And then every user would get this preference to opt-out of automatic translation for some subset of languages or entirely:

Obviously, once we start automatically translating posts into non-English automatically, we’d start getting posts authored in non-English.

Thanks – that helps and I found it, suddenly the whole discourse even was German :scream:

I think as a global setup that would be too annoying for me. As a small option for single posts – I think it is ok, and I still would probably not use it, since my brain switches languages, so then I would prefer to stay in a single language myself.

Is there a financial cost associated with this plugin? E.g. will the JuliaLang project have to pay for this?

Yes, but it might be included? We have “1 million credits” that we can use as part of our current plan, but I have no idea what that means or how far it’d go with translation. It does save the translations, so it’s O(languages*posts), not O(views).

I think it would be nice to make this opt-in, at least initially.

So this makes it sound like it would be opt-out. Could we make it opt-in initially, and do a trial run to see how things go?

Dutch being kind of a niche language, any automatic translation tends to be cringe worthy to the point I get so annoyed by it I set all my software to English by default. I will assume other niche languages have the same issue. Discourse only supports translating a handful of languages anyway looking at the drop down menu. Ofcourse I don’t have any issue with improving the accessibility of the julia discourse. I do think the discourse itself needs to stay English-only though.

This is configurable on a site-by-site basis, but of course the costs (or credit usage) will scale by the number of languages. We can choose to support up to five languages on our plan here — and have leeway to choose out of two dozen or so.

Supported languages
  • Arabic (اللغة العربية)
  • Belarusian (беларуская мова)
  • Bulgarian (български език)
  • Bosnian (bosanski jezik)
  • Catalan (català)
  • Czech (čeština)
  • Danish (dansk)
  • German (Deutsch)
  • Greek (ελληνικά)
  • English
  • English (UK)
  • Spanish (Español)
  • Estonian (eesti)
  • Persian (فارسی)
  • Finnish (suomi)
  • French (Français)
  • Galician (galego)
  • Hebrew (עברית)
  • Croatian (hrvatski jezik)
  • Hungarian (magyar)
  • Armenian (Հայերեն)
  • Indonesian
  • Italian (Italiano)
  • Japanese (日本語)
  • Korean (한국어)
  • Lithuanian (lietuvių kalba)
  • Latvian (latviešu valoda)
  • Norwegian Bokmål (Norsk bokmål)
  • Dutch (Nederlands)
  • Polish (polski)
  • Portuguese (Português)
  • Portuguese (Português (BR))
  • Romanian (limba română)
  • Russian (Русский)
  • Slovak (slovenčina)
  • Slovene (slovenščina)
  • Albanian (Shqip)
  • Serbian (српски језик)
  • Swedish (svenska)
  • Swahili (Kiswahili)
  • Telugu (తెలుగు)
  • Thai (ไทย)
  • Turkish (Türkçe)
  • Uyghur (ئۇيغۇرچە)
  • Ukrainian (українська мова)
  • Urdu (اردو)
  • Vietnamese (tiếng Việt)
  • Chinese Simplified (简体中文)
  • Chinese (繁體中文)

Is there a point to this given that most browsers handle translation out of the box with many extensions like DeepL available as well?

I already occasionally use the browser’s built-in translation on Julia Discourse, and it often doesn’t work well. Some messages just don’t get translated, and the behavior feels pretty inconsistent overall. (Firefox, Safari)

I think the biggest advantage over browser-based translation is that it works on a per-post basis and would allow folks to post in their native language directly.

That’s also why don’t think “opt-in” really makes much sense — once we start natively serving discourse in other languages, we’re also signaling that we accept those languages as posts! And so then we’ve unilaterally opted everyone into seeing those non-English posts… the only option is whether they get automatically translated back to English or not.

And, yeah, I’d like to get a sense on how far these credits would go. We can choose how (and how aggressively) we “backfill” translations…

I’m also curious to know: What happens if we run out of credits? Does it stop doing translations? Or do we rack up a bill that we then have to pay? I don’t want to get a massive surprise bill at the end of the month.

Anyway, with all the caveats I wrote above, I think this could be a good idea, and it would be nice to try it out in some kind of opt-in trial.


EDIT:

Ah, that’s a good point. It’s not really easy to do an opt-in trial.

Some more details are here:

Basically nobody has set their interface locale that they suggest we check, but we can just see what their browser reports. Over the past 36 hours (these logs aren’t stored for long):

language pageviews
zh 51427
en 25493
de 1173
fr 1002
it 313
es 309
ja 299
nl 249
ru 209
pt 202
nb 142

This comment on Meta says that one “credit” = one token.

I think my question is answered by this post on Meta: Running Out of AI credits? Available Options and Next Steps - Hosted Customers - Discourse Meta

Basically, AI features stop until our credits reset.