pourquoi les traductions ne s'importent-elles pas correctement ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai toujours travaillé avec la version anglaise pour mes essais en local mais, pour passer sur des sites "publics", j'ai installé la version française. Quand j'active un module pour lequel existe une traduction, je vois "importation des traductions de l'interface utilisateur". Quand j'active Notify (qui a un fr.po), je ne vois pas cette importation et le module est en anglais. J'ai essayé d'importer ce fichier via l'administration ("traduction de l'interface"), et certaines chaînes de caractères sont en effet traduites. Mais pour quelle raison ne le sont-elles pas toutes, alors que le fichier .po contient bel et bien la traduction de celles auxquelles je pense ? Je voudrais en particulier que les utilisateurs aient une interface complètement en français (en particulier le courriel) ; je sais que je peux traduire des chaînes de caractères à la volée, mais pourquoi Drupal n'utilise-t-il qu'une partie du fr.po ?

Merci,

Forum : 
Version de Drupal : 

J'aimerai pouvoir répondre mais je n'ai jamais expérimenté ce genre de problème (mais je n'ai jamais utilisé Notify, je suis satisfait de Notifications)... tu as fait une recherche côté english je suppose ?

Si par "recherche côté english" tu veux dire "recherche dans les issues du module", la réponse est oui, mais je n'ai rien vu qui corresponde à mon problème ; je n'ai pas posté non plus, tu vas me dire, mais je pensais que le problème venait plutôt de Drupal que de Notify. Ceci à cause du fait qu'en important le .po à la main, il est pris en compte partiellement. Selon toi, ce serait Notify ? ah... dommage, je l'aime bien, il est assez simple... Si tu me dis que la traduction pour Notifications marche bien, je vais peut-être changer mon fusil d'épaule.

Mais au-delà de Notify, j'ai aussi eu le souci avec Birthdays ; j'ai voulu faire une traduction "àlabarbare" (en éditant le de.po avec notepad, en traduisant les chaînes de caractères et en plaçant mon fr.po dans les fichiers du module - non, c'est pas propre, je sais), eh bien c'est pareil : certaines chaînes que j'ai traduites apparaissent en français, d'autres apparaissent en anglais... Je ne comprends pas très bien...

Merci de ta sollicitude ! je me sentais un peu seule ;-)

C'est malheureusement le souci sur la communauté Fr, dès que les problèmes deviennent un peu pointilleux, il n'y a qu'une poignée de Drupaleurs capable d'aider.

Je ne peux que t'encourager dans ton combat contre ta traduction.

On ne peut pas comparer une communauté de plusieurs milliers de dév et designers et une communauté de plusieurs centaines avec quoi, une centaine d'utilisateur vraiment très actifs ? C'est valable pour la plupart des CMS (à part Typolight ou la communauté FR est plus active :P).

Bon ceci dit, non je ne pense pas que ce soit Notify mais il faudrait creuser ton environnement serveur ou un truc plus "corner case" parceque personnellement je n'ai pas expérimenté ça et si tu ne trouves aucune référence sur le web je doute que ce soit un problème lié à Drupal lui-même.

hello
je dis ça à l'aveugle ne m'occupant jamais de cette partie et ne sachant pas à quoi ressemble les fichier po; mais ce que tu décris me fait fortement penser à un probleme de formatage du fichier po : par exemple si les chaines sont délimitées par des guillemets; peut être une des chaines a -t-elle été fermée avec une apostrophe à la place d'un guillemet ou vice versa, ou bien il manque carrément un guillemet quelque part ou encore : une chaine est délimitée par des apostrophes et la chaine elle-même contient un mot avec une apostrophe (genre "aujourd'hui") ce qui suffit à tout faire planter en beauté.

Après il y aurait peut être d'autres pistes à explorer : est qu'il y a des caractères bizarres que l'importation de Drupal gère mal ? il ne faut pas oublier que les anglophones n'ont pas d'accents et autre caractères exotiques dans leur langage; si bien qu'un caractère de chaine en français peut perturber le fonctionnement d'un script anglophone parfois.

Bonjour,
J'ai déjà eu ce problème plusieurs fois (entre autres avec ubercard et slideshow) sans pouvoir encore le résoudre.
Je sais que sur le module slideshow c'était juste pour la partie visible et en particulier les liens suivant et précédent.
N'ayant pas pu traduire "précédent" via l'administration j'ai bricolé un fichier fr.po
que j'ai traduit en entier mais sans que le problème soit résolu.
Il y a donc certainement un problème avec les accents (pourtant le fichier de départ est en utf8, mais je n'ai rien compris à la manière de traduire les modules. Je n'ai trouvé que des informations éparses qui ne me permettent pas de comprendre la démarche pour effectuer une traduction et de la mettre à disposition de la communauté.
Impossible de trouver un POT pour ce dernier module, c'est pour cette raison que je l'ai fait à partir d'un ru.po qui était disponible avec le module.
Le plus crétin c'est que je ne sais même pas comment en faire profiter la communauté.
Je le mets en fichier attaché au cas où ça intéresserait quelqu'un. C'est tout de même trop bête que nous devions faire chacun ce genre de truc dans notre coin…

Je remonte ce sujet car j'ai enfin trouvé le temps (ça m'en a pris beaucoup plus que prévu d'ailleurs) de reprendre ce dossier... toujours pas réglé.

J'ai essayé de refaire un fichier fr.po propre avec poedit. A l'enregistrement du fichier, poedit me signale une erreur fatale apparemment sur une chaîne où plusieurs cas peuvent se présenter (mettre les termes au pluriel quand il y a plusieurs unités). Dans wordpad, je rentre manuellement ce qu'il faut, et j'enregistre.

#: notify.inc:239
msgid "1 new node"
msgid_plural "%count new nodes"
msgstr[0] "1 nouveau noeud"
msgstr[1] "%count nouveaux noeuds"

A l'activation du module (préalablement désinstallé), je ne vois pas "importation de l'interface traducteur. J'importe ce fichier à la main et je vois le message suivant : Le fichier de traduction fr.po contient une erreur : la formule de valeurs plurielles n'a pu être analysée.

Et j'ai un espèce de salmigondis franco-anglais avec des chaines traduites (pas les miennes), des chaines que j'avais traduites qui ne le sont pas, et des chaines pas du tout traduites alors qu'elles devraient l'être.

Dans les paramètres de poedit, j'ai bien "jeu de caractères = UTF-8", et pour "Formes plurielles" la valeur par défaut "nplurals=INTEGER; plural=EXPRESSION;".

Je ne sais plus quoi faire...

edit; non, ce n'est pas "ce qu'il faut" que j'ai enregistré manuellement, mais ce qu'il y avait dans le fr-po original ; à la réflexion,

msgstr[0] "1 nouveau noeud"
msgstr[1] "%count nouveaux noeuds"

est-ce bien normal ? (je veux dire le [0]=1, [1]=x)

Cela a effectivement réglé le problème pour l'enregistrement du fichier, poedit ne râle plus. [edit: j'ai oublié l'essentiel : MERCI Plouf!]
Après j'ai réimporté le fichier ; j'ai constaté que certaines chaînes sont passées, mais d'autres ne le sont toujours pas. Le message est "bilingue".

Scrogneugneu !
c'est vraiment nul ce logiciel en fait, c'est quoi son nom déjà ?

Un peu marre de passer tant de temps pour simplement obtenir que mes utilisateurs reçoivent chaque semaine la liste de ce qui a été publié. J'aurais perdu moins de temps en décidant d'envoyer mes messages digest à la main (vu l'ampleur assez réduite du nombre de publications hebdomadaires). Je vais essayer Simplenews + Simplenews Digest s'il fonctionne...

Mais cela ne règle pas le problème général de l'importation des traductions. Je ne comprends pas très bien la logique qui la régit.

la seule méthode que j'ai trouvé, c'était de faire un import/export via l'interface: j'ai tout essayé avec les fichier .po dans la machine, mais rien n'y fait: j'ai du me résoudre a TOUT impoter/exporter.
Et puis vu comme fonctionne le serveur de trad fonctionne, je crois que ma traduction d'advanced poll, ben je vais me la garder pour moi ...

Juste comme ça, en listant cette dernière remarque, je me dis que ce forum devrait avoir une fonction "Epingler un utilisateur pour qu'il ne soit plus aidé... il préfère se garder ses trucs pour lui" !!!

A bon entendeur

Webmaster débutant... pour soi-même (si si) et quelques associations de son village :-)

ben relis le commentaire: justement, j'aimerais bien filer mon taf: mais si le serveur de trad ne fonctionne pas, je vais pas aller y regarder tous les jours: ça marche je file ma trad, ça marche pas, tant pis pour les autres.

A bon lecteur.

Bonjour

Ma piste est certes tardive, mais elle pourra peut-être aider d'autres personnes :

  • Dans Administrer › Configuration du site > Toutes les langues : j'ai décocher l'anglais.

Résultat : les quelques modules qui apparaissaient en anglais alors que j'avais un fr.po, sont maintenant en français, et pour ceux dont la traduction n'est pas disponible... ben ça reste en anglais.

Sinon Administrer › Construction du site > Traduction de l'interface * Importer :
le fait de charger des fr.po de divers modules permet la traduction de certaines parties d'autres modules non traduites. C'est pas la panacée mais c'est déjà ça.

Et enfin, il reste la possibilité de rechercher des chaines et de les traduire à la main.

En remplaçant INTEGER et EXPRESSION par les valeurs données par Plouf, ça passe sans problème, en tous cas concernant les pluriels. Après, la syntaxe du fichier po pour les pluriels, je n'ai pas encore eu l'occasion de le voir : est-ce bien [0] et [1] ?

Le souci est l'accentuation française qui doit être remplacée par les valeurs en code HTML, sinon ça ne passe pas.
Le mieux c'est de faire toute la traduction, puis Rechercher et Remplacer chaque type d'accentuation par son code (é par & e a c u t e; , etc.)

Bonjour,

Je pense que ce module pourra résoudre tous vos problèmes de traduction :

http://drupal.org/project/po_re_importer
"With the module you can re-import all translation files of the modules, themes and install profile (D7) or only a translation file of a module, theme and install profile (D7) per language. And if you change a translation file or with a module update comes a new/updated translation file(s) the module will see this and you can with simple click automatically import the translation file"

Bref, que du bonheur :)

Bonne continuation !