在c#中获取操作系统语言

时间:2011-04-18 23:52:51

标签: c#

如何在c#中使用Win32_OperatingSystem Class和OSLanguage变量获取当前的操作系统语言? 感谢..

4 个答案:

答案 0 :(得分:60)

像这样:

static int Main( string[] argv )
{
    CultureInfo ci = CultureInfo.InstalledUICulture ;

    Console.WriteLine("Default Language Info:" ) ;
    Console.WriteLine("* Name: {0}"                    , ci.Name ) ;
    Console.WriteLine("* Display Name: {0}"            , ci.DisplayName ) ;
    Console.WriteLine("* English Name: {0}"            , ci.EnglishName ) ;
    Console.WriteLine("* 2-letter ISO Name: {0}"       , ci.TwoLetterISOLanguageName ) ;
    Console.WriteLine("* 3-letter ISO Name: {0}"       , ci.ThreeLetterISOLanguageName ) ;
    Console.WriteLine("* 3-letter Win32 API Name: {0}" , ci.ThreeLetterWindowsLanguageName ) ;

    return 0 ;
}

答案 1 :(得分:18)

也许为了使这三种文化更加清晰(或者不是),CurrentUI和CUrrent的设置方式并不那么明显。

如果在Englisk UK系统的控制面板(Windows 10技术预览版)中,我指定德语(瑞士)日期/时间格式以下程序的输出:

        CultureInfo ci = CultureInfo.InstalledUICulture;
        Console.WriteLine("Installed Language Info:{0}", ci.Name);
        ci = CultureInfo.CurrentUICulture;
        Console.WriteLine("Current UI Language Info: {0}", ci.Name);
        ci = CultureInfo.CurrentCulture;
        Console.WriteLine("Current Language Info: {0}", ci.Name);

因此:

Installed Language Info:en-GB
Current UI Language Info: en-GB
Current Language Info: de-CH

意味着Installed不会受到影响,但CurrentUI和Current可能会有所不同。其中CurrentUI可能意味着操作系统的本地化,而当前仅说明数字日期和时间的显示方式。

我经常遇到安装程序,将Current作为首选语言,如果使用CurrentUI,它可能会提供更一致的体验。

答案 2 :(得分:6)

using System;

class Program {
    static void Main(string[] args) {
        Console.WriteLine("You are speaking {0}",
            System.Globalization.CultureInfo.CurrentCulture.EnglishName);
        Console.ReadLine();
    }
}

答案 3 :(得分:1)

使用C#,您可以使用CultureInfo类。 CurrentCulture属性可以获得系统的文化,CurrentUICulture可以获得用户的文化。