翻译者的角色是制造/返回为观看玩家本地化的字符串。它可以用来从 LocalizationTable 中检索准备显示的本地化文本。Translator.LocaleId 属性的来源、它将搜索的表集和它将按顺序搜索它们的方法取决于用于创建翻译器实例的方法。
翻译机的输入是原始开发语言字符串和一个上下文,在这个上下文中,所有或部分的上下文都可以用来找到源字符串的更精确/情境翻译。
翻译机还可用于制造带插入(数据替换)的翻译字符串,可能根据目标语言更改顺序。
概要
方法
返回基于其 本地语言的本地化文本字符串,按键。
返回基于其本地 语言的本地化文本字符串,通过源查找。
属性
方法
FormatByKey
返回基于其 本地语言的本地化文本字符串,按键。可选的 args 表用于填充匹配的文本输入的格式参数。
请注意,在以下情况下,该方法将在错误中投掷:
- 如果没有任何 LocalizationTables 可用于此 Translator 包含给定键的值,则将包含一个空值。
- 如果键的 格式字符串 使用数字参数和 args 不是数组。
- 如果 格式字符串 使用了命名参数,且 args 不是键值对表,
- 如果 args 缺少用于匹配 格式字符串 的参数值。
请参阅使用脚本进行本地化获取更多详情和该函数的使用示例。
参数
要查找和翻译的 钥匙 值。
如果 来源 文本和翻译包含格式字符串,将提供。将是 Luau 表的值 或 键-值对,取决于格式字符串是否编号或命名。
返回
Translate
返回基于其本地 语言的本地化文本字符串。这个字符串将在提供的对象的上下文中,给予提供的 来源 文本。
请参阅使用脚本进行本地化获取更多详情和该函数的使用示例。
上下文覆盖
在某些情况下,重复的 来源 字符串可能在其他语言中拥有完全不同的翻译。例如,英语单词“屏幕”可以指示一个计算机屏幕和一个窗口屏幕,但西班牙语翻译完全不同:
<td width="16%">B</td><td width="18%">C</td><td width="12%">D</td><td width="18%">E</td></tr><tr><td>关键</td><td>上下文</td><td><b>来源</b></td><td>例子</td><td><b>es</b></td></tr><tr><td /><td /><td>屏幕</td><td /><td>屏幕</td></tr><tr><td /><td /><td>屏幕</td><td /><td>蚊子杀手</td></tr><tr><td /><td /><td /><td /><td /></tr></tbody>
A |
在这些情况下,这个函数的第一个参数 — 一个有效的游戏内 Instance — 可以用作“分解者”,当多个图形用户界面对象使用相同的源字符串时。要实现这一点,指定您想要覆盖为翻译数据的 Instance 的“路径”到 上下文 值:
<td width="36%">B</td><td width="18%">C</td><td width="12%">D</td><td width="18%">E</td></tr><tr><td>关键</td><td><b>上下文</b></td><td>来源</td><td>例子</td><td>es</td></tr><tr><td /><td>工作区。ComputerScreen.SurfaceGui.TextLabel</td><td>屏幕</td><td /><td>屏幕</td></tr><tr><td /><td /><td>屏幕</td><td /><td>蚊子杀手</td></tr><tr><td /><td /><td /><td /><td /></tr></tbody>
A |
然后,在脚本中调用此函数时,传递与第一个参数相同的 Instance 作为第二个参数,随后是 来源 查找文本作为第二个参数:
local Players = game:GetService("Players")
local LocalizationService = game:GetService("LocalizationService")
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForPlayerAsync(Players.LocalPlayer)
end)
if success then
local trans = translator:Translate(workspace.ComputerScreen.SurfaceGui.TextLabel, "Screen")
print(trans)
else
warn("Cannot load translator for player!")
end
参数
来自 源 的文本进行查找和翻译。
返回
翻译的文本。