web-dev-qa-db-fra.com

Comment localiser l'application ASP.NET MVC?

Quelle serait la meilleure pratique pour localiser votre application ASP.NET MVC?

Je voudrais couvrir deux situations:

  • un déploiement d'application en IIS qui gérerait plusieurs langues
  • déploiement d'une seule langue/application.

Dans la première situation, devriez-vous aller avec une sorte de chose basée sur la vue comme, ~/View/EN, ~/View/FI, ~/View/SWE ou quelque chose de différent?

Qu'en est-il du deuxième cas, juste la configuration basée sur l'application via Web.config et pointer ces différentes langues vers différentes URL?

120
pirho

Vous pouvez également jeter un œil ici Guide complet de localisation ASP.NET MVC 2 et Validation du modèle ASP.NET MVC 2 avec localisation ces entrées vous aideront si vous travaillez avec ASP. NET MVC 2.

71
fyasar

Vous localiseriez votre application ASP.NET MVC de la même manière que vous le feriez pour une application ASP.NET Web Form classique.

Vous n'utiliseriez pas de pages/vues différentes pour chaque langue, mais chaque page prendrait en charge plusieurs langues à l'aide d'assemblages satellites.

Vous pouvez consulter entrée du blog de Matt Hawley pour plus d'explications et d'exemples.

22
Elijah Manor

Malheureusement, le code original de Matt Hawley ne fonctionne pas dans la version finale d'ASP.NET MVC. Consultez un article mis à jour: http://blog.eworldui.net/post/2008/10/ASPNET-MVC-Localization-via-View-Engines.aspx

En général, le processus de localisation n'est pas aussi fluide dans le monde MVC VS 2008/ASP.NET qu'avec les formulaires Web traditionnels. http://www.guysmithferrier.com/post/2009/05/Localizing-ASPNET-MVC.aspx

9
kevintechie

Jetez un œil au projet MvcStore de Rob Connery. Il fait une capture d'écran montrant une façon de résoudre le problème de la mondialisation.

http://wekeroad.com/2008/04/24/mvcstore-part-5

3
Joel Cunningham

Je n'ai jamais été convaincu de gérer la localisation dans un formulaire comme le suggère Elijah - les différentes longueurs et directions peuvent conduire à des formes très complexes ou très variées.

Je ne fais que commencer avec MVC, mais en prenant la méthode de découplage, vous voudriez utiliser le même contrôleur quelle que soit la langue (en traitant la langue comme une vue) - cela vous donnerait/Controller/Action/language/form

2
Ian T

Il y a un bon tutoriel avec une mise à jour récente sur la façon de localiser l'application mvc asp.net couvrant tous les aspects, y compris la localisation DisplayName, la validation, l'utilisation du routage (stockage du nom de la culture dans l'URL), des problèmes avec le cache de sortie et ainsi de suite ... Alex Blog Adamyan - Pendant que mon clavier pleure doucement

2
user405803

Nous avons en fait fait une différence complète en remplaçant le DataAnnotationsMetadaDataProvider . Vous pouvez vous assurer que les valeurs DisplayNameAttribute sont résolues dans la langue correcte. En fait, vous pouvez même vous débarrasser de cet attribut et le résoudre par des noms de champ uniquement si cela peut vous être utile.

1
Michael Sander

J'ai écrit cet article il y a quelque temps. Il utilise un moteur de vue personnalisé. http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/

0
Vlad