J'ai créé un site multilingue, mais en utilisant plutôt l'élément de menu Articles en vedette comme Accueil, j'ai utilisé un élément de menu Article simple. Les éléments de menu, les catégories, les articles sont tous associés parmi les langues.
Si j'utilise l'élément de menu d'accueil du menu principal, cela fonctionne bien.
Le problème est que mod_languages génère une URL dupliquée pour les pages d'accueil, lorsque je suis dans la page d'accueil et que je souhaite changer de langue.
Donc, au lieu d'aller sur "www.monsite.com/fr" - vous allez sur "www.monsite.fr/home". Donc, actuellement, il y a 2 URL dupliquées évidentes pour toutes mes pages d'accueil.
Ceci est la suite de ce vieux problème.
Ce problème semble être résolu maintenant dans les versions récentes de Joomla. La création d'associations parmi les articles de la page d'accueil Langues fonctionne comme prévu - (ceci est testé et confirmé avec Joomla 3.7.2).
Cependant, je devais faire face à un problème très similaire aujourd’hui, sur un site multilingue contenant des articles pour les pages d’accueil associées et utilisant également sh404SEF.
Avec la configuration ci-dessus, certains problèmes sont apparus:
sh404SEF a créé des URL en double pour certaines pages d'accueil - un www.example.com/lang
et un www.example.com/lang/article-alias
_ Des URL peuvent être créées pour la page d'accueil de chaque langue.
Il n'était pas possible de revenir à la langue principale du site Web, car pour une raison quelconque, le lien dans les mod_languages pour la langue principale de la page d'accueil était comme www.example.com/lang/home-alias
qui redirigeait vers la page d'accueil de la langue actuelle.
Le problème provient de mod_languages, car actuellement, il vérifie toujours les associations du composant et, s'il les trouve, il créera cette URL pour la page. Bien que dans ce cas, nous pourrions simplement vouloir utiliser uniquement l'association des éléments de menu pour les maisons et ignorer les associations du composant (je ne suis pas sûr que cela devrait toujours fonctionner pour chaque cas et chaque configuration de page d'accueil).
Le moyen le plus simple de surmonter ce problème consiste à désassocier les articles utilisés par les éléments de la page d'accueil, de sorte que le mod_languages utilisera simplement les associations d'éléments de menu.
Au départ, sh404SEF me donnait ces problèmes. La désassociation des articles fournit initialement une solution pour les URL créées avec sh404SEF sur le module de commutation de langue.
Cependant, si vous êtes comme moi et que vous aimez garder les choses organisées, alors vous voudrez probablement également associer les articles de la page d'accueil.
Afin de résoudre ces problèmes, j'ai créé des URL SEF manuelles pour les articles de page d'accueil dans le composant sh404SEF, qui étaient simplement les codes de langue d'URL pour chaque langue.
Donc pour la langue anglaise principale - j'ai changé l'URL que sh404SEF était en train de créer avec l'alias de l'article, en /en
. Cela a bien fonctionné même avec le paramètre permettant de supprimer le code d'URL de langue par défaut dans le plug-in de filtrage de langue.
Que si l'URL de l'article de page d'accueil est défini manuellement dans sh404SEF, des problèmes peuvent survenir si vous décidez un jour de changer le code de langue de l'URL, car ils ne seront plus les mêmes.
J'ai une configuration similaire, mais j'ai utilisé la fonction des articles en vedette. Cela fonctionne si vous créez 3 éléments de menu.
Élément de menu n ° 1: Votre menu principal "principal", celui-ci est l'élément de fonctionnalité. Collez-le dans un menu caché pour que personne ne le voit apparaître nulle part. Réglez-le de sorte qu'il s'agisse de l'élément d'accueil par défaut (l'étoile est marquée).
Créez ensuite 2 articles, un pour chaque article personnel dans leur langue respective et affectez-les à la langue. Réglez-les à la fois en vedette.
Élément de menu n ° 2 Créez un menu en anglais et créez un élément de menu d'accueil en anglais et un lien vers l'article anglais uniquement. Définissez la langue de cet élément en anglais. Cliquez sur l'icône Accueil pour ce menu et il DEVRAIT lui attribuer un drapeau de pays au lieu d'une étoile.
Élément de menu n ° 3 Créez un menu pour l’autre langue, puis créez un élément principal et associez-le à cet article. Définissez la langue de cet élément sur l'autre langue. Cliquez sur l'icône Accueil pour ce menu et il DEVRAIT lui attribuer un drapeau de pays au lieu d'une étoile.
Ensuite, pour chaque élément de menu dans les deux menus de langue différents, vous pouvez affecter l'élément de langue alternative qui va avec (de sorte que si un utilisateur clique sur l'icône d'indicateur, il passe à l'autre article sans donner d'erreur).
Le truc, c'est ce premier article de maison "maître". Encore une fois, vous ne voyez jamais la fonction en vedette (ce que je peux dire), mais vous voyez la maison dans chacun des deux autres menus.
Aucune idée si cela vous aide ou non, mais cela fonctionne parfaitement sur un site que j'ai construit: