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

.NET MVC本地化资源文件无法读取问题求助

Hey folks! 最近我在MVC5项目(基于.NET Framework 4.5,开发工具用Visual Studio 2017)里做多语言本地化,参考了站内的资源文件本地化方案,整理了一套完整的实操步骤:

MVC5 基于资源文件的多语言本地化实操

1. 创建资源文件存放目录

  • 右键你的MVC项目,选择「添加 > 新建文件夹」,命名为Resources——这个文件夹用来集中管理所有语言资源文件,方便后续维护。

2. 添加默认基准资源文件

  • 右键Resources文件夹,选择「添加 > 资源文件」,命名为Lang.resx(这是默认的基准资源文件,我这里用英文作为基准)。
  • 打开Lang.resx编辑器,添加需要本地化的字符串键值对:比如名称填Welcome,值填Hello。
  • ⚠️ 关键设置:选中Lang.resx,在右侧属性窗口里把「访问修饰符」改成公共(Public),只有这样项目里的控制器和视图才能直接访问这些资源。

3. 添加其他语言的资源文件

  • 同样右键Resources文件夹添加资源文件,命名必须遵循Lang.语言代码.resx的规则,比如:
    • 简体中文:Lang.zh-CN.resx
    • 繁体中文:Lang.zh-TW.resx
    • 日文:Lang.ja-JP.resx
  • 打开对应语言的资源文件,添加和基准文件完全一致的键名,只修改对应的值:比如Lang.zh-CN.resx里的Welcome值填你好。

4. 在项目中调用资源

视图中直接调用

在Razor视图里可以直接通过资源类访问,非常简单:

<h1>@Resources.Lang.Welcome</h1>

控制器中切换语言

如果需要手动切换语言,可以在控制器里设置当前线程的文化信息:

// 示例:切换到简体中文
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-CN");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CN");

5. 验证本地化效果

  • 运行项目后,系统会自动根据浏览器的语言偏好加载对应的资源文件;
  • 如果手动设置了线程文化,页面就会显示对应语言的文本啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:03:45