Localization FAQ and Troubleshooting

Localization FAQ and Troubleshooting

This troubleshooting guide can help you resolve specific issues around localization.

Frequently Asked Questions

What if Automatic Text Capture (ATC) isn't capturing all of the text in my game?

ATC only captures text that is encountered while your game is being played in the Roblox application (ATC does not run while playtesting in Roblox Studio). If your game contains text that doesn’t always appear during typical gameplay, like a complex NPC conversation tree, you can:

  1. Manually add entries into the localization portal and provide translations for them.
  2. Optionally disable ATC on the GUI object(s) where the translations are used and manage them via articles/utilizing localization apis|localization APIs in game.

Some game objects cannot be captured by ATC or may require special handling via scripts. The current exemptions are:

  • The default Roblox leaderboards and chat.
  • articles/intro to player tools|Items/tools owned by a player.
  • Images with embedded text (note, however, that these can be "translated" via scripting by articles/localizing non text instances|swapping images based on the player's locale).
  • articles/Badges Special Game Awards|Badge names and descriptions pulled from the platform.
  • articles/Game Passes One Time Purchases|Game Pass names and descriptions pulled from the platform.

How can I prevent Automatic Text Capture (ATC) from trying to translate a string/GUI?

If you don’t want certain GUI elements in your game to be captured and added to the portal, disable GuiBase2d/AutoLocalize|AutoLocalize for those objects. Note that disabling ATC for a parent GUI object will also disable ATC for its children (in other words, disabling it for a top-level GUI will disable it for the entire GUI).

Once GuiBase2d/AutoLocalize|AutoLocalize is disabled, you can manage translation of the object(s) via articles/utilizing localization apis|localization APIs.

What are the primary fields in the localization portal and associated spreadsheet?

Column Description
Key A custom key for implementing key-based lookups in scripts using articles/utilizing localization apis|localization APIs.
Context An Instance reference which may be used to provide context overrides.
Source The in-game source text strings gathered by automatic text capture or manual entry.
Example This is ignored by auto-localization and can be used to provide additional notes to human translators, for instance details about NPCs referenced in the text, game-specific terms that should not be translated, etc.

How can parameters and variable values in strings be identified and translated?

Source and translation strings can contain valid format strings. See the articles/localization format strings|Localization Format Strings article for details.

How can I tell what language a player is using to play my game?

You can use LocalizationService/RobloxLocaleId to read a player’s Roblox locale or fetch a Translator for their locale with LocalizationService/GetTranslatorForPlayerAsync|GetTranslatorForPlayerAsync(). Note, however, that players can change their Roblox account language setting, so the returned locale or Translator may not match their actual region/country locale.

How can I implement animated text like a "typewriter" output?

If your game uses text animation like a articles/animating text|typewriter effect, note these important tips:

  • Make scripts translate text strings before animating them.
  • Set GuiBase2d/AutoLocalize|AutoLocalize to false on GUI object(s) which use the translations.
  • Use utf8.graphemes to break up your text. A single “character” in other languages can use multiple “bytes,” so be careful how you split the string!
  • localization
  • language
  • translation
  • international