visual tutorial studio que net mvc microsoft framework asp arquitectura asp.net-mvc-3 globalization

tutorial - Globalización en ASP.Net MVC 3



tutorial asp net mvc (4)

Aquí hay una gran publicación detallada sobre MVC 3 Globalization / Internationalization http://afana.me/post/aspnet-mvc-internationalization-part-2.aspx

Estoy tratando de lograr la globalización / localización en mi aplicación MVC 3. No quiero diferentes vistas para cada idioma. Por favor, sugiera cómo puedo proceder. Cualquier enlace / URL soportado será de gran ayuda.



Lo localizas de la misma manera que cualquier otra aplicación como esta:

  1. Crea una carpeta, llámala, por ejemplo, Recursos.
  2. Haga clic derecho en la carpeta y agregue clase ... elija el archivo de recursos. Llámalo como quieras, por ejemplo, Strings.resx
  3. Bajo las propiedades del archivo, cambie la Herramienta personalizada para que sea PublicResXFileCodeGenerator
  4. Rellene el archivo de recursos con pares de valores y clave de traducción (esta será la traducción predeterminada)
  5. Cree otros recursos con el nombre de la cultura para la que están en este formato: {nombre} .de.resx, por ejemplo, Strings.de.resx
  6. (Esto es para Razor) abra el archivo web.config en la carpeta Vistas y agregue esto a /configuration/system.web.webPages.razor/pages/namespaces: <add namespace = "Resources" /> (asumiendo que recursos es el nombre de la carpeta en la que creó los recursos y no ha cambiado el espacio de nombres predeterminado en los propios archivos de recursos). Este paso significa que no tiene que calificar completamente las clases de recursos en sus vistas cada vez que quiera hacer referencia a una traducción.
  7. Utilice las traducciones en lugar de texto en sus vistas como con el siguiente código:

    @Strings.MyString

Las cadenas se traducirán automáticamente en la vista dependiendo de CultureInfo.CurrentCulture pero esto no se establece automáticamente para usted

Necesitará cambiar el CurrentCulture (potencialmente en Application_BeginRequest ). La forma de hacerlo depende de usted, puede ser un valor de ruta que lo establezca o puede leer el idioma del navegador del usuario.

Puede encontrar una lista de los idiomas preferidos del usuario (en orden) en HttpContext.Current.Request.UserLanguages .


Para agregar algunos detalles a la gran respuesta de Martin Booth (en caso de que su enlace de MediaFire pueda desaparecer), he aquí cómo lo identifiqué:

He usado dos archivos, ya que solo necesito inglés y alemán ("de") por ahora:

Para las propiedades de cada archivo, tuve que ingresar manualmente la Herramienta personalizada , así como los valores del Espacio de nombres de la Herramienta personalizada , para cada archivo:

Y finalmente, ingresé lo siguiente dentro del archivo raíz Web.Config, debajo de la sección <system.web> :

<globalization uiCulture="auto" culture="auto" />

Por supuesto, también he agregado la directiva de espacio de nombres en el archivo Web.Config debajo de la carpeta Vistas (es decir, no en la raíz), como describe Martin:

<add namespace="ViewResources" />

Y luego finalmente pude acceder a los recursos fuertemente tipados en mi vista (parcial) de Razor:

<h2>@ViewResources.Test1</h2>

Por cierto: esto también funcionó con MVC 4, no solo MVC 3.