Translator

顯示已棄用項目

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

無法建立
未複製

翻譯器的角色是製造/返回為觀賞玩家本地化的字串。它可以用來從 LocalizationTable 檢索準備顯示的本地化文字。Translator.LocaleId 屬性的來源、它將搜尋的表格集,以及搜尋的順序取決於使用哪種方法來創建翻譯器實例。

翻譯器的輸入是原始開發語言字串和上下文,其中上下文的全部或部分可以用來找到來源字串的更準確/情境翻譯。

翻譯器還可以用來製造包含插入(資料替換)的翻譯字串,這些插入可能根據目標語言而改變順序。

概要

屬性

  • 唯讀
    未複製
    平行讀取

    翻譯字串的區域設定。

方法

屬性

LocaleId

唯讀
未複製
平行讀取

此表所輸出的翻譯字串的Roblox區域設定,例如 "en-us" 或 "es-es"。預設為 "en-us"。

方法

FormatByKey

根據其 Translator 區域設定,通過鍵值返回 LocalizationTable 中的本地化文字字串。可選的 args 表用於填充匹配文字條目的格式參數。

注意,這個方法在以下情況下會引發錯誤:

詳情及此功能的使用示例,請參見使用腳本進行本地化

參數

key: string

要查找和翻譯的 Key 值。

args: Variant

如果 Source 文字和翻譯包含格式字串,則需要提供。將是一個Luau表的值 鍵值對,根據格式字串是編號的還是命名的。


返回

Translate

根據其 Translator 區域設定,通過來源查找返回 LocalizationTable 中的本地化文字字串。此字串將基於提供的Source文字,在提供的物件的上下文中。

詳情及此功能的使用示例,請參見使用腳本進行本地化

上下文覆蓋

在某些情況下,重複的 Source 字串在其他語言中可能有完全不同的翻譯。例如,英語名詞 "Screen" 可以表示電腦螢幕和窗口屏幕,但西班牙語的翻譯完全不同:

ABCDE
KeyContextSourceExamplees
ScreenPantalla
ScreenMosquitero

在這些情況下,此功能的第一個參數 — 一個有效的遊戲內 Instance — 可以用作 "平局打破者",當多個 GUI 物件使用相同的來源字串時。要實施這一點,請指定要覆蓋的 Instance 的"路徑"作為翻譯數據的 Context 值:

ABCDE
KeyContextSourceExamplees
workspace.ComputerScreen.SurfaceGui.TextLabelScreenPantalla
ScreenMosquitero

然後,在腳本中調用此功能時,將同樣的 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

參數

context: Instance

用於上下文覆蓋的有效遊戲內 Instance,如上所述。注意,此參數可以是任意的,例如 game,如果您不需要上下文覆蓋。

text: string

要查找和翻譯的 Source 文字。


返回

翻譯過的文字。

活動