To move focus out of the editor, press Escape and then Tab.
Blog
· 4 min read

An English question about a Swedish note

Open a note written in Swedish (as an example), select a paragraph, and ask for it to be tightened by Snownote's AI. You get Swedish back. Now open that same note, type a question in English into the chat, and you get an English answer about a Swedish note, with nothing translated. Those are two different rules, but for a some time we thought they were one.

When the answer goes into your note

When the assistant rewrites your text, whatever comes back goes straight into the document. So the language of the result is decided by the language of what you gave it, and by nothing else. If you ask in English for a Swedish paragraph to be shortened, you want a shorter Swedish paragraph, not a translation you now have to undo.

We spell that out to the model, because the pull in the other direction is stronger than you'd think. Every instruction we send is written in English. The model is reading an English system prompt, an English instruction from you, and one Swedish paragraph, so English is the language of everything except the actual content. Left alone, a lot of models will answer in English. The rule therefore says, in as many words, that it holds even though these instructions are written in English - with one exception, which is that if you explicitly asked for a translation it should translate. The Translate command relies on that exception existing.

When the answer is for you to read

Chat works the other way round. A reply in the panel isn't going into the document, it's for you to read, so it should come back in whatever language you're writing in. If your message is in one language and your note is in another, you win.

There's a complication. Some prompts aren't typed by anyone. The starter chips in the chat panel send text like "Summarize the open note.", which is English boilerplate we wrote, not something the person chose. Follow the user's language literally and every one of those chips answers a Swedish note in English. So the chat rule has a tail on it: when it isn't clear what language the person is writing in - a one-word command, or a prompt the app generated for them - fall back to the language of the note.

Why they can't be merged

The two rules only disagree in one situation, but it's a common one, which is when you're writing about something in a language other than the one you're writing in.

Collapse them into "match the note" and your English question gets a Swedish answer you didn't ask for. Collapse them into "match the user" and asking in English to fix the grammar in a Swedish paragraph quietly translates your note. Neither of those is hypothetical. Both shipped, at different times.

Kept apart, the sensible thing happens. The answer arrives in English and the edit that answer triggers stays Swedish, because the edit goes out as its own request carrying its own rule.

Why this took so long to notice

None of it shows up in English.

We write the prompts in English, we write the tests in English, and the notes we test with are in English. Under those conditions the bug cannot appear, because when the person, the note, and the instructions are all in one language there is nothing for two rules to disagree about. It only surfaces once someone's actual writing doesn't match their interface language, which describes most people outside the English-speaking world and plenty inside it.

So we stopped relying on catching it by eye. Every prompt in the app is built by its own function, and one test walks through all of them and checks that each has committed to one rule or the other. A new prompt that commits to neither fails that test, which means the choice gets made deliberately by whoever writes the prompt, rather than discovered months later by someone in Uppsala.

What we took from it

The useful part isn't really about language. It's that "obviously it should just do the sensible thing" was hiding two different ideas of what sensible meant, and the only reason we couldn't see the difference was that our own working conditions made the two identical.

If you're building anything like this, the same thing is probably true of some rule you haven't written down yet. The other rules that ride along with every request, and why they're worth the trouble, are in a separate post.