翻譯者的角色是為檢視玩家製造/返回本地化的文字。它可以用來從 LocalizationTable 中取回檢視器準備好的本地化文字。源 Translator.LocaleId 的 Class.LocalizationTable 的文字,搜搜尋的檢視器範圍,以及搜索的順序由 1>Class.Trans
對翻譯機的輸入是原始開發語言串和一個上下文,在此上下文中,可以使用任何或部分的上下文來尋找對源字串更精準/情況的翻譯。
翻譯機也可以用來製作基於目標語言的翻譯字串,並且可以用插入(數據替換)來變更順序。
概要
方法
以 LocalizationTable 基於它的 Translator 語言區域,按鍵返回。
以源查找的方式返回 LocalizationTable 中的本地文字串,根據它的 Translator 語言區域。
屬性
方法
FormatByKey
以 LocalizationTable 基於它的 Translator 語言區域,按鍵返回本地化的文字串。 可選的 args 表用於填寫格式參數。
注意,此方法在以下情況下會發生錯誤:
- 如果沒有 LocalizationTables 可用的值,這 Translator 包含給定的鑰鍵的值。
- 如果 格式串 對鍵使用數值參數和 參數和值 不是陣列。
- 如果 格式串 使用名稱參數和 參數和值 不是表鑰匙值對。
- 如果 格式串 中的參數沒有可用的值。
請參閱 使用指令碼建立本功能的本地化說明 以取得更多詳情和使用範例。
參數
搜尋和翻譯的 鑰匙值 。
如果來源文字和翻譯包含格式字串,則提供。會是 Lua 表值 或 鍵值雙子,取決於格式字串是否為數字或名稱。
返回
Translate
以其 LocalizationTable 語言的本地文字串作為基礎,在 Translator 中返回。此文字串將在提供的對物件的上下文中。
請參閱 使用指令碼建立本功能的本地化說明 以取得更多詳情和使用範例。
上下文覆蓋
在某些情況下,重複 來源 字串可能會在其他語言中有完全不同的翻譯。例如,英文 noun "Screen" 可以指示兩個電腦螢幕和一個窗戶螢幕,但西班牙語的翻譯是完全不同的:
<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 |
在這些情況下,第一個 argument 到這個函數 — 遊戲中的 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 作為第一個引數,然後在第二個參數後的 Source 查找文字作為第二個引數:
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
參數
來源 文字可以查找和翻譯。
返回
翻譯的文字。