Jump to content

Ajouter une traduction dans un module


msoive

Recommended Posts

Bonjour,

Le titre peut être trompeur, je ne souhaite pas ajouter un fichier de traduction mais un mot en + dans le fichier fr.php d'un module.

dans ce fichier, il y a plusieurs lignes de ce type (1 ligne = 1 mot) :
$_MODULE['<{blockcart}prestashop>blockcart_a85eba4c6c699122b2bb1387ea4813ad'] = 'panier';

Je souhaite pouvoir ajouter un nouveau mot pour ce module afin de l'utiliser sur le front.

Dans le backoffice, on peut modifier le contenu de chaque mot pour ce module mais je n'ai pas vu d'option pour ajouter un mot traduit supplémentaire.

J'ai essayé de rajouter un ligne au fichier fr.php mais vu que Prestashop génère lui-même le nom avec une chaine cryptée, comment pourvoir associé un nom à un mot traduit ?

Voici une tentative :
$_MODULE['<{blockcart}prestashop>blockcart_nomMeuble'] = 'table';

Mes essais ont ajouté un libelle "empty" au lieu de "nomMeuble" avec le mot traduit "table"...

Link to comment
Share on other sites

  • 7 months later...

Olecorre te pousse dans la bonne direction, mais je vais tenter d'être plus précis :


les fichiers fr.php, en.php, etc, ne doivent pas être modifié à la main. Ils sont générés automatiquement par le script dans l'Onglet outil/traductions.

les lignes qui apparaissent dans les traduction sont réccupérés à partir de deux sources : Dans le module lui même :

$this->l('texte à traduire')



ou dans le fichier .tpl du module en question

{l s='texte à traduire' mod='nomdumodule'}




Pour ajouter une ligne dans les traductions, il faut donc ajouter la fonction l avec la chaine de caractère (traditionnellement écrite en anglais) dans un des deux fichiers, sauver, puis aller dans l'onglet outil, traduction, pour trouver et traduire le champ nouvellement créé.

SotEW

Link to comment
Share on other sites

  • 2 years later...

Bonjour,

 

Je voulais juste signaler 2 choses (si ça peut aider quelqu'un) :

 

- Première chose, il n'est pas nécessaire de modifier le template-même du module.

On peut créer un dossier "modules/mon_module/" dans le répertoire du thème et y coller une copie du template .tpl. On peut ensuite modifier ce template (y rajouter des mots à traduire par exemple)

Et pour accéder à ses traductions :

Dans le back office : Panneau d'administration > Outils > Traductions. Choisir "Traduction des modules installés" et cliquer sur le drapeau de la langue voulue. Cliquer ensuite sur le thème dans la liste proposée, écrite en tout petit ... (ce qui emmène généralement tout en bas de la page où se trouvent les traductions ajoutées dans la copie modifiée du tpl du module associée au thème).

 

Ca peut paraitre trivial, mais j'ai mis un moment avant de capter où je pouvais modifier les traductions du thème. Donc si ça peut aider quelqu'un.

 

 

- Et sinon, deuxième chose, un peu plus dans le thème de la discussion, l'outil de traduction ne fonctionne pas avec l'utilisation d'un modifier.

 

Dans mon .tpl :

{l s='mon_mot' mod='mon_module'}
/* Fonctionne, le mot mon_mot est détecté par l'outil de traduction et rajouté dans le backoffice */

{l|capitalize s='mon_mot' mod='mon_module'}
/* Ne fonctionne pas, l'outil ne le détecte pas */

 

J'imagine qu'il faudrait surcharger la fonction Module::l, pour lui faire prendre en compte cette syntaxe, mais j'avoue que je me suis pas penché sur la question ... c'est la première fois que je manipule du prestashop, j'ai d'autres soucis prioritaires...

Par contre, si quelqu'un trouve, je suis preneur ... ;)

[Edit : Je viens de jeter un oeil, et en fait c'est bien plus compliqué que ça ... il faut retrouver l'endroit où la chaine est parsée avant d'être envoyé à la fonction l (de la classe Module ou AdminTab, je ne sais même pas d'ailleurs). Bref, ça se passe très bas niveau, j'ai l'impression et je pense qu'il faut avoir créé le truc pour s'y retrouver .... :D]

 

 

 

Sinon, merci beaucoup pour cette discussion, c'est elle qui m'a dépétré de mon problème initial.

Edited by msieur_toph (see edit history)
Link to comment
Share on other sites

  • 3 years later...

Bonjour,

moi mon soucis c'est que mon module possède bien les variables mais il n'apparaît pas dans la page des traductions ... j'ai cherché dans toutes les options qu'offre la page de traduction (front, module, themes ...) 

comprends pas ...

si je reset le module peut-être  ?

Link to comment
Share on other sites

bonjour,

en fait il semblerai que ce soit mon theme qui pose problème, ou du moins une des modifications que j'y ai apporté ... mais je comprends pas pourquoi puisque la traduction concerne le "coeur de prestashop" ...

Link to comment
Share on other sites

  • 7 months later...

Bonjour, j'aimerai juste apporter une précision à ce sujet qui est arrivé en tête de Google pour répondre à mon problème.

Pas mal d'éditeur de modules ou de templates font l'erreur de mettre des double quotes "code" au lieu des simples 'code'. Je ne sais pas si ça passait dans les versions précédentes de prestashop, mais en tout cas pas sur la 1.6.1.X .

 

Voilà, si ça peut aider, parce que c'est assez tricky. Et merci aux réponses du dessus qui m'ont bien aidé.

Un grand merci à toi digit89 pour cette précision !!!

Je m'arrachais les cheveux la-dessus depuis 2 jours...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...