C# 中文本地化不';新台币的工作,显示英语总是
我正在开发WPF应用程序,并且在.resx文件中有本地化的资源(en、fr、zh)。以下测试代码用于显示本地化字符串。它适用于英语、法语,但不适用于汉语。中文只显示英文文本。我尝试使用中国文化的所有变体,如zh CN、zh Hans、zh Hant和“旧”zh CHS、zh CHT,但没有成功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()
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,这解决了问题。谢谢考德威尔。