Extraction et intégration, le b.a-ba de la traduction web

Par Clément Brulé, étudiant M2 TSM

Un site web multilingue, le rêve de tous les entrepreneurs, de quoi exporter produits et services loin par-delà les mers et ainsi conquérir de nouveaux marchés. L’objectif des uns, le casse-tête des autres. Afin de pouvoir proposer d’autres services complémentaires à la traduction, et ce pour tirer leur épingle du jeu (et prendre la part du lion au passage), les personnes responsables de la traduction d’un site web peuvent être amenées à réaliser des étapes techniques. La traduction de sites Internet comprend bien des choses comme :

  • L’extraction des pages qui consiste en la récupération des documents sources ;
  • la traduction, bien évidemment ;
  • la localisation, soit l’adaptation du texte, mais aussi du site en lui-même pour assurer une pénétration optimale du marché cible ;
  • l’intégration des traductions directement sur le site du client.

Dans cet article, nous nous concentrerons sur les questions d’extraction et d’intégration au sein de sites WordPress (ci-après WP) et laisserons de côté les questions de traduction et de localisation plusieurs fois abordées déjà sur ce blog comme dans cet article sur la localisation de Manon Gladieux.

L’extraction

Si tout le monde s’accorde à dire qu’il est difficile d’établir un devis pour la rénovation d’un bâtiment sans connaître la surface de l’édifice, alors pourquoi les clients demandent-ils des devis pour la traduction de leurs documents sans les envoyer ? Pourtant dans notre cas il existe un moyen de proposer un premier devis pour la traduction d’un site web : extraire le site soi-même.

Il suffit pour cela de trouver un moyen d’obtenir les pages ou tout du moins leur contenu de manière simple et rapide. Il est tout bonnement hors de question de copier-coller le texte présent dans les pages. Cela pourrait altérer leur présentation, car les balises HTML et CSS, donnant des informations sur le fond comme sur la forme, des fois inclues directement dans le HTML ne seront pas conservées !

Pour les petits sites, il est toujours possible d’enregistrer les pages manuellement. Un simple CTRL + S ou clic droit > Enregistrer sous… suffit.

Cela n’est pourtant pas idéal bien que le contenu principal de la page soit extrait correctement.

Afin d’aspirer des sites plus volumineux, il est possible d’utiliser l’extension Chrome de téléchargement automatique Simple mass downloader. Pour les traducteurs indépendants comme pour les agences, le temps est précieux et l’utilisation de solutions automatisées dans toutes les étapes de la traduction se révèle essentielle ou tout du moins commode. Ce plugin permet de télécharger au format HTML de manière semi-automatique une liste d’URL. Un gros problème, c’est que cette extension comme beaucoup de solutions de téléchargement automatique de sites Internet, renomme les fichiers qui perdent de ce fait le nom du chemin donnant des informations sur le Zone de Texte: Figure 1 : interface Simple mass downloadercontenu. Ainsi les pages /home, /turrones et /turrones/turron-de-alicante seront renommées /telechargement, /telechargement1 et /telechargement2. Cela pourra poser problème durant la phase d’intégration. Devoir rouvrir et renommer chaque document individuellement après avoir gagné tout ce temps durant la phase d’acquisition des documents fait perdre tout son sens à cette démarche d’accélération des processus. De plus, beaucoup d’extensions ne permettent de télécharger qu’une liste d’adresses et non pas un site complet.

Figure 1 : interface Simple mass downloader

Durant le stage de M1, j’ai été confronté à cette problématique durant mes missions de gestion de projets web. À la suite de quelques recherches, j’ai finalement décidé de me tourner vers un outil difficile d’utilisation, mais bien commode : wget.

Avertissement à destination des technophobes : pour l’utiliser, il faut passer par l’invite de commande.

  • Pour ouvrir l’invite de commande, il suffit de taper « cmd » dans la barre de recherche Windows (ou le raccourci Windows + R).
  • Une fois dans l’invite, il faut tout d’abord accéder au dossier dans lequel vous souhaitez sauvegarder vos téléchargements grâce à la commande : cd {chemin _dossier_souhaité\nom_dossier}

Ensuite, plusieurs options s’offrent à vous :

  • Vous ne souhaitez télécharger qu’une liste d’URL, contenant les pages devant être traduites par exemple ? Créez un document et sauvegardez-y votre liste d’URL (un document texte suffit). Ensuite, rentrez une commande contenant la balise -i comme suit :

wget -E -nd -i {nom_du_fichier.extension}

-i ouvre le document pour télécharger la liste d’URL.

-E assure que les fichiers sont sauvegardés sous l’extension HTML.

-nd permet de sauvegarder tous les fichiers dans le même dossier, empêchant la création de sous-dossiers.

  • Vous souhaitez télécharger l’intégralité d’un site ? Rien de plus simple, rentrez la commande suivante :

wget -E -nd -m {URL_site}

-m combine plusieurs balises afin de télécharger à la suite les pages tout en ignorant celles déjà téléchargées pour ainsi éviter les doublons.

  • Vous avez un autre besoin ou souhaitez personnaliser votre expérience ? C’est tout à fait possible. Pour accéder à l’ensemble des commandes existantes, tapez :

wget -h

Figure 2 : invite de commande (cmd) Windows

Attention cependant, aucun outil n’est parfait ! Les logiciels et programmes d’extraction ne prennent souvent pas en compte les éléments intégrés au travers du langage JavaScript comme les plugins (extensions).

Il est donc crucial de bien repérer en amont les éléments qui ne seront pas extraits pour adopter les bonnes stratégies. Ces éléments sont généralement des modules ajoutés via un système d’extensions (plugins). Ils sont ajoutés par les créateurs du site dans le but de rendre l’expérience utilisateur plus dynamique et la conception du site plus simple, mais ne sont pas toujours pensés pour la traduction et sont quelquefois compliqués et même impossibles à extraire correctement.

Ces modules externes sont extraits, parfois segment par segment, puis réintégrés après traduction dans l’interface WP.

L’intégration

Une fois la traduction effectuée, il existe plusieurs cas de figure.

1. Le client souhaite un site unilingue.

Le client copie le site original à traduire et cette copie deviendra le site cible.

Une fois la traduction achevée, il faut remplacer le texte d’origine par le texte cible par écrasement dans le WP client. Un processus aussi long que fastidieux qui requiert une certaine minutie. Une attention toute particulière doit être apportée lors de l’intégration des segments afin de ne pas supprimer par erreur du code HTML ou CSS parfois présent dans les champs de texte.

2. Le client opte pour un site multilingue

Une option plus simple à bien des égards comme nous allons le voir. Afin que la solution de gestion du contenu (CMS) du client, dans notre cas WP, puisse supporter plusieurs langues, il est important de guider le client dans le choix d’une solution de gestion multilingue. Ces extensions facilitent grandement le travail des personnes chargées de l’intégration en réduisant de manière considérable le temps passé sur cette tâche. De plus, comme le processus est automatique, aucune erreur (sauf en cas de bug) ne peut être insérée durant cette étape. Un soulagement tant pour les agences que pour les équipes responsables du WP client qui doivent parfois nettoyer le bazar laissé par des amateurs peu consciencieux. Chaque agence ou traducteur aura sa préférence et il est bien sûr plus pratique que le client se dirige vers une solution connue et maîtrisée par la personne responsable de l’intégration. Les deux extensions les plus connues sont WPML (sur lequel j’ai pu travailler) et Polylang. Là encore, il existe plusieurs cas de figure :

La première méthode consiste à télécharger des fichiers bilingues (.XLIFF pour WP ou .PO pour Polylang) depuis le CMS client. Une fois la traduction terminée, il n’y a plus qu’à les téléverser dans l’interface de gestion multilingue, généralement juste à côté de l’endroit où les fichiers ont été téléchargés en premier lieu. Cette partie auparavant si longue se fait maintenant automatiquement et la plupart du temps sans accroc (aucune modification du CSS).

Il existe une autre méthode seulement possible lorsque la traduction est réalisée sur une plateforme de traduction en ligne du type SaaS (Software as a Service ou logiciel en tant que service) comme SmartCat. On connectera le SaaS au WP client et l’intégration des traductions pourra être réalisée en appuyant sur un simple bouton.

Dans les deux cas, il sera parfois nécessaire de demander l’aide du développeur WP (ou autre CMS) du client. Celui-ci pourra régler les cas particuliers, débloquer des accès ou valider certaines opérations. Par exemple, certains modules n’ont pas été pensés pour être traduits et doivent être clonés puis traduits par écrasement comme les grilles tarifaires. Le développeur WP se chargera ensuite d’intégrer le module traduit sur le site final.

Dans un cas comme dans l’autre, il faudra ensuite manuellement intégrer les « modules », les menus, les pieds de page (footer) et autres plugins depuis des menus spécifiques (String translation et Menus pour WPML).

Figure 3 : interface WPML

Dans la capture d’écran ci-dessus, nous pouvons observer les éléments suivants :

  • 1.A et 1.B : interface d’import des traductions depuis le SaaS de l’agence
  • 2 : menu de traduction des modules
  • 3 : onglet de traduction des menus (header et footer)
  • 4 : accès à un module de grille tarifaire (ajouté par extension) dans lequel un clonage sera nécessaire avant intégration directement dans WP

En résumé, l’extraction et l’intégration sont des étapes semi-techniques qui permettent d’étoffer l’offre proposée par le prestataire de service (freelance ou agence) et donc de fournir un « package » aux clients potentiels, dans le but de renforcer l’attractivité et de diminuer le nombre d’intermédiaires (gain de temps et d’argent).

Outre ces étapes semi-techniques, il est essentiel lors de l’analyse du projet de faire preuve d’une certaine sagacité et d’une bonne connaissance de la structure des sites Internet pour repérer avant même le début du projet les futures difficultés potentielles et préparer une réponse adaptée. Une bonne analyse évitera les allers-retours avec les clients et les équipes de traduction, les devis erronés et diminuera les risques pour l’agence ou le traducteur.

Bibliographie

Aseem Kishore, « Beginner’s Guide to the Windows Command Prompt », Online Tech Tips, 19 novembre 2014. https://www.online-tech-tips.com/computer-tips/how-to-use-dos-command-prompt/.

Manon Gladieux. « Les neuf grands commandements pour une localisation de site Web efficace ». MasterTSM@Lille (blog), 21 février 2021. https://mastertsmlille.wordpress.com/2021/02/21/les-neuf-grands-commandements-pour-une-localisation-de-site-web-efficace/.

MDN web docs, « Comprendre Les URL et Leur Structure – Apprendre Le Développement Web | MDN https://developer.mozilla.org/fr/docs/Learn/Common_questions/What_is_a_URL.

Sofija Simic, « How to Use Wget Command With Examples | PhoenixNAP KB », 22 octobre 2019. https://phoenixnap.com/kb/wget-command-with-examples.

Stack Overflow. « shell – Using wget to recursively fetch a directory with arbitrary files in it ». https://stackoverflow.com/questions/273743/using-wget-to-recursively-fetch-a-directory-with-arbitrary-files-in-it.

Stack Overflow. « wget command to download a file and save as a different filename ». Consulté le https://stackoverflow.com/questions/16678487/wget-command-to-download-a-file-and-save-as-a-different-filename.

WPML. « Traduire des sites WordPress avec WPML et Smartcat ». https://wpml.org/fr/translation-service/smartcat/.

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s