ぼっちプログラマのメモ

UE4とかVRとかについて書いたり書かなかったり。

【UE4】テキストローカライズのプレビュー言語をBPやC++から制御する方法について

はじめに

エディタ設定のPreview Game LanguageやUMGのツールバーのアイコンから言語を指定することで、テキストのローカライズ結果をエディタ上で確認することができます。
f:id:pafuhana1213:20220120235035p:plain
f:id:pafuhana1213:20220120235052p:plain

ただON・OFFや言語変更する度にこれらを触りにいくのは面倒です。オレオレデバッグ機能・エディタから変更できるようにしておくと色々便利な気がしたので、BP, C++から制御できる方法を探してみました

Preview Game LanguageをBP, C++から変えるには

void UMyBlueprintFunctionLibrary::SetLocalizationPreviewLanguage(FString InCulture)
{
	FTextLocalizationManager::Get().ConfigureGameLocalizationPreviewLanguage(InCulture);
	FTextLocalizationManager::Get().EnableGameLocalizationPreview();
}

void UMyBlueprintFunctionLibrary::EnableGameLocalizationPreview()
{
	FTextLocalizationManager::Get().EnableGameLocalizationPreview();
}

void UMyBlueprintFunctionLibrary::DisableGameLocalizationPreview()
{
	FTextLocalizationManager::Get().DisableGameLocalizationPreview();
}

bool UMyBlueprintFunctionLibrary::IsGameLocalizationPreviewEnabled()
{
	return FTextLocalizationManager::Get().IsGameLocalizationPreviewEnabled();
}

参考:SDesignerToolBarの各実装
Engine\Source\Editor\UMGEditor\Private\Designer\SDesignerToolBar.cpp

これらの関数を使うと…


いけました。やったー!
ただし、この設定はPreview Game LanguageとかUMGのツールバーと共通なのでご注意を。


おしまい