C# 中文本地化不';新台币的工作,显示英语总是

C# 中文本地化不';新台币的工作,显示英语总是,c#,localization,C#,Localization,我正在开发WPF应用程序,并且在.resx文件中有本地化的资源(en、fr、zh)。以下测试代码用于显示本地化字符串。它适用于英语、法语,但不适用于汉语。中文只显示英文文本。我尝试使用中国文化的所有变体,如zh CN、zh Hans、zh Hant和“旧”zh CHS、zh CHT,但没有成功 public partial class MainWindow : Window { public MainWindow() { InitializeComponent()

我正在开发WPF应用程序,并且在.resx文件中有本地化的资源(en、fr、zh)。以下测试代码用于显示本地化字符串。它适用于英语、法语,但不适用于汉语。中文只显示英文文本。我尝试使用中国文化的所有变体,如zh CN、zh Hans、zh Hant和“旧”zh CHS、zh CHT,但没有成功

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
       // CultureInfo culture = CultureInfo.CreateSpecificCulture("zh-CHT");
        CultureInfo culture = new CultureInfo("zh-CN");
        Thread.CurrentThread.CurrentCulture = culture;
        Thread.CurrentThread.CurrentUICulture = culture;
        MessageBox.Show(Properties.Resources.address);
    }
}
资源域命名为Resources.resx、Resources.fr.resx、Resources.zh.resx 任何帮助都将不胜感激,
拉杰什

这是因为zh CHS是中性文化。 在ASP.NET 2.0中,无法将CurrentCulture设置为中性区域性,如zh CHS。 但您可以将其设置为特定的区域性,如zh CN。 如果需要使用中性区域性,如zh CHS,则可以改为设置CurrentUICulture属性。CurrentUICulture负责从资源文件中获取文本。 CurrentCulture负责数字、日期时间和货币格式

顺便说一句,在ASP.NET 4.0中,可以将CurrentCulture设置为中性区域性,但在v2.0中不能。 在我的代码中,如果站点可以在.NET 2或.NET 4上运行,我会这样做:

    public static void SetCurrentCulture(string cultureName)
    {
        try
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
        }
        catch (Exception)
        {
            // Ignore if exception happens: In ASP.NET 2.0 setting CurrentCulture = Neutral culture (like zh-CHS) throws an exception:
            // Culture 'zh-CHS' is a neutral culture. It cannot be used in formatting and parsing and therefore cannot be set as the thread's current culture.
        }
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
        HttpCookie cultureCookie = new HttpCookie("CultureCookie", cultureName);
        HttpContext.Current.Response.Cookies.Set(cultureCookie);
    }

我也有类似的问题。当前文化在开始时的某个时间点设置为zh CN,但被英语覆盖。我的解决方案-从Windows设置安装中文。

尝试重建相同的项目结构。。。工作完美。确定中文资源不是英语吗?;-)嗯,为什么它对我不起作用,我在Win7 Ultimate、.NET3.5上进行了测试。是的,中文资源有中文内容:)不知道。测试中唯一的区别是我使用的是asp.net web forms应用程序,资源是本地资源,如
default.aspx.zh.resx
。如果将
新的CultureInfo()
更改为
“fr”
,它会工作吗?您是否尝试将
.fr
资源文件重命名为
.zh
?我将资源文件重命名为.zh cn,这解决了问题。谢谢考德威尔。