36 votes

ASP.NET - MVC 3: Localisation

Je suis sur le point de mettre en œuvre la localisation de mon MVC3 application web. Googler mon chemin à travers de grandes quantités de façons de le faire, j'ai été laissé pas certaine de la façon de le mettre en œuvre. J'ai trouvé quelques façons de le faire:

La première option que j'ai trouvé est d'utiliser App_GlobalResources et ViewData et de la culture de la sélection avec la Carte de Routage. (Lien)

La deuxième était de faire un autre dossier de Ressources dans mon projet et de la structure comme Modèle et la Vue des dossiers. Puis créer les fichiers de ressources dans ces dossiers. À l'utilisation de ces chaînes de ressource serait en utilisant le Viewbag. Puis modifier le Global.asax pour gérer la culture de changer et de créer une vue partielle pour permettre le changement de cultures. Les instructions pour ce faire sont très approfondie pourrait être le meilleur pari. (Lien)

La troisième était d'utiliser DisplayAttribute et resx-fichiers. Celui-ci était un peu flou, je ne pouvais pas trouver le type de renseignements pour que je puisse comprendre comment cela est mis en œuvre et ses restrictions. (Lien)

La quatrième était de créer une classe personnalisée pour gérer les ressources. Cela semblait assez chic et facile à mettre en œuvre et à utiliser, mais aucune véritable information n'a été trouvée si elle a effectivement travaillé. (Lien)

Ensuite, j'ai trouvé un post qui mettait en garde sur l'utilisation de l'App_GlobalResouces et App_LocalResources. (Lien)

Après être passé par des moyens possibles de faire de la localisation. Je ne pouvais pas trouver un moyen qui a été universellement approuvés ou acceptés. Cela m'a laissé réfléchir, qui de ces, ou de certains, je ne l'ai pas trouvé, serait la meilleure façon de mettre en œuvre la localisation dans ASP.NET MVC3?

6voto

Tjaart Points 780

Ensuite, j'ai trouvé un article qui vous avertissait d'utiliser App_GlobalResouces et App_LocalResources. (Lien)

J'ai trouvé ce post extrêmement utile. La méthode expliquée est très propre. Voici un extrait de ma nouvelle vue d'index créée à l'aide de cette méthode:

 @using Resources.Index
@{
    ViewBag.Title = "Index";
}

<h1>@Index.Title</h1>
 

Je ne pense pas qu'il existe une méthode définitive de type «faire comme ça», alors opter pour la méthode la plus propre me semble être une bonne affaire.

6voto

jgauffin Points 51913

Je suis venu avec un moyen plus facile pour gérer la localisation où vous n'avez pas à utiliser les fichiers de ressources ou d'attributs. Elle implique les fournisseurs de métadonnées personnalisés.

MVC3 utilise des fournisseurs de métadonnées pour obtenir toutes les chaînes de texte. Mon approche vous permet d'utiliser les tables de chaîne, une base de données, fichiers plats ou de toute autre source de fournir les traductions. Tout ce que vous devez faire est d'hériter de deux interfaces.

Lire à ce sujet ici: http://blog.gauffin.org/2011/09/easy-model-and-validation-localization-in-asp-net-mvc3/

Modifier

Maintenant que tout est documenté sur github et il y a des packages nuget: https://github.com/jgauffin/griffin.mvccontrib

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X