TXTextControl .NET本地化:附属程序集构建及界面翻译问题求助
TX Text Control ASP.NET Core 本地化问题排查与解决方案
一、当前无效问题的核心排查点
文化设置的时机与范围
- 必须在应用启动阶段全局设置文化,而非仅局部代码。在
Program.cs中添加:var cultureInfo = new System.Globalization.CultureInfo("es-ES"); System.Globalization.CultureInfo.DefaultThreadCurrentCulture = cultureInfo; System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; - 对于ASP.NET Core MVC,需额外配置请求本地化中间件:
app.UseRequestLocalization(new RequestLocalizationOptions { DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("es-ES"), SupportedCultures = new List<System.Globalization.CultureInfo> { new("es-ES") }, SupportedUICultures = new List<System.Globalization.CultureInfo> { new("es-ES") } });
- 必须在应用启动阶段全局设置文化,而非仅局部代码。在
附属程序集路径修正
- 不要将生成的
.dll放到TX安装目录,而是放到你的ASP.NET Core项目输出目录对应的文化子文件夹(如bin/Debug/net6.0/es)或发布后的es目录。运行时程序优先读取项目输出目录的资源文件,而非TX安装目录。 - 确保文件夹名称与设置的文化代码完全匹配(比如用
es或es-ES,需和代码中设置的文化一致),且.dll文件名正确无误。
- 不要将生成的
资源编译有效性验证
- 执行
buildres es后,用ildasm.exe打开生成的.dll,检查资源节点下的字符串是否为目标语言,确认翻译内容已正确编译。 - 核对修改的
.resx文件是否对应32.0版本,且无语法错误(如未闭合标签、格式异常的字符串)。
- 执行
二、高效实现翻译的流程
- 批量翻译管理
- 使用ResXResourceManager工具打开ResourceKit中的
.resx文件,导出为Excel格式批量翻译,完成后再导入,避免手动修改.resx时出错。
- 使用ResXResourceManager工具打开ResourceKit中的
- 自动化构建与部署
- 将
buildres.bat的调用集成到项目预构建事件,每次编译自动生成最新资源.dll并复制到输出目录,示例命令:call "C:\Program Files\Text Control GmbH\TX Text Control 32.0.NET Server for ASP.NET\ResourceKit\buildres.bat" es xcopy /Y "C:\Program Files\Text Control GmbH\TX Text Control 32.0.NET Server for ASP.NET\ResourceKit\es\*.dll" "$(TargetDir)es\"
- 将
- 快速验证流程
- 先用德语资源验证流程正确性:将德语
.dll放到项目输出目录的de文件夹,设置文化为de-DE,若能正常显示德语,说明流程无问题,再排查西班牙语资源文件或编译环节。
- 先用德语资源验证流程正确性:将德语
三、其他语言示例获取
官方ResourceKit默认仅提供英、德基础.resx,但可基于英文模板创建任意语言的翻译文件:
- 复制
TXTextControl.resx并重命名为TXTextControl.es.resx(西班牙语)、TXTextControl.fr.resx(法语)等,填充对应翻译内容即可。 - 可在TX官方论坛本地化板块查找社区用户分享的已翻译资源文件,注意需匹配32.0版本。
内容的提问来源于stack exchange,提问作者Oris Sin
相关产品推荐
相关产品推荐

