Translator

显示已弃用

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

无法创建
未复制

翻译者的角色是制造/返回为观看玩家本地化的字符串。它可以用来从 LocalizationTable 中检索准备显示的本地化文本。Translator.LocaleId 属性的来源、它将搜索的表集和它将按顺序搜索它们的方法取决于用于创建翻译器实例的方法。

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

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

概要

属性

  • 只读
    未复制
    读取并联

    翻译的字符串的本地。

方法

属性

LocaleId

只读
未复制
读取并联

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

方法

FormatByKey

返回基于其 本地语言的本地化文本字符串,按键。可选的 args 表用于填充匹配的文本输入的格式参数。

请注意,在以下情况下,该方法将在错误中投掷:

请参阅使用脚本进行本地化获取更多详情和该函数的使用示例。

参数

key: string

要查找和翻译的 钥匙 值。

默认值:""
args: Variant

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

参数

context: Instance

一个有效的游戏内 Instance 可用于上述上下文替换。请注意,这个参数可以是任意的,例如 game , 如果你不需要上下文覆盖。

默认值:""
text: string

来自 的文本进行查找和翻译。

默认值:""

返回

翻译的文本。

活动