如果我在Web.Config里删除globalization配置。那么在程序里Thread.CurrentThread.CurrentUICulture的值是哪里来的?我发现这中情况下值一直都是“zh-cn”。现在我所知道的是如果将uiCulure配置为auto,则可根据用户浏览器的首选语言来决定这个值。

解决方案 »

  1.   

    缺省情况下是用GetUserDefaultUILanguage获取系统的语言设置
      

  2.   

    嗯,你说的这个也看过,但还是不清楚GetUserDefaultUILanguage是获取浏览器的设置还是操作系统的设置:以下是msdn的说明。
    其 UI 区域性最初通过使用 Windows API 中的 GetUserDefaultUILanguage 来确定。本文将列出 Windows 2000 和 Windows XP 中提供的各种特定于语言的 API。GetSystemDefaultUILanguage 获取系统的原始语言GetUserDefaultUILanguage 获取用户的选择项EnumUILanguages 查看有哪些可用的语言IsValidLanguageGroup 检查某个语言组是否已安装或是否受支持EnumSystemLanguageGroups 列出已安装或受支持的语言组EnumLanguageGroupLocales 列出在一个语言组中支持的所有区域设置
      

  3.   

    目前通过控制面板的“区域与语言设置”和浏览器的“语言首选项”更改为“en-us”,但程序中读取处理的仍然是“zh-cn”,查了一下对于GetUserDefaultUILanguage的解释:使用API GetUserDefaultUILanguage。该API将返回用户选择的LANGID(语言标示符)。如果没有安装MUI,则返回的LANGID等同于系统的InstallLanguage(安装语言)所以估计是因为我的操作系统是中文版的。
      

  4.   

    在Windows中,通过控制面板可以为系统和用户分别设置Locale。系统Locale决定代码页
    使用GetSystemDefaultLCID函数和GetUserDefaultLCID函数分别得到系统和用户的LCID。GetSystemDefaultUILanguage和GetUserDefaultUILanguage得到的是当前使用的Windows版本所带的UI资源的语言。
    用户程序缺省使用的代码页是当前系统Locale的ANSI代码页。
      

  5.   


    在Windows 7中这样设置,没有作用,Thread.CurrentThread.CurrentUICulture.Name的值依然是"zh-CN",windows xp等其他版本没试过。
      

  6.   


    那请问你的结论是什么?“当前使用的Windows版本所带的UI资源的语言”是指什么,可以通过“区域与语言选项”设置吗?