agentsclimarketplace

Roblox localization

Skill TabooHarmony/roblox-brain/skills/roblox-localization

Give your AI coding agent a Roblox brain. Curated skills for Roblox Studio development.

Install
npx -y skills add TabooHarmony/roblox-brain --skill roblox-localization

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 18 stars18 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when implementing Roblox multi-language support, translation tables, auto-translation, locale-specific content, or region detection.

SKILL.md

2.9 KB, 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 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

  • Roblox auto-translates GUI text if RootLocalizationTable is set and entries exist
  • 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

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

  • GetCountryRegionForPlayerAsync is async — wrap in pcall, may fail
  • GetTranslatorForPlayerAsync is async — cache the translator
  • Auto-translation only works on GUI elements with RootLocalizationTable set
  • 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 — VPNs give wrong results
  • Missing entries fall back to source text silently

Need more detail? Load references/full.md.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.