翻譯器的角色是製造/返回為觀賞玩家本地化的字串。它可以用來從 LocalizationTable 檢索準備顯示的本地化文字。Translator.LocaleId 屬性的來源、它將搜尋的表格集,以及搜尋的順序取決於使用哪種方法來創建翻譯器實例。
翻譯器的輸入是原始開發語言字串和上下文,其中上下文的全部或部分可以用來找到來源字串的更準確/情境翻譯。
翻譯器還可以用來製造包含插入(資料替換)的翻譯字串,這些插入可能根據目標語言而改變順序。
概要
方法
根據其 Translator 區域設定,通過鍵值返回 LocalizationTable 中的本地化文字字串。
根據其 Translator 區域設定,通過來源查找返回 LocalizationTable 中的本地化文字字串。
屬性
方法
FormatByKey
根據其 Translator 區域設定,通過鍵值返回 LocalizationTable 中的本地化文字字串。可選的 args 表用於填充匹配文字條目的格式參數。
注意,這個方法在以下情況下會引發錯誤:
- 如果沒有 LocalizationTables 可用於此 Translator 包含該鍵的值。
- 如果該鍵的格式字串使用編號的參數,而 args 不是陣列。
- 如果該鍵的格式字串使用命名參數,而 args 不是鍵值對的表。
- 如果 args 缺少在匹配的格式字串中使用的參數值。
詳情及此功能的使用示例,請參見使用腳本進行本地化。
參數
要查找和翻譯的 Key 值。
如果 Source 文字和翻譯包含格式字串,則需要提供。將是一個Luau表的值 或 鍵值對,根據格式字串是編號的還是命名的。
返回
Translate
根據其 Translator 區域設定,通過來源查找返回 LocalizationTable 中的本地化文字字串。此字串將基於提供的Source文字,在提供的物件的上下文中。
詳情及此功能的使用示例,請參見使用腳本進行本地化。
上下文覆蓋
在某些情況下,重複的 Source 字串在其他語言中可能有完全不同的翻譯。例如,英語名詞 "Screen" 可以表示電腦螢幕和窗口屏幕,但西班牙語的翻譯完全不同:
A | B | C | D | E |
Key | Context | Source | Example | es |
Screen | Pantalla | |||
Screen | Mosquitero | |||
在這些情況下,此功能的第一個參數 — 一個有效的遊戲內 Instance — 可以用作 "平局打破者",當多個 GUI 物件使用相同的來源字串時。要實施這一點,請指定要覆蓋的 Instance 的"路徑"作為翻譯數據的 Context 值:
A | B | C | D | E |
Key | Context | Source | Example | es |
workspace.ComputerScreen.SurfaceGui.TextLabel | Screen | Pantalla | ||
Screen | Mosquitero | |||
然後,在腳本中調用此功能時,將同樣的 Instance 作為第一個參數,後跟 Source 查找文本作為第二個參數:
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("無法為玩家加載翻譯器!")
end
參數
要查找和翻譯的 Source 文字。
返回
翻譯過的文字。