25 languages LIVE — a milestone
cutty.dev now speaks twenty-five languages. A short story about what that means, why these specific languages, and how it was done without sending data externally.
- We have added this many languages in just a few weeks. The start was modest: Polish and English, two, end of list. Today cutty.dev welcomes you in twenty-five. The number is nice, but in itself, it means nothing. The meaning lies in who stands behind these figures.
Do a quick calculation. Arabic is well over 400 million people. Hindi is another several hundred million. Chinese, if counting Mandarin, exceeds one billion. Add Spanish (Spain plus almost all of Latin America) and Portuguese (mainly thanks to Brazil). Summing these markets, you get several billion people who can see the tool immediately in their own language. From the very first second.
Why exactly these 25
Full list, for order. Polish, English, German, French, Spanish, Italian, Czech, Romanian, Hungarian, Greek, Dutch, Swedish, Finnish, Ukrainian, Turkish. In addition, Arabic and Hebrew (both written from right to left). Chinese, Japanese, Korean. Hindi, Thai, Vietnamese, Indonesian. And Portuguese.
Nothing here was pulled out of a hat. The first layer is simply Europe, market by market. The second is places that a European startup usually does not touch until "movement appears": the Middle East and North Africa, Israel, East Asia, the Indian subcontinent, Southeast Asia.
French is a good example here of how one locale drags half the world along with it. France, yes, but also Belgium, Quebec, and a large part of West Africa. One translation file, a dozen countries.
Where did these translations come from
Here is the part that I am probably most satisfied with. It did not go through any external API. A local AI model, running on our own hardware, in our network, performed the translation.
What this means, in plain English:
- Not a single sentence from the interface went outside. No AI provider received our texts for "processing". Not because we have something to hide in the "Shorten" button. We simply set up this project that way from the beginning and make no exceptions, because exceptions grow later.
- It turns out better than word-for-word translation. The model maintains context, tone, sometimes a joke. A "short link" can have three different meaningful equivalents in three languages, not just one calque.
- Zero cost per query. I want to improve one sentence in twenty-five versions? I do it and don't look at the invoice counter.
After the first pass, I was still reviewing every version with a critical eye. Whether the layout holds up, whether German (with its wonderful long nouns) doesn't push the text out of the button, or whether Arabic actually flows in the right direction.
Page mirroring, i.e., Arabic and Hebrew
This was a separate job, not a "flag change". The entire page for these two languages is mirrored horizontally. The navigation sits on the right, arrows point the other way, even the gradient in the hero goes in reverse.
It could have been let go. Many services let it go, and then the Arabic version looks like a Western site that someone partially flipped and left. You can see it immediately. We wanted an Egyptian or an Israeli to have the impression that the site was made for them, rather than translated for them after hours.
Fonts, or the problem that no one thinks about until it breaks
Chinese, Japanese, Korean. CJK characters, which a regular web font simply does not have inside. If left as is, the user would get squares instead of text (that classic broken page view). So we load additional fonts, but only for these versions. The rest of the twenty-plus locales run on our lightweight, standard typeface and do not carry anything unnecessary. Thai, Hindi, and other scripts received exactly the same approach.
Reverse order
The scheme is well known: you launch the product in English, and the rest of the languages "sometime, when there is traffic." Only that there will be no traffic in Spanish as long as a Spaniard coming from Google sees English and leaves.
We went the opposite way. 25 languages for good morning. Someone from Czechia, Taiwan, Vietnam or Egypt drops in from a search engine and is at home from the very first screen.
There is also simple courtesy in this. The web defaults to the assumption that you will communicate in English. A small tool from Europe that speaks to you in Korean or Thai says something else as well: that it was made for everyone, not just for the English-speaking center.
And what if yours is missing
The list is long, but not closed for good. Don't see your language? Write us. Adding another one is a matter of days for us, really, not quarters.
And if we are already getting along, then you know what to do. Shorten some link and see if it actually looks like yours. If something is off, let me know too.