Skip to content
Yasper Games
Behind the scenes3 min read

Translating a game into 11 languages

The story of Hayat Dosyası now exists in eleven languages. Here is how the translation memory works, what placeholders do to a translator, and what happens when a sentence goes wrong.

Yasper Games

At night on an apartment balcony, an older man and a younger man drink tea; a lit city behind them and red geraniums in a pot.

Hayat Dosyası was written in Turkish. Its story now exists in eleven languages: Turkish, English, German, Spanish, Portuguese, French, Russian, Indonesian, Japanese, Korean and Arabic. This post is about how the work runs.

What do you translate?

That is the first question. The game's script carries many fields: the text of a scene, the options, the outcome lines. It also carries conditions and identifiers: "if this option was chosen, show that scene". Conditions are code, and code is not translated.

So the translation pipeline starts from the compiled Turkish seasons, the text the game actually shows. We listed which fields are text, one by one. The pipeline never touches condition or identifier fields. A translator cannot break where an option leads.

Translation memory: the key is the Turkish sentence itself

For each language we keep a memory file. The key is the Turkish sentence itself; the value is its translation. If we change the script and shorten a sentence, that sentence's key disappears from memory and only that sentence falls out as "untranslated". The other sentences stay where they are. The script kept changing after translation began and will keep changing; this setup means we do not translate everything again after each change, we only look at the sentence that changed.

When we build a language, we get the same season files as the Turkish ones, with the text fields translated. A sentence with no match in memory stays in Turkish and is reported as a coverage percentage. A half-translated game shows up for us before it shows up for a player.

Placeholders

In the script we do not write "your mother", "your father", "the neighbour"; we write {anne}, {baba}, {komsu}. The game knows who to put there, based on how your life has gone so far. In Turkish these also take suffixes: {baba:i} bul.

For a translator this is a trap. Our guide says: Turkish suffixes are not written in the translation; their meaning is carried by the sentence. {baba:i} bul becomes "find {baba}" in English. Possession is the engine's job too: {anne} comes out on screen as "your mother", so the translator must not put "your" in front, or we would get "your your mother".

Every translation goes through a check for this. The checker compares the set of placeholders in the translation with the Turkish one and fails on any missing, extra or misspelled placeholder. Empty translations and text left in Turkish count as errors as well.

Tone, address, culture

The game speaks to you as "you" and mostly narrates in the second person. In some languages that is a decision: du in German, tú in Spanish, tu in French, ты in Russian, きみ (kimi) in Japanese, 너 in Korean. Within a season the form of address has to stay the same. When we split the work into rounds, we wrote it into the second round: same form of address as the first.

The game takes place in Turkey, so cultural items stay where they are in translation, with a short explanation where needed: tarhana becomes "tarhana soup", bayram "the Bayram holiday", dershane "cram school", ezan "the call to prayer".

The game's own terms also have to stay consistent: ink, seal, file, bond, memory, chain. The Turkish word bölüm means two things, an episode of the series and a chapter of a life; that is why the English uses both episode and chapter.

Arabic runs right to left

In Arabic it is not only the text that changes but the direction of the screen: the game's screens run right to left. You can change the language in the game's settings at any time.

What do these translations promise?

To be honest: we have an AI model produce the translation drafts, then check them with the validation above and with our consistency rules. The checker catches placeholders, empty translations and sentences left in Turkish. It cannot catch whether a sentence feels natural to someone who speaks the language. That part is left to readers.

If a sentence felt wrong or artificial to you, write to support@yaspergames.com. Tell us the language, the scene and the sentence; the memory lets us fix a single sentence on its own.

Hayat Dosyası

It opens at birth and closes at death. Every choice in between writes you.

About the game

Tell me at launch

We will send a single email on the day Hayat Dosyası launches. Nothing else.

We only use your address for this announcement. Details are in our privacy policy; write to support@yaspergames.com any time to have it deleted.