Como llegar idioma sin país de CultureInfo
-
19-09-2019 - |
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!
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.