我有一台机器(xp或vista系统,安装有.net3.5, .net3.0 sp1, .net2.0 sp1),系统语言为芬兰语,调用System.Globalization.CultureInfo((Int32)languageID).DisplayName 得到的语句显示为英文。
跟了代码,发现System.Globalization.CultureInfo.CurrentCulture.DisplayName, System.Globalization.CultureInfo.CurrentUICulture.DisplayName
和System.Globalization.CultureInfo.InstalledUICulture.DisplayName的值都为Finnish,这说明机器的确是芬兰语的,但不知道为什么显示出来的却是英文。请问有谁碰到过这种问题?多谢帮忙 

解决方案 »

  1.   

    有这种语法吗 System.Globalization.CultureInfo((Int32)languageID).DisplayName
      

  2.   

    System.Globalization.CultureInfo((Int32)languageID).DisplayName
    这是根据languageID来创建一个新的CultureInfo,和系统本身的区域无关。如果languageID为1035,就能得到芬兰语,而1033可得到英文
    你看看调用这句话之前languageID是多少
      

  3.   

    跟languageID没什么关系,这个只是一些固定的数值,比如1033,得到的应该是English(United State)(在英文操作系统下)。
      

  4.   

    to astx2006:System.Globalization.CultureInfo((Int32)languageID).DisplayName  前面是少了一个new,拷贝的时候漏了。
      

  5.   

    明白了
    你可以看看你的配置 <globalization uiculture="es" culture="es-MX" />
    是否是芬兰语
      

  6.   

     to yufenfeila:languageID是不一定的,可能会有很多个,根据msdn的说法,DisplayName这个属性Gets the culture name in the format "<languagefull> (<country/regionfull>)" in the language of the localized version of .NET Framework。这样的话,如果在中文操作系统下,languageID为1033,那么DisplayName返回的应该是“英文”,而不是“English”。
      

  7.   

    我刚才把你的意思理解错了,你现在得到的结果是“Finnish”而你想要的是芬兰语写成的“Suomi(我不知道对不对)”是吧。
    暂时没想出答案。不过你的系统、.NET Framework以及区域设置全都是芬兰吗?
      

  8.   

    是的,系统,区域设置都是芬兰语的,.netFramework是在线安装的
      

  9.   

    to astx2006: 请问这个配置在哪里看? <globalization uiculture="es" culture="es-MX" />
      

  10.   

    系统设置都是葡萄牙语的(PTG),.Net FrameWork也安装了葡萄牙语言包,可是得到的DisplayName还是显示为英文,太郁闷了。