Translator

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

無法建立
未複製

翻譯者的角色是製造/返回為視覺玩家本地化的字串。它可以用來從 LocalizationTable 中恢復顯示準備的本地化文字。Translator.LocaleId 屬性的來源、將搜尋的表集和將在哪裡搜尋它們的順序取決於使用了哪種方法來創建翻譯器實個體、實例。

翻譯機的輸入是原始開發語言字串和一個上下文,在該上下文中所有或部分的上下文都可以用來找到源字串的更精確/情況翻譯。

翻譯者也可用於製造包含插入(數據替換)的翻譯字串,可能根據目標語言變更順序。

概要

方法

屬性

LocaleId

唯讀
未複製
平行讀取

輸出從此表翻譯的輸入字串的 Roblox 本地,例如 "en-us" 或 "es-es"。默認為 "en-us"。

方法

FormatByKey

以鑰匙返回本地化的文字字串在 LocalizationTable 基於其 Translator 本地,通過鍵匙。可選擇的 args 表用於填充匹配的文字輸入中的格式參數。

請注意,此方法在下列情況下會發生錯誤:

請參閱 使用腳本進行本地化 以獲得更多此功能的詳情和使用示例。

參數

key: string

要查找和翻譯的 鑰匙 值。

預設值:""
args: Variant

如果 來源 文字和翻譯包含格式字串,將提供。將是 Luau 表的值 鑰匙值對,取決於格式字串是否被命名或編號。

預設值:""

返回

Translate

返回本地化的文字字串在 LocalizationTable 基於其 Translator 本地。這個字串會在提供的對物件的上下文中,給予提供的 來源 文字。

請參閱 使用腳本進行本地化 以獲得更多此功能的詳情和使用示例。

上下文覆蓋

在某些情況下,重複的 來源 字串可能在其他語言中有完全不同的翻譯。例如,英文單詞「螢幕」可以指示一個電腦螢幕和一個窗口螢幕,但西班牙語翻譯完全不同:


<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—可以用來作為多個 GUI 對象使用相同來源字串時的"分解器"。要實現這一點,指定要覆蓋的 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

要查找和翻譯的 來源 文字。

預設值:""

返回

翻譯的文字。

活動