Pregunta

¿Alguien sabe en ASP.Net cómo sacar el idioma del CurrentCulture sin sus countryName? Yo sé de esta referencia cultural de todos no tienen este problema, pero no sé cómo crearlos sin especificar un lenguaje explícito. Quiero mostrar el idioma activo y en nl-NL Este es el holandés (Países Bajos).

Así es como me puse la CurrentCulture:

private void Application_BeginRequest(Object source, EventArgs e)
{
    string[] languages = HttpContext.Current.Request.UserLanguages;
    string language = languages[0].ToLowerInvariant().Trim();
    if (!string.IsNullOrEmpty(language))
    {
        System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(language);
        System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(language);
    }
}

En mi caso, la cultura es "nl-NL". El problema es que lo que se muestra en el sitio cuando se utiliza CurrentCulture.EnglishName es "holandés (Países Bajos)". Yo sólo quiero ver holandés!

Gracias!

¿Fue útil?

Solución

simple:

CultureInfo ci = CultureInfo.GetCultureInfo ("nl-nl");

if( ci.IsNeutralCulture )
{
    Console.WriteLine (ci.EnglishName);
    Console.WriteLine (ci.NativeName);
}
else
{
    Console.WriteLine (ci.Parent.EnglishName);
    Console.WriteLine (ci.Parent.NativeName);
}

Otros consejos

objeto CultureInfo contiene propiedad llamada Padres - si se fija a continuación, entonces hay CultureInfo con EnglishName deseada = holandesa

Puede utilizar el objeto HTTP_ACCEPT_LANGUAGE.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top