2008-10-10 11 views
117

¿Cuál sería la mejor práctica para localizar su aplicación ASP.NET MVC?¿Cómo localizar la aplicación ASP.NET MVC?

me gustaría cubrir dos situaciones: el despliegue

  • una aplicación en IIS que manejar múltiples idiomas
  • un lenguaje de implementación/aplicación.

En la primera situación debería ir con algún tipo de vista basada en, ~/View/EN, ~/View/FI, ~/View/SWE o algo diferente?

¿Qué pasa con el segundo caso, solo configuración basada en la aplicación a través de Web.config y apuntar estos diferentes idiomas a diferentes URL?

+0

Como alternativa a las vistas duplicadas, puede usar archivos ResX estándar para almacenar cadenas específicas de cultura. Desafortunadamente, la administración y edición de estos archivos, especialmente por parte de los traductores, es un poco incómoda y difícil. Se puede simplificar almacenando recursos en la base de datos y utilizando alguna herramienta de localización externa. Puede consultar esta biblioteca gratuita que ofrece un proveedor de recursos de base de datos: http://globsite.net/GlobsiteGlobalizationLibrary – Kryszal

Respuesta

71

también puede echar un vistazo aquí ASP.NET MVC 2 Localization complete guide y ASP.NET MVC 2 Model Validation With Localization estos entires le ayudará si se trabaja con ASP.NET MVC 2.

+0

¡Gracias por esta respuesta actualizada! Hace un año utilicé el enfoque de Matt Hawley, pero tuve serios problemas con las pruebas de Unidad. Intenté burlarme del contexto del controlador, pero todavía me faltaba algo más y me rendí. Voy a pasar por esta MVC2 manera, y espero que hayan descubierto esto. –

+0

Solía ​​utilizar este enfoque en mis proyectos, debería decir que este enfoque es mejor. – fyasar

+0

Es un artículo fantástico, gracias por publicarlo. –

22

Localizaría su aplicación ASP.NET MVC mucho de la misma manera que lo haría con una aplicación clásica ASP.NET Web Form.

No usará diferentes páginas/vistas para cada idioma, pero cada página admitirá varios idiomas utilizando ensamblajes satelitales.

Puede consultar Matt Hawley's blog entry para obtener más explicaciones y ejemplos.

2

Nunca he estado convencido de manejar la localización dentro de un formulario como sugiere Elijah: las diferentes longitudes y direcciones pueden llevar a formas muy complejas o variadas.

Estoy comenzando con MVC pero tomando el método de desacoplamiento, querría usar el mismo controlador independientemente del idioma (tratando el idioma solo como una vista) - esto le daría a usted/Controller/Action/language/forma

2

Hay un buen tutorial con una actualización reciente sobre Cómo localizar la aplicación asp.net mvc que cubre todos los aspectos, incluida la localización de DisplayName, validación, uso de enrutamiento (almacenamiento de nombre de cultura en URL), problemas con el caché de resultados, etc. Alex Adamyan Blog - While my keyboard gently weeps

0

Escribí este artículo hace un tiempo. Utiliza un motor de vista personalizado. http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/

+1

Si bien es posible que su artículo responda la pregunta, [sería preferible] (http://meta.stackexchange.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. Stack Overflow es tan útil como sus preguntas y respuestas, y si el host de tu blog se cae o tus URL se mueven, esta respuesta se vuelve inútil. ¡Gracias! – sarnold

1

realidad Fuimos un diferente completo con anulando el DataAnnotationsMetadaDataProvider. Allí puede asegurarse de que los valores DisplayNameAttribute se resuelven en el idioma correcto. En realidad, incluso podrías deshacerte de ese atributo y resolverlo por nombres de campo solo si eso fuera de ayuda.

Cuestiones relacionadas