PlayablePlan Try PlayablePlan
← All articles

Game development planning

Game Localization String Freeze: Handle Late Changes Safely

Set a practical game localization string freeze: classify late edits, send translators a clear change record, and verify affected languages before release.

By PlayablePlan ·

A game localization string freeze should lock a known version of player-facing text, not stop every other change to the game. For a small indie team with translations underway, each late edit needs an explicit decision: defer it, translate and retest it, or hold the affected release. If your core dialogue or mechanics still change weekly, freeze stable sections rather than pretending the entire script is final.

Freeze a source revision, not the whole project

Record the source-string export or commit, the languages included, and the build where those strings appear. Give one person authority to approve exceptions. Otherwise, “translation complete” may refer to a different version from the one programmers are shipping.

Use two boundaries:

  • Translation baseline: the approved source for the current batch; later edits enter a separate change queue.
  • Release lock: no change to shipping text without approval of its translation and retest impact.

The timing depends on your game. A dialogue-heavy RPG may need a stable script earlier than a short arcade game. An Early Access title might use rolling batches, not a permanent freeze.

Alconost’s game-localization update guide recommends separating new, modified, unchanged and deleted strings. This makes changes reviewable instead of repeatedly resending the entire script.

Unity’s localization-table documentation describes stable entry IDs and translator comments. You do not need Unity to follow the underlying rule: keep a reliable link between each text entry, its context and its translations.

Decide whether each late change can ship

Run every proposed edit through three questions:

  1. Player impact: Would leaving the original mislead players, block an interaction or change a promised feature?
  2. Translation impact: Which languages, terminology, subtitles or layouts need another review?
  3. Proof: Who can approve the result in the actual build, and by when?

Then choose one of four outcomes:

  • DEFER: optional tone improvements and cosmetic rewrites wait for the next batch.
  • REVIEW: a typo may leave target translations valid, but a qualified reviewer confirms that assumption.
  • RETRANSLATE: changed controls, objectives or meanings require new target text and in-game testing.
  • HOLD: if a critical correction cannot be translated and verified in time, hold that language’s release path or adjust the release plan. Do not ship a known misleading instruction.

A “small wording change” is not automatically low-risk. Replacing press with hold can reverse what players need to do.

This differs from general release bug triage: the question is not merely whether the English bug blocks shipping, but whether the fix has cleared each promised locale.

Use one change record for translators and testers

Hypothetical example: a three-person action-game team has already delivered French and Spanish tutorial strings. A late input change replaces tapping a dodge button with holding it. The original instruction, “Press Dodge to evade,” is now incorrect.

The programmer updates the source, but the ticket stays open. The translation reviewers need the old and new wording, an explanation of the interaction, and a testable build. QA must then confirm that each language displays the correct instruction alongside the intended input icon.

Copy this record into a ticket:

  • String ID / baseline: tutorial_dodge_01 / loc-rc1
  • Old → new: “Press Dodge to evade” → “Hold Dodge to evade”
  • Reason: input behavior changed; the old instruction is misleading
  • Context: tutorial step 2; keyboard and controller paths
  • Affected languages: French and Spanish
  • Decision: retranslate both; do not reuse the old translations unreviewed
  • Owners: programmer, language reviewers, build tester
  • Acceptance: correct wording and input hint on the packaged build

Microsoft’s contextual-metadata guidance recommends explaining where strings appear and what placeholders mean. If a prompt contains a variable such as {button}, give translators possible values and ensure it still renders correctly. A key and an English sentence alone are not a sufficient handoff.

Verify the candidate, then close the freeze gate

A correct translation file does not prove that the player sees it. Test the exact candidate build, not an unrelated editor preview.

For every affected language, check:

  • The approved translation is attached to the correct string ID.
  • The player can reach the relevant screen or event and see the new text.
  • Variables, controller hints, fonts and wrapping behave correctly.
  • A fluent reviewer validates the meaning in gameplay context.
  • The test record includes locale, build ID, owner and any open issue.

Test the changed route first, then language switching and restart behavior if your game supports them. Full linguistic QA still needs its own time; this gate is a targeted retest, not a substitute. Similarly, avoid running every screen after a punctuation fix if nothing else is affected. Match test scope to risk.

For Steam, Steamworks’ localization documentation distinguishes translated store pages from in-game interface, subtitles and audio support. Update the stated language support only when the corresponding experience is ready; store copy does not establish that the game is localized.

At the next release review, identify the source baseline and make every exception end in a decision with evidence. If you plan milestones in PlayablePlan, keep localization exceptions beside the release work rather than letting them disappear into chat.

From plan to progress

Keep tasks and milestones visible to the whole team.

Try PlayablePlan