cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008
-
7 avril 2007 à 13:23
cs_zousfana
Messages postés4Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention22 décembre 2007
-
22 déc. 2007 à 19:09
Bonjour,
J'ai un site en 4 langues différentes. Comme mes pages sont pour la
plupart statiques et contiennes beaucoup de texte, j'ai décidé pour
chacune d'elles de créer un fichier .aspx par langue. J'aimerais
cependant pouvoir, dans les liens de mon site, appeler les pages de la
même manière quelle que soit la langue. J'ai pensé à la solution
suivante :
Créer 4 sitemap (un pour chaque langue).
Ajouter un attribut identifiant (commun entre toutes les langues pour une page donnée) à chaque sitemapnode.
Créer une fonction GetUrl(string id) qui prend en paramètre
l'identifiant précédent et qui retourne l'url correspondante dans le
bon sitemap.
Dans le code .aspx, renseigner l'attribut href de cette manière :
[<%GetUrl( ">mon lien]
L'avantage que je vois à cette technique est que si je change le nom ou
l'emplacement d'un fichier, je n'ai qu'à le changer dans les sitemap au
lieu de devoir le modifier dans chaque fichier aspx.
J'ai par contre peur que ça soit un peu lourd à exécuter, que les temps
de réponse soient allongés et que le serveur soit surchargé. Je n'ai
pas beaucoup de personne qui visitent mon site (environ 200/jours),
mais le serveur d'hébergement n'est pas très puissant...
cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008 7 avril 2007 à 15:30
Oui je suis partant pour l'url rewriting :-) Par contre j'ai cru comprendre que c'est assez difficile à faire avec IIS6. J'attendais plutôt IIS7... Mais si tu as un bon tuto qui explique comment faire, j'aimerais bien essayer.
Par contre ça sera plus que 200 requêtes par jour, puisque la fonction GetLangue() sera appelée pour chaque lien de la page chargée. C'est pour ça que j'ai peur que le temps de réponse soit allongé...
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 7 avril 2007 à 16:01
l'url rewriting c'est très simple suffit juste de bien connaitre les httpmodule ... :-/ et je n'ai pas de tuto sous la main qui explique les module. en gros un module est une couche que traverse chaque requete avant d'executer la page, la requete /fr/mapage.aspx pourra donc appeller la méthode mapage.aspx?lang=fr
Sinon pour ce qui est de la fonction GetLangue si elle ne fais que regarder la culture du thread courant tu peux l'appeller plusieurs centaines de fois par page et plusieurs page par seconde ca va pas beaucoup ralentir le serveur, ASP.net fait beaucoup pire en interne :-)
cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008 7 avril 2007 à 16:16
Ok merci je vais tester.
Sinon avec la localization et les fichier Resources.resx, ça serait possible de rediriger vers le bon fichier en fonction de la langue ? Attention, je souhaite conserver un fichier .aspx par langue. Je ne veux pas créer un fichier .aspx et mettre tous les textes dans divers fichiers resources...
Mathmax
Vous n’avez pas trouvé la réponse que vous recherchez ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 7 avril 2007 à 16:24
non, si tu veux jouer avec les resources tu aura une page avec un label et tu iras chercher le texte dans les resources (c'est automatique) mais tout ton texte sera dans les .resx.
Ca marche bien sauf que j'ai un problème avec le chargement des feuilles de styles lorsque celles-ci sont appelées avec des chemins relatifs depuis ma page .aspx. Je pense que c'est parce que la feuille de style est cherchée depuis un dossier FR qui n'existe pas. Je peux résoudre le problème en récrivant tous mes appels de feuille de styles en absolu, mais ça m'embette un peu... Aurais-tu une autre solution ?
BeginRequest est en fait appelé pour tout les liens de ma page (les .aspx, les css, les images, les scripts,...). Je n'ai plus qu'à réécrire les url en relatif convenablement. J'ai toujours peur qu'un tel traitement sur chaque élément de mes pages ralentisse le temps de réponse du serveur... tu penses qu'il n'y a pas de problème ?
Voici la logique que j'ai pour chaque levé de l'événement :
cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008 10 avril 2007 à 19:44
En fait je suis très interessé par l'url rewriting et je voudrais l'utiliser encore un peu plus :
Prenons par exemple une page dont l'url est ~/Products/Default.aspx
J'aimerais pouvoir récrire l'url comme ceci :
~/Produits/ (en français)
~/Produkte/ (en allemand)
...
A ton avis, quelle est la meilleures solution. Faire ces remplacement en dur dans le code ? Les stocker dans un fichier XML, puis charger les url dans un objet lorque Application_Start est appelée ?
cs_zousfana
Messages postés4Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention22 décembre 2007 22 déc. 2007 à 19:09
pourquoi compliquer la vie
utilise des masterPages
une pour chaque langue
et vous definissez q'une seule fois l'adresse de vos pages d'une façon statique sans code.