我正在研究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);
}
}
资源fiels被命名为Resources.resx,Resources.fr.resx,Resources.zh.resx任何帮助将不胜感激,Rajesh
2 回答
这是因为zh-CHS是中立文化 . 在ASP.NET 2.0中,无法将CurrentCulture设置为中性文化,如zh-CHS . 但是你可以将它设置为像zh-CN这样的特定文化 . 如果您需要使用中性文化,例如zh-CHS,则可以设置CurrentUICulture属性 . CurrentUICulture负责从资源文件中获取文本 . CurrentCulture负责Number,DateTime和Currency格式 .
顺便说一句,在ASP.NET 4.0中,您可以将CurrentCulture设置为中性文化,但不能在v2.0中设置 . 在我的代码中,站点可以在.NET 2或.NET 4上运行,我这样做:
我遇到了类似的问题 . 目前的文化是在zh-CN开始时设定的,但被英语覆盖 . 我的解决方案 - 从Windows设置安装中文 .