SandVox

What is String Externalization?

Game Localization · Glossary

What is String Externalization?

String externalization is the software development practice of removing all user-facing text from source code and placing it in external resource files — typically JSON, XML, PO, or platform-specific formats — so that text can be translated and swapped without modifying or recompiling the game. It is the foundational technical step that makes game localization possible.

Why String Externalization Is Required for Localization

When text is hardcoded directly in source code (in UI components, dialog triggers, or system message logic), it cannot be translated without modifying the code itself. Modifying code per language doesn’t scale — a game targeting 10 languages would require 10 versions of the codebase. String externalization separates content (translatable text) from logic (code), enabling the same codebase to serve all languages by swapping the resource files.

How String Externalization Works

After externalization, each piece of text in the game is replaced with a key (e.g., ‘UI.BUTTON.CONTINUE’) and a corresponding value in a resource file (‘Continue’). The game loads the appropriate resource file based on the player’s selected language or device locale. Translators receive the resource files (not the source code) and translate the values, leaving the keys unchanged. The game then loads the translated resource file to display text in the player’s language.

Common Pitfalls in String Externalization

Common externalization mistakes that cause localization problems: concatenated strings (building sentences by joining fragments — word order differs across languages and fragments can’t be reordered), hardcoded plural forms (English has two — singular/plural; Russian has six; Arabic has six — games must handle plurality per language), missing context metadata (translators need to know where and how each string is used to translate accurately), and non-externalized system-generated text (procedural content left in code).

String Externalization and Localization Cost

Games that are not externalized before localization begins require a developer to complete externalization first — adding time and cost to the project. More critically, games that are localized by directly editing code are nearly impossible to maintain: every update requires re-translating in the code itself. String externalization done properly once enables clean, efficient localization for the game’s entire lifecycle.

SandVox and String Externalization

SandVox assesses string externalization status during project scoping. We advise on externalization requirements, flag problematic patterns (concatenated strings, missing context), and work with your engineering team to establish a clean localization pipeline before translation begins.

Related terms: Game Internationalization · Pseudo Localization · Translation Memory · Localization Kit

Frequently Asked Questions

What is the difference between string externalization and game internationalization?

String externalization is one component of internationalization (i18n). Internationalization covers the full set of code and design changes needed to make a game localizable — including string externalization, locale-aware date and number formatting, font system support for multiple scripts, RTL layout support, and text container flexibility. Externalization is the first and most fundamental step.

What file formats are used for externalized strings?

Common formats include: JSON (widely used for web and mobile), XML, GNU Gettext PO/POT files (common in PC games), Android-style strings.xml, iOS Localizable.strings, and proprietary formats used by game engines like Unity (Localization package) and Unreal (String Table). We work with all major formats.

Can we add localization to a game that wasn’t designed for it?

Yes — but it requires a retroactive externalization pass. A developer must identify all hardcoded strings, extract them into resource files, and replace them with key lookups. This is more work than building externalization in from the start but is entirely feasible. SandVox can provide a string audit to identify the scope of the work required.

What are concatenated strings and why do they cause localization problems?

Concatenated strings are sentences built by joining fragments in code — like ‘You have ‘ + count + ‘ items’. In English, this works because word order is fixed. In German, Russian, or Japanese, word order differs — the number might come at the end of the sentence, or the noun might change form depending on the number. Concatenated strings cannot be reordered by translators, so they must be replaced with full-sentence templates before localization can succeed.

Need Expert Game Localization?

SandVox provides end-to-end game localization including string externalization — for narrative games, mobile titles, webtoons, and interactive fiction.