我们有C#dll项目,在该dll项目的解决方案和参考中,我有Resources项目。该项目包含两个字符串文件,例如Labels.resx和Labels.ES-MX.resx。在使用字符串的C#代码中,我只需在顶部使用MyProject.Resources和引用字符串(如Labels.myStringKey)添加即可。
要更改语言,我需要以下代码:
this.cLanguage = language;
// Setting different culture
CultureInfo culture;
culture = GetCultureInfo(language);
if (culture != null)
{
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
}
我以“西班牙语”作为我的语言,可以看到这段代码返回了{es}作为一种文化。但是,我们的.ES-MX。没有使用字符串(我可以看到我仍在从Labels.resx而不是从Labels.ES-MX.resx文件读取)。
因此,我的问题是-为了使用正确的resx文件并将语言正确切换为西班牙语,我需要更改什么?
您正在将西班牙语指定为文化,但是您的资源文件是西班牙语(墨西哥)。
es
和es-mx
是两种不同的文化。如果要使用es-mx
资源,则需要将文化设置为es-mx
,而不是简单地设置es
。
culture = new CultureInfo("ex-ms");
有关更多信息,请参见ASP.net未使用其他区域设置资源文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句