Norwegian Bokmål and Nynorsk in AI-Generated Text
8 min read · updated August 11, 2026
There is no such thing as writing something in neutral Norwegian. Every Norwegian sentence you commit to a page is in Bokmål or in Nynorsk, and a model given the word “Norwegian” has to choose for you. It always chooses the same one.
Two written standards, no neutral one
Norway standardises writing, not speech. Bokmål descends from the Danish written norm used during the union with Denmark, progressively Norwegianised through the twentieth century. Nynorsk was constructed in the 1850s by Ivar Aasen from rural dialects, deliberately as a written form that owed nothing to Danish. Both are official. Both are taught. Neither is a dialect of the other, and neither corresponds to how anybody speaks — spoken Norwegian is dialect, and a speaker from Bergen writing Bokmål is not writing the way they talk any more than a speaker from Oslo writing Nynorsk would be.
The practical consequence for anything generated: there is no fallback. In German you can write something that is unmarked between Germany and Austria and be understood as merely standard. In Norwegian, roughly every third function word is a fork. Choosing wrongly does not read as neutral; it reads as the other standard.
The language tags encode the same fork. The IANA language subtag registry carries nb for Bokmål and nn for Nynorsk as distinct subtags, with no as the macrolanguage covering both. If your system stores a locale of no or no-NO, it has recorded the ambiguity rather than resolved it, and every downstream component — the prompt, the spell-checker, the translation memory — will resolve it independently and possibly differently.
One sentence, both standards
The differences are not stylistic. They are in the highest-frequency words in the language, which is why the two forms are instantly distinguishable to a reader and why a mixed text is instantly wrong.
Bokmål Jeg vet ikke hva hun heter, men vi kan spørre henne i morgen.
Nynorsk Eg veit ikkje kva ho heiter, men vi kan spørje henne i morgon.
^^ ^^^^ ^^^^^ ^^^ ^^ ^^^^^^ ^^^^^^ ^^^^^^
English I don't know what she is called, but we can ask her tomorrow.Six changes in a fourteen-word sentence, and five of them are in words that appear in almost any paragraph. That density is what makes the choice unavoidable and what makes it easy to verify: you do not need to read Norwegian to audit the output, you need a word list.
Bokmål Nynorsk gloss jeg eg I ikke ikkje not hva kva what hvem kven who hvordan korleis how hvorfor kvifor why hun ho she de / dem dei they / them fra frå from nå no now mye mykje much noe noko something være vere / vera to be komme kome / koma to come skrev skreiv wrote kastet kasta threw
Two notes on reading that list. Bokmål permits kasta alongside kastet and boka alongside boken, so a Nynorsk-side form appearing in Bokmål text is often legal; the inference runs one way only. And Nynorsk no means “now”, which collides with the macrolanguage tag if you are grepping mechanically — match on ikkje, kva and eg instead, which have no Bokmål reading at all.
Why a model defaults to Bokmål
Bokmål is the written form of the large majority of Norwegian publishing: national newspapers, most public administration, most commercial text, most of the Norwegian web. Språkrådet, the Language Council of Norway, publishes the school statistics, and Nynorsk is the primary written form for a clear minority of pupils, concentrated in the western counties. Nynorsk Wikipedia exists as a separate project from Bokmål Wikipedia and is substantially smaller.
A model trained on crawled text inherits that ratio directly. Nothing in the training objective knows the two are co-official; it knows only that after Norwegian-looking context, ikke is far more probable than ikkje. Sampling then does what sampling does. This is the same mechanism that produces flattened, unregional Spanish, except that in Norwegian the flattening is not toward a neutral centre — there is no centre — it is toward one of the two real options.
The real failure: Bokmål with Nynorsk seasoning
Asking for Nynorsk rarely produces Bokmål outright. It produces something worse to catch: a Bokmål skeleton with the most famous Nynorsk words substituted in. Eg and ikkje arrive because they are the two everyone knows; hvordan, noe and skrev survive underneath because the model is completing from a Bokmål prior and only the marked lexical items were overridden.
Two structural things leak even when the vocabulary is clean. Nynorsk has no -et weak past ending, so any -et verb form is a tell. And Nynorsk resists the passive and the noun-heavy constructions that administrative Bokmål is full of — a Nynorsk text that reads like a translated Bokmål circular is grammatically valid and still obviously not written by a Nynorsk writer. This is exactly the carry-over problem described in writing prompts natively rather than translating them, happening one level down.
The degradation is also positional. A short answer often comes back clean; the fourth paragraph drifts. Each token is sampled from a distribution that the instruction shifted but did not replace, and the longer the generation, the more the majority prior reasserts itself. Test on the length you actually ship, not on a two-sentence probe.
Asking for one, and checking you got it
- Name the standard, never the language. “Norsk” is under-specified.
“Skriv på nynorsk”or“Skriv på bokmål”is not. - Store
nbornn, neverno. If the locale reaching your prompt template is a macrolanguage tag, the choice is being made by whichever component looks at it last. See putting the language into a prompt template as a variable. - Give one native example. A short paragraph of real Nynorsk in the prompt constrains the form far harder than the instruction does, for the reasons set out in writing few-shot examples in the target language.
- Grep, do not read. A regex for
\b(ikke|jeg|hva|hvordan|hvorfor|hun|dem|fra)\bover text that is supposed to be Nynorsk is a complete automated check, and it catches the hybrid case that a human skim misses. - Have a Nynorsk reader sign off once. The word list catches lexical drift. It does not catch Bokmål syntax wearing Nynorsk vocabulary, and no mechanical check does.