界面控件DevExpress v23.2全新发布 - 全新升级的UI本地化API

发布时间:2023年12月26日

DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 今年第一个重要版本v23.1正式发布,该版本拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场景问题。

DevExpress官方已于近期正式发布v23.2,此版本包含全新升级的UI本地化、支持NuGet v3等,欢迎下载最新版产品体验!

DevExpress v23.2正式版下载(Q技术交流:909157416)

UI本地化
新的本地化API

在v23.2中,官方技术团队为所有依赖于标准RESX本地化机制的DevExpress .NET产品简化了以下与本地化相关的任务:

  • 识别应用程序中特定使用的本地化字符串。
  • 根据应用程序区域性查找未翻译的字符串。
  • 将修改保存到RESX文件中,并将其用作本地化字符串的附加源。

您下载可以在DevExpress驱动的.NET应用(WinForms、WPF、ASP. NET WebForms、MVC、Blazor、Reporting、BI Dashboards和XAF UI)中识别和本地化非翻译字符串。

本地化API包括XtraLocalizer类中的以下新事件和属性:

  • QueryLocalizedStringContainerResource?—?允许您为作为DevExpress发行版一部分的数据表单和对话框本地化资源,很难确定和更改自定义表单中包含的所有本地化字符串(因为这些表单不存在单独的本地化器)。
  • QueryLocalizedStringNonTranslated?—?该事件允许您专注于应用程序中需要翻译的资源,处理此事件来收集非本地化的资源字符串以供进一步翻译。我们的默认翻译是社区来源的,所以它们不是100%覆盖(即使是德语,西班牙语或法语),有些也可能需要更正(同样是由于社区来源的来源)。
  • QueryLocalizedString?—?该事件允许您为应用程序中的所有DevExpress UI控件本地化资源。当控件请求资源字符串并允许您根据需要翻译或修改它时,该事件将被触发(我们使用有用的事件参数扩展了该事件,例如istransated、Value、StringIDType和许多其他参数)。
  • UserResourceManager?—?该属性允许您设置自定义资源管理器,该管理器可以将自定义RESX文件集成到应用程序中进行本地化。这个API提供了最高级别的控制,是调用层次结构中的最高层。
用户界面本地化客户端 - 识别非翻译资源

新版本实现了一个新的UI本地化客户端工具(一个VSIX扩展),这是一个跨平台实用程序,允许您快速识别DevExpress UI控件的未翻译字符串并翻译它们。该工具会自动生成一个带有翻译资源的RESX文件,并将其添加到项目中。您可以在"Extensions > DevExpress > All Platforms"菜单下调用这个工具。

DevExpress v23.2新版图集

支持NuGet v3

现在默认使用NuGet v3 (nuget.devexpress.com)是一种更快、更安全的方式,可以从IDE或CI/CD工具访问DevExpress NuGet包,NuGet v2将继续得到支持。

DevExpress v23.2新版图集

根据授权参数 ,请考虑以下选项:

WinForms & WPF

新版本引入了一个新的剪贴板访问策略,允许您控制(允许或不允许)用户在Windows Forms 和 WPF应用程序(包括报表和BI仪表板)中使用DevExpress UI控件时发起的剪贴板相关操作。

在应用程序启动时使用以下方法应用预定义的限制:

您还可以根据需要处理以下事件来配置策略:

下面的示例允许用户将ANSI文本格式的数据从剪贴板粘贴到DevExpress UI控件中,如果用户以不同的格式粘贴数据,则从剪贴板粘贴操作将被取消:

C#

using System;
using System.Windows.Forms;
using DevExpress.Data.Utils;

namespace DXApplication {
internal static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ClipboardAccessPolicy.SuppressCopyOperations();
ClipboardAccessPolicy.Pasting += ClipboardAccessPolicy_Pasting;
Application.Run(new Form1());
}
private static void ClipboardAccessPolicy_Pasting(object sender, ClipboardAccessPolicy.ClipboardOperationRequestEventArgs e) {
if (e.DataFormat == DataFormats.Text)
e.Cancel = false;
}
}
}

文章来源:https://blog.csdn.net/AABBbaby/article/details/135214201
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。