0.首先需要个变量,在关卡蓝图新建一个
1.在编辑器偏好设置-实验性内容-勾上这个
2.打开窗口-本地化面板
3.右边Game-Gather Text里操作
4.最下面添加新语言并选择本地语言(这里我选英文并且后面应该不是黄色的,随便截了个图)
5.点击本地语言应该就100%了
6.点击或者本地语言的第三个
导出.po文件(文件第3步路径下Localization\Game\en,这里我是英语是en)
7.点击非!本地语言的第二个按钮导入刚刚的.op文件,再点击第一个编辑文本列表,并进行手动翻译,下面第二行就是刚刚的变量改中文后的翻译
8.这时候所有的语言应该都是100%,然后点击最后一个按钮编译
9.需要建立一个C++BlueprintFunctionLibrary文件动态改变内容
.h
UENUM(BlueprintType)
enum class ELocalizationCulture:uint8
{
EN,
CH,
};
UFUNCTION(BlueprintCallable, meta = (DisplayName = "EChange Localization"), Category = "Locale")
static void ChangeLocalizationCulture(ELocalizationCulture culture);
.cpp
void UMyBlueprintFunctionLibrary::ChangeLocalizationCulture(ELocalizationCulture culture)
{
switch(culture)
{
case ELocalizationCulture::EN:
FInternationalization::Get().SetCurrentCulture(TEXT("en"));
break;
case ELocalizationCulture::CH:
FInternationalization::Get().SetCurrentCulture(TEXT("ch"));
break;
}
}
10.最后调用,独立运行游戏观看
11.打包需要注意的
参考:https://forums.unrealengine.com/showthread.php?63394-Localization-Dashboard-preview-and-explanation-of-UE4-s-text-localization-process#post488257