A multilingual game can ship translated menus, tutorials, and store listings while achievement unlock banners, Game Center cards, and Play Games achievement lists stay in the default language. Players notice that mismatch quickly because unlock moments are public and memorable. The cause is usually not a missing Localizable.strings entry. Game Center and Play Games Services keep their own localization inventories in App Store Connect and Play Console, with separate artwork rules, publish or review gates, and in-app description APIs.
Treat achievements and leaderboards as a release surface you inventory, translate, submit, load, and verify alongside ordinary app strings.
Why console-owned gaming copy drifts
Ordinary app localization moves source strings through a catalog, translators, and a binary or over-the-air update. Game Center and Play Games Services add another owner:
- Identity-stable achievement and leaderboard IDs live in the developer console.
- Display names, descriptions, score suffixes, and images are attached per language in that console.
- New or changed components often need an explicit review or publish step before players see them.
- Custom in-app UI must load localized descriptions instead of hard-coding English copy.
- Unlock banners and dashboards can follow device, storefront, or closest-supported-language rules that differ from your in-app language picker.
Apple's manage achievements guide requires a title plus pre-earned and post-earned descriptions for each language or region where the app appears, plus an image. The App Store Connect achievement language properties reference makes those fields explicit: localization, display name, earned description, pre-earned description, and a required 1024×1024 RGB image. Leaderboards have their own language properties for display name, description, and singular or plural score-format suffixes.
On Android, Play Games Services documents a two-step translation model. First add game-supported languages under Manage translations. Then translate achievements and leaderboards for those languages. The enable Play Games Services features guide also explains closest-language matching: a device set to fr-CA can receive fr-FR strings when that is the closest supported game language.
If the release checklist only covers bundled resources and store listing fields, these console surfaces remain English by default.
Build a shared inventory before translating
Start with one inventory that both platforms and both teams can read.
For each achievement and leaderboard record:
- Stable ID used in client code
- Points, hidden or revealed state, and whether the achievement is replayable
- Source-language display name and descriptions
- Target locales that must match app-supported languages
- Artwork ownership and whether the image contains text
- Current console status: draft, ready for review, live, archived
- Client surfaces that show the record: native dashboard, custom list, unlock toast, widgets
Map app locales to console locales deliberately. Do not assume App Store localization codes, Play Games locale codes, and Locale tags in code are interchangeable. Keep a small mapping table next to the inventory and reject releases that add an app language without a matching achievement and leaderboard localization plan.
Treat the inventory as the source of truth for coverage. A Stack Overflow author asks whether achievements must be provided in every language the game supports before approval. Platform docs answer with field requirements and review rules rather than a single universal yes, so make the coverage rule a product decision and enforce it in the inventory.
Complete Apple localization fields and review gates
In App Store Connect, open the app's Game Center configuration and add localizations under Achievement Localization for each language you intend to ship. Enter the display name, pre-earned description, and earned description. Upload the required image. Repeat for leaderboards, including score-format suffixes when units need plural agreement.
Then submit the components. Apple's submit Game Center components guide states that new or modified leaderboards, leaderboard sets, achievements, challenges, and activities must be reviewed before they are available to players. You can include components with an app version or submit them against the latest platform version without a new binary. Apple requires a separate Game Center component App Review for new or changed achievements and leaderboards; shipping an app binary alone does not publish those localizations. Teams that only watch the app-version review miss English unlock text that was already configured in Connect but never accepted for distribution.
After approval, verify both the system Game Center UI and any custom screens. GameKit's GKAchievementDescription documents loading the localized text and artwork you entered in App Store Connect through loadAchievementDescriptions. Use those values for custom achievement lists instead of shipping parallel English-only strings in the app bundle.
Practitioner reports show why verification matters. One sandbox report describes Spanish-configured achievements still unlocking in English with the Game Center icon. Another describes completed achievements missing the localization image while loadImage() returns nil. Treat those as packaging and review-state failures until proven otherwise, not as reasons to hard-code fallback English.
Complete Play Games translations and CSV imports
In Google Play Console, enable Play Games Services features, then add translations for the game before editing achievement locales. The enable-features guide's Manage translations flow makes those languages available in the language selector for game details, achievements, and leaderboards. The integrate achievements guide defines optional AchievementsLocalizations.csv with columns for name, localized name, localized description, and locale. Locales must already be enabled for the game, and you must not include the default locale in that file. Achievement names must remain unique per locale.
Enable Play Games game-level translations before importing AchievementsLocalizations.csv, or locale rows fail validation even when the CSV is well formed. A current Play Console bulk-import question reports exactly that failure mode: AchievementsLocalizations.csv rejected with "Locale not supported" for es-ES until the game supported the locale. Fix the prerequisite, then re-import. Do not invent locale codes that the game properties page does not list.
Play Console help on Play games services features corroborates the CSV model and warns that the same achievement icon is used across locales, so avoid embedding text or other locale-specific content in the icon. Keep achievement icons free of embedded text when one asset is shared across locales, and treat missing loadImage results as a localization packaging failure on Apple as well. If a language needs different artwork, confirm whether the platform actually supports per-locale images before designing text into the medal.
Leaderboards follow the same translation prerequisite. The Android leaderboards guide explains adding translations on each leaderboard's language tab after game-level translations exist, and notes that formatted scores can still be locale-aware even when you have not translated leaderboard metadata.
Publish Play Games changes according to your console workflow. Draft achievements are invisible to production players until the game configuration that contains them is published.
Keep in-app UI honest about ownership
Decide which surfaces are console-owned and which are app-owned:
- System Game Center or Play Games dashboards: console localizations only
- Custom achievement lists and progress screens: load console descriptions or maintain a carefully synchronized app catalog
- Unlock toasts you render yourself: either load console text or translate app-owned copy keyed by the same achievement ID
- Deep links into achievement detail: verify the destination language after cold start
Prefer loading console descriptions when the platform UI also shows them. Duplicating English source text in the app creates a second inventory that drifts the first time someone edits Connect or Play Console alone.
If you keep an app-owned overlay for locked or secret achievements, version it with the console IDs and fail CI when an ID exists on only one side of the inventory.
Verify unlock, dashboard, and fallback paths
Build a release checklist that a QA owner can run without reading platform folklore:
- For each shipped locale, confirm achievement and leaderboard coverage in both consoles.
- Confirm Game Center components are approved or Play Games configuration is published.
- Unlock one achievement on a device and storefront combination for that locale.
- Inspect the system banner or dashboard language and artwork.
- Open any custom achievement UI and confirm it matches the console text.
- Change the device language to an unsupported regional variant and confirm closest-language fallback is acceptable.
- Repeat after an app-language change if your game offers an in-app picker that can disagree with the device language.
Document the expected language owner for unlock banners. If the platform follows device or storefront language while your game follows an in-app picker, say so in QA notes instead of filing false localization bugs.
Coordinate writers, engineers, and release owners
Assign one owner for console metadata and one owner for client verification. Writers need character guidance for pre-earned versus earned copy. Engineers need stable IDs and description-loading hooks. Release owners need evidence that review or publish completed before store rollout. Put those checks on the same checklist that already covers screenshots and release notes so gaming metadata cannot skip the train.
Where this fits in the broader localization program
This workflow does not replace store listing localization, in-app purchase metadata, or ordinary string catalogs. Those remain necessary. The published in-app purchase metadata article covers store product text at checkout. The live iOS localization guide covers Xcode resources and App Store metadata. Achievement and leaderboard localization sits beside them as social-gaming metadata with its own IDs, artwork, CSV imports, and review or publish gates.
Add that surface to the same release train: inventory, translate, submit or publish, load descriptions in custom UI, and verify unlock paths before calling the multilingual release done.
Achievement banners are not the only system surface that falls back to English; see how to localize app push notifications.
