我有一个使用 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/