19 May 2026
How Cora speaks two languages
Cora's Atlas is written in English and French in parallel, not translated. Here is what that means in practice, and why we pay the cost.
Cora's Atlas is written in English and French. Not English first, then French. Not French first, then English. In parallel, both files open on the same desk, both voices answerable to the same beat. This is the dispatch where we explain what that means in practice, what it costs, and why we keep doing it from a small flat in Paris instead of running the EN through a machine and calling it a translation.
1. Parallel writing, not machine translation
The first thing to say is that we do not run the English through DeepL and call the output French. We tried, twice, on two of the earliest puzzles, before any of this was public. The output was grammatically correct. The output was also flat. It had no rhythm, no preference, no idiom. It read like the back of a shampoo bottle. The English version of the same puzzle had teeth. The French version had a smooth, polite surface that you could slide off without remembering anything.
So we changed the workflow. Every piece of long-form content — every dispatch, every Carnet entry, every post-puzzle dialogue, every lieu description — is drafted twice. Sometimes the English is written first and the French is written next to it the same morning. Sometimes the French comes first and the English follows. Sometimes one of us drafts a Carnet entry in French because the image came to us in French, and the next day the other writes the English from scratch, looking at the French only as a reference for tone, not for sentence structure. The result is that Cora has two voices, not one voice and one shadow.
This is the part that machine translation cannot do. A translation, however good, asks one question: what does this sentence say in the target language? Parallel writing asks a different question: what would Cora say, in this language, in this moment? The two questions have different answers, often, and the gap between them is where the studio actually lives.
2. French typography matters
Before we talk about voice, we have to talk about the small mechanics that make a French page feel native or feel imported. The biggest tell is spacing.
French uses a non-breaking thin space before its high punctuation. Before a colon, before a question mark, before an exclamation mark, before a semicolon. Inside guillemets — the angle quotes — there is also a non-breaking space tucked just inside the opening « and just before the closing ». Numbers and units take a non-breaking space too: it is "10 km", not "10km", and if a line break separates the number from the unit on a narrow screen, a French reader will notice and not forgive you.
Here is one sentence we found in an early draft of Inès's dialogue, before we fixed it:
"Théodor disait souvent: «la patience est une forme de mémoire»."
And here is the same sentence after the typography pass:
« Théodor disait souvent : la patience est une forme de mémoire. »
Two small changes. The colon now has a non-breaking thin space before it. The guillemets now sit one non-breaking space inside their content. The line break between number and unit, in another sentence on the same page, was preventing "1 000 ans" from staying on one line; we fixed that with a non-breaking space too. Nothing in the meaning changed. Everything in the feel of the page did. A French reader who lands on the first version reads it as a sentence that has been typeset by someone who does not live here. A French reader who lands on the second version reads it as Cora.
We have a small linter that runs over every French mdx file we commit, and the linter's first job is to find any colon, semicolon, question mark or exclamation mark that does not have a non-breaking thin space before it, and to fail the build. It is the most boring kind of code we have written. It also catches something every week.
3. Voice across two grammars
Cora's voice is mélancolique-ironique. Quiet, observant, slightly tired, very specific. That voice exists in both languages, but the two languages carry it differently, and pretending otherwise produces bad prose in one of them.
English tolerates short clipped sentences. "She did not look up. She set the cup down. She asked the riddle." Three sentences in a row, three verbs, no subordination. That paragraph has a pulse. French does not love that pulse. French wants the subordinate clauses to do their work, wants the sentence to breathe across a comma, wants the action and its qualifier in the same arc: « Sans lever les yeux, elle posa la tasse, puis prononça l'énigme. » One sentence, three verbs, one breath. The same beat, the same image, a different cadence underneath.
We do not translate the cadence. We translate the beat. The image of Inès setting down the cup without looking up is the load-bearing thing. Whether English wants three sentences and French wants one is a question of which language you are speaking, not of which version is correct. The version of Cora that speaks English clips. The version of Cora that speaks French breathes. Both are her.
4. Worked example: one post-puzzle beat, side by side
Here is the line Inès speaks after a player solves her morning riddle. The riddle is the first lateral-thinking puzzle of Chapter 1, set in the Sealed Compass, in the Old Town quarter of Vellestria. The answer is name.
The English line:
He asked it to every guest who made it past the first week. You did.
The French line:
Il la posait à chaque hôte qui passait la première semaine. Toi aussi.
The beat is the same. The image is the same: Théodor, the riddle, the threshold of acceptance, the player on the safe side of it. But the FR makes one choice the EN did not. Where the EN ends with "You did" — a clean three-syllable thud, the verb doing the work of the whole moment — the FR ends with « Toi aussi », which is two syllables and means, literally, "you too". The EN names the achievement. The FR notices the company. You did tells the player they passed the test. Toi aussi tells the player they are now among the others who passed before. Different sentences. Same scene. The French Cora is, on this beat, a fraction less interested in your individual success and a fraction more interested in placing you in a small ongoing line of people Théodor would have liked.
We did not plan that difference. It came out of the parallel draft. The FR sentence simply refused "Tu l'as fait" — the literal French of "You did" — because the literal sounded triumphal, and Inès, on this beat, is not triumphal. She is letting the player in. So the line moved to « Toi aussi ». Then the EN was reread, and "You did" survived, because in English the slightly triumphal note is correct for the same beat. English Inès is dryer. French Inès is warmer. Both are Inès. Neither is a translation of the other.
Note that we kept the Sealed Compass in English and translated it to la Boussole Scellée in French, because the place name is descriptive. We kept Vellestria in both, because the nation name is proper. Old Town became la Vieille Ville. Library Quarter became le Quartier de la Bibliothèque. Stellar Cliffs became les Falaises Stellaires. The rule is consistent: if the name describes the place, it gets translated; if the name names the place, it stays. We made that decision once and we apply it everywhere.
5. The cost: twice the writing time
The cost is not a secret. Writing every long-form piece twice, with care, takes roughly twice as long as writing it once and machine-translating the rest. The two of us share the work — one of us is more comfortable starting in English, one of us is more comfortable starting in French — and we hand the drafts back and forth, but the total clock is still close to double. That is the trade we made.
We made it because the studio is in Paris and a significant share of the people who will play Cora's Atlas will be French-speakers. We could not bring ourselves to ship a French version that reads, to a French reader, like the second draft of an American product. The French player should not feel like an afterthought. The French Cora should not feel like the English Cora wearing a coat she does not own. The cost of the parallel workflow is the price we pay so that, on every beat, both Coras sound like themselves.
There are days when the cost feels heavy. There are days when one of us looks at the spreadsheet, at the two columns still to fill, and asks the other if we are sure. We are. The version of this project that runs on machine translation is a version that ships a little earlier and lands a lot lighter on the side of the audience that we, of all the studios that could be making this, owe a French that breathes. So we keep two files open. We keep arguing about Toi aussi. We keep failing the build on missing thin spaces. The next dispatch is already drafted, twice.
