Étude de cas
Chaos – outil de localisation du contenu du site
Chaos est un leader mondial de la technologie de visualisation 3D, fondé en 1997 et connu pour V-Ray - le moteur de rendu physiquement réaliste récompensé à la fois par un Academy Award et par un Engineering Emmy. À la suite de la fusion avec Enscape, le portefeuille de l'entreprise réunit V-Ray, Enscape, Corona, Vantage, Phoenix et Cosmos, au service de l'architecture, de l'ingénierie et de la construction, des médias et du divertissement, du design produit et de l'industrie.
Avec son siège à Karlsruhe et des bureaux à Sofia, Prague, Tokyo, Séoul, Los Angeles et New York, Chaos sert une clientèle mondiale - ce qui fait de la rapidité et de l'exactitude de la traduction de son contenu web un enjeu commercial direct.
Le projet
Le défi
Le site chaos.com repose sur une architecture pilotée par composants : chaque page est stockée sous la forme d'un document JSON contenant une liste de widgets, chacun avec son propre objet de paramètres profondément imbriqué. Les textes marketing se trouvent à l'intérieur de ces paramètres - titres, libellés de boutons, intitulés d'onglets, citations de témoignages, entrées de FAQ, mentions des formulaires - mêlés aux paramètres de mise en page, aux références média, aux indicateurs de style et aux identifiants de widgets.
Localiser une page obligeait un développeur ou un éditeur de contenu à ouvrir le JSON brut et à modifier à la main des valeurs à l'intérieur de tableaux imbriqués. C'était lent, cela ne pouvait pas être confié à une agence de traduction, et une seule accolade mal placée ou un identifiant de widget modifié par accident suffisait à casser la page. Chaos avait besoin d'un moyen de sortir le texte traduisible, de le mettre entre les mains des traducteurs et de le réintégrer sans risque.
Notre approche
Nous avons développé une application de bureau Windows en C#/.NET qui effectue un aller-retour sans perte entre le JSON de la page et un tableur adapté aux traducteurs.
Au cœur du dispositif se trouve une table de correspondance configurable couvrant plus de 50 types de composants widgets, où chaque composant déclare lesquels de ses paramètres portent du texte traduisible - exprimés sous forme de chemins en notation pointée tels que list.title, tabs.description ou button_1.sub_line. Un moteur de parcours récursif résout ces chemins à travers des objets et des tableaux imbriqués de n'importe quelle profondeur, si bien que l'outil atteint le texte contenu dans les éléments de liste répétés aussi sûrement que les champs de premier niveau. Les valeurs SEO au niveau de la page (méta-titre et méta-description) sont extraites en même temps que le contenu des widgets.
Le JSON lui-même est traité comme un document dynamique plutôt que comme un modèle de données figé. Seules les valeurs textuelles référencées sont réécrites - les identifiants de widgets, la structure, les paramètres, l'ordre et les références média sont restitués intacts, octet pour octet. C'était la décision de conception déterminante : l'outil ne peut physiquement pas corrompre la structure d'une page.
Comment cela fonctionne
- Première étape - l'éditeur sélectionne un fichier JSON de page. L'outil produit un classeur Excel qui répertorie chaque chaîne traduisible, avec des colonnes pour l'identifiant du widget, le composant, la clé du paramètre, la valeur source et une colonne Traduction vide. Tout composant ou champ que la table de correspondance ne reconnaît pas est signalé par un avertissement plutôt qu'ignoré en silence.
- Deuxième étape - le classeur complété est sélectionné et l'outil écrit un nouveau fichier JSON traduit, prêt à être réimporté dans le CMS. Les noms de fichiers sont dérivés automatiquement de l'original, de sorte que la correspondance entre la source, le tableur et le résultat ne peut jamais se perdre.
Ce que nous avons livré
- Une application de bureau à deux boutons, utilisable par les équipes marketing et localisation sans intervention d'un développeur et sans contact avec le JSON brut
- Une table de correspondance couvrant plus de 50 composants widgets, extensible à de nouveaux composants par l'ajout d'une seule entrée de configuration
- La résolution récursive des chemins à travers des objets et des tableaux imbriqués à n'importe quel niveau
- L'export et l'import Excel comme format principal pour les traducteurs, plus un export XLIFF 1.2 pour les agences de traduction professionnelles et les outils de TAO
- Un rapport d'avertissements signalant les composants non référencés et les champs manquants avant le début de la traduction, et non après
- Une réécriture non destructive qui garantit l'intégrité de la structure de la page
Le résultat
Traduire une page est passé d'une tâche manuelle de développeur à une opération en deux clics. Le contenu peut désormais être envoyé à des traducteurs ou à des agences externes dans un format standard qu'ils utilisent déjà, puis réintégré au site sans que personne ne touche au JSON sous-jacent - ce qui supprime à la fois le goulot d'étranglement et le risque de casser des pages en production. À mesure que la bibliothèque de composants du site s'étoffe, l'outil évolue avec elle par configuration plutôt que par du code.
Technologies
C#
.NET 8
.NET 9- Windows Forms
- Newtonsoft.Json
EPPlus- XLIFF 1.2
Excel automation