Jump to content

Ajouter des champs de traduction


Recommended Posts

Bonjour,

 

J'ai vu que les pages mentions.tpl, secure-payment.tpl et conditions.tpl sont devenus super light depuis la v1.0.

 

J'imagine qu'il y a une explication lié au juridique. Car ce type de texte (surtout CGV) n'a doit pas être fournis par défaut car il doit être vraiment écris sur mesure par chaque site marchand (c'est chiant mais ca évite les surprises avec les CGV un peu trop vite copier/coller).

Et surtout un explication technique lié a la traduction... Pour pouvoir traduire ces pages (car apparavant ces textes etait en "dur" dans les pages .tpl)

 

Donc ok c'est normal mais à présent, il faut refaire ces pages ... Et la il y a un problème car on ne dispose que d'un seul champ pour gérer tout le texte (qui doit inclure de nombreux sous titre et paragraphes) !

Par exemple dans "secure-payment.tpl", on ne dispose que d'un seul emplacement [some words about payment means].

 

Aussi j'ai quelques questions à vous poser à ce sujet...

 

Comment est-il possible d'ajouter de nouveaux champs ?

 

Doit-on modifier directement /www/themes/prestashop/lang/fr.php  ou existe-il quelque chose dans l'admin ?

 

Si on modifie direct, comment générer de lignes du type $_LANG['secure-payment_5f30702c50f64d0a952d11470cdd9447'] = 'Titre 2'; ?

 

Comment générer ce code "5f30702c50f64d0a952d11470cdd9447" .? .. Au hazard ?

 

Y a t il une limite pour la taille du texte (ex dans le cas de la page conditions.tpl qui est très longue, on peut vite arriver a un nombre tres important de caractères) ?

 

Dernière chose... Une remarque... Dans le module de traduction pour éditer les textes, on ne dispose que de champs de type TEXT et c'est galere pour géré les longues (et multiples) lignes. Serait-il possible d'avoir un champ TEXTAREA a la place ?

 

Sinon vous savez ce que je pense de PS... Toujours d'la bombe ... et bravo pour la RC2 !

 

 

Link to comment
Share on other sites

:D Pour la traduction (dans la version RC2), c'est :

 

Back Office >> Outils >> Traductions

 

En suite, tu as une boîte :

 

Modifier les Traductions

 

Tu choisis :


  • [li]Traductions du Front Office[/li]
    [li]Traductions du Back Office[/li]
    [li]Traduction des messages d'erreurs[/li]
    [li]Traduction du nom des champs[/li]
    [li]Traduction des modules[/li]
    [li]Traduction des fichiers PDF[/li]

 

Et en suite, tu cliques sur le petit drapeau [FRANCE].

 

Et enfin, tu cliques sur "Déplier tous les blocs" ou simplement le bloc "secure-payment".

 

Et tu change la valeur de "[some words about payment means]".

 

Bon courage, bonne continuation, tiens nous au courant.  8) ;)

Link to comment
Share on other sites

Merci Julien mais je pense que t'as lu mon message un peu vite.

Merci pour l'info mais mon problème est pas comment traduire un champ mais comment ajouter des champs (d'ailleurs c'est meme le titre !)

 

 

Link to comment
Share on other sites

Je te prie de m'excuser, j'essaie d'être réactif entre deux lignes de code / commandes...

 

Pour rajouter un champs disponible à la traduction, il te suffit simplement de mettre ceci :

Dans un fichier *.tpl (Ex: /themes/prestashop/secure-payment.tpl)

{l s='This text in French !'}

 

Ainsi, grâce à la procédure indiquée précédemment, tu pourra ajouter ta traduction :

Ce texte en Français

 

Encore toutes mes excuses  ;D

 

Tiens moi au courant  8)

Link to comment
Share on other sites

Non mais y a pas mal Julien :)

 

Alors le simple fait d'ajouter dans {l s='This text in French !'} dans un tpl suffit à mettre a jour le fichier fr.php ?

Je pensais qu'il fallait mettre a jour les deux fichiers : fr.php et xxx.tpl

Je vais tester ca ce soir.

 

 

Sinon qu'est ce que tu penses de ma derniere remarque " Dans le module de traduction pour éditer les textes, on ne dispose que de champs de type TEXT et c'est galere pour géré les longues (et multiples) lignes. Serait-il possible d'avoir un champ TEXTAREA a la place ?"

Link to comment
Share on other sites

Alors le simple fait d'ajouter dans {l s='This text in French !'} dans un tpl suffit à mettre a jour le fichier fr.php ?

 

Ce n'est pas tout à fait exacte, en fait, c'est uniquement lorsque tu met à jour ta traduction via le système.

Le fichier fr.php, es.php, it.php.... ou autre est alors remis à jour.

 

Dans le module de traduction pour éditer les textes, on ne dispose que de champs de type TEXT et c'est galere pour géré les longues (et multiples) lignes. Serait-il possible d'avoir un champ TEXTAREA a la place ?"

 

C'est effectivement une très bonne idée, mais d'un point de vue mise en place, cela ne "colle" pas avec le système.

Quoi qu'il en soit, tu écris un court texte, tu met à jour via le système, puis tu modifie à la main le fichier fr.php

De toute façon si tu as un long texte, tu peux faire :

<h1>{l s='My First Title'}</h1>
<p>{l s='My First Text Line 1'}</p>
<p>{l s='My First Text Line 2'}</p>
<h1>{l s='My Second Title'}</h1>

 

8) Have fun !

Link to comment
Share on other sites

Alors résultat des courses ... Le système est très simple et marche parfaitement.

Par contre je viens de tomber sur un os... On ne peut pas inclure directement des variables smarty dans la traduction... logique il faut qu'elles restent dans le .tpl pour être interprété.

 

Exemple pour mentions.tpl

 

<h3>{l s='Traitement'}</h3>
<p>{l s='Traitement_Texte'}</p>
<div class="center">
<div class="frame">
	{$conf.PS_SHOP_NAME}<br />
	{$conf.PS_SHOP_ADDR1}<br />
	{if $conf.PS_SHOP_ADDR2}{$conf.PS_SHOP_ADDR2}<br />{/if}
	{$conf.PS_SHOP_CODE} {$conf.PS_SHOP_CITY}<br />
	{$conf.PS_SHOP_COUNTRY}
</div>
</div>

 

En front on peut voir ...

 

Traitement des données

 

Les informations qui vous concernent sont destinées à {$conf.PS_SHOP_NAME}.

En aucun cas, les données recueillies sur le site {$smarty.server.HTTP_HOST} ne seront cédées ou vendues à des tiers.

Aucune adresse email ne sera transmise à des tiers y compris à nos partenaires sauf avec l'accord express des intéressés.

Vous disposez d'un droit d'accès, de modification, de rectification et de suppression des données qui vous concernent (art. 34 de la loi "Informatique et libertés" du 06/01/78).

Pour l'exercer, adressez vous à :

Boutika

50 Avenue de l'impératrice

64000 PAU

France

 

Alors voila le problème est double :

Il faut découper le texte en autant de partie qu'il y a de variables

Par exemple dans le cas de ce paragraphe, on doit avoir :

 

<h3>{l s='Traitement'}</h3>
<p>{l s='Traitement_Texte'} {$conf.PS_SHOP_NAME}.
{l s='Traitement_Texte2'} {$smarty.server.HTTP_HOST} {l s='Traitement_Texte3'}</p>
<div class="center">
<div class="frame">
	{$conf.PS_SHOP_NAME}<br />
	{$conf.PS_SHOP_ADDR1}<br />
	{if $conf.PS_SHOP_ADDR2}{$conf.PS_SHOP_ADDR2}<br />{/if}
	{$conf.PS_SHOP_CODE} {$conf.PS_SHOP_CITY}<br />
	{$conf.PS_SHOP_COUNTRY}
</div>
</div>

 

Bon, dans ce cas, on s'en sort pas trop mal ... mais imaginez pour la page conditions.tpl, ca va être l'enfer tellement il y a de textes et de variables (60).  Bon tu me diras avec un peu de patience ça peut se faire.  :-

 

Mais il y a un problème autrement plus complexe... celui de la traduction !

En effet rien ne dit que dans les autres langues chaque variable se positionnera exactement au même endroit qu'en français ... surtout lorsqu'elles se trouvent en plein milieu d'une phrase (en anglais on ne met pas le sujet forcement au même endroit qu'en français) !

Et la il n'y a pas de solution ...

A part s'arranger qu'à chaque fois la variable se place bien à l'extrémité de la phrase. C'est possible mais ça fait au final des phrases très mécaniques. Prenons un exemple il faut avoir "Le site suivant est super : www.site.fr " à la place de  "Le site www.site.fr  est super !".. C'est beaucoup moins classe.

Et encore plus grave... Parfois dans d'autres langues le texte est carrément différents (partie en plus ou en moins)... Surtout vrai pour les textes juridiques car la règlementation d'un pays à l'autre est souvent très différentes et on ne doit absolument pas traduire la page mot à mot... donc les variables et les coupures n'auront à rien voir d'une langue à l'autre.

 

Et puis n'oublions pas plusieurs petites choses :


  • [li]le module de traduction, on a qu'un petit champ texte d'une ligne pour éditer et contrôler les phrases. Vraiment pas pratique pour ce type de gros paragraphes[/li]
    [li]ces pages au final sont très statiques...On les mets en place une bonne fois pour toute et on en parle plus.[/li]
    [li]Ca alourdi inutilement la base de donnée, car on y inclus pleins d'énormes textes.[/li]

 

Mais bon tu me diras qu'il faut bien les traduire ces putains de pages. ;D

 

Donc au final voila ce que je propose...

Pour des grosses pages statiques qui souvent utilisent pleins des variables smarty tels que mentions.tpl et dans une moindre mesure secure-payment.tpl, conditions.tpl, about-us.tpl et quelques autres présentes ou futures...

On devrait revenir a la solution antérieur cad avoir le texte en dur dans la page

Avec soit une page par langue : mentions_fr.tpl  mentions_us.tpl  mentions_es.tpl

Ou alors, on garde une seule page mentions.tpl ... et elle inclurais les textes de toutes les langues et on ajouterais juste un petit test de la variable de langue afin d'afficher uniquement le texte de la langue en cours.

 

On serait libre d'éditer tranquillement ces pages avec un bon vrai éditeur de texte et on l'upload par FTP une bonne fois pour toute (me dites pas que c'est compliqué et archaïque car la solution actuelle l'est au final surement bien encore plus).... Et si vous avez encore des doutes ... Allez un peu vous cognez la page mentions en trois langues, vous verrez vite de quoi je veux parler !  :P

 

Voila j'espère que je vous ai pas trop saoulé avec mes explications et surtout que j'ai pas été trop confus.

Entre nous, je pense que le problème est relativement important et donc qu'il ne serait pas inutile de bien le reconsidérer.

 

Voila sur ce... je vous souhaite une bonne e-nuité !

Link to comment
Share on other sites

Le mieux est encore (selon moi) de rédiger vos conditions en PDF pour chaques langues avec le liens qui va bien :

<a href="cond.pdf">{l s='Download the conditions !'}</a>

 

Et dans le pdf, inclure toutes les langues ou seulement celles dont vous souhaitez conditionner l'utilisation.  ;)

Link to comment
Share on other sites

Dans l'absolu, Je suis ok avec toi pour les CGV.

En effet, ce type de document doit plutôt se retrouver proprement mise en page dans un PDF.

 

Mais il est également important que les clients puissent lire les CGV directement sur une page html.

Il y est pas garantie que votre client puisse forcement ouvrir un PDF... Hors l'affichage des CGV est une obligation légale.

 

Et n'oublie pas que nous parlons la uniquement de la page mentions.tpl... Or ce n'est qu'un exemple, il n'y a pas de que cette page. Et on va pas "dégager" systématiquement toutes les pages qui posent problème en PDF.

 

Et dernière chose,  on ne peut pas générer le PDF à la volée avec les variables smarty.

 

 

 

 

Link to comment
Share on other sites

×
×
  • Create New...