C#dll资源文件更改语言

直美

我们有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文件并将语言正确切换为西班牙语,我需要更改什么?

丹·威尔逊|

您正在将西班牙语指定为文化,但是您的资源文件是西班牙语(墨西哥)。

eses-mx是两种不同的文化。如果要使用es-mx资源,则需要将文化设置为es-mx,而不是简单地设置es

culture = new CultureInfo("ex-ms"); 

有关更多信息,请参见ASP.net未使用其他区域设置资源文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章