本地化设置
本指南将向您展示如何在虚幻引擎中使文本可本地化,以便 AI Localization Automator能够发现并翻译这些文本。
如果您已经熟悉虚幻引擎的本地化流程,并且有设置 FText、本地化目标和收集文本的经验,您可以安全地跳过此页面,直接前往 入门指南。
本页面涵盖了在使用任何翻译工具(包括 AI Localization Automator)之前所需的基本 UE 本地化设置。
如果您完全不熟悉虚幻引擎的本地化系统,我们强烈建议您先观看这个简短的视频教程:虚幻引擎 5 本地化教程。
观看视频后,本页面涵盖的大多数主题将已经清晰易懂,您很可能可以跳过此页面,直接前往 入门指南。
下面的指南涵盖了通用的虚幻引擎本地化设置和工作流程 - 这些步骤适用于 UE 中的任何翻译项目,而不仅仅是 AI 驱动的翻译。它是基本本地化概念和设置过程的参考。
理解可本地化文本
为了使 AI Localization Automator能够工作,您需要在项目中将 FText 属性标记为可本地化。该插件通过 UE 的本地化系统发现文本,因此必须首先正确配置文本。
FText vs FString vs FName
只有 FText(在 Blueprints 中为 Text)可以在虚幻引擎中进行本地化:
- ✅ FText: 可本地化,支持富文本格式,用于面向用户的文本
- ❌ FString: 不可本地化,用于内部数据和文件路径
- ❌ FName: 不可本地化,用于标识符和键
在 Blueprints 中使文本可本地化
1. 创建 FText 变量
在您的 Blueprint 类中:
- 添加 FText 变量
- 打开您的 Blueprint 类
- 添加一个类型为 Text (FText) 的新变量
- 设置默认值
- 在变量详细信息中,设置您的默认文本值
- 这将作为您翻译的源文本
- 启用本地化
- 点击文本内容右侧的旗帜图标
- 在打开的本地化窗口中,勾选 "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. 创建本地化目标
- 打开 本地化仪表板 (工具 → 本地化仪表板)
- 默认情况下,应该已经有一个可用的 Game 目标用于翻译文本
- 如果没有 Game 目标,点击 "添加新目标" 并输入 "Game" 作为名称,并选择 Game 作为 加载策略
2. 配置收集设置
- 在仪表板中选择你的目标
- 转到 Game 面板中的 "收集文本" 部分
对于Blueprint内容:
- 开启 "从包中收集" 并展开它
- 在 "包含路径通配符" 中,选择包含你的可本地化文本资产的目录
对于 C++ 内容:
- 开启 "从文本文件中收集" 并展开它
- 在 "搜索目录" 中,提供包含可本地化文本源头的 C++ 代码目录
还有许多其他可用参数,例如 排除路径通配符
、文件扩展名
以及其他选项,允许你微调系统搜索可本地化文本的方式。
3. 添加目标语言
- 在本地化仪表板中,选中你的目标
- 点击 "添加新语言" 按钮
- 从下拉菜单中选择一种语言 (例如,西班牙语、法语、德语)
- 为你想要翻译成的每种目标语言重复此过程
- 确保使用语言列表左侧的单选按钮将你的本机区域性标记为源语言 (默认选择英语)
4. 收集文本
- 在您的目标中点击 "收集文本" 按钮
- 等待收集过程完成
- 过程完成后点击 "确定" 按钮
- 验证文本条目是否出现在 字数统计 列中
5. 编辑本地化内容
文本收集完成后,您现在可以手动编辑和添加本地化内容:
- 在操作列中,为每个目标语言点击编辑按钮(第一个按钮)
- 这将打开本地化编辑器,您可以在其中按语言手动翻译单词和短语
- 出于测试目的,您可以手动添加自己的测试本地化内容以验证系统是否正常工作
AI Localization Automator 插件将使用 AI 提供商自动处理此翻译过程。有关自动 AI 翻译的详细信息,请参阅入门指南。
6. 编译文本
添加本地化内容后(无论是手动添加还是通过 AI Localization Automator 添加,如您的首次翻译中所述):
- 在您的本地化目标中点击“编译文本”按钮
- 等待编译过程完成 - 类似于收集文本操作
- 编译完成后,翻译后的文本应已可用并在您的项目中可见
- 您现在可以使用下面描述的方法测试您的本地化内容
测试本地化
有多种方法可以测试您的本地化设置。以下是最常用的方法:
方法 1:编辑器偏好设置
- 转到 编辑器偏好设置 → 区域与语言
- 在 “预览游戏语言” 属性中,选择您要预览的语言
- 注意:如果语言列表缺失,这可能是 UE 的一个常见错误,可通过重启编辑器修复
方法 2:UMG 预览
- 在 UMG 编辑器 中,当您想要在 UI 控件中预览翻译时
- 在预览控件的右上角部分,有一个选项可以选择用于预览本地化的语言
准备进行 AI 翻译
一旦您具备以下条件:
- ✅ 项目中有可本地化的 FText 内容
- ✅ 正确配置了名称为 "Game" 的本地化目标
- ✅ 使用正确的收集设置成功收集了源文本
- ✅ 添加了目标翻译语言
- ✅ 通过测试验证了您的设置
您就可以使用 AI 本地化自动工具了!转到 入门指南 来配置您的 AI 提供商并开始翻译。