更改语言的C#dll资源文件

时间:2018-04-27 19:15:07

标签: c# .net dll

我们有C#dll项目,在该dll项目的解决方案和参考资料中,我有资源项目。该项目包含两个字符串文件,如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文件并正确地将语言切换为西班牙语,我需要更改什么?

1 个答案:

答案 0 :(得分:1)

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

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

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

有关详细信息,请参阅ASP.net is not using other locale resource files