体验内语言切换器(即将推出)的本地化API更新

体验内语言切换器(即将推出)的本地化API更新

各位开发者:

大家好!我们很高兴地宣布,我们将在未来几周内推出一个能够让用户在体验中更改语言设置的更新。玩家可以使用体验内的菜单切换语言。

当玩家在体验中切换语言时,任何将AutoLocalize属性设置为True的图形用户界面对象都会自动翻译。但是,通过脚本(使用本地化API)执行的任何本地化都需要更新,以便在用户更改其语言时做出正确反应。

您需要检测 GetTranslatorForPlayerAsync返回Translator 实例的 LocaleID 中的更改。可以使用 GetPropertyChangedSignal 完成事件,该事件可以调用侦听器,根据需要更新翻译。

local LocalizationService = game:GetService("LocalizationService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
- 若 GetTranslatorForPlayerAsync 没有出错,将返回玩家当前本地设置的翻译器
local res, translator = pcall( function ()
return LocalizationService:GetTranslatorForPlayerAsync(player)
end )
- 检测到玩家本地设置 ID 发生变化时调用的函数
local function OnLocaleIdChanged ()
print("Translator has changed to: " .. translator.LocaleId)
- 您应在此处将任何使用本地化 API 翻译的资产重新翻译为玩家的新语言
end
- 检查 GetTranslatorForPlayerAsync 是否成功
if res then
- 如成功,使用翻译器翻译此处的资产
- 留意 玩家本地设置 ID 的更改
translator:GetPropertyChangedSignal("LocaleId"):Connect(OnLocaleIdChanged)
else
print('GetTranslatorForPlayerAsync failed: ' .. translator)
end

更多实施细节,请参阅我们文档中的“对用户切换语言的反应”。

这些代码更改不会中断任何现有功能,但在语言切换器模拟在工作室中可用之前,您将无法测试侦听器功能。 我们计划在几周内将模拟功能与该功能一起推出。

如有任何反馈或疑问,欢迎在评论区提出!

谢谢。

关于我们    加入我们    条款    隐私政策
©2021 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。
粤ICP备20013629号