翻譯|使用教程|編輯:龔雪|2024-01-31 10:54:25.940|閱讀 131 次
概述:本文將為大家介紹如何使用新發(fā)布的UI本地化客戶端工具本地化基于DevExpress的應(yīng)用程序,歡迎下載最新版組件體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷售中 >>
DevExpress擁有.NET開(kāi)發(fā)需要的所有平臺(tái)控件,包含600多個(gè)UI控件、報(bào)表平臺(tái)、DevExpress Dashboard eXpressApp 框架、適用于 Visual Studio的CodeRush等一系列輔助工具。
DevExpress技術(shù)交流群9:909157416 歡迎一起進(jìn)群討論
在2023年12月(v23.2),DevExpress官方發(fā)布了一個(gè)新的UI Localization Client(UI本地化客戶端)工具,旨在簡(jiǎn)化基于Blazor、WinForms、WPF和ASP. NET的DevExpress應(yīng)用程序。
UI本地化客戶端允許您在應(yīng)用程序/網(wǎng)站中定位未翻譯的資源字符串,翻譯它們,自動(dòng)生成本地化資源,并預(yù)覽結(jié)果。
(本地化服務(wù))允許您下載由DevExpress開(kāi)發(fā)者社區(qū)生成的本地化資源,這簡(jiǎn)化了本地化過(guò)程,但社區(qū)來(lái)源的本地化資源可能不完整。
如果您使用過(guò)Localization Service,就會(huì)知道在應(yīng)用程序中查找未翻譯的資源字符串是很困難的(本地化服務(wù)不知道您的應(yīng)用程序中使用了什么資源字符串)。一旦找到了未翻譯的字符串,我們當(dāng)前的本地化服務(wù)要求您使用本地化服務(wù)本身修改字符串,構(gòu)建和下載附屬組件,并在您的項(xiàng)目中重用它們。
正如您將在下面看到的,新UI本地化客戶端消除了這些常規(guī)和耗時(shí)的步驟/任務(wù)。
UI Localization Client(UI本地化客戶端)附加到您的應(yīng)用程序,只加載那些在應(yīng)用程序/網(wǎng)站中使用的DevExpress資源字符串(當(dāng)它們?cè)谶\(yùn)行時(shí)出現(xiàn)在UI中時(shí))。您可以定位未翻譯(或錯(cuò)誤翻譯的資源字符串),隨時(shí)翻譯它們,自動(dòng)生成所需的RESX文件,自動(dòng)將它們添加到項(xiàng)目中,并預(yù)覽結(jié)果。
從Visual Studio菜單中運(yùn)行UI本地化客戶端:
使用此選項(xiàng),您可以在應(yīng)用程序中出現(xiàn)未翻譯的資源字符串時(shí)找到它們,UI Localization Client(UI本地化客戶端)在加載未翻譯的字符串時(shí)識(shí)別它們。
您所需做的就是在應(yīng)用程序啟動(dòng)時(shí)激活源跟蹤:
// Do not remove the following line when using the UI Localization Client. DevExpress.Utils.Localization.XtraLocalizer.EnableTraceSource();
UI Localization Client(本地化客戶端)嘗試自動(dòng)獲取應(yīng)用程序名稱,但在某些應(yīng)用程序(例如Web項(xiàng)目)中可能無(wú)法做到這一點(diǎn)。您應(yīng)該顯式地將應(yīng)用程序的唯一名稱指定為EnableTraceSource方法的參數(shù),否則UI Localization Client將不會(huì)連接到應(yīng)用程序。
XtraLocalizer.EnableTraceSource(applicationName: "MyApp");
UI Localization Client(本地化客戶端)自動(dòng)生成帶有翻譯字符串的RESX文件,并將其添加到您的項(xiàng)目中。您不需要修改Localization Service(本地化服務(wù))中的資源,構(gòu)建和下載附屬組件,并在您的項(xiàng)目中重用它們。
DevExpress.Utils.Localization.XtraLocalizer類實(shí)現(xiàn)了允許您在運(yùn)行時(shí)(動(dòng)態(tài)地)翻譯或修改運(yùn)輸資源的API,在v23.2中實(shí)現(xiàn)了允許您執(zhí)行以下任務(wù)的新API。
新的事件允許您關(guān)注應(yīng)用程序/網(wǎng)站中需要翻譯的字符串,處理此事件以查找和記錄未翻譯的字符串:
static Dictionary<string, string> deNotTranslatedResources = new Dictionary<string, string>();
private static void XtraLocalizer_QueryLocalizedStringNonTranslated(object sender, XtraLocalizer.QueryLocalizedStringEventArgs e) {
deNotTranslatedResources.Add(e.ResourceStringID, e.InvariantString);
}
如果您將本地化字符串發(fā)送給不同的部門(mén)或第三方翻譯服務(wù)進(jìn)行翻譯,這種技術(shù)可能會(huì)很有用。
本地化機(jī)制現(xiàn)在支持RESX文件,您可以使用帶有翻譯字符串的自定義RESX文件。UserResourceManager屬性的使用方法如下:
XtraLocalizer.UserResourceManager = Localization.myResources.ResourceManager;
您現(xiàn)在可以本地化在DevExpress UI控件中集成的數(shù)據(jù)表單所使用的資源字符串(例如,WinForms富文本編輯器中的BookmarkForm)。在以前的版本中,很難識(shí)別特定于內(nèi)置表單的資源字符串。
當(dāng)數(shù)據(jù)表單為其UI元素請(qǐng)求資源字符串時(shí),事件將被觸發(fā),處理該事件以翻譯非本地化的資源字符串或修改現(xiàn)有表單元素資源。
QueryLocalizedString事件允許您為應(yīng)用程序/網(wǎng)站中的所有DevExpress UI控件本地化資源。當(dāng)DevExpress UI控件請(qǐng)求資源字符串并允許您根據(jù)需要翻譯或修改字符串時(shí),該事件會(huì)觸發(fā)。我們添加了新的事件參數(shù),如e.IsTranslated, e.Value, e.StringIDType等。
static private void XtraLocalizer_QueryLocalizedString(object sender, XtraLocalizer.QueryLocalizedStringEventArgs e) {
if (e.StringIDType == typeof(GridStringId)) {
if ((GridStringId)e.StringID == GridStringId.GridGroupPanelText)
e.Value = "Gruppenregion";
}
//...
}
DevExpress UI Localization Client可以幫助您隔離應(yīng)用程序/網(wǎng)站中使用的字符串,這樣可以很容易地識(shí)別未翻譯的資源字符串,根據(jù)需要翻譯它們,并構(gòu)建RESX文件(并將它們包含在項(xiàng)目中)。
以下API允許您實(shí)現(xiàn)與高級(jí)本地化相關(guān)的任務(wù):
更多DevExpress線上公開(kāi)課、中文教程資訊請(qǐng)上中文網(wǎng)獲取
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)