About roblox-localization
A Roblox localization skill for developers implementing translations, locale-specific content, and region detection. It covers built-in localization services, automatic and manual translation, and Studio workflows for translation tables.
Key features
- 01Player and system locale detection
- 02Translation table setup
- 03GUI auto-translation rules
- 04Manual translation with Translator
- 05Country and region detection
- 06CSV table editing and locale testing
Use cases
- 01Adding translated GUI text
- 02Choosing content by player locale
- 03Displaying region-specific offers
- 04Editing and testing translation tables
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ tabooharmony/ roblox-brain --skill roblox-localizationAfter installing, type/roblox-localizationin Claude Code to confirm it loaded.
Bundled filesreferences/full.md
Details
From the project READMERoblox 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
end
Key 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.
Comments
Markdown supported