代码之家  ›  专栏  ›  技术社区  ›  Naomi

C#dll资源文件更改语言

  •  1
  • Naomi  · 技术社区  · 7 年前

    我们有C#dll项目,在该dll项目的解决方案和参考中,我有资源项目。该项目包含两个字符串文件,例如标签。resx和标签。ES-MX。resx。在我的C#代码中,要使用字符串,我只需使用MyProject添加字符串。顶部的资源和引用标签之类的字符串。迈斯特林基。

    要更改语言,我有以下代码:

    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 回复  |  直到 7 年前
        1
  •  1
  •   Dan Wilson    7 年前

    您正在指定西班牙语作为区域性,但您的资源文件是西班牙语(墨西哥)。

    es es-mx 是两种不同的文化。如果您想使用 es mx 然后您需要将区域性设置为 es mx ,而不仅仅是 es公司

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

    看见 ASP.net is not using other locale resource files 了解更多详细信息。