ASP.NET MVC, presque terminée, il a été décidé qu'il avait besoin d'un commutateur de langue. Ce sera simplement deux langues: anglais et japonais. Ils devraient être en mesure de basculer entre les deux, mais si l'un n'est pas sélectionné, il devrait choisir la langue par défaut du navigateur.Création d'un commutateur de langue - 2 langues seulement - ASP.NET MVC
Je me demande quelle serait la meilleure solution dans ce cas.
Première pensée, routes! Donc, je change les routes pour avoir un /{l}
à la fin de chaque route, et par défaut l = ""
. Ensuite, dans mon BaseController (chaque contrôleur est basé sur celui-ci), je vérifie la variable l dans la route. Chaque action renvoie une vue basée sur la langue. Je voulais simplement pouvoir pirater/ja-jp à la fin de l'url, et montrer la vue en japonais. Il n'a pas vraiment semblé diriger correctement. Ensuite, j'étais vraiment méchant dans mes opinions et j'ai codé à la main les liens ... Je ne pouvais pas vraiment obtenir l'aide pour produire les bons liens au début ... et j'ai pris la mauvaise habitude de les coder à la main. Donc, je devrais re-coder chaque lien à nouveau - pour hacker la variable de langue à la fin.
Deuxième pensée ... ok, utilisez jQuery pour ajouter la variable de langage à toutes les href de l'ancre. Cela semble trop maladroit et difficile dans certaines situations où les hrefs sont cachés jusqu'à ce que nécessaire, etc ...
Alors ... à ce stade, j'ai décidé de faire tout ce qu'il faut. Quelle est la manière la plus élégante de basculer entre deux langues - sans utiliser de fichiers de ressources? Je veux simplement que l'action ait le choix entre 2 vues, en fonction du langage. Est-ce que je réécris chaque lien que j'ai pour utiliser l'assistant Html, puis que les routes fonctionnent? Puis dans le BaseController il suffit de définir la langue en anglais si leur valeur n'est pas?
Tout conseil est très apprécié, merci.
vu cette ?: http://oddiandeveloper.blogspot.com/2008/11/localization-with-aspnet- mvc.html – grenade