Traduire une URI

Vous devez être connecté pour utiliser le forum. Vous pouvez le faire ici.

Auteur Message

Matthieu GILLES

Mercredi 07 Mai 2008 5:37:53 pm

Traduire une URI

Bonjour,

Je suis en train de développer un site bilingue (fr/en) et découvrir eZ du même coup. J'affiche sur toutes les pages 2 images liens permettant de passer rapidement d'une langue à l'autre. Le contenu sur lequel je teste semble bien intégré puisque j'arrive à afficher les contenus des 2 langues en passant d'un siteaccess à l'autre.

Mon souci vient de l'uri affichée pour accéder ces liens.
Je les affiche via le code suivant (trouvé sur un forum qui semble dater) :
<a href={concat("../fr/",$uri_string)|ezurl}>
<a href={concat("../en/",$uri_string)|ezurl}>

Ce qui génère le code HTML suivant :
<a href="/[site_ez]/index.php/en/../fr/content/view/full/62">
<a href="/[site_ez]/index.php/en/../en/content/view/full/62">

Certes cela fonctionne mais en termes de référencement, zéro.
Comment pourrais-je obtenir 2 uri qui pointent toujours vers le contenu en cours mais qui seraient de la forme :
<a href="/[site_ez]/index.php/en/folder_name/content_name">
<a href="/[site_ez]/index.php/fr/nom_du_dossier/nom_du_contenu">

En espérant avoir été clair et concis.
Merci d'avance,

Matthieu

sébastien gaillard

Mercredi 07 Mai 2008 5:48:37 pm

Re: Traduire une URI

Bonjour,

je pense que tu peux procéder ainsi: {concat("../en","/",$uri_string)|ezurl}

Sébastien

Bertrand Dunogier

Mercredi 07 Mai 2008 6:42:10 pm

Re: Traduire une URI

Pour ce qui est des URL multilangues, cette fonctionnalité a été ajoutée à partir de eZ publish 3.10 / 4.0, et ne demande pas de configuration particulière.

Pour ce qui est de créer un lien vers les versions linguistiques de votre site, cela dépend bien entendu de la configuration de la méthode d'accès à vos siteaccess (uri ou host). Vous pourriez essayer ceci:

<a href={concat("en/', $module_result.uri)|ezurl}>Anglais</a>
<a href={concat("fr/', $module_result.uri)|ezurl}>Français</a>

Je vous déconseille fortement d'utiliser l'URL absolue ([site_ez]/index.php/...) dans vos templates. L'opérateur ezurl se chargera de générer des URL valides.

Matthieu GILLES

Lundi 23 Juin 2008 4:55:21 pm

Re: Traduire une URI

De retour après quelques soucis de connexion au forum et d'autres obligatoins, avant tout merci d'avoir pris le temps de me répondre.

J'ai essayé d'approfondir vos propositions en essayant des variantes. Je parviens toujours à une solution qui d'un point de vue fonctionnel est correcte mais n'est pas celle que je souhaite.

J'utilise actuellement le code :
{concat(ezroot('no'), 'index.php/en/', $module_result.content_info.url_alias)}

Mais cette solution présente le problème suivant, deux liens peuvent pointer sur un même contenu :
/fr/nom-du-contenu-francais/ => depuis le menu de langue du siteaccess français
/en/english-content-name/ => depuis l'arborescence ou n'importe quelle page du siteaccess anglais
Ce qui amène le problème du duplicate content sur toutes les pages disposant d'une traduction.

J'ai essayé de récupérer le contenu en anglais via un fetch de mon object_id, mais rien qui n'aboutisse au résultat escompté. J'en arrive à la conclusion que eZpublish n'offre pas de solution simple pour résoudre mon problème.

Merci à tout ceux qui pourront m'apporter un élément de réponse, quel qu'il soit, et merci de m'avoir lu.

eZ publish™ copyright © 1999-2008 eZ systems as