Seven languages in a day, and the two pages I held back
How I took laithjunaidy.com from three languages to seven in three hours, the two checks I run before anything goes live, and the prompts for both.
On this page

On the morning of 9 November 2026 this site spoke three languages: English, Arabic and Chinese. They cover where I work today. I wanted the next market open before I needed it.
At 10:07 I gave the direction:
Add German, French, Spanish and Turkish to the whole site. Every case study, every article, every research page. I want to offer my services in the EU too.At 13:21 the site was live in seven languages. Three hours and fourteen minutes.
I build with AI coding agents, and I set them up to work the way I run a team. I give the direction and the rules. They build. Nothing ships until a second agent, one that wrote none of the work, has read it as a stranger. That last rule stopped this launch twice in three hours, and both times it was right.
This is for anyone adding a language to a site or a product. You need no code to follow it. Every direction I gave is here as a prompt you can copy.
Which language does a visitor get?
The first decision was not about translation. It was about which language a person lands on.
Most sites answer with the visitor’s country. That is a dead end. A German working in Dubai gets Arabic. An English-speaking manager in Amman gets Arabic. A Saudi founder travelling in Berlin gets German. All three are wrong, and each had already given the right answer: it is the language their phone is set to.
So that was my rule:
Open the site in the visitor's system language, never by their country. A phone set to Arabic gets Arabic. Do it on the homepage only: a link someone shared must open exactly as it was sent. If the visitor picks a language from the menu, their choice wins from then on. Never redirect a search engine. A language we do not have yet gets English.
Here is the live site on 14 November, answering five visitors:
| The visitor | What the site does |
|---|---|
| Phone set to German, opens the homepage | Sent to the German homepage |
| Phone set to Arabic, then English, opens the homepage | Sent to the Arabic homepage |
| Phone set to English, then Arabic, opens the homepage | Stays on English |
| Phone set to Italian, opens the homepage | Stays on English |
| Phone set to Arabic, opens a shared link to a case study | Opens the link as sent |
The third row is the one a country rule cannot do. That reader knows Arabic and prefers English, so they stay on English.
Is it ready to ship?
At 11:21 the new languages were built. I said:
Ship now.It did not ship. My own rule held it: the review had not come back. This is the review every launch goes through:
Review this launch as a first-time visitor. You wrote none of it. Open every new page in every language and read it to the end. Report anything a visitor would see as empty, wrong or unfinished. Do not fix anything. Report only.At 11:29 it came back with a warning: do not ship yet.
The new languages were built from the same templates as the first three, so each had a Work page, a Writing page and a Store page from the first minute. The translations were still coming in. This is the German Writing page as that build made it:

No test had caught it, because every test asked whether the page existed. A German visitor would have landed on a site telling them, in good German, that there was nothing here.
The fix is one rule, and it is worth stealing:
A language gets a list page only when it has something to list. Until the first article in that language exists, do not build its Writing page, do not link to it, and do not show it to search engines. The same for Work and Store.The review listed nine issues in all. One more is worth knowing about. A reader on an English case study, with a phone set to German, tapped Home and was sent to German. They had already chosen English by being there. The redirect now leaves alone any click that comes from inside the site.
Is a translated file a finished file?
By 13:16 all 108 translated files were in, 27 for each new language, and the tests passed. I sent it to review again.
At 13:19 the review came back with one finding. The Spanish and Turkish versions of the design process checklist, the longest article on this site, were cut off.
| Edition | Words | Headings |
|---|---|---|
| English | 10,918 | 83 |
| German | 10,973 | 83 |
| Turkish | 5,318 | 50 |
| Spanish | 2,914 | 16 |
The Spanish file stopped after 16 of 83 headings. It had a translated title, a translated summary, a valid date and clean formatting. Nothing in it was broken. It was short, and the top of the page looked perfect.
A translation that stops early looks exactly like a finished one until someone scrolls. So I made scrolling a rule. This is the check, and it works on any set of translated files:
Compare every translated file with its original. For each pair, count the headings and the words. List every translation that has fewer than 80 percent of the original's headings, with both counts. Do not fix anything. Report only.On this site the check now runs before every launch, and a translation that fails it stops the launch. The Spanish file failed at 16 of 83. The Turkish one failed at 50 of 83.
I did not publish the two short files, and I did not delay the other 106 for them. Both were marked as drafts. A draft has no page, so the twelve links that pointed at those two pages now point at the English article. The site went live at 13:21, two minutes after the finding.

As I write this on 14 November, the Spanish and Turkish addresses for that checklist still return “page not found”, and the German and French ones return the article. The two held pages are still held.
If you are adding a language
- Instead of choosing the language from the visitor’s country, read the language their device asks for.
- Instead of redirecting every page, redirect the homepage and open shared links as sent.
- Instead of building every page for every language, build a list page when its first item exists.
- Instead of trusting a green test run, have someone who did not build it open the new language as a visitor.
- Instead of checking that a translation exists, check that it is the size of its original. Count the headings.
- Instead of publishing a short translation or delaying everything for it, mark it a draft and send its links to the original.
The question I expect: why not finish the two files and launch complete? I did not, for two reasons. 106 of 108 files were whole, and the two short ones touch one article in two of the four languages. And a draft costs the Spanish or Turkish reader nothing they had: the day before, that article was not in their language, and it still is not.