跳到主要内容

本地化设置

本指南将向您展示如何在虚幻引擎中使文本可本地化,以便 AI Localization Automator能够发现并翻译这些文本。

已经熟悉 UE 本地化?

如果您已经熟悉虚幻引擎的本地化流程,并且有设置 FText、本地化目标和收集文本的经验,您可以安全地跳过此页面,直接前往 入门指南

本页面涵盖了在使用任何翻译工具(包括 AI Localization Automator)之前所需的基本 UE 本地化设置。

不熟悉 UE 本地化?

如果您完全不熟悉虚幻引擎的本地化系统,我们强烈建议您先观看这个简短的视频教程:虚幻引擎 5 本地化教程

观看视频后,本页面涵盖的大多数主题将已经清晰易懂,您很可能可以跳过此页面,直接前往 入门指南

下面的指南涵盖了通用的虚幻引擎本地化设置和工作流程 - 这些步骤适用于 UE 中的任何翻译项目,而不仅仅是 AI 驱动的翻译。它是基本本地化概念和设置过程的参考。

理解可本地化文本

为了使 AI Localization Automator能够工作,您需要在项目中将 FText 属性标记为可本地化。该插件通过 UE 的本地化系统发现文本,因此必须首先正确配置文本。

FText vs FString vs FName

只有 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. 打开 本地化仪表板 (工具 → 本地化仪表板)
  2. 默认情况下,应该已经有一个可用的 Game 目标用于翻译文本
  3. 如果没有 Game 目标,点击 "添加新目标" 并输入 "Game" 作为名称,并选择 Game 作为 加载策略

2. 配置收集设置

  1. 在仪表板中选择你的目标
  2. 转到 Game 面板中的 "收集文本" 部分

对于Blueprint内容:

  1. 开启 "从包中收集" 并展开它
  2. "包含路径通配符" 中,选择包含你的可本地化文本资产的目录

对于 C++ 内容:

  1. 开启 "从文本文件中收集" 并展开它
  2. "搜索目录" 中,提供包含可本地化文本源头的 C++ 代码目录

还有许多其他可用参数,例如 排除路径通配符文件扩展名 以及其他选项,允许你微调系统搜索可本地化文本的方式。

3. 添加目标语言

  1. 在本地化仪表板中,选中你的目标
  2. 点击 "添加新语言" 按钮
  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:编辑器偏好设置

  1. 转到 编辑器偏好设置 → 区域与语言
  2. “预览游戏语言” 属性中,选择您要预览的语言
  3. 注意:如果语言列表缺失,这可能是 UE 的一个常见错误,可通过重启编辑器修复

方法 2:UMG 预览

  1. UMG 编辑器 中,当您想要在 UI 控件中预览翻译时
  2. 在预览控件的右上角部分,有一个选项可以选择用于预览本地化的语言

准备进行 AI 翻译

一旦您具备以下条件:

  • ✅ 项目中有可本地化的 FText 内容
  • ✅ 正确配置了名称为 "Game" 的本地化目标
  • ✅ 使用正确的收集设置成功收集了源文本
  • ✅ 添加了目标翻译语言
  • ✅ 通过测试验证了您的设置

您就可以使用 AI 本地化自动工具了!转到 入门指南 来配置您的 AI 提供商并开始翻译。