Roblox Localization
Use when implementing Roblox multi-language support, translation tables, auto-translation, locale-specific content, or region detection.
Specification
- Skill ID
- tabooharmony/roblox-brain/roblox-localization
- Publisher
- tabooharmony
- Repository
- roblox-brain
- Installs
- 0
- Files
- 2
- Synced
- Sep 23, 2026
How to use it
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
tabooharmony/roblox-brain/roblox-localizationInstalls these files- SKILL.md
- references/full.md
What this skill tells the agent
Roblox Localization
When to Load
Load when implementing multi-language support, translation systems, locale-specific content, or region detection. Covers LocalizationService, LocalizationTable, auto-translation, and country/region detection.
Quick Reference
Locale Detection
player.LocaleId: locale the player set for their Roblox account (e.g.en-us,pt-br,ja-jp)LocalizationService.RobloxLocaleId: locale for core/internal featuresLocalizationService.SystemLocaleId: player's OS localeLocalizationService:GetCountryRegionForPlayerAsync(player): country code from IP geolocation (e.g.US,BR,JP)
Translation Tables
LocalizationTable: stores translation entries (key → translations per locale)- Parent
LocalizationTableunderLocalizationServicefor auto-translation - Set
GuiBase2d.RootLocalizationTableon GUI objects for per-element tables - Studio can auto-extract strings into a table via the Localization Tools plugin
Auto-Translation
- Auto-translation requires
AutoLocalize = trueon the GUI and its ancestors, plus a matching table entry - Set
TextLabel.Textnormally; the engine replaces it with the translated string for the player's locale - Missing translations fall back to the source text
Manual Translation
local translator = LocalizationService:GetTranslatorForPlayerAsync(player)
local translated = translator:Translate(game, "Welcome!")
local formatted = translator:FormatByKey("coins_count", {count})Country/Region Detection
local country = LocalizationService:GetCountryRegionForPlayerAsync(player)
if country == "US" then -- USD pricing
-- US offer
elseif country == "GB" then
-- UK offer
endKey Rules
GetCountryRegionForPlayerAsyncis async; wrap in pcall, may failGetTranslatorForPlayerAsyncis async; cache the translator- Set
RootLocalizationTableto choose a table; keepAutoLocalizetrue through the ancestor chain - Translation entries:
SourceText,SourceLocaleId, thenen-us,pt-br, etc. columns - Export/import tables as CSV from Studio for bulk editing
- Test with different locales using Studio's locale simulator
Pitfalls
- Not all locales supported; check
player.LocaleId - Auto-translation does NOT work on non-GUI text; use manual
Translator:Translate GetCountryRegionForPlayerAsyncuses IP geolocation, so VPNs give wrong results- Missing entries fall back to source text silently
Need more detail? Load references/full.md.
More from tabooharmony
Use this skill in a project
Open any RiverX project, search the Skills panel for tabooharmony/roblox-brain/roblox-localization, and install it in one click.
