使用c#获取操作系统语言

本文关键字:语言 操作系统 获取 使用 | 更新日期: 2023-09-27 17:50:44

如何使用Win32_OperatingSystem class和c#中的osllanguage变量获得当前的操作系统语言?谢谢. .

使用c#获取操作系统语言

像这样:

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 ;
}

也许是为了让这一点更清楚一点(或不清楚),三个文化Installed, CurrentUI和Current以不那么明显的方式设置。

如果在英国系统(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只表示数字日期和时间的显示方式(区域设置)。

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

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

不要将区域设置误认为UI语言。区域设置是关于格式化数字和日期等的。此外,操作系统和应用程序也有独立的设置。