Distribute and grow
Distribute and grow

Testing localization

Updated: Mar 30, 2026
Localization testing ensures that translated content displays correctly, the UI adapts to different text lengths, and the overall experience feels natural to users in each supported language. This page covers hands-on testing procedures for localized Meta Quest apps. For the full localization workflow, see Localization.

Set up your testing environment

Before testing localized content, configure your testing environment:
  1. Change device language: On your Quest headset, go to Settings > Device > Language and select the target language. The Quest supports 25 languages.
  2. Use release channels: Deploy LQA builds to a dedicated release channel so testers can access the latest localized build without affecting production users.
  3. Create test accounts: Set up test user accounts with different locale configurations to verify locale-specific behavior.

Test locale detection and fallback

Your app should detect the user’s device language and serve the appropriate localized content. Verify the following:
  • The app loads in the correct language when the device language matches a supported locale
  • The app falls back to English when the device language is not supported
  • If your app includes a custom language selector, verify that it overrides the device language correctly
  • Locale detection works correctly after app restart
For locale detection APIs, see Get the User Locale. For the VRC requirement on language defaulting, see VRC.Quest.Functional.13.

Test translated strings and UI

Translated text is often longer than English and can cause layout issues. Check for:
  • Text truncation: Strings cut off or hidden behind UI elements
  • Text overflow: Translated text extending beyond button or panel boundaries
  • Overlapping text: Labels colliding with other UI elements or each other
  • Broken line wrapping: Words split incorrectly, especially in languages that use minimal spacing
  • Missing translations: Untranslated strings still showing in English (or as raw string IDs)
  • Placeholder errors: Variables like {player_name} displaying as literal text instead of resolved values
Pay special attention to UI elements with fixed sizes, such as buttons, menus, and in-headset panels where space is limited.

Test fonts and character rendering

Non-Latin scripts require fonts that include the appropriate glyphs. Without them, text renders as square blocks (known as “tofu”). Verify the following for each supported language:
  • All characters render correctly with no tofu or missing glyphs
  • Font style is consistent with the app’s visual design
  • Dynamic font atlas generation works at runtime (for Unity TextMeshPro, verify Atlas Population Mode is set to Dynamic)
  • Font rendering performance is acceptable on device — large glyph sets (especially CJK) can impact load times and memory
For font setup guidance, see Localization.

Test right-to-left languages

If your app supports Arabic, Hebrew, or other RTL languages, verify:
  • UI layout mirrors correctly (navigation, menus, progress bars flow right-to-left)
  • Text alignment is correct in all UI panels and world-space text
  • Bidirectional text renders correctly when mixing RTL and LTR content (for example, product names or numbers within RTL sentences)
  • Controller interactions and spatial UI behave consistently in the mirrored layout

Test language packs

If your app uses language packs to reduce download size, verify:
  • Language packs download and install correctly from the store
  • The app handles missing language packs gracefully (falls back to English or prompts to download)
  • Language pack content matches the expected version and includes all translated strings
  • Switching languages through an in-app picker triggers the correct language pack

Test store metadata

Localized store metadata affects discoverability and user trust. Before submission, verify:
  • Localized app name, short description, and full description display correctly in the store
  • Search keywords are localized and function in local-language searches
  • Localized art assets (cover art, screenshots) display without cropping or text cutoff
  • The Supported Languages list in the Developer Dashboard matches the languages your app actually supports
For store localization workflows, see Localization.

QA checklist

Use this checklist as a summary of key verification points before submitting your localized build:
AreaWhat to verify
Locale detection
App loads in correct language; falls back to English for unsupported locales
String completeness
No untranslated strings or raw string IDs visible
Text layout
No truncation, overflow, or overlapping text in any supported language
Fonts
All characters render correctly; no tofu blocks
RTL (if applicable)
UI mirrors correctly; bidirectional text renders properly
Language packs
Download, install, and switch correctly
Store metadata
Localized name, descriptions, keywords, and art assets display correctly
Performance
Font loading and language pack switching do not cause frame drops or long load times