1

J'ai développé une application AppEngine/Python/Django qui fonctionne actuellement en espagnol, et je suis en train de m'internationaliser avec un support multilingue. Il s'agit essentiellement d'un site de rencontres, dans lequel les gens peuvent parcourir d'autres profils et envoyer des messages. L'affichage d'un profil dans différentes langues entraînera l'affichage d'une partie du texte (menus, etc.) dans la langue sélectionnée, mais le contenu généré par l'utilisateur (par exemple, le profil ou le message) sera affiché dans la langue d'origine. . Ma question est: est-il nécessaire (ou une bonne idée) d'utiliser des URL uniques pour la même page affichée dans différentes langues ou est-il correct de surcharger la même URL pour une page donnée affichée dans différentes langues. En particulier, je crains que si j'utilise la même URL pour plusieurs langues, certaines pages peuvent être mises en cache (soit par Google, soit par un autre proxy que je ne connais pas), ce qui pourrait entraîner une langue incorrecte. affiché à un utilisateur.Site Web multilingue - URL uniques requises pour différentes langues (pour empêcher la mise en cache)?

Est-ce que quelqu'un sait si c'est une préoccupation légitime, ou si je m'inquiète de quelque chose qui n'arrivera pas?

Répondre

4

En principe, vous pouvez utiliser les Content-Language et Vary têtes de réponse et l'en-tête de demande Accept-Language pour contrôler la façon dont se comportent les caches et les empêcher de servir la mauvaise langue aux utilisateurs.

En pratique, cependant, Accept-Language est souvent mal défini dans les navigateurs, ce qui explique pourquoi la plupart des sites ne s'en servent pas, ou au moins fournissent un mécanisme secondaire. Les caches peuvent également ne pas être fiables quant à l'en-tête de Vary, mais je ne suis pas sûr. Avoir des URL spécifiques à la langue est certainement un moyen pratique de le faire, et évite tout problème potentiel avec la mise en cache.

3

Je ne sais pas comment cela fonctionne avec django, mais en regardant dans une perspective générale de développement web, vous pouvez:

  • utiliser un paramètre de requête pour déterminer la langue (par exemple /foo/bar/page.py?lang=en)

  • Ajoutez le code de la langue au chemin de l'URL (par exemple, /foo/bar/en/page.py) et utilisez éventuellement mod_rewrite pour que cette partie du chemin soit transmise à votre script en tant que paramètre de requête.

Questions connexes