Roblox localization
Use when implementing Roblox multi-language support, translation tables, auto-translation, locale-specific content, or region detection.From its SKILL.md
npx -y skills add TabooHarmony/roblox-brain --skill roblox-localizationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.9 KB, 561 tokens by cl100k_base, as published. Nobody here has run it
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
- Roblox auto-translates GUI text if
RootLocalizationTableis set and entries exist - 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:FormatTranslate(game, "Coins: {0}", {count})
Country/Region Detection
local country = LocalizationService:GetCountryRegionForPlayerAsync(player)
if country == "US" then -- USD pricing
elseif country == "GB" then -- GBP pricing end
Key Rules
GetCountryRegionForPlayerAsyncis async — wrap in pcall, may failGetTranslatorForPlayerAsyncis async — cache the translator- Auto-translation only works on GUI elements with
RootLocalizationTableset - 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 — VPNs give wrong results- Missing entries fall back to source text silently
Need more detail? Load references/full.md.
What ships with it: 1 file
6.9 KB alongside SKILL.md
references/
- full.md6.9 KB