# Testing automatic translations to English

**URL:** <https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522>\
**Category:** Meta Discussion\
**Created:** [September 17, 2026, 5:55pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522 "2026-09-17T17:55:46Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [September 17, 2026, 5:55pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/1 "2026-09-17T17:55:46Z")

</div>

I think it’s probably useful to separate the test posts from the actual decisions and configurations in

> [@Should we enable automatic natural language translation here?](https://discourse.julialang.org/t/should-we-enable-automatic-natural-language-translation-here/139273/):
>
> Continuing the discussion from [I don’t want to read LLM output](https://discourse.julialang.org/t/i-don-t-want-to-read-llm-output/139244/61): 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](http://meta.discourse.org) and try out the language switcher? How good is it?

We intentionally don’t allow AI translations in private topics and direct messages, so a testing topic here makes sense for now. I’m also finding a number of issues with the builtin behaviors and will be fiddling with the prompts a bit more.

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [September 16, 2026, 9:40pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/2 "2026-09-16T21:40:38Z")

</div>

It still works with large blocks of code.

```julia-auto
julia> struct Dog end; struct Cat end

julia> meet(a::Dog, b::Dog) = "The dogs play together"
       meet(a::Dog, b::Cat) = "The dog chases the cat"
       meet(a::Cat, b::Dog) = "The cat hisses at the dog"
       meet(a::Cat, b::Cat) = "The cats ignore each other. There's lots of English here!"

julia> meet(Dog(), Cat())
"The dog chases the cat"

```

---

<div class="post-metadata">

**Author:** ![araujoms](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/araujoms/32/217734_2.png) [@araujoms](https://discourse.julialang.org/u/araujoms)\
**Post date:** [September 17, 2026, 8:49am UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/3 "2026-09-17T08:49:56Z")

</div>

Let me run an experiment here and post something a bit more technical to see if the translation holds up: I want to perform a local optimization on a piecewise differentiable function that lacks any other nice properties: it’s not convex, computing its values is expensive, and it’s impossible to obtain an explicit expression for the derivatives, even with automatic differentiation. Is Nelder-Mead the best option, or is there a better algorithm?

Also, let me test whether the automatic translation is smart enough not to break the code:

```julia-auto
f() = print("essa string não deve ser traduzida")

```

---

<div class="post-metadata">

**Author:** ![araujoms](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/araujoms/32/217734_2.png) [@araujoms](https://discourse.julialang.org/u/araujoms)\
**Post date:** [September 17, 2026, 8:51am UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/4 "2026-09-17T08:51:46Z")

</div>

I think the text translation was amazing, but it really shouldn’t be translating strings in code.

---

<div class="post-metadata">

**Author:** ![gwr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gwr/32/33632_2.png) [@gwr](https://discourse.julialang.org/u/gwr)\
**Post date:** [September 17, 2026, 12:01pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/5 "2026-09-17T12:01:52Z")

</div>

The lorry driver took his tools out of the car’s boot and looked under its bonnet.

(Test for BE, which is rightly treated as a separate language.)

EDIT: This is not translated so what is English (UK) supposed to mean? Different punctuation and spelling (e.g., _centre_)?

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [September 17, 2026, 12:27pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/6 "2026-09-17T12:27:03Z")

</div>

I do understand what you wrote – and can confirm: Probably NM is the best you can do.

Just for myself I cannot yet set languages for posts (the same language symbol as at the posts in the editor) – or is the language the detected automatically?

---

<div class="post-metadata">

**Author:** ![langestefan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/langestefan/32/207923_2.png) [@langestefan](https://discourse.julialang.org/u/langestefan)\
**Post date:** [September 17, 2026, 1:00pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/8 "2026-09-17T13:00:48Z")

</div>

I’ll try again.

Without tics:

```julia-auto
f() = print("hier wil ik een vertaling zien")

```

with tics:

```julia
f() = print("hier wil ik geen vertaling zien")

```

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [September 17, 2026, 1:30pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/9 "2026-09-17T13:30:33Z")

</div>

@langestefan just to confirm: you didn’t manually edit that translation did you? That’s pretty unfortunate! We’ll have to see if a little prompt engineering can’t avoid that in more cases.

![output](https://global.discourse-cdn.com/julialang/original/3X/8/f/8f2bace69c87fe461334c745da38bb25f42b7533.gif)

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [September 17, 2026, 1:32pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/10 "2026-09-17T13:32:07Z")

</div>

How lovely!

We should try that – but without too much technical jargon, just to see if it works even with my poor Norwegian.

Interesting that only Bokmål is available, but not Nynorsk, among the selectable languages.

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [September 17, 2026, 1:32pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/11 "2026-09-17T13:32:53Z")

</div>

For me that post only appears in Norwegian for now.

_edit:_ Ah yes! Well, I checked that Norwegian does not need translation for me 😃

When I now hit edit on the previous post it recognises it as Norwegian – so at least my Norwegian cannot be that bad.

---

<div class="post-metadata">

**Author:** ![langestefan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/langestefan/32/207923_2.png) [@langestefan](https://discourse.julialang.org/u/langestefan)\
**Post date:** [September 17, 2026, 1:45pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/12 "2026-09-17T13:45:05Z")

</div>

No I didn’t, that was a bit strange. It updated the translation and now also the code is translated.

---

<div class="post-metadata">

**Author:** ![araujoms](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/araujoms/32/217734_2.png) [@araujoms](https://discourse.julialang.org/u/araujoms)\
**Post date:** [September 17, 2026, 1:47pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/13 "2026-09-17T13:47:12Z")

</div>

Norwegian isn’t translated for me either, and I definitely didn’t check that I understand it.

---

<div class="post-metadata">

**Author:** ![araujoms](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/araujoms/32/217734_2.png) [@araujoms](https://discourse.julialang.org/u/araujoms)\
**Post date:** [September 17, 2026, 1:48pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/14 "2026-09-17T13:48:17Z")

</div>

Sure it would be trivial to simply filter out the portion of the text between backticks from the translation, no prompt engineering needed for that.

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [September 17, 2026, 1:49pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/15 "2026-09-17T13:49:10Z")

</div>

When I click the edit button it does recognise the language as Norwegian.

But interesting to know – and good to experiment with that a bit. So I can now hide secret messages by writing Norwegian. Supert! (ah in supert I can not hide much)

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [September 17, 2026, 1:55pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/16 "2026-09-17T13:55:42Z")

</div>

> [@araujoms](#):
>
> Sure it would be trivial to simply filter out the portion of the text between backticks from the translation, no prompt engineering needed for that.

That would make sense, wouldn’t it!? That’s not how the translation plugin works, unfortunately. It was actually originally directed to translate comments… which seems fraught. I’ve removed that and instead asked it to preserve the original code _exactly_. I’m going to re-run the translator on the above posts and we’ll see how things change.

---

<div class="post-metadata">

**Author:** ![araujoms](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/araujoms/32/217734_2.png) [@araujoms](https://discourse.julialang.org/u/araujoms)\
**Post date:** [September 17, 2026, 1:59pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/17 "2026-09-17T13:59:39Z")

</div>

Now it worked. But this comment I’m replying to is also showing up as translated! And if I click to show the original, a see that the difference is that the LLM inserted an em-dash! That’s downright offensive.

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [September 17, 2026, 2:02pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/18 "2026-09-17T14:02:04Z")

</div>

It also changes the grammar a bit. So I can translate my own post there as well. Maybe I do not speak my own bad English after all?

So that now translates from “Ronnys bad English” to English? 😃

Or with the dashes maybe also from English to Claudish?

(edit: The post that is translated is recognised as Norwegian actually, so the translation shown is from “Norwegian” to English, changing English grammar and emdashes)

And for the Norwegian: I see, maybe it just takes bit of time until the translation is available.

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [September 17, 2026, 2:09pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/19 "2026-09-17T14:09:12Z")

</div>

> [@kellertuer](#):
>
> When I click the edit button, it correctly recognizes the language as Norwegian.
> 
> But it’s interesting to know—and good to experiment with it a bit. So now I can hide secret messages by writing in Norwegian. Super! (though I can’t hide much in “supert”)

What was your sequence here? Did you originally write this in Norwegian, then edit it within 5 minutes to make the _original_ English (but then I suppose it preserved the originally-detected `no-bk`)?

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [September 17, 2026, 2:12pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/20 "2026-09-17T14:12:43Z")

</div>

No. I wrote only the very first atop in Norwegian. The post you quote was exactly that one and always in English.

So it actually translates there English to English, since it somehow recognised it as Norwegian/Bokmål (no-bk), no clue why it did that.

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [September 17, 2026, 2:33pm UTC](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522/21 "2026-09-17T14:33:06Z")

</div>

Oh I see now — you _do_ have a tiny bit of Norwegian in there. So that’s why the _entire_ post was tagged as Norwegian. It then sent the entire post to be translated **from Norwegian** to English, which, yeah.

> **The raw locale-detector request**
>
> ```json
> {
> "model": "CDCK/MoM",
> "max_tokens": 32768,
> "messages": [
> {
> "role": "system",
> "content": "You will be given a piece of text, and your task is to detect the locale (language) of the text and return it in a specific JSON format.\n\nTo complete this task, follow these steps:\n\n1. Carefully read and analyze the provided text.\n2. Determine the language of the text based on its characteristics, such as vocabulary, grammar, and sentence structure.\n3. Do not use links or programming code in the text to detect the locale\n4. Identify the appropriate language code for the detected language.\n\nHere is a list of common language codes for reference:\n- English: en\n- Spanish: es\n- French: fr\n- German: de\n- Italian: it\n- Brazilian Portuguese: pt-BR\n- Russian: ru\n- Simplified Chinese: zh-CN\n- Japanese: ja\n- Korean: ko\n\nIf the language is not in this list, use the appropriate IETF language tag code.\n\n5. Avoid using `und` and prefer `en` over `en-US` or `en-GB` unless the text specifically indicates a regional variant.\n\nImportant: Base your analysis solely on the provided text. Do not use any external information or make assumptions about the text's origin or context beyond what is explicitly provided.\n\nYour response must be a language code, and nothing else. Do not wrap your response in quotes or any other characters."
> },
> {
> "role": "user",
> "content": "Can you tell me what '私の世界で一番好きな食べ物はちらし丼です' means?"
> },
> {
> "role": "assistant",
> "content": "en"
> },
> {
> "role": "user",
> "content": "[quote]\nNon smettere mai di credere nella bellezza dei tuoi sogni. Anche quando tutto sembra perduto, c'è sempre una luce che aspetta di essere trovata.\nOgni passo, anche il più piccolo, ti avvicina a ciò che desideri. La forza che cerchi è già dentro di te.\n[/quote]\n¿Cuál es el mensaje principal de esta cita?"
> },
> {
> "role": "assistant",
> "content": "es"
> },
> {
> "role": "user",
> "content": "When I click the edit button it does recognise the language as Norwegian.\nBut interesting to know – and good to experiment with that a bit. So I can now hide secret messages by writing Norwegian. Supert! (ah in supert I can not hide much)"
> }
> ],
> "stream": true,
> "stream_options": {
> "include_usage": true
> }
> }
> 
> ```

This returned `no`.

[Next page](https://discourse.julialang.org/t/testing-automatic-translations-to-english/139522.md?page=2)
