跳到主要内容

本地化设置

本指南将向您展示如何在虚幻引擎中使文本可本地化,以便 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" 复选框 - 这至关重要!
    • 可选地设置自定义 Key 和 Namespace 以进行组织

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 提供商并开始翻译。