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