J'ai une page Vues dans un site Web multilingue où j'ai besoin d'une URL différente pour chaque langue, c'est-à-dire:
- es: mysite / apartamentos.
- fr: mysite / appartments.
- en: mysite / appartements.
- ru: mysite / arendu.
J'ai créé un alias d'URL pour chaque langue (qui est mysite / appartments bien que la langue par défaut de mon site soit l'espagnol) donc l'alias espagnol pour appartments
est apartamentos
et ainsi de suite. J'ai créé ces alias à l'aide de configuration >> Search and Metadata >> URL aliases >> add alias
.
Je dois passer des paramètres de requête à la vue pour filtrer les résultats, donc mon URL est quelque chose comme mysite / en / appartments / p / location_field / 2 et j'ai un formulaire où je mets manuellement l'action comme:
echo "/".$language."/".$translated_page
où la page traduite peut être des apartamentos, appartements, appartements ou arendu, ce qui rend l'URL de l'action:
/ es / apartamentos, / fr / appartements, / en / appartments et / ru / arendu
Mon problème est que lorsque ce formulaire est envoyé, Drupal m'envoie à
mysite / es / appartments / p / location_field / 2
au lieu de
mysite / es / apartamentos / p / location_field / 2
et la même chose se produit pour toutes les langues. Le reste de la chose semble bien et même le fil d'Ariane (qui est généré en utilisant l'URL) semble correct (Inicio >> Apartamentos Costa Dorada, en espagnol).
Lorsque j'utilise le commutateur de langue, il me redirige vers la page traduite correcte, mais sans les paramètres de requête ( mysite/es/appartments/p/location_field/2
il m'envoie vers mysite/es/apartamentos
).
Je ne sais pas ce qui peut être à l'origine de ce problème, peut-être que les paramètres de requête interfèrent avec l'interprétation des alias?
Remarque : j'ai de nombreux modules de traduction activés. Pour les modules i18n, il y a: bloc, champ, menu, nœud, chemin, chaîne, taxonomie, traduction (ensembles de traduction), variable et vues.
la source
Réponses:
Sous-module i18n_path
Je suppose que vous utilisez également le module i18n . Assurez-vous donc que vous avez également activé le
i18n_path
sous - module (= traduction du chemin). Plus de détails à ce sujet, dans la documentation de la communauté (balisage gras ajouté ici):pages vues i18n
Vous pouvez également vérifier si vous pouvez le faire fonctionner à l'aide du module de visualisation des pages i18n . Quelques détails sur sa page de projet:
Note 1 : " si vous ne trouvez aucune option dans la vue pour traduire le chemin d'accès " (comme dans votre commentaire ci-dessous), alors vous voudrez peut-être jeter un œil à ce qui est mentionné dans le commentaire # 1 du numéro 2389535 , qui stipule:
Sérigraphie 1 :
Sérigraphie 2 :
Note 2 : Pour répondre à la question sur " Dois-je recréer la page de vue entière pour en faire une page i18n_? " (Comme dans l'un de vos commentaires (maintenant supprimés) sous cette réponse), je voudrais essayer d'utiliser l'une des approches décrites dans les réponses à la question sur Comment dupliquer un affichage de vues (qui n'est pas le maître) en tant que type d'affichage différent? ... Si cela ne fonctionne pas / ne s'applique pas, la recréation de la page d'affichage entière semble être la seule option qui reste.
la source
Supprimez le chemin-alias et essayez de coder ce cas spécial vous-même, en utilisant
hook_url_inbound_alter et ou hook_url_outbound_alter
Vous pouvez également modifier l'action de la forme du filtre exposé:
Ou:
Formulaire pris ici Comment changer l'URL d'envoi du filtre de recherche exposé?
la source