You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#使用RESX文件实现标签与错误信息的资源全球化方案咨询

.NET 4.7.2 Winform项目多分类RESX全球化资源实现方案

步骤1:新增错误类资源文件到Resources文件夹

  • 右键项目中的Resources文件夹 → 选择【添加】→【新建项】→ 搜索【资源文件】
  • 先创建不带语言后缀的中性错误资源文件,命名为ABC.Error.Resources.resx(必须先创建中性资源文件,编译器才会生成对应的强类型资源类和多语言卫星DLL)
  • 再按语言需求添加对应区域的资源文件,比如捷克语版本命名为ABC.Error.Resources.cs-CZ.resx,其他语言以此类推添加
    添加完成后文件夹结构如下:
Resources
├─ABC.Label.Resources.resx(原有中性标签资源,如之前未创建需补充)
├─ABC.Label.Resources.cs-CZ.resx
├─ABC.Error.Resources.resx(新增中性错误资源)
└─ABC.Error.Resources.cs-CZ.resx(新增捷克语错误资源)

步骤2:配置资源文件生成属性

中性资源文件(ABC.Error.Resources.resx)配置:

右键文件查看【属性】,按以下参数设置:

  • 生成操作:嵌入的资源
  • 自定义工具:PublicResXFileCodeGenerator(仅项目内部访问资源可填ResXFileCodeGenerator)
  • 自定义工具命名空间:填写项目统一的资源命名空间,例如YourProjectName.GlobalResources
  • 保存后如果没有自动生成强类型资源类,右键文件选择【运行自定义工具】即可

多语言资源文件(ABC.Error.Resources.cs-CZ.resx等带语言后缀的文件)配置:

右键文件查看【属性】,按以下参数设置:

  • 生成操作:嵌入的资源
  • 自定义工具:留空(不需要单独生成类,语言资源会自动关联中性资源类加载)

步骤3:验证生成结果

重新编译项目后,输出目录对应语言文件夹(比如cs-CZ文件夹)会生成包含两类资源的卫星DLL,原有标签资源的生成逻辑不受任何影响。

步骤4:资源调用示例

using System.Globalization;

// 调用标签资源
var loginLabel = ABC.Label.Resources.ResourceManager.GetString("LoginBtnText", new CultureInfo("cs-CZ"));
// 调用错误信息资源
var accountError = ABC.Error.Resources.ResourceManager.GetString("AccountNotFound", new CultureInfo("cs-CZ"));

如果项目已配置默认线程UI文化,可省略第二个CultureInfo参数,资源管理器会自动匹配当前线程文化加载对应内容。


内容的提问来源于stack exchange,提问作者Aryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:06:03