Errores de ASP.NET MVC 4 en distintos idiomas

Algunos mensajes que genera ASP.NET MVC utilizan el idioma en el que hayamos instalado el framework. Por ejemplo, si hemos descargado la versión en inglés de MVC 4 y estamos usando en sistema operativo en español, podemos encontrarnos con textos de error como los mostrados en la siguiente captura de pantalla:

Los textos en español son generados por las restricciones impuestas por los tipos de datos y las anotaciones (data annotations) que tengamos definidas para ellos. Dado que éstas pertenecen al framework .NET, normalmente tendremos instalados los recursos de nuestro idioma, y serán mostrados en el mismo debido a que es lo que estará indicado en las opciones culturales del hilo que procesa la petición.

Sin embargo, los textos que vemos en inglés son generados desde el propio ASP.NET MVC, por lo que aparecerán en el idioma en el que tengamos instalado el framework. Lo mismo ocurre con los mensajes de error que aparecen en la YSOD (“Pantalla amarilla de la muerte”), que normalmente nos los encontraremos en inglés.

Para solucionarlo de forma rápida, simplemente tenemos que descargar a través de Nuget  el paquete de idioma que nos interese, lo cual introducirá el ensamblado satélite con los recursos localizados en la carpeta de binarios.

La instalación, como siempre que utilizamos Nuget (¿recordáis cómo era la vida sin él? ;-)), es inmediata:

1
2
3
4
5
6
7
8
9
10
11
12
PM> Install-Package microsoft.aspnet.mvc.es
Attempting to resolve dependency 'Microsoft.AspNet.Mvc (= 4.0.20710.0)'.
Attempting to resolve dependency 'Microsoft.AspNet.WebPages (≥ 2.0.20710.0 && < 2.1)'.
Attempting to resolve dependency 'Microsoft.Web.Infrastructure (≥ 1.0.0.0)'.
Attempting to resolve dependency 'Microsoft.AspNet.Razor (≥ 2.0.20710.0 && < 2.1)'.
You are downloading Microsoft.AspNet.Mvc.es from Microsoft, the license agreement to which
Check the package for additional dependencies, which may come with their own license agreement(s).
Your use of the package and dependencies constitutes your acceptance of their license agreements.
If you do not accept the license agreement(s), then delete the relevant components from your device.
Successfully installed 'Microsoft.AspNet.Mvc.es 4.0.20710.0'.
Successfully added 'Microsoft.AspNet.Mvc.es 4.0.20710.0' to MvcApplication8.

De esta forma, ya los mensajes aparecerán traducidos al idioma especificado por la cultura del hilo de ejecución:

Culture: es-ES Culture: en-US

image

Obviamente, podemos instalar en el proyecto tantos paquetes de idioma como necesitemos 🙂

En fin, un pequeño truquillo que espero que os sea útil.

Publicado en: Variable not found.

Deja un comentario

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