关于 roblox-localization
面向 Roblox 开发者的本地化技能,适用于实现翻译、多语言内容和地区检测。内容涵盖内置本地化服务、自动与手动翻译,以及 Studio 中的翻译表工作流程。
主要功能
- 01检测玩家与系统区域设置
- 02配置翻译表
- 03设置 GUI 自动翻译规则
- 04使用 Translator 手动翻译
- 05检测国家和地区
- 06编辑 CSV 表并测试区域设置
适用场景
- 01为 GUI 文本添加翻译
- 02按玩家区域设置选择内容
- 03展示地区专属优惠
- 04编辑并测试翻译表
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tabooharmony/ roblox-brain --skill roblox-localization安装后在 Claude Code 中输入/roblox-localization确认已加载。
附带文件references/full.md
详细介绍
Roblox 本地化
何时加载
在实现多语言支持、翻译系统、本地化内容或地区检测时加载。涵盖 LocalizationService、LocalizationTable、自动翻译以及国家/地区检测。
快速参考
区域设置检测
player.LocaleId:玩家为其 Roblox 账户设置的区域设置(例如en-us、pt-br、ja-jp)LocalizationService.RobloxLocaleId:核心/内部功能使用的区域设置LocalizationService.SystemLocaleId:玩家操作系统的区域设置LocalizationService:GetCountryRegionForPlayerAsync(player):通过 IP 地理位置获取的国家/地区代码(例如US、BR、JP)
翻译表
LocalizationTable:存储翻译条目(键 → 各区域设置对应的译文)- 将
LocalizationTable设为LocalizationService的子对象,以启用自动翻译 - 在 GUI 对象上设置
GuiBase2d.RootLocalizationTable,为各元素指定翻译表 - Studio 可通过 Localization Tools 插件自动提取字符串并放入表中
自动翻译
- 自动翻译要求 GUI 及其所有祖先对象的
AutoLocalize = true,且存在匹配的表条目 - 正常设置
TextLabel.Text;引擎会将其替换为玩家区域设置对应的译文 - 缺少译文时会回退到源文本
手动翻译
local translator = LocalizationService:GetTranslatorForPlayerAsync(player)
local translated = translator:Translate(game, "Welcome!")
local formatted = translator:FormatByKey("coins_count", {count})
国家/地区检测
local country = LocalizationService:GetCountryRegionForPlayerAsync(player)
if country == "US" then -- USD pricing
-- US offer
elseif country == "GB" then
-- UK offer
end
关键规则
GetCountryRegionForPlayerAsync是异步方法;请用 pcall 包装,调用可能失败GetTranslatorForPlayerAsync是异步方法;请缓存翻译器- 设置
RootLocalizationTable以选择翻译表;确保祖先链上的AutoLocalize始终为 true - 翻译条目包含
SourceText、SourceLocaleId,以及en-us、pt-br等列 - 可在 Studio 中将表导出为 CSV,批量编辑后再导入
- 使用 Studio 的区域设置模拟器,通过不同的区域设置进行测试
常见问题
- 并非支持所有区域设置;请检查
player.LocaleId - 自动翻译不适用于非 GUI 文本;请使用手动翻译
Translator:Translate GetCountryRegionForPlayerAsync使用 IP 地理位置,因此 VPN 会导致结果不准确- 缺少条目时会静默回退到源文本
需要更多细节? 加载 references/full.md。
评论
支持 Markdown