Localization that doesn't break your build.
Your engine never changes. Keys stay anchored, placeholders stay intact. Only the language table swaps.
The keys never move. Only the text does.
They are already playing. And they are complaining.
"Great 2D platformer, the story is legendary — the only bad part is there's no Turkish language support."
original: "kardeşim 2d güzel bir platform oyunu hikayesi de efsane sadece türkçe dil desteği yok bir o kötü" · translated by LoreString
Translation is easy.
Not breaking the game is the hard part.
What actually breaks a localized build.
Mobile breaks differently. We know how.
Same job, harder traps. A string table is a string table — but on phones a wrong specifier doesn't look odd, it terminates the app.
Format specifiers
Android writes %1$s, iOS writes %@. Translate one into the other and the app doesn't render wrong — it crashes. Every specifier is counted and typed before and after.
Plurals
Android <plurals> and iOS stringsdict carry one entry per quantity rule. Turkish does not split them the way English does. Flatten them and the count silently disappears from the sentence.
Overflow
Turkish runs roughly 20–30% longer than English. On a 360 dp button that is the difference between a label and a clipped word. Length is measured per string against the widget it lives in.
A missing brace is a crash, not a typo.
Every line is counted before and after translation — placeholder count and order both. One of these ships. The other never leaves the pipeline.
Yarış bültene eklendi: {0}
Race added to the bulletin: {0}
Hafta {0} olarak ayarlandı!
Week set.
Three steps. Your engine is never touched.
The first language takes the longest, because the catalogue is built once. Every language after that costs translation time plus minutes.
Extract
Your build is scanned, every visible string catalogued and given a permanent key. Data values are separated out. The catalogue comes back for you to review.
Translate
Native translation with a locked glossary, placeholder checks and UI-length control, so nothing overflows a button built for English.
Merge & verify
The table is merged back in your format, then verified line by line. You get a build that runs identically — in another language.
One rate. No minimum you can't afford.
Agencies charge $0.10–$0.18 per word for Turkish — and bill the engineering as a separate line, $5,000 to $20,000 when a game wasn't built to hold translations. The work is the same. The pipeline is why the price isn't.
- JSON, CSV, PO, XLSX, .strings — your call
- Locked glossary and consistent terminology
- Placeholder and UI-length verification included
- Credit in your game's credits, if you want it
- Patch and DLC updates per job or monthly
Turkish game, no English?
That direction is the easier one and we have shipped it: a full Turkish game taken to English before it reached Steam — 1,903 keys, 353 of them with placeholders, zero engine changes. If your game speaks Turkish but not English, the whole world is a closed door, and it is one file away from opening.
Talk about itSend 500 words. Judge for yourself.
Pick your messiest 500 words — or 5% of your build, whichever is smaller. They come back as a side-by-side report: every line, every key, every placeholder verified. You judge the quality. The build-ready file comes with the order.