Building for the whole world — i18n and RTL done right
Language-prefixed URLs, hreflang, Intl formatting and Tailwind logical properties — the foundations of a site international clients trust.
If you want clients from anywhere, your site has to feel native to them. Translating text is only the first step.
Put the language in the URL
/en/services, /ar/services, /fr/services. Each language gets its own indexable page, which means you can declare them to search engines with hreflang:
<link rel="alternate" hreflang="ar" href="https://example.com/ar/services" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/services" />
A client-side language toggle that only swaps text leaves every non-English visitor invisible to Google.
RTL without a second stylesheet
Set dir="rtl" on <html> and use logical utilities: ms-4 instead of ml-4, ps-6 instead of pl-6, text-start instead of text-left. Layouts mirror automatically for Arabic, Hebrew, Persian and Urdu.
Let Intl do the formatting
new Intl.NumberFormat("ar", { style: "currency", currency: "AED" }).format(5000);
new Intl.DateTimeFormat("fr-FR", { dateStyle: "long" }).format(new Date());
Dates, numbers and prices then look right to every visitor, with no hand-written rules.
Small details that build trust
- Show your local time and the visitor's on the contact page.
- Offer prices in a familiar currency.
- Use a typeface designed for each script — Latin fonts rarely do Arabic justice.
These details quietly tell an international client: this person has done this before.