IntlPull
Guide
16 min read

Website Localization: Best Practices & Complete Guide for Web Applications (2026)

Learn website localization best practices for web applications. Step-by-step guide covering technical implementation, content translation, SEO, and multilingual tools.

IntlPull Team
IntlPull Team
03 Feb 2026, 11:44 AM [PST]
On this page
Summary

Learn website localization best practices for web applications. Step-by-step guide covering technical implementation, content translation, SEO, and multilingual tools.

Quick Answer

To localize a website: (1) Internationalize your codebase (externalize strings, support UTF-8, flexible layouts), (2) Set up URL structure for languages (/en/, /de/ or subdomains), (3) Translate content using AI tools like IntlPull or professional translators, (4) Implement hreflang tags for SEO, (5) Adapt images, dates, and currencies for each locale, (6) Test with native speakers. Budget 2-4 weeks for a typical marketing site, longer for web apps.


What is Website Localization?

Website localization is adapting your website for different languages, regions, and cultures. It goes beyond translation to include:

ElementWhat Changes
LanguageText, navigation, forms, errors
FormatsDates, numbers, currencies, addresses
DesignLayout for RTL, text expansion, images
ContentCulturally relevant examples, references
LegalPrivacy policy, terms, compliance
SEOMeta tags, URLs, hreflang

Website Localization vs Translation

AspectTranslationLocalization
ScopeText onlyFull experience
GoalLinguistic accuracyCultural relevance
IncludesWordsWords + design + UX + SEO
Cost$0.10-0.15/word$0.15-0.25/word+

Step 1: Technical Preparation (i18n)

1.1 Externalize All Text

Move hardcoded strings to translation files:

JavaScript
1// Before (hardcoded)
2<button>Submit</button>
3
4// After (externalized)
5<button>{t('form.submit')}</button>

Translation file (en.json):

JSON
1{
2  "form": {
3    "submit": "Submit",
4    "cancel": "Cancel",
5    "required": "This field is required"
6  }
7}

1.2 Character Encoding

Always use UTF-8:

HTML
<meta charset="UTF-8">

This supports all languages including Chinese, Arabic, Russian, and emoji.

1.3 Flexible Layouts

Design for text expansion (German is 30% longer than English):

CSS
1/* Avoid fixed widths */
2.button {
3  min-width: 100px;
4  padding: 0.5rem 1rem;
5}
6
7/* Use flexbox/grid for adaptable layouts */
8.nav {
9  display: flex;
10  flex-wrap: wrap;
11}

1.4 RTL Support

For Arabic, Hebrew, Persian:

CSS
1/* Use logical properties */
2.sidebar {
3  margin-inline-start: 1rem;  /* margin-left in LTR, margin-right in RTL */
4}
5
6/* Or use dir attribute */
7[dir="rtl"] .sidebar {
8  margin-right: 1rem;
9  margin-left: 0;
10}
HTML
<html lang="ar" dir="rtl">

Step 2: URL Structure

Choose how to structure multilingual URLs:

Options Comparison

StructureExampleProsCons
Subdirectoryexample.com/de/Easy setup, shared domain authorityAll on one server
Subdomainde.example.comSeparate hosting possibleHarder SEO, less link equity
ccTLDexample.deStrong local signalExpensive, separate sites
Parameterexample.com?lang=deEasiest setupPoor SEO, not recommended

Recommendation: Subdirectory (/de/, /fr/) for most sites.

Implementation

Next.js:

JavaScript
1// next.config.js
2module.exports = {
3  i18n: {
4    locales: ['en', 'de', 'fr', 'es'],
5    defaultLocale: 'en',
6  },
7};

WordPress: Configure in WPML, Polylang, or Weglot settings.

Static sites: Generate separate folders per language.

Step 3: Content Translation

3.1 Prioritize Content

PriorityContent TypeApproach
HighHomepage, key landing pagesHuman translation or AI + review
HighProduct/pricing pagesHuman translation
MediumBlog postsAI translation + light review
MediumHelp docsAI translation
LowLegal pagesProfessional translation (accuracy required)

3.2 Translation Methods

AI Translation (IntlPull):

Terminal
1# Extract strings from your site
2npx @intlpullhq/cli extract --source ./src
3
4# Translate to target languages
5npx @intlpullhq/cli translate --target de,fr,es,ja
6
7# Download translations
8npx @intlpullhq/cli download --output ./locales

Cost comparison:

MethodCost per 10K wordsTimeQuality
AI only$10-50HoursGood
AI + human review$100-300DaysHigh
Human translation$1,000-2,000WeeksHighest

3.3 What to Translate

TranslateDon't Translate
UI textBrand names
Page contentProduct names (usually)
Meta descriptionsTechnical terms (sometimes)
Alt textCode examples
Form labelsEmail addresses
Error messagesURLs (use translated slugs)
Legal pagesSocial handles

Step 4: International SEO

4.1 hreflang Tags

Tell search engines about language versions:

HTML
1<head>
2  <link rel="alternate" hreflang="en" href="https://example.com/page/" />
3  <link rel="alternate" hreflang="de" href="https://example.com/de/seite/" />
4  <link rel="alternate" hreflang="fr" href="https://example.com/fr/page/" />
5  <link rel="alternate" hreflang="x-default" href="https://example.com/page/" />
6</head>

Common hreflang values:

CodeLanguage/Region
enEnglish (generic)
en-USEnglish (US)
en-GBEnglish (UK)
deGerman
de-ATGerman (Austria)
zh-HansChinese (Simplified)
zh-HantChinese (Traditional)

4.2 Translated URLs

Use translated slugs for better SEO:

LanguageURL
English/products/winter-jacket/
German/de/produkte/winterjacke/
French/fr/produits/veste-hiver/

4.3 Local SEO Signals

SignalAction
HostingUse CDN with local PoPs
ContentLocal examples, references
BacklinksBuild links from local sites
GSCSet up per-country targeting
SchemaUse local business markup

4.4 Sitemaps

Create per-language sitemaps:

XML
1<!-- sitemap-en.xml -->
2<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
3        xmlns:xhtml="http://www.w3.org/1999/xhtml">
4  <url>
5    <loc>https://example.com/page/</loc>
6    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/page/"/>
7    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/seite/"/>
8  </url>
9</urlset>

Step 5: Cultural Adaptation

5.1 Date and Time Formats

RegionDate FormatTime Format
USMM/DD/YYYY12-hour (AM/PM)
EuropeDD/MM/YYYY24-hour
JapanYYYY/MM/DD24-hour
ISOYYYY-MM-DD24-hour
JavaScript
1// Use Intl API
2const date = new Intl.DateTimeFormat(locale, {
3  dateStyle: 'medium'
4}).format(new Date());

5.2 Number and Currency

RegionNumberCurrency
US1,234.56$1,234.56
Germany1.234,561.234,56 €
France1 234,561 234,56 €
India1,23,456.78₹1,23,456.78
JavaScript
1const price = new Intl.NumberFormat(locale, {
2  style: 'currency',
3  currency: currencyCode
4}).format(amount);

5.3 Images and Graphics

ConsiderExample
Text in imagesCreate localized versions
Cultural sensitivityAvoid offensive imagery
Hand gesturesThumbs up differs by culture
ColorsWhite = mourning in some cultures
PeopleUse diverse or localized photos

5.4 Forms and Input

FieldLocalization
Phone numberCountry code selector
AddressLocal format (US: City, State ZIP; UK: City, Postcode)
Date pickerLocal format, week start (Mon vs Sun)
Name fieldsSingle field for cultures with different name structures

Step 6: Testing

6.1 Functional Testing

✓ All pages load in all languages
✓ Language switcher works
✓ Forms submit and validate correctly
✓ Correct locale detection
✓ URLs are properly formatted
✓ Redirects work correctly

6.2 Linguistic Testing

✓ No untranslated strings
✓ No machine translation artifacts
✓ Correct grammar and spelling
✓ Appropriate tone and formality
✓ Culturally appropriate content

6.3 Visual Testing

✓ No text overflow or truncation
✓ Layouts work with longer text
✓ RTL layouts correct
✓ Images display correctly
✓ Fonts support all characters

6.4 SEO Testing

✓ hreflang tags present and correct
✓ Canonical URLs correct
✓ Meta tags translated
✓ Sitemaps include all languages
✓ Google Search Console shows pages indexed

Tools for Website Localization

For Different Platforms

PlatformRecommended Tools
WordPressWPML, Polylang, Weglot
Next.jsnext-intl, IntlPull
Reactreact-i18next, IntlPull
Vuevue-i18n, IntlPull
Static sitesIntlPull CLI
WebflowWeglot
ShopifyLangify, Weglot

Translation Management

ToolBest For
IntlPullDevelopers, AI translation, OTA
LokaliseEnterprise teams
PhraseLarge projects
CrowdinOpen source

Timeline and Budget

Typical Timeline

PhaseDurationTasks
Planning1 weekScope, languages, tools
i18n setup1-2 weeksCode changes, URL structure
Translation1-3 weeksContent translation
Integration1 weekMerge translations
Testing1 weekQA, fixes
Launch1 dayGo live

Total: 5-9 weeks for marketing site; longer for web apps.

Budget Estimate

ComponentSmall Site (50 pages)Large Site (500+ pages)
i18n development$2,000-5,000$10,000-30,000
Translation/language$500-2,000$5,000-20,000
Tools (annual)$200-500$1,000-5,000
Testing$500-1,000$2,000-5,000

Frequently Asked Questions

How do I localize a website?

Follow these steps: (1) Internationalize code (externalize strings, UTF-8, flexible layouts), (2) Choose URL structure (subdirectory recommended), (3) Translate content using AI tools or translators, (4) Implement hreflang for SEO, (5) Adapt formats (dates, currencies), (6) Test with native speakers. Use tools like IntlPull for efficient translation management.

How much does website localization cost?

Costs vary by site size and approach: A 50-page marketing site costs $5,000-15,000 per language including development and translation. Using AI translation (IntlPull) reduces translation costs by 70-90%. Enterprise sites with 500+ pages can cost $50,000+ per language with professional translation.

What is the best tool for website localization?

It depends on your platform: WordPress sites use WPML or Polylang. Custom web apps use IntlPull for translation management with AI. Enterprise teams use Lokalise or Phrase. For quick setup without coding, Weglot works across platforms. IntlPull is best for developer-focused workflows with AI translation.

How long does website localization take?

Typical timeline is 5-9 weeks: 1 week planning, 1-2 weeks i18n development, 1-3 weeks translation, 1 week integration, 1 week testing. Complex web applications take longer. AI translation with IntlPull can compress the translation phase significantly.

Should I use subdirectory or subdomain for localization?

Subdirectory (/de/, /fr/) is recommended for most sites. It's easier to set up, maintains domain authority, and is well-supported by all platforms. Subdomains (de.example.com) can work but fragment SEO authority. Country domains (example.de) are only worth it for major market commitment.

What is hreflang and why is it important?

hreflang tells search engines which language version to show users. Without it, Google might show German users your English page. Implement with link tags: <link rel="alternate" hreflang="de" href="example.com/de/page/">. Include x-default for fallback. Incorrect hreflang is a common SEO mistake.

Can I use Google Translate to localize my website?

Google Translate alone is not recommended for professional localization. Quality is inconsistent and can hurt brand perception. However, AI translation (including Google's API) combined with human review works well. IntlPull uses AI translation with context awareness, then allows human review for quality.

How do I handle RTL languages like Arabic?

Use CSS logical properties (margin-inline-start instead of margin-left) and set dir="rtl" on the HTML element. Test layouts thoroughly—many components need adjustment. Icons with directional meaning (arrows) should flip. Arabic, Hebrew, Persian, and Urdu are common RTL languages.

Do I need to translate all content?

Prioritize high-impact content: Homepage, product pages, pricing, and key landing pages first. Blog posts and help docs can use AI translation with lighter review. Legal pages need professional translation for accuracy. Some content (old blog posts, internal pages) may not need translation.

How do I maintain a localized website?

Set up continuous localization: Integrate IntlPull CLI into your CI/CD pipeline to automatically extract new strings. Use AI translation for initial drafts. Have a process for translation review. OTA updates let you push translation changes without redeploying.

Summary

Website localization requires attention to:

PhaseKey Actions
Technicali18n code, URL structure, UTF-8
ContentAI or human translation, prioritize
SEOhreflang, translated URLs, sitemaps
CulturalFormats, images, forms
TestingFunctional, linguistic, visual

For efficient localization, use IntlPull to manage translations with AI-powered translation, team collaboration, and OTA updates.

Ready to localize your website? Start free with IntlPull — AI translation for developers.

Tags
website-localization
localization
multilingual-website
i18n
seo
2026
IntlPull Team
IntlPull Team
Engineering

Building tools to help teams ship products globally. Follow us for more insights on localization and i18n.