跳至主要内容

本地化設定

本指南將說明如何在 Unreal Engine 中讓文字可本地化,以便 AI Localization Automator 能夠發現並翻譯這些文字。

已經熟悉 UE 本地化了嗎?

如果您已經熟悉 Unreal Engine 的本地化流程,並且有設定 FText、本地化目標以及收集文字的經驗,您可以安全地跳過此頁面,直接前往 開始使用

此頁面涵蓋了使用任何翻譯工具(包括 AI Localization Automator)之前所需的基本 UE 本地化設定。

剛接觸 UE 本地化?

如果您對 Unreal Engine 的本地化系統完全陌生,我們強烈建議您先觀看這個簡短的影片教學:Unreal Engine 5 本地化教學

觀看影片後,此頁面涵蓋的大部分主題將會變得清晰易懂,您很可能可以跳過此頁面,直接前往 開始使用

以下指南涵蓋了通用的 Unreal Engine 本地化設定和工作流程 - 這些步驟適用於 UE 中的任何翻譯專案,而不僅僅是 AI 驅動的翻譯。這是關於基本本地化概念和設定流程的參考資料。

了解可本地化的文字

為了讓 AI Localization Automator 能夠運作,您需要在專案中將 FText 屬性標記為可本地化。此插件透過 UE 的本地化系統來發現文字,因此必須先正確設定文字。

FText 與 FString 與 FName

在 Unreal Engine 中,只有 FText(在 Blueprints 中為 Text)可以被本地化:

  • FText:可本地化,支援豐富格式,用於面向使用者的文字
  • FString:不可本地化,用於內部資料和檔案路徑
  • FName:不可本地化,用於識別碼和鍵值

在 Blueprints 中讓文字可本地化

1. 建立 FText 變數

在您的 Blueprint 類別中:

  1. 新增 FText 變數
    • 開啟您的 Blueprint 類別
    • 新增一個類型為 Text (FText) 的新變數

  1. 設定預設值
    • 在變數詳細資訊中,設定您的預設文字值
    • 這將成為您用於翻譯的原始文字

  1. 啟用本地化
    • 點擊位於文字內容右側的旗標圖示
    • 在開啟的本地化視窗中,勾選「Localize」核取方塊 - 這一步至關重要!
    • 可選擇性地設定自訂的 KeyNamespace 以便組織管理

2. FText 的使用場景

一旦您擁有可本地化的 FText 變數,它們就可以在整個 Unreal Engine 生態系統中使用,包括:UMG 小工具、HUD 類別、用於 UI 訊息的 GameMode/GameState、用於互動提示的 Actor 元件、對話系統、輸入動作名稱、成就/獎盃描述、存檔顯示文字、控制台指令說明文字、編輯器工具,以及任何顯示面向使用者內容的自訂 Blueprint 或 C++ 系統。

在 C++ 中讓文字可本地化

1. 使用 LOCTEXT 巨集

對於 C++ 中的靜態文字:

// At the top of your file
#define LOCTEXT_NAMESPACE "MyGameUI"

// Create localizable text
FText WelcomeText = LOCTEXT("WelcomeMessage", "Welcome to the game!");
FText ButtonText = LOCTEXT("StartButton", "Start Game");

// At the end of your file
#undef LOCTEXT_NAMESPACE

2. 使用 NSLOCTEXT 處理特定命名空間

// For text with custom namespace/key
FText ScoreText = NSLOCTEXT("GameUI", "ScoreLabel", "Score: {0}");
FText HealthText = NSLOCTEXT("GameUI", "HealthDisplay", "Health");

3. FText 屬性在類別中

UCLASS()
class MYGAME_API UMyUserWidget : public UUserWidget
{
GENERATED_BODY()

public:
// Localizable text property
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Localization")
FText DisplayText;

// Function returning localizable text
UFUNCTION(BlueprintCallable)
FText GetWelcomeMessage() const
{
return LOCTEXT("Welcome", "Welcome, player!");
}
};

設定本地化目標

1. 建立本地化目標

  1. 開啟 Localization Dashboard(工具 → Localization Dashboard)
  2. 預設情況下,應該已有一個 Game 目標可用於翻譯文字
  3. 如果沒有 Game 目標,請點擊 「Add New Target」,輸入 「Game」 作為名稱,並選擇 Game 作為 Loading Policy

2. 設定收集設定

  1. 在儀表板中選擇你的目標
  2. 前往 Game 面板中的 「Gather Text」 區段

針對 Blueprint 內容:

  1. 開啟 「Gather from Packages」 並展開它
  2. 「Include Path Wildcards」 中,選取包含可本地化文字資產的目錄

針對 C++ 內容:

  1. 開啟 「Gather from Text Files」 並展開它
  2. 「Search Directories」 中,提供包含原始可本地化文字的 C++ 程式碼目錄

還有許多其他可用參數,例如 Exclude Path WildcardsFile Extensions 以及其他選項,可讓你微調系統搜尋可本地化文字的方式。

3. 新增目標語言

  1. 在 Localization Dashboard 中,選取你的目標
  2. 點擊 「Add New Language」 按鈕
  3. 從下拉選單中選擇單一語言(例如:西班牙文、法文、德文)
  4. 針對每個要翻譯的目標語言重複此流程
  5. 確保使用語言清單左側的單選按鈕,將你的原生文化標記為來源語言(預設為英文)

4. 收集文本

  1. 在目标中点击 “收集文本” 按钮
  2. 等待收集过程完成
  3. 过程结束后点击 “确定” 按钮
  4. 确认文本条目出现在 “字数统计” 列中

5. 编辑本地化内容

文本收集完成后,您现在可以手动编辑和添加本地化内容:

  1. 点击编辑按钮(第一个按钮),位于每个目标语言的操作列中
  2. 这将打开本地化编辑器,您可以在其中手动翻译每种语言的单词和短语
  3. 出于测试目的,您可以手动添加自己的测试本地化内容,以验证系统是否正常工作
自动AI翻译

AI Localization Automator插件将使用AI提供商自动处理此翻译过程。有关自动AI翻译的详细信息,请参阅入门指南

6. 编译文本

添加本地化内容后(无论是手动添加还是通过AI Localization Automator进行,如您的首次翻译中所述):

  1. 点击本地化目标中的“编译文本”按钮
  2. 等待编译过程完成 - 类似于收集文本操作
  3. 编译完成后,翻译后的文本应可用并在您的项目中可见
  4. 您现在可以使用下面描述的方法测试您的本地化内容

測試本地化設定

有幾種不同的方式可以測試您的本地化設定。以下是最常用的方法:

方法一:編輯器偏好設定

  1. 前往 編輯器偏好設定 → 地區與語言
  2. 「預覽遊戲語言」 屬性中,選擇您要預覽的語言
  3. 注意:如果語言清單遺失,這可能是常見的 UE 錯誤,重新啟動編輯器即可解決

方法二:UMG 預覽

  1. UMG 編輯器 中,當您想要預覽 UI 小工具中的翻譯時
  2. 在預覽小工具的右上角區域,有一個選項可以選擇用於預覽本地化的語言

準備好進行 AI 翻譯

一旦您完成了以下步驟:

  • ✅ 專案中包含可本地化的 FText 內容
  • ✅ 已正確配置名為「Game」的本地化目標
  • ✅ 使用正確的收集設定成功收集了原始文字
  • ✅ 已新增用於翻譯的目標語言
  • ✅ 透過測試驗證了您的設定

您就可以開始使用 AI Localization Automator!前往 開始使用 配置您的 AI 提供者並開始翻譯。