翻译者的角色是为视图玩家制造/返回本地化的文本。它可以用于从 LocalizationTable 中恢复显示准备好的本地化文本。源 Translator.LocaleId 属性、搜索的表集和搜索顺序由创建 Translator 实例时使用的方法决定。
对于一个翻译机的输入是原始语言串和上下文,在这些上下文中,所有或部分上下文都可以用于找到源字符串的更精确/情况的翻译。
翻译机还可以用于制造基于目标语言的翻译字符串,其中包括插入(数据替换),可能根据目标语言的顺序更改。
概要
方法
根据其 Class.Translator 本地语言,返回 Class.LocalizationTable 中的本地文本字键串。
根据源地图查找,返回 LocalizationTable 中的本地化文本字符串,其 Translator 地区。
属性
方法
FormatByKey
根据其 LocalizationTable 本地语言版本在 Translator 中返回本地化文本字符串,并按键返回键。 可选的 args 表用于填写格式参数。
注意,此方法在以下情况下将抛出错误:
- 如果 LocalizationTables 中的任何值都不包含给定的钥键。
- 如果 格式串 为钥匙使用数量参数和 参数 不是一个数组。
- 如果 格式串 使用了名称参数和 参数 不是键值对表。
- 如果 参数值为参数格式串使用的 格式字符串 中缺少值。
请参阅使用脚本本地化了解此功能的更多细节和使用示例。
参数
钥匙 值用于查找和翻译。
如果源文本和翻译包含格式字符串,将提供。将是一个 Lua 表的值 或 键值对,取决于格式字符串是否为数字或命名。
返回
Translate
根据其 LocalizationTable 本地语言的地区,返回 Translator 中的本地化文本字符串。该字符串将在提供的对象的上下文中。
请参阅使用脚本本地化了解此功能的更多细节和使用示例。
上下文覆盖
在某些情况下,重复源 源 字符串可能会在其他语言中有完全不同的翻译。例如,英语 noun “屏幕” 可以指示 both a 电脑屏幕 和 窗口屏幕,但西班牙语 noun “翻译” 完全不同:
<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>
一 | B | C | D | E |
在这些情况下,第一个参数到这个函数 — 游戏中的有效 Instance — 可以用作 “连接器” ,当多个 GUI 对象使用相同的源字符串。 要实现此功能,请指定 “路径” 到您想要覆盖为 Instance 的翻译数据的 上下文 。
<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>
一 | B | C | D | E |
然后,在脚本中调用此函数时,将同一个 Instance 作为第一个参数,并在第二个参数后跟随源 LookUpText 作为第二个参数:
local LocalizationService = game:GetService("LocalizationService")
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForPlayerAsync(game.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
参数
源 文本可以查找和翻译。
返回
翻译的文本。