web-dev-qa-db-fra.com

Localisation de sites Web lors de l'utilisation du même domaine

Je pense à un site Web qui est essentiellement le suivant:

  • les utilisateurs peuvent insérer des repères sur une carte avec du texte et des informations supplémentaires sur l'emplacement qu'ils épinglent
  • les autres utilisateurs peuvent voir ces emplacements et lire le texte et les informations supplémentaires
  • peut-être des pages de recherche et de liste
  • Je suppose que mon public va venir du monde entier, parlant différentes langues

Maintenant, j'ai un gros problème avec i18n (internationalisation), principalement à cause du référencement:

  • Je souhaite proposer une interface utilisateur en anglais et dans d'autres langues aux utilisateurs, sur la base de l'analyse syntaxique accept-language, de GeoIP, etc., ou du choix de l'utilisateur.
  • J'aimerais que les épingles aient un lien permanent, afin que les utilisateurs puissent les trouver dans les moteurs de recherche
  • Je ne veux pas traduire le texte qui vient de l'utilisateur, juste l'interface utilisateur
  • Je ne veux pas cacher le contenu aux utilisateurs qui ont été écrits dans une langue différente, car il y a d'autres choses qui rendent ce contenu précieux sans comprendre tout le texte

Ma question est la suivante: quelles sont les meilleures options pour mes utilisateurs et pour Google? Les options que je pense avoir:

  • Détectez l'emplacement de l'utilisateur ou la langue d'acceptation, ou utilisez une préférence d'utilisateur (cookie, chemin d'URL ou chaîne de requête, par exemple) et restituez la page entière dans cette langue, à l'exception du contenu que je ne peux pas traduire (contenu généré par l'utilisateur).
  • Rendez toujours la page avec l'interface utilisateur anglaise, et avec JavaScript, traduisez-la dans la langue de l'utilisateur.
  • Je pourrais utiliser des paramètres régionaux comme sous-domaines (par exemple, en.example.com, de.xample.com, etc ...) - mais que puis-je faire avec www.example.com?

Je pense que dans les deux cas, je pourrais avoir des problèmes avec les moteurs de recherche. Avez-vous peut-être une idée intelligente pour résoudre ce problème?

2
bdadam

L'utilisation d'une combinaison de sites localisés (de.example.com ou www.example.com/de/), avec une page d'arrivée par défaut globale à www.example.com, conjointement avec des redirections conditionnelles basées sur Accept-Language est une valeur commune et parfaite. Approche conviviale pour les moteurs de recherche, si correctement optimisée.

Optimisez les variantes régionales en appliquant l'attribut lang aux moteurs de recherche qui le prennent en charge et à Google utilisez leur balise hreflang ( détails ici ) avec x-default ( détails ici ) défini sur votre valeur globale par défaut. Pour tous, veillez à utiliser les valeurs ISO correctes, par exemple en-GB pas en-UK. De même, si vous utilisez un gTLD, géolocalisez les versions localisées en conséquence avec Google et Bing Outils pour les webmasters.

Vous pouvez ensuite procéder à une redirection conditionnelle à partir de la page par défaut globale, tandis que les sites localisés doivent être renvoyés dans les recherches localisées appropriées. Les cookies peuvent être configurés pour enregistrer les préférences de l'utilisateur si nécessaire (dans l'UE, assurez-vous qu'il est conforme aux applications locales de la directive E Privacy).

N'oubliez pas que les moteurs de recherche n'envoient pas l'en-tête Accept-Language. Par conséquent, autorisez la redirection conditionnelle sur la page globale (marquée comme x-default pour Google).

Tout contenu généré par JavaScript est essentiellement invisible pour un moteur de recherche. Ne vous fiez donc pas à cela pour traduire le contenu ou pour effectuer tout ce que vous souhaitez qu'un moteur de recherche découvre.

3
GDav

Voici ma suggestion:

  • Vous pouvez trouver la meilleure langue à montrer à l'utilisateur à l'aide de l'agent d'utilisateur avec l'adresse IP de l'utilisateur, s'il n'y a pas d'enregistrement de préférence d'utilisateur.
  • Si vous souhaitez que des recherches soient effectuées dans toutes les langues, n'utilisez pas du tout le script Java pour la traduction. Vous pouvez rediriger les utilisateurs vers le domaine approprié (par exemple, de.example.com) contenant le texte localisé en HTML. De cette façon, vous avez en réalité différents sites pour différentes langues et Google concerne tout le monde, et chacun pour une langue spécifique. Pas besoin de traduire tout le site (y compris le contenu de l'utilisateur). Vous pouvez stocker le contenu de l'utilisateur dans une base de données et utiliser le même modèle pour tous les sites linguistiques afin de le remplir avec le contenu de l'utilisateur.
  • Vous pouvez utiliser www.example.com pour English (International) et utiliser des redirections vers d'autres sous-domaines tels que de.example.com si nécessaire.
2
Ali Hashemi