Specialized Testing
Localization Testing

Localization Testing: Complete Guide for Global Software Quality

Parul Dhingra - Senior Quality Analyst
Parul Dhingra13+ Years ExperienceHire Me

Senior Quality Analyst

Updated: 1/22/2025

Localization Testing GuideLocalization Testing Guide

QuestionQuick Answer
What is localization testing?Testing that verifies software works correctly for a specific locale, including translated text, date/time formats, currency, and cultural conventions.
How is it different from internationalization?Internationalization (i18n) prepares code for multiple locales. Localization testing (l10n) verifies the actual adapted product works for a specific target market.
What should I test?Translated content accuracy, UI layout with expanded text, date/time/number formats, currency display, cultural appropriateness, input validation, and sorting order.
When should I test?After translations are integrated, before each release targeting new locales, and when adding new features that display user-facing content.
Who performs it?QA testers familiar with target locale, native speakers for linguistic review, and automated tools for format validation.
Common tools?Crowdin, Phrase, Lokalise for translation management. Selenium, Playwright for automation. Pseudo-localization tools for early detection.

Localization testing verifies that software functions correctly and appropriately for users in a specific geographic region, language, or cultural context. This goes beyond translation to include date formats, currency symbols, number formatting, text direction, and cultural conventions.

A German user expects dates in DD.MM.YYYY format, prices in Euros with comma decimal separators (19,99), and the ability to enter characters like umlauts. Localization testing confirms your application handles all of these correctly.

This guide covers what to test, how to test it, common problems, and practical approaches for building localized software that works.

Understanding Localization Testing

Localization testing validates that software adapted for a specific locale meets the expectations and requirements of users in that market. A locale combines language and region (en-US, en-GB, de-DE, ja-JP) and determines how content is displayed.

What localization testing validates:

  • Translated text appears correctly without truncation or encoding issues
  • UI elements accommodate text that expands or contracts across languages
  • Date, time, number, and currency formats match locale conventions
  • Cultural elements like colors, icons, and imagery are appropriate
  • Input fields accept locale-specific characters and formats
  • Sorting and search work correctly with local character sets
  • Legal and regulatory content meets local requirements

Key Point: Localization testing is not about finding translation errors. It verifies that the technical implementation of localization works correctly. Translation quality is a separate concern handled by linguists and translation reviewers.

Why Localization Testing Matters

Software that ignores localization creates friction for international users. Common consequences include:

  • Users cannot complete forms because input validation rejects valid local formats
  • Truncated text makes buttons or labels unreadable
  • Incorrect date formats cause confusion or data entry errors
  • Currency display errors undermine trust in e-commerce transactions
  • Cultural missteps damage brand reputation

These issues drive users away. A checkout flow that cannot accept a valid postal code format loses that sale.

Localization Testing Scope

Localization testing covers three primary areas:

Linguistic Elements: Translated strings, concatenated text, pluralization rules, grammatical agreement, and text encoding.

Functional Elements: Input validation, data formatting, sorting algorithms, search functionality, and locale-aware calculations.

Cultural Elements: Imagery appropriateness, color associations, icons, symbols, and content suitability for the target market.

Localization vs Internationalization: Key Differences

These terms are often confused but represent distinct activities:

AspectInternationalization (i18n)Localization (l10n)
DefinitionDesigning software to support multiple locales without code changesAdapting software for a specific locale
When it happensDuring developmentAfter i18n, before regional release
Who does itDevelopers and architectsTranslators, localizers, and testers
FocusCode structure and flexibilityContent and regional adaptation
ExamplesExternalizing strings, supporting Unicode, using locale-aware APIsTranslating text, formatting dates for Germany, adjusting imagery for Japan
Testing focusDoes the code support locale switching?Does the German version work correctly?

Internationalization (i18n) prepares the code:

  • Extracting strings to resource files
  • Using Unicode throughout
  • Implementing locale-aware formatting functions
  • Supporting bidirectional text
  • Designing flexible UI layouts

Localization (l10n) adapts the product:

  • Translating content
  • Adjusting formats for the target locale
  • Modifying cultural elements
  • Ensuring legal compliance

Localization testing validates that the localized product works correctly. It assumes internationalization was done properly and focuses on the specific locale implementation.

Practical Tip: If you find that a locale change requires code modifications (beyond configuration), that indicates an internationalization gap that should be fixed before continuing with localization.

What to Test in Localization Testing

Text and Translation

String Display:

  • All translatable strings appear in the target language
  • No hardcoded text remains in the source language
  • Dynamically generated text (concatenated strings, plurals) displays correctly
  • Special characters and diacritics render properly

Text Expansion: German and Finnish text typically expands 30-40% compared to English. Russian can expand even more. Test that:

  • Buttons accommodate longer labels without truncation
  • Form labels remain fully visible
  • Error messages fit their containers
  • Navigation menus display completely

Truncation and Ellipsis:

  • Long text truncates with proper ellipsis handling
  • Tooltips or hover states show full text when truncated
  • Critical information is not cut off

Date, Time, and Calendar

Date format expectations vary significantly:

LocaleDate FormatExample
United States (en-US)MM/DD/YYYY01/22/2025
United Kingdom (en-GB)DD/MM/YYYY22/01/2025
Germany (de-DE)DD.MM.YYYY22.01.2025
Japan (ja-JP)YYYY/MM/DD2025/01/22
ISO 8601YYYY-MM-DD2025-01-22

What to verify:

  • Date displays match locale conventions
  • Date pickers use correct format and start day of week (Sunday vs Monday)
  • Time displays use 12-hour or 24-hour format per locale
  • Time zone handling is correct for the target region
  • Calendar systems (Gregorian, Japanese Imperial, Hebrew) display correctly where applicable

Numbers and Currency

Number formatting varies by locale:

ElementUS FormatEuropean Format
Large number1,234,567.891.234.567,89
Decimal separator. (period), (comma)
Thousands separator, (comma). (period)
Currency$1,234.561.234,56 USD

Verify:

  • Decimal separators match locale expectations
  • Thousands separators display correctly
  • Currency symbols appear in correct position (before or after amount)
  • Currency codes are appropriate for the region
  • Negative numbers display correctly (parentheses vs minus sign)

Input Validation

Input fields must accept locale-appropriate formats:

Address fields:

  • Postal codes vary in format (US: 12345 or 12345-6789, UK: SW1A 1AA, Germany: 12345)
  • State/province fields should show appropriate options or accept free text
  • Country selection includes all target markets

Phone numbers:

  • Accept valid local formats
  • Handle international prefix variations
  • Validate length appropriately for the region

Names:

  • Support characters from target languages
  • Handle name order differences (family name first in East Asian locales)
  • Allow appropriate name lengths

Sorting and Collation

Character sorting rules differ between languages:

  • Swedish places with umlauts after Z
  • German may treat as AE or as a distinct character depending on context
  • Spanish historically treated CH and LL as single letters

Test that:

  • Alphabetical lists sort correctly for the locale
  • Search results rank appropriately
  • Autocomplete suggestions appear in expected order

Cultural and Visual Elements

Images and Icons:

  • Hand gestures appropriate for the culture
  • Religious or political symbols avoided or appropriate
  • Human representations suitable for the market
  • Product imagery relevant to the region

Colors:

  • Color associations vary by culture (white for mourning vs celebration)
  • Color choices don't conflict with local sensibilities
  • Color contrast remains accessible

Content:

  • Examples and references are relevant to the target market
  • Measurements use appropriate units (metric vs imperial)
  • Legal disclaimers meet local requirements

Localization Testing Process

Phase 1: Preparation

Gather Requirements:

  • List of target locales with priority order
  • Locale-specific requirements (legal, formatting, cultural)
  • Timeline and resource constraints

Set Up Test Environment:

  • Configure systems to support target locales
  • Install necessary fonts and keyboard layouts
  • Access to locale-specific test data

Create Test Data:

  • Sample content in each target language
  • Test accounts with locale-specific addresses and payment methods
  • Data sets that exercise edge cases (long names, special characters)

Phase 2: Test Case Design

Develop test cases covering:

Functional Tests:

  • User registration with locale-specific data
  • Purchase flows with local currency
  • Form submissions with local address formats
  • Search and filter operations with local characters

UI Layout Tests:

  • Screens with text-heavy content
  • Buttons, menus, and navigation elements
  • Error messages and validation feedback
  • Responsive layouts at different viewport sizes

Format Validation Tests:

  • Date display and input across the application
  • Number and currency formatting
  • Phone number entry and display

Phase 3: Execution

Manual Testing: Native speakers or testers with strong knowledge of the target locale perform exploratory testing, focusing on:

  • Natural language flow and appropriateness
  • Cultural suitability
  • User experience from a local perspective

Automated Testing: Scripts verify:

  • All strings are translated (no source language text)
  • Format patterns match locale specifications
  • UI elements do not overflow or truncate
  • Input validation accepts valid local formats

Phase 4: Bug Reporting and Resolution

Document localization issues with:

  • Screenshot showing the problem
  • Steps to reproduce
  • Locale and browser/device information
  • Expected vs actual behavior
  • Severity (blocking, major, minor)

Common issue categories:

  • Translation missing: Source language string displayed
  • Truncation: Text cut off in UI element
  • Format error: Wrong date/number/currency format
  • Encoding issue: Garbled characters
  • Layout break: UI elements overlapping or misaligned
  • Cultural issue: Inappropriate content for locale

Common Localization Issues and How to Find Them

Hardcoded Strings

Problem: Text embedded directly in code instead of resource files.

How to find: Switch locale and look for English (or source language) text that remains unchanged.

Prevention: Use pseudo-localization during development to highlight untranslated strings.

String Concatenation Problems

Problem: Building sentences by joining strings creates grammatical errors when word order differs between languages.

Example:

"Found " + count + " results in " + category
// German: "In " + category + " wurden " + count + " Ergebnisse gefunden"

How to find: Look for awkward phrasing, incorrect grammar, or text that does not flow naturally.

Prevention: Use full sentence strings with placeholders for variables.

Pluralization Errors

Problem: Languages have different plural rules. English has two forms (1 item, 2 items), but Polish has four, Arabic has six.

How to find: Test with quantities of 0, 1, 2, 5, and 21 items to catch common plural boundary issues.

Prevention: Use ICU MessageFormat or similar libraries that handle plural rules correctly.

Text Expansion Breaking UI

Problem: German translation is 40% longer than English and breaks the button layout.

How to find: Systematically review all UI elements in verbose languages (German, Finnish, Russian).

Prevention: Design with expansion room. Test with pseudo-localization that artificially expands strings.

Character Encoding Issues

Problem: Special characters display as question marks, boxes, or incorrect symbols.

How to find: Test strings containing accented characters, CJK characters, and symbols.

Prevention: Use UTF-8 encoding consistently throughout the application stack.

Input Validation Rejecting Valid Data

Problem: Validation pattern for US zip codes rejects German postal codes.

How to find: Test input fields with valid data from target locale.

Prevention: Make validation rules locale-aware or use more permissive patterns.

Incorrect Sorting

Problem: German customer names sorted incorrectly because treats as O instead of OE.

How to find: Create test data with locale-specific characters and verify sort order.

Prevention: Use locale-aware collation when sorting.

Localization Testing Tools

Translation Management Systems

These platforms manage translation workflow and can help identify localization issues:

Phrase (formerly PhraseApp): Translation management with quality assurance features including placeholder validation and length limits.

Lokalise: Collaborative translation platform with screenshot context and in-app review.

Crowdin: Translation management with GitHub/GitLab integration and continuous localization support.

Transifex: Cloud-based translation platform with API integration and quality checks.

Pseudo-Localization Tools

Pseudo-localization transforms strings to simulate translation characteristics without actual translation:

  • Adds accented characters to test encoding support
  • Expands text to simulate verbose languages
  • Wraps strings with markers to identify untranslated text

Built-in options: Many i18n libraries include pseudo-locale support.

React: react-intl supports pseudo-locale generation Android: Android Studio includes pseudolocales for testing

Automated Testing Tools

Standard test automation frameworks work for localization testing:

Selenium/WebDriver: Browser automation for UI testing across locales.

Playwright: Modern browser automation with good internationalization support.

Appium: Mobile app testing across iOS and Android with locale configuration.

Cypress: End-to-end testing with good support for changing browser locale.

Linguistic Testing Tools

Lingoport Suite: Dedicated internationalization and localization testing tools.

Globalyzer: Static analysis tool that identifies internationalization issues in code.

Visual Testing Tools

Visual regression tools help catch layout issues caused by text expansion:

Percy: Visual testing that can compare screenshots across locales.

Applitools: AI-powered visual testing with support for multi-locale comparison.

BackstopJS: Open-source visual regression testing.

Best Practices for Localization Testing

Start with Pseudo-Localization

Before translations are ready, use pseudo-localization to find:

  • Hardcoded strings
  • UI elements that cannot accommodate longer text
  • Concatenation issues
  • Encoding problems

This catches issues early when they are cheaper to fix.

Involve Native Speakers

Automated tests catch format and technical issues. Native speakers catch:

  • Awkward phrasing
  • Cultural inappropriateness
  • Context errors (same word translated differently based on context)
  • Tone and register problems

Include native speaker review as part of your testing process.

Test Complete User Journeys

Do not just check individual screens. Test complete flows:

  • Registration through checkout
  • Account creation to first purchase
  • Support request submission and response

This reveals issues with data passing between screens and consistency across the application.

Maintain Locale-Specific Test Data

Create and maintain test accounts, addresses, phone numbers, and payment methods valid for each target locale. This enables realistic testing without workarounds.

Document Locale Requirements

Create a reference document for each target locale covering:

  • Date, time, and number formats
  • Address format requirements
  • Currency and payment methods
  • Legal requirements (privacy notice, terms placement)
  • Cultural considerations

Testers reference this during manual testing, and it informs automated test assertions.

Prioritize High-Traffic Locales

If resources are limited, focus testing effort on:

  • Locales with largest user bases
  • Markets with highest revenue impact
  • Regions with strict regulatory requirements

Tiered testing ensures critical markets receive thorough validation.

Automating Localization Tests

What to Automate

Good candidates for automation:

  • Verifying all strings are translated (no source language text)
  • Format validation (dates, numbers, currencies match patterns)
  • Input field validation with locale-specific test data
  • Visual regression for layout issues across locales
  • Resource file completeness (all keys have translations)

Better done manually:

  • Translation quality assessment
  • Cultural appropriateness review
  • Natural language flow evaluation
  • Context-sensitive terminology review

Automation Approach

Resource File Validation: Check that all string keys have translations for each target locale:

// Example: Check for missing translations
const sourceKeys = Object.keys(englishStrings);
const targetKeys = Object.keys(germanStrings);
const missing = sourceKeys.filter(key => !targetKeys.includes(key));

Format Pattern Matching: Validate displayed formats match locale expectations:

// Example: Verify German date format
const germanDatePattern = /^\d{2}\.\d{2}\.\d{4}$/; // DD.MM.YYYY
expect(displayedDate).toMatch(germanDatePattern);

Visual Regression Testing: Capture screenshots across locales and compare to baselines:

// Example with Playwright
await page.goto('/product-page');
await page.setLocale('de-DE');
await expect(page).toHaveScreenshot('product-de.png');

Input Validation Testing: Submit forms with locale-appropriate test data:

// Example: Test German postal code acceptance
await page.fill('[name="postal_code"]', '10115'); // Valid Berlin postal code
await page.click('[type="submit"]');
await expect(page.locator('.error')).not.toBeVisible();

CI/CD Integration

Run localization tests as part of your continuous integration pipeline:

  • Per-commit: Quick pseudo-localization check for new strings
  • Nightly: Full automated test suite across all locales
  • Pre-release: Comprehensive testing including visual regression

Set quality gates that prevent deployment when critical localization tests fail.

Right-to-Left Language Testing

Arabic, Hebrew, Persian, and Urdu read right-to-left (RTL). This requires special attention:

Layout Mirroring

The entire UI should mirror:

  • Navigation moves to the right
  • Lists align to the right
  • Icons flip appropriately (forward arrow points left)
  • Scroll direction reverses

What should not flip:

  • Phone numbers
  • Clocks and timers
  • Logos
  • Images without directional meaning

Text Direction

Bidirectional text: When RTL text contains numbers or Latin characters, direction changes within the string. Test that these display correctly.

Text alignment: Form labels, headings, and body text should right-align.

Testing RTL Locales

  1. Configure browser or device for RTL locale
  2. Verify overall layout mirrors correctly
  3. Check text alignment throughout the application
  4. Test bidirectional text scenarios (Arabic text with embedded English)
  5. Verify input fields support RTL input
  6. Check that icons flip appropriately

Common Issue: CSS using absolute left/right positioning breaks in RTL. Modern CSS logical properties (start/end instead of left/right) prevent this.

Mobile Localization Testing

Mobile apps add platform-specific considerations:

iOS Considerations

  • Test with iOS simulator configured for target locale
  • Verify Auto Layout handles text expansion
  • Check localized strings in Info.plist (app name, permissions)
  • Test with system-level text size adjustments
  • Verify keyboard layouts support target language input

Android Considerations

  • Use Android emulator with target locale configuration
  • Verify layouts with RTL forced in developer options
  • Test string resources across different screen densities
  • Check that locale-specific resources load correctly
  • Verify input fields accept locale keyboard input

Mobile-Specific Test Areas

Push notifications: Test that localized notifications display correctly in notification center.

App store listings: Verify localized screenshots, descriptions, and metadata.

Deep links: Test that localized deep links resolve correctly.

Offline behavior: Verify localized content is available when offline.

Integration with Development Workflow

Shift-Left Localization Testing

Find issues early:

Development Phase:

  • Enable pseudo-localization in development environment
  • Add i18n linting to code review process
  • Include localization considerations in definition of done

Pull Request Validation:

  • Automated check for new hardcoded strings
  • Resource file completeness validation
  • Basic format pattern tests

Continuous Integration:

  • Full localization test suite runs on merge
  • Visual regression tests across locales
  • Report on any new untranslated strings

Collaboration with Translators

Effective localization requires collaboration between development and translation teams:

Provide context: Screenshots, descriptions, and character limits help translators make better choices.

Enable feedback: Create channels for translators to report technical issues (placeholders, context problems).

Review translations in context: Give translators access to see their work in the actual UI.

Localization Testing Checklist

Use this checklist when testing a new locale:

Text and Language:

  • All user-facing text appears in target language
  • No hardcoded source language text visible
  • Dynamic text (concatenation, plurals) displays correctly
  • Special characters render properly

Formatting:

  • Dates display in correct format
  • Times use appropriate 12/24 hour format
  • Numbers use correct decimal/thousands separators
  • Currency displays with correct symbol and position

User Interface:

  • Text fits within UI elements without truncation
  • Layouts remain intact with longer translated text
  • Images and icons are culturally appropriate
  • Error messages are fully translated and clear

Input and Validation:

  • Forms accept valid local formats (postal code, phone)
  • Input fields support locale character sets
  • Date pickers use correct format and calendar

Functionality:

  • Sorting works correctly for locale characters
  • Search returns expected results with local characters
  • Complete user journeys work end-to-end

Conclusion

Localization testing ensures your software works correctly for users in specific markets. It validates that the technical implementation of localization handles text, formats, input, and cultural elements properly.

Key Takeaways:

  • Localization testing is distinct from translation review. It focuses on technical correctness, not linguistic quality.
  • Start early with pseudo-localization to catch issues before translations arrive.
  • Automate format validation and resource completeness checks. Use native speakers for cultural and linguistic review.
  • Test complete user journeys, not just isolated screens.
  • Pay special attention to RTL languages, which require layout mirroring.

Effective localization testing requires understanding both the technical implementation and the expectations of users in your target markets. Invest in proper testing infrastructure, maintain locale-specific test data, and include native speaker review in your process.

The result is software that feels natural and works correctly for users regardless of where they are or what language they speak.

Quiz on localization testing

Your Score: 0/9

Question: What is the primary focus of localization testing?

Continue Reading

Frequently Asked Questions (FAQs) / People Also Ask (PAA)

What is localization testing and why is it important?

What is the difference between internationalization (i18n) and localization (l10n) testing?

What should I test in localization testing?

What are the most common localization issues and how do I find them?

What tools are used for localization testing?

How do I test right-to-left (RTL) languages like Arabic and Hebrew?

What is pseudo-localization and why should I use it?

How do I automate localization testing effectively?