roblox-localization
Use when implementing Roblox multi-language support, translation tables, auto-translation, locale-specific content, or region detection.
By tabooharmony · 391 installs
npx skills add tabooharmony/roblox-brain --skill roblox-localization
Source repository · Upstream listing
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 features
LocalizationService.SystemLocaleId : player's OS locale
LocalizationService:GetCountryRegionForPlayerAsync(player) : country code from IP geolocation (e.g. US , BR , JP )
Translation Tables
LocalizationTable : stores translation entries (key → translations per locale)
Parent LocalizationTable under LocalizationService for auto translation
Set GuiBase2d.RootLocalizationTable on 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 = true on the GUI and its ancestors, plus a matching table entry
Set TextLabel.Text normally; the engine replaces it with the translated string for the player's locale
Missing translations fall back to the source text
Manual Translation
Country/Region Detection
Key Rules
GetCountryRegionForPlayerAsync is async; wrap in pcall, may fail
GetTranslatorForPlayerAsync is async; cache the translator
Set RootLocalizationTable to choose a table; keep AutoLocalize true through the ancestor chain
Translation entries: SourceText , SourceLocaleId , then en 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
GetCountryRegionForPlayerAsync uses IP geolocation, so VPNs give wrong results
Missing entries fall back to source text silently
Need more detail? Load references/full.md .