【发布时间】:2013-05-11 06:46:10
【问题描述】:
我正在开发 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 任何帮助,将不胜感激, 拉杰什
【问题讨论】:
-
尝试重建相同的项目结构...完美运行。确定中文资源不是英文的? ;-)
-
嗯,为什么它对我不起作用,我在 Win7 Ultimate、.net 3.5 上进行了测试。是的,中文资源有中文内容:)
-
不知道。我的测试中唯一的区别是我使用的是 asp.net 网络表单应用程序,资源是本地资源,如
default.aspx.zh.resx。如果您将new CultureInfo()更改为"fr"是否有效?您是否尝试将您的.fr资源文件重命名为.zh? -
我将资源文件重命名为 .zh-cn 并解决了这个问题。谢谢考德威尔。
标签: c# localization