agentsclimarketplace

Roblox localization

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

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

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.

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 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.

What ships with it: 1 file

6.9 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. 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.