Translator

顯示已棄用項目

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

無法建立
未複製

翻譯者的角色是為檢視玩家製造/返回本地化的文字。它可以用來從 LocalizationTable 中取回檢視器準備好的本地化文字。源 Translator.LocaleId 的 Class.LocalizationTable 的文字,搜搜尋的檢視器範圍,以及搜索的順序由 1>Class.Trans

對翻譯機的輸入是原始開發語言串和一個上下文,在此上下文中,可以使用任何或部分的上下文來尋找對源字串更精準/情況的翻譯。

翻譯機也可以用來製作基於目標語言的翻譯字串,並且可以用插入(數據替換)來變更順序。

概要

屬性

  • 唯讀
    未複製
    平行讀取

    翻譯成的字符串的語言。

方法

屬性

LocaleId

唯讀
未複製
平行讀取

這個表中的輸出翻譯字串的 Roblox 語言區域,例如 "en-us" 或 "es-es"。 預設為 "en-us"。

方法

FormatByKey

LocalizationTable 基於它的 Translator 語言區域,按鍵返回本地化的文字串。 可選的 args 表用於填寫格式參數。

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

  • 如果沒有 LocalizationTables 可用的值,這 Translator 包含給定的鑰鍵的值。
  • 如果 格式串 對鍵使用數值參數和 參數和值 不是陣列。
  • 如果 格式串 使用名稱參數和 參數和值 不是表鑰匙值對。
  • 如果 格式串 中的參數沒有可用的值。

請參閱 使用指令碼建立本功能的本地化說明 以取得更多詳情和使用範例。

參數

key: string

搜尋和翻譯的 鑰匙值

args: Variant

如果來源文字和翻譯包含格式字串,則提供。會是 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>
一個BCDE

在這些情況下,第一個 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>
一個BCDE

然後,在指令碼中呼叫此函數時,將同一個 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

參數

context: Instance

一個有效的遊戲內 Instance 可以用來作為上述的上下文覆蓋使用。注意,此參數可以隨意,例如 game ,如果您不需要上下文覆寫。

text: string

來源 文字可以查找和翻譯。


返回

翻譯的文字。

活動