界面组件DevExpress中文教程 - 如何使用UI本地化客户端工具本地化应用

DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。

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

在2023年12月(v23.2),DevExpress官方发布了一个新的UI Localization Client(UI本地化客户端)工具,旨在简化基于Blazor、WinForms、WPF和ASP. NET的DevExpress应用程序。

界面组件DevExpress中文教程

UI本地化客户端允许您在应用程序/网站中定位未翻译的资源字符串,翻译它们,自动生成本地化资源,并预览结果。

UI本地化客户端解决的挑战

DevExpress Localization Service(本地化服务)允许您下载由DevExpress开发者社区生成的本地化资源,这简化了本地化过程,但社区来源的本地化资源可能不完整。

如果您使用过Localization Service,就会知道在应用程序中查找未翻译的资源字符串是很困难的(本地化服务不知道您的应用程序中使用了什么资源字符串)。一旦找到了未翻译的字符串,我们当前的本地化服务要求您使用本地化服务本身修改字符串,构建和下载附属组件,并在您的项目中重用它们。

界面组件DevExpress中文教程

正如您将在下面看到的,新UI本地化客户端消除了这些常规和耗时的步骤/任务。

新的UI本地化客户端是如何工作的?

UI Localization Client(UI本地化客户端)附加到您的应用程序,只加载那些在应用程序/网站中使用的DevExpress资源字符串(当它们在运行时出现在UI中时)。您可以定位未翻译(或错误翻译的资源字符串),随时翻译它们,自动生成所需的RESX文件,自动将它们添加到项目中,并预览结果。

特点
Visual Studio集成

从Visual Studio菜单中运行UI本地化客户端:

界面组件DevExpress中文教程

自动检测未翻译的资源字符串

使用此选项,您可以在应用程序中出现未翻译的资源字符串时找到它们,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(本地化服务)中的资源,构建和下载附属组件,并在您的项目中重用它们。

新的本地化相关API

DevExpress.Utils.Localization.XtraLocalizer类实现了允许您在运行时(动态地)翻译或修改运输资源的API,在v23.2中实现了允许您执行以下任务的新API。

检测非翻译字符串

新的QueryLocalizedStringNonTranslated事件允许您关注应用程序/网站中需要翻译的字符串,处理此事件以查找和记录未翻译的字符串:

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文件,您可以使用带有翻译字符串的自定义RESX文件。UserResourceManager属性的使用方法如下:

XtraLocalizer.UserResourceManager = Localization.myResources.ResourceManager;
本地化内置数据表单

您现在可以本地化在DevExpress UI控件中集成的数据表单所使用的资源字符串(例如,WinForms富文本编辑器中的BookmarkForm)。在以前的版本中,很难识别特定于内置表单的资源字符串。

当数据表单为其UI元素请求资源字符串时,QueryLocalizedStringContainerResource事件将被触发,处理该事件以翻译非本地化的资源字符串或修改现有表单元素资源。

基于事件的本地化

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允许您实现与高级本地化相关的任务:

  • XtraLocalizer.QueryLocalizedStringNonTranslated
  • XtraLocalizer.QueryLocalizedStringContainerResource
  • XtraLocalizer.UserResourceManager

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django+flask网上购物商城系统的设计与实现python-vue

全球经济在快速的发展&#xff0c;中国更是进步飞速&#xff0c;这使得国内的互联网技术进入了发展的高峰时期&#xff0c;这让中外资本不断转向互联网这个大市场[3]。在这个信息高度发达的现在&#xff0c;利用网络进行信息管理改革已经成为了人们追捧的一种趋势。“网上购物系…

华西建筑智能化团队助力建筑行业转型升级

华西建筑智能化团队全力推进建筑数字化转行。华西建筑智能化团队作为专业的机电安装及弱电智能化项目施工管理团队&#xff0c;先后实施了多个大型机电、智能化工程项目&#xff0c;包括&#xff1a;智慧医院项目、智能楼宇项目、机场/体育场馆/展馆等大型公共建筑及科研单位园…

sqli-labs-master靶场训练笔记(21-38|精英级)

2024.1.30 level-21 (cookie 注入数据加密) 从页面上就可以看出这次的数据被 baes64 加密了 中国有句古话&#xff1a;师夷长技以制夷 &#xff0c;用base64加密后的数据即可爆出数据 加密前&#xff1a; admin and updatexml(1,concat(~,(select database()),~),1) and …

搜索专项---Flood Fill

文章目录 池塘计数城堡问题山峰与山谷 一、池塘计数OJ链接 1.BFS做法 #include <bits/stdc.h>#define x first #define y secondtypedef std::pair<int,int> PII;constexpr int N1010;int n,m; char g[N][N]; bool st[N][N];//用来表示已经记录过的 std::queue&…

javaEE - 21( 15000字 Tomcat 和 HTTP 协议入门 -2)

一&#xff1a; HTTP 响应 1.1 认识 “状态码” (status code) 状态码表示访问一个页面的结果. (是访问成功, 还是失败, 还是其他的一些情况…)&#xff0c;以下为常见的状态码. 1.1.1 200 OK 这是一个最常见的状态码, 表示访问成功. 抓包抓到的大部分结果都是 200 HTTP/…

Unity引擎学习笔记之【混合动画操作】

混合动画Hybrid Animation Unity中的Blend Tree是一种动画混合技术&#xff0c;它允许开发者通过添加多个动画片段&#xff08;例如奔跑、行走、跳跃等&#xff09;来创建复杂的角色动画。Blend Tree允许在不同的状态下平滑地过渡并混合不同的动画。例如&#xff0c;在奔跑和行…

目标检测:2如何生成自己的数据集

目录 1. 数据采集 2. 图像标注 3. 开源已标记数据集 4. 数据集划分 参考&#xff1a; 1. 数据采集 数据采集是深度学习和人工智能任务中至关重要的一步&#xff0c;它为模型提供了必要的训练样本和测试数据。在实际应用中&#xff0c;数据采集的方法多种多样&#xff0c;每…

3.0 Hadoop 概念

本章着重介绍 Hadoop 中的概念和组成部分&#xff0c;属于理论章节。如果你比较着急可以跳过。但作者不建议跳过&#xff0c;因为它与后面的章节息息相关。 Hadoop 整体设计 Hadoop 框架是用于计算机集群大数据处理的框架&#xff0c;所以它必须是一个可以部署在多台计算机上…

Multisim14.0仿真(五十)基于CD4518的计数器设计

一、CD4518简介: CD4518是二、十进制(8421编码)同步加计数器,内含两个单元的加计数器。每单个单元有两个时钟输入端CLK和EN,可用时钟脉冲的上升沿或下降沿触发。可知,若用ENABLE信号下降沿触发,触发信号由EN端输入,CLK端置“0”;若用CL℃K信号上升沿触发,触发信号由C…

《Python 网络爬虫简易速速上手小册》第1章:Python 网络爬虫基础(2024 最新版)

文章目录 1.1 网络爬虫简介1.1.1 重点基础知识讲解1.1.2 重点案例&#xff1a;社交媒体数据分析1.1.3 拓展案例1&#xff1a;电商网站价格监控1.1.4 拓展案例2&#xff1a;新闻聚合服务 1.2 网络爬虫的工作原理1.2.1 重点基础知识讲解1.2.2 重点案例&#xff1a;股票市场数据采…

生物素 PEG4 甲基四嗪,Biotin-PEG4-methyltetrazine,用于标记、追踪和分离特定的分子或细胞

生物素四聚乙二醇甲基四嗪&#xff0c;生物素 PEG4 甲基四嗪&#xff0c;Biotin-PEG4-methyltetrazine&#xff0c;用于标记、追踪和分离特定的分子或细胞 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;生物素四聚乙二醇甲基四嗪&#xff0c;生物素 PEG4 甲基四嗪…

2024三掌柜赠书活动第八期:Web3与DAO:下一代互联网演进逻辑

目录 前言关于Web3和DAO关于《Web3与DAO&#xff1a;下一代互联网演进逻辑》编辑推荐内容简介作者简介精彩书评图书目录书中前言/序言《Web3与DAO&#xff1a;下一代互联网演进逻辑》全书速览结束语 前言 随着区块链技术的崛起&#xff0c;Web3和DAO成为了当前互联网领域炙手…

QXlsx Qt操作excel

QXlsx 是一个用于处理Excel文件的开源C库。它允许你在你的C应用程序中读取和写入Microsoft Excel文件&#xff08;.xlsx格式&#xff09;。该库支持多种操作&#xff0c;包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。 支持跨平台…

云服务器也能挂游戏 安卓模拟器

安卓模拟器云服务器 什么是BlueStacks模拟器主机&#xff1f; 特网科技基于Windows操作系统预装了BlueStacks Android模拟器您能够通过Android模拟器安装Android应用程序、如APP游戏、安卓APP、APP游戏等。 我可以在主机上安装应用程序吗&#xff1f; 你可以在BlueStacks模…

斗破年番:七星斗宗地魔老鬼,首战吊打萧炎,毁灭莲逼出千百二老

Hello,小伙伴们&#xff0c;我是拾荒君。 国漫《斗破苍穹年番》第82期超前爆料&#xff0c;在万众瞩目之下&#xff0c;卡点帝再次展现了他的卡点救场技巧。此次&#xff0c;韩枫为了除掉萧炎&#xff0c;以他击杀魔炎谷四位长老为借口&#xff0c;请来了七品斗宗地魔老鬼。更…

STM32定时器中断

定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时发出中断 定时器就是一个计数器 预分频器&#xff1a;对系统时钟进行分频得到定时器时钟频率 自动重装在值&#xff1a;计数多少个进入中断 基本定时器两个&#xff0c;tim6和7&#xff0c;挂载在apb1 通…

《Python 网络爬虫简易速速上手小册》第6章:Python 爬虫的优化策略(2024 最新版)

文章目录 6.1 提高爬虫的效率6.1.1 重点基础知识讲解6.1.2 重点案例&#xff1a;使用 asyncio 和 aiohttp 实现异步爬虫6.1.3 拓展案例 1&#xff1a;利用 Scrapy 的并发特性6.1.4 拓展案例 2&#xff1a;使用缓存来避免重复请求 6.2 处理大规模数据爬取6.2.1 重点基础知识讲解…

ES6中新增Array.of()函数的用法详解

new Array()方法 ES6为Array增加了of函数用一种明确的含义将一个或多个值转换成数组。因为用new Array()构造数组的时候&#xff0c;是有二意性的。 构造时&#xff0c;传一个参数&#xff0c;实际上是指定数组的长度&#xff0c;表示生成多大的数组。 构造时&#xff0c;传…

QT6调用音频输入输出(超详细)

目录 一、QT6音频调用与QT5的区别 1.QAudioSource代替QAudioInput类 2.QAudioSink代替QAudioOutput类 二、音频操作中Push和Pull的区别 三、依托于Websocket实现实时对讲机 1.AudioIputDevices类 2.AudioOutputDevices类 3.实现的AudioHandler类完整内容 本人实际是要完…

2024机械工程师面试题

1.常用的机械画图软件有哪些 SolidWorks、Pro/e、CATIA、UG、Creo、CAD、inventor。CAXA电子图板. 2.第一视角是___&#xff0c;第三视角是___&#xff1b; 只要区别是&#xff1a;物体所处的位置不同。一般中国都使用第一视角的。 3.气缸属于_____执行元件&#xff0c;电磁…