AI translation and website localization: complete multilingual website solution with LLMs
Here's a concrete case: a cross-border SaaS team with an English-only product and customers concentrated in the US and Europe wanted to enter the Japanese and Korean markets. A translation agency quoted $40,000+ and six weeks for all 120 pages. Instead they went with LLM batch translation plus human review of key pages, launched the Japanese version in two weeks, and spent under $2,000. That's the reality of website localization in 2026: AI translation has cut costs by 90%+, turning "should we go multilingual?" from a budget question into an execution question. This guide walks through structure → workflow → quality → cost.
1. Fix the i18n skeleton first: URL structure
| Option | Example | Pros | Cons |
|---|---|---|---|
| A Subdomain | zh.example.com | Clear regional separation | Needs separate config, splits SEO |
| B Subdirectory | example.com/zh-cn/ | SEO-friendly, easy to maintain | None |
| C Query parameter | example.com/?lang=zh | Minimal change | Bad for SEO, not recommended |
| D Separate domain | example.cn | Brand localization | Most expensive, multiple certs |
Option B (subdirectory) is recommended: Google officially suggests subdirectories for language versions, you need no extra domain or SSL certificate, and one codebase handles everything. Once the structure is set, use hreflang to tell search engines how language versions relate:
<link rel="alternate" hreflang="zh-cn" href="https://example.com/zh-cn/" />
<link rel="alternate" hreflang="en-us" href="https://example.com/en-us/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
Note that hreflang must be reciprocal (A declares B and B declares A) and paired with canonical; otherwise search engines treat versions as duplicate content.
2. AI translation workflow: three methods to pick from
Method 1: Batch translation (static content / article pages)
import openai
def translate_content(text, target_lang):
response = openai.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": f"You are a professional translator. Translate the following content to {target_lang}. Maintain HTML tags and Markdown formatting."},
{"role": "user", "content": text}
],
temperature=0.3 # low temperature for consistency
)
return response.choices[0].message.content
The key to batch translation is explicitly telling the model to preserve HTML/Markdown formatting — otherwise you'll spend more time fixing layout than you saved. If cost-sensitive, drop to a cheaper model tier and split long articles to avoid context limits.
Method 2: JSON translation files (UI copy)
// en-us.json
{
"nav.home": "Home",
"nav.products": "Products",
"nav.about": "About",
"hero.title": "Find the Best Cloud Services",
"hero.subtitle": "Compare and choose the right provider"
}
Generate a seed JSON with AI first, then translate key by key into other languages. UI strings are short and cheap, but placeholders and variable names must not be translated (e.g. {username}).
Method 3: CMS-integrated translation
Multilingual content management systems (Strapi, Contentful) with translation plugins enable "publish once, auto-translate to every language" — ideal for blogs and knowledge bases with continuous updates.
3. Quality: terminology and review
The biggest risk in machine translation isn't grammar — it's terminology drift: the same "checkout" becomes settle, checkout, or payment on different pages. The fix is a glossary injected into the prompt:
{
"glossary": {
"CDN": {"en": "Content Delivery Network", "es": "Red de entrega de contenido"},
"VPS": {"en": "Virtual Private Server", "es": "Servidor privado virtual"},
"Cloudflare": {"all": "Cloudflare"}
}
}
A four-step review flow is enough: AI first draft → automated terminology check → native speaker review of core pages → in-layout preview. You don't need to human-review the whole site — usually 20% of high-traffic pages drive 80% of conversions, so spend review budget there.
4. Cost comparison and tools
| Method | 100 pages | 1000 pages | Quality |
|---|---|---|---|
| AI only | $20-50 | $100-300 | ⭐⭐⭐ |
| AI + human review | $200-500 | $1000-3000 | ⭐⭐⭐⭐ |
| Human only | $3000-10000 | $30000+ | ⭐⭐⭐⭐⭐ |
For content sites, use the hybrid "AI everywhere + human on high-traffic pages" route: run all languages through LLMs first, then watch traffic and conversion data, and add human polish to the pages performing best — spend where it pays.
Useful tools:
- AI translation APIs: OpenAI GPT-4o, Claude, Google Cloud Translation;
- Translation management: Lokalise, Crowdin, POEditor (built-in glossaries and review workflows);
- CMS integration: Strapi i18n, Contentful's AI translation plugins.
5. What to Watch After Launch
Shipping the translation isn't the finish line. Keep an eye on three things: first, indexing per language version — check Search Console to confirm hreflang is recognized and pages aren't treated as duplicates; second, bounce rate and time on page — a language version that diverges sharply usually points to translation quality or localization details (date formats, currency symbols); third, queries in organic traffic — the local-language terms users search with tell the content team which pages need deeper translation first. Also give each high-traffic language a native-speaking reviewer; even a monthly pass over core conversion pages prevents that "readable but awkward" feel. And while pure human translation keeps getting cheaper, it remains irreplaceable for strong-domain texts like legal and financial copy — pages involving contracts or pricing commitments should always go through a human; one mistranslation can destroy trust.
16IDC Takeaway
Multilingual is not "translate once and done" — it's an ongoing operation: when product copy or articles change, translations follow. The more automated you get, the harder you must watch terminology consistency and search-engine index feedback. If you're thinking of taking a site overseas, the AI-related articles here can tie the whole pipeline together.
Reference: Google hreflang docs https://developers.google.com/search/docs/crawling-indexing/serving-sheets; Google Cloud Translation docs https://cloud.google.com/translate/docs
Related: Static site vs dynamic CMS