Submitted by DrupalNoob on
Bonjour,
J’ai un soucis dans la traduction de label pour des champs personnalisés de type user (créé via Administration » Configuration » Personnes » Paramètres de compte).
En effet, sur la page d'inscription de mon site, j'ai rajouté 2 champs :
- Un textarea avec un label et une description (pour que l'utilisateur rajoute quelques mot sur lui)
- Un booléen de type checkbox avec un label contenant un lien (pour l'acceptation des conditions générales du site).
J'ai mis l'anglais en langue par défault car j'ai lu que ça aidé pour les traduction.
J’ai aussi installé le mondule i18n.
J'ai tenté de traduire les label de ces 2 champs via la traduction de l’interface :
Administration » Configuration » Régionalisation et langue » Traduire l'interface (onglet traduire).
Cependant celà n'a pas marché, les label et les description des champs personnalisés reste en anglais.
En cherchant sur le net, j'ai trouvé une seconde solution qui consiste à exporter la traduction française (un fichier fr.po) :
Administration » Configuration » Régionalisation et langue » Traduire l'interface (onglet exporter)
Puis de modifier les champs personnalisés qui sont sous la forme :
: field:field_champperso:user:label (label) ou #: field:field_champperso:user:description (description)
msgctxt "field_champperso:user:label" (label) ou msgctxt "field_champperso:user:description" (description)
en renseignant :
- msgid pour le texte original en anglais
- et msgstr pour la traduction française
Après avoir renseigné cela pour les label de mes 2 champs personnalisés ainsi que la description j'ai importé de nouveau le fichier de traduction fr.po
Administration » Configuration » Régionalisation et langue » Traduire l'interface (onglet importer)
Lorsque je retourne sur ma page d'inscription, la traduction française s'opère pour le textarea : le label est traduit ainsi que la traduction
Cependant concernant la checkbox rien ne se passe. Le label reste désespérément en anglais.
J'ai testé en enlevant le lien contenu dans le label et le problème reste.
Peut-être qualqu'un à t'il une solution?
Bon j’ai finalement réussi à
Permalien Soumis par DrupalNoob le 10 Mai, 2011 - 10:30
Bon j'ai finalement réussi à contourner le problème pour la checkbox.
Ce champ correspondant aux Conditions Générales du site j'ai cherché un module qui pouvait peut-être m'apporter la solution.
Je suis tombé sur l'excellent module Term of Use qui permet d’ajouter une case à cocher de type « [x] I agree with @link» et de lier @link à la node contenant le texte des Conditions Générales.
Ce module a résolu en partie mon problème puisque la seul le lien été traduit étant donné que la node avais une version française et une version anglaise. J’ai tenté de traduire le début du texte de la checkbox en recherchant les chaînes(Administration » Configuration » Régionalisation et langue » Traduire l'interface – Onglet Traduire) mais elles n’apparaissent. J’ai également essayé avec le fichier .po mais aucun résultat non plus.
J’ai alors opté pour une solution plus radicale : entrer en dur le texte dans le fichier terms_of_use.module
J’ai donc remplacé la ligne
53 : $checkbox_label = filter_xss_admin(variable_get('terms_of_use_checkbox_label', t('I agree with these terms')));
Par
53 : $checkbox_label = filter_xss_admin(t('I agree with the @link'));
Puis j’ai fait une recherche de chaîne, j’ai fait une traduction en français et vidé les caches et la miracle ça marche !!!
Voilà, j’ai un peu galéré à trouvé la solution donc si ça peu aider quelqu’un….