Translator

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
未复制

翻译者的角色是为视图玩家制造/返回本地化的文本。它可以用于从 LocalizationTable 中恢复显示准备好的本地化文本。源 Translator.LocaleId 属性、搜索的表集和搜索顺序由创建 Translator 实例时使用的方法决定。

对于一个翻译机的输入是原始语言串和上下文,在这些上下文中,所有或部分上下文都可以用于找到源字符串的更精确/情况的翻译。

翻译机还可以用于制造基于目标语言的翻译字符串,其中包括插入(数据替换),可能根据目标语言的顺序更改。

概要

属性

  • 只读
    未复制
    读取并联

    翻译后的字符串的本地。

方法

属性

LocaleId

只读
未复制
读取并联

从此表中翻译的字符串的 Roblox 本地语言,例如 “en-us” 或 “es-es”。默认为 “en-us”。

方法

FormatByKey

根据其 LocalizationTable 本地语言版本在 Translator 中返回本地化文本字符串,并按键返回键。 可选的 args 表用于填写格式参数。

注意,此方法在以下情况下将抛出错误:

  • 如果 LocalizationTables 中的任何值都不包含给定的钥键。
  • 如果 格式串 为钥匙使用数量参数和 参数 不是一个数组。
  • 如果 格式串 使用了名称参数和 参数 不是键值对表。
  • 如果 参数值为参数格式串使用的 格式字符串 中缺少值。

请参阅使用脚本本地化了解此功能的更多细节和使用示例。

参数

key: string

钥匙 值用于查找和翻译。

args: Variant

如果源文本和翻译包含格式字符串,将提供。将是一个 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>
BCDE

在这些情况下,第一个参数到这个函数 — 游戏中的有效 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>
BCDE

然后,在脚本中调用此函数时,将同一个 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

参数

context: Instance

一个有效的游戏内 Instance 用于作为上下文覆盖使用。注意,此参数可以是任意的,例如 game ,如果您不需要上下文覆盖。

text: string

源 文本可以查找和翻译。


返回

翻译的文本。

活动