Saltar al contenido

Obtener el idioma del sistema operativo en C#

Hemos buscado por diferentes espacios y así tenerte la respuesta a tu dilema, si tienes alguna duda déjanos la duda y te contestaremos porque estamos para ayudarte.

Solución:

Como esto:

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 ;

Quizás para hacer esto un poco más claro (o no), las tres culturas Installed, CurrentUI y Current están configuradas de una manera no tan obvia.

Si en el Panel de control en un sistema inglés del Reino Unido (Windows 10 Technical Preview) especifico un formato de fecha/hora en alemán (suiza), la salida del siguiente programa:

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

es así:

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

Lo que significa que Installed no se puede influir, pero se establece en la instalación, pero CurrentUI y Current pueden diferir. Donde CurrentUI probable significa la localización del sistema operativo (configuración de idioma) y Current solo dice algo sobre cómo se muestran los números, las fechas y la hora (configuración regional).

Con frecuencia me he encontrado con programas de instalación que toman Current como el idioma preferido donde probablemente brindaría una experiencia de usuario final más consistente si en su lugar se usara CurrentUI.

using System;

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

Eres capaz de añadir valor a nuestra información dando tu veteranía en las aclaraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *