UE4 本地化多语言
轉(zhuǎn)載自:https://blog.csdn.net/l346242498/article/details/72911539
?
1.在編輯器設(shè)置界面,打開本地化功能。
?????????
???? ?? 2.在窗口中打開本地化面板
?????? 3.設(shè)置本地化需要讀取的文本路徑
備注一下,如果是非C++項目,那么Gather from Text Files是不需要的,因為你沒有這些文件,如果勾選的話,可能會導(dǎo)致失敗,畢竟本地化屬于非正式功能,多少會有些不能理解的bug之類的。
????? 5.添加新語言,并設(shè)置原生語言。 這里我默認是編輯器英文語言,所以添加中文語言,并且把中文設(shè)置為原生語言。
???? 6. 點擊Gather Text開始搜索文本
?????? 7. 搜索完畢,點擊非原生語言的edit選項
?
在Untranslated選項卡下邊翻譯你需要翻譯的選項,然后點擊Save。這里不需要全部都翻譯,有些其實是沒用的。
???????? 8.統(tǒng)計文字,并且編譯
?
????????? 那么我們的本地化功能已經(jīng)完成了,下面可以測試一下。
????????? 這里要注意一點,在加載策略上,如果你是新添加的方案的話,默認是Never,這時候是永遠不加載的,所以要改變一下,game或者always都行
????????? 9.使用獨立窗口測試。修改編輯器偏好設(shè)置,在獨立窗口情況下增加啟動參數(shù)? -culture=en?
-culture=后邊跟著的參數(shù)名字其實就是你添加的語言的簡寫,把鼠標放在本地化功能列表中語言名字上,tips框中會顯示對應(yīng)名字
?
????????? 10.打包相關(guān)設(shè)置。在localization to package中把需要打包進去的語言勾選上,這里我們選上 English和Chinese,Internationalization Support選擇EFIGSCJK(多語言集合), package default localization 設(shè)置為 zh
??????? 11. 如果還有音頻,視頻,圖片,各種數(shù)據(jù)文件相關(guān)的本地化操作,可以直接右鍵其藍圖文件,選擇Asset localization操作.
????? 創(chuàng)建以后會在本地化文件夾位置自動生成一個對應(yīng)的文件副本,然后把該文件副本改成你需要替換的本地化文件就好了,注意該副本的文件名一定要與原件文件名一致,這樣才能自動調(diào)用到本地化版本的文件。測試和使用方法與9步和10步相同。
????? 12. C++中設(shè)置動態(tài)切換語言的函數(shù)庫。
?????????? 創(chuàng)建UBlueprintFunctionLibrary的子類,具體內(nèi)容如下
?
.h文件
#pragma once
?
#include "Kismet/BlueprintFunctionLibrary.h"
#include "MyBlueprintFunctionLibrary.generated.h"
?
UCLASS()
class LOCALIZATIONTEST_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
/* Change Localization at Runtime. */
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Change Localization"), Category = "Locale")
static void ChangeLocalization(FString target);
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Get Localization"), Category = "Locale")
static FString GetLocalization();
};
?
.cpp
#include "localizationTest.h"
#include "MyBlueprintFunctionLibrary.h"
?
void UMyBlueprintFunctionLibrary::ChangeLocalization(FString target)
{
FInternationalization::Get().SetCurrentCulture(target);
}
?
FString UMyBlueprintFunctionLibrary::GetLocalization()
{
return FInternationalization::Get().GetCurrentCulture().Get().GetName();
}
--------------------- 本文來自 執(zhí)手畫眉彎 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/l346242498/article/details/72911539?utm_source=copy
總結(jié)
以上是生活随笔為你收集整理的UE4 本地化多语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李一男荡人心魄的戏剧化人生
- 下一篇: rundll32.exe命令使用大全