2009-03-02 8 views
3

J'essaye de planifier pour la localisation future (mois de suite) d'un nouveau site ASP.NET MVC.Comment implémenter la localisation avec les routes ASP.NET MVC?

Essayer de décider ce qui est le plus logique à faire, en ce qui concerne la construction des URL et le routage.

Par exemple dois-je commencer immédiatement avec ceci:

http://www.example.com/en/Products/1001 
http://www.example.com/es/Products/1001 

ou tout simplement

http://www.example.com/Products/1001 

puis ajouter d'autres langues plus tard

http://www.example.com/en/Products/1001 

Cest mon problème principal de base en ce moment , essayant d'obtenir le routage correct. Je veux que mes URL soient indexables par un moteur de recherche correctement. Je ne suis même pas sûr si je veux la langue dans l'URL mais je ne pense pas qu'il y ait une bonne alternative qui ne confondrait pas un moteur de recherche.

Il conduit à toutes sortes d'autres questions comme «ne devrais-je localiser les produits de mots» mais pour l'instant je veux juste obtenir le routage en place avant de lancer le site anglais.

+1

Vous pouvez essayer le projet génial [AttributeRouting] (https://github.com/mccalltd/AttributeRouting/wiki/Localization) que je viens de trouver! Vous pouvez l'obtenir via [NuGet] (https://nuget.org/packages/AttributeRouting). –

+0

duplication possible de [Sites Web multilingues avec ASP.NET MVC] (http://stackoverflow.com/questions/291405/multi-lingual-websites-with-asp-net-mvc) – manojlds

Répondre

2

J'ai exactement le même URL_mapping comme vous. Mon itinéraire utilise également une contrainte. Fonctionne pour moi.

routes.MapRoute(
      // Route name 
      "LocalizedController", 
      // URL with parameters            
      "{language}/{controller}/{action}", 
      // Parameter defaults 
      new { 
       controller = "Home", action = "Index", 
       language = "de" 
      }, 
       //Parameter constraints 
      new { language = @"de|en" } 
+0

de sorte que vous avez choisi d'inclure la langue même pour l'anglais. juste par commodité? –

+0

Mon défaut est la langue allemande. Si vous voyez la première page, vous n'avez pas la langue dans l'URL. Mais implicitement, vous obtenez la langue allemande. Dès que vous utilisez un lien d'action ou un message sur une action, vous obtenez la langue dans l'URL. –

1

J'utiliser un schéma d'URL différentes comme ceci:

en.mysite.com (English) 
mysite.com (default language) 
ro.mysite.com (Romanian) 

etc.

alors je créer un itinéraire personnalisé comme dans this answer.

Questions connexes