c# - 未为非基本语言选择正确的 Resx 文件

标签 c# asp.net-mvc-4 localization resx currentuiculture

我有一个使用 Microsoft MVC4 的工作 resx 本地化设置,适用于英语、法语、德语等基本语言,但我正在尝试将其扩展到更具体的语言,例如简体/繁体中文。

我已使用推荐的命名约定命名我的文件:

SharedStrings.de.resx
SharedStrings.es-es.resx
SharedStrings.es.resx
SharesStrings.fr.resx
SharedStrings.resx
SharedStrings.zh-cn.resx
SharedStrings.zh-tw.resx

对,我正在 Application_BeginRequest() 的 Global.asax.cs 中设置文化 并做这样的事情:

CultureInfo ci = new CultureInfo(CultureInfo.CurrentCulture.Name);
ci = System.Globalization.CultureInfo.GetCultureInfo("zh-tw");
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

当我加载页面时,虽然它没有拾取 zh-tw 或 es-es,但奇怪的是它确实拾取了 zh-cn、de、en 等。我有点迷失在这里,所以我真的感谢一些帮助。

最佳答案

我终于明白问题出在哪里了。当我使用 Visual Studio 2010 生成名称 resx 文件时,它没有将它们生成为嵌入式资源。解决此问题的方法是右键单击不起作用的 resx 文件并选择属性。然后将构建操作更改为“Embedded Resource”,并填写自定义工具命名空间,我使用“GlobalStr”。

我希望我的愚蠢将来能帮助其他人。

关于c# - 未为非基本语言选择正确的 Resx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368445/

相关文章:

Laravel 电子邮件邮件列表即时本地化

c# - Dapper 存储过程在向其传递 IEnumerable 时指定了太多参数

c# - 连接到 oracle .net 核心

c# - 如何从 TFS 获取所有集合

c# - 当我有 2 个具有相同名称但协议(protocol)不同的方法时如何使用操作过滤器

xcode - 导出应用程序进行本地化,不包括在 Xcode 6 Xliff 中使用 NSLocalizedString 创建的字符串

android - 塞尔维亚语(拉丁语,塞尔维亚语)(sr-rs-latn)语言的值文件夹名称应该是什么?

c# - 执行 XmlDocument 类型的 CustomAttributeBuilder 时出错

javascript - 通过 Html.BeginForm 提交激活加载动画

asp.net-mvc-4 - ASP.NET MVC4 模型未绑定(bind)