Case study
Chaos – localizzazione dei contenuti del sito
Chaos è un leader globale nella tecnologia di visualizzazione 3D, fondata nel 1997 e nota per V-Ray - il renderer fisicamente accurato premiato sia con un Academy Award sia con un Engineering Emmy. Dopo la fusione con Enscape, il portfolio dell'azienda comprende V-Ray, Enscape, Corona, Vantage, Phoenix e Cosmos, al servizio dei settori architettura, ingegneria e costruzioni, media e intrattenimento, design di prodotto e manifattura.
Con sede centrale a Karlsruhe e uffici a Sofia, Praga, Tokyo, Seoul, Los Angeles e New York, Chaos serve una base clienti mondiale - il che rende la rapidità e l'accuratezza della traduzione dei suoi contenuti web una questione commerciale diretta.
Il progetto
La sfida
Il sito chaos.com è costruito su un'architettura basata su componenti: ogni pagina è memorizzata come documento JSON contenente un elenco di widget, ciascuno con il proprio oggetto di impostazioni profondamente annidato. I testi di marketing risiedono all'interno di quelle impostazioni - titoli, etichette dei pulsanti, titoli delle schede, citazioni delle testimonianze, voci delle FAQ, note legali dei moduli - mescolati con parametri di layout, riferimenti ai media, flag di stile e ID dei widget.
Localizzare una pagina significava che uno sviluppatore o un redattore di contenuti apriva il JSON grezzo e modificava a mano i valori all'interno di array annidati. Era lento, non poteva essere affidato a un'agenzia di traduzione e una parentesi fuori posto o un ID widget modificato per errore bastavano a rompere la pagina. Chaos aveva bisogno di un modo per estrarre il testo traducibile, metterlo nelle mani dei traduttori e riportarlo dentro in sicurezza.
Il nostro approccio
Abbiamo realizzato un'applicazione desktop per Windows in C#/.NET che esegue un percorso di andata e ritorno senza perdite tra il JSON della pagina e un foglio di calcolo pensato per i traduttori.
Al centro c'è una mappa dei campi configurabile che copre più di 50 tipi di componenti widget, in cui ogni componente dichiara quali dei suoi parametri contengono testo traducibile - espressi come percorsi in notazione puntata quali list.title, tabs.description o button_1.sub_line. Un motore di attraversamento ricorsivo risolve quei percorsi attraverso oggetti e array annidati di qualsiasi profondità, così lo strumento raggiunge il testo dentro le voci di elenco ripetute con la stessa affidabilità dei campi di primo livello. I valori SEO a livello di pagina (meta title e description) vengono estratti insieme al contenuto dei widget.
Il JSON stesso è gestito come documento dinamico anziché come modello di dati fisso. Vengono riscritti solo i valori di testo mappati - ID dei widget, struttura, impostazioni, ordinamento e riferimenti ai media vengono restituiti intatti, byte per byte. Questa è stata la decisione di progettazione chiave: lo strumento non può fisicamente corrompere la struttura di una pagina.
Come funziona
- Primo passaggio - il redattore seleziona un file JSON di pagina. Lo strumento produce una cartella di lavoro Excel che elenca ogni stringa traducibile, con colonne per ID widget, componente, chiave del parametro, valore di origine e una colonna Traduzione vuota. Qualsiasi componente o campo che la mappa non riconosce viene segnalato come avviso anziché ignorato in silenzio.
- Secondo passaggio - viene selezionata la cartella di lavoro completata e lo strumento scrive un nuovo file JSON tradotto, pronto per essere reimportato nel CMS. I nomi dei file derivano automaticamente dall'originale, così l'abbinamento tra origine, foglio di calcolo e output non può mai perdersi.
Che cosa abbiamo consegnato
- Un'applicazione desktop a due pulsanti utilizzabile dal personale di marketing e localizzazione senza il coinvolgimento di sviluppatori e senza alcun contatto con il JSON grezzo
- Una mappa dei campi che copre 50+ componenti widget, estendibile a nuovi componenti aggiungendo una singola voce di configurazione
- Risoluzione ricorsiva dei percorsi attraverso oggetti e array annidati in modo arbitrario
- Esportazione e importazione Excel come formato principale per i traduttori, più l'esportazione XLIFF 1.2 per le agenzie di traduzione professionali e gli strumenti CAT
- Un report di avvisi che segnala componenti non mappati e campi mancanti prima che la traduzione cominci, anziché dopo
- Riscrittura non distruttiva che garantisce l'integrità della struttura della pagina
Il risultato
Tradurre una pagina è passato da attività manuale per sviluppatori a un'operazione da due clic. I contenuti possono ora essere inviati a traduttori o agenzie esterne in un formato standard con cui già lavorano e riportati nel sito senza che nessuno tocchi il JSON sottostante - eliminando sia il collo di bottiglia sia il rischio di rompere le pagine in produzione. Man mano che la libreria di componenti del sito cresce, lo strumento cresce con essa tramite configurazione anziché codice.
Tecnologie
C#
.NET 8
.NET 9- Windows Forms
- Newtonsoft.Json
EPPlus- XLIFF 1.2
Excel automation