Studiu de caz
Chaos – localizarea conținutului site-ului
Chaos este un lider global în tehnologia de vizualizare 3D, fondat în 1997 și cunoscut pentru V-Ray - motorul de randare bazat pe principii fizice, distins atât cu un premiu Oscar, cât și cu un Engineering Emmy. După fuziunea cu Enscape, portofoliul companiei cuprinde V-Ray, Enscape, Corona, Vantage, Phoenix și Cosmos, deservind arhitectura, ingineria și construcțiile, media și divertismentul, designul de produs și producția.
Cu sediul central în Karlsruhe și birouri în Sofia, Praga, Tokyo, Seul, Los Angeles și New York, Chaos deservește o bază de clienți din întreaga lume - ceea ce face din viteza și acuratețea traducerii conținutului său web o preocupare comercială directă.
Proiectul
Provocarea
Site-ul chaos.com este construit pe o arhitectură orientată pe componente: fiecare pagină este stocată ca document JSON care conține o listă de widgeturi, fiecare cu propriul obiect de setări profund imbricat. Textele de marketing se află în interiorul acelor setări - titluri, etichete de butoane, denumiri de taburi, citate din testimoniale, intrări de FAQ, mențiuni legale din formulare - amestecate cu parametri de layout, referințe către fișiere media, indicatori de stilizare și ID-uri de widget.
Localizarea unei pagini însemna ca un dezvoltator sau un editor de conținut să deschidă JSON-ul brut și să editeze manual valori din interiorul unor tablouri imbricate. Era lent, nu putea fi predat unei agenții de traduceri, iar o singură paranteză pusă greșit sau un ID de widget modificat din greșeală erau de ajuns pentru a strica pagina. Chaos avea nevoie de o modalitate de a scoate textul traductibil, de a-l pune la dispoziția traducătorilor și de a-l reintroduce în siguranță.
Abordarea noastră
Am construit o aplicație desktop pentru Windows în C#/.NET care realizează un drum dus-întors fără pierderi între JSON-ul paginii și un fișier de calcul prietenos pentru traducători.
În centru se află o hartă de câmpuri configurabilă, care acoperă peste 50 de tipuri de componente de widget, în care fiecare componentă declară care dintre parametrii săi conțin text traductibil - exprimat sub formă de căi în notație cu punct, precum list.title, tabs.description sau button_1.sub_line. Un motor de parcurgere recursivă rezolvă acele căi prin obiecte și tablouri imbricate de orice adâncime, astfel încât instrumentul ajunge la textul din elementele de listă repetate la fel de sigur ca la câmpurile de nivel superior. Valorile SEO de la nivelul paginii (meta title și description) sunt extrase împreună cu conținutul widgeturilor.
JSON-ul în sine este tratat ca un document dinamic, nu ca un model de date fix. Se scriu înapoi doar valorile de text mapate - ID-urile widgeturilor, structura, setările, ordinea și referințele media sunt returnate neatinse, octet cu octet. Aceasta a fost decizia de proiectare esențială: instrumentul nu poate strica fizic structura unei pagini.
Cum funcționează
- Pasul unu - editorul selectează un fișier JSON de pagină. Instrumentul produce un registru Excel care listează fiecare șir traductibil, cu coloane pentru ID-ul widgetului, componentă, cheia parametrului, valoarea sursă și o coloană Traducere goală. Orice componentă sau câmp pe care harta nu îl recunoaște este raportat ca avertisment, în loc să fie ignorat în tăcere.
- Pasul doi - se selectează registrul completat, iar instrumentul scrie un nou fișier JSON tradus, gata de importat înapoi în CMS. Numele fișierelor sunt derivate automat din original, astfel încât corespondența dintre sursă, fișierul de calcul și rezultat nu se poate pierde niciodată.
Ce am livrat
- O aplicație desktop cu două butoane, utilizabilă de personalul de marketing și de localizare fără implicarea unui dezvoltator și fără contact cu JSON-ul brut
- O hartă de câmpuri care acoperă 50+ componente de widget, extensibilă la componente noi prin adăugarea unei singure intrări de configurare
- Rezolvarea recursivă a căilor prin obiecte și tablouri imbricate oricât de adânc
- Export/import Excel ca format principal pentru traducători, plus export XLIFF 1.2 pentru agențiile de traduceri profesionale și instrumentele CAT
- Un raport de avertismente care semnalează componentele nemapate și câmpurile lipsă înainte de începerea traducerii, nu după
- Scriere înapoi nedistructivă, care garantează integritatea structurii paginii
Rezultatul
Traducerea unei pagini a trecut de la o sarcină manuală de dezvoltator la o operațiune de două clicuri. Conținutul poate fi trimis acum către traducători sau agenții externe într-un format standard cu care aceștia lucrează deja și poate fi readus în site fără ca cineva să atingă JSON-ul de dedesubt - eliminând deopotrivă blocajul și riscul de a strica pagini aflate în funcțiune. Pe măsură ce biblioteca de componente a site-ului crește, instrumentul crește odată cu ea prin configurare, nu prin cod.
Tehnologii
C#
.NET 8
.NET 9- Windows Forms
- Newtonsoft.Json
EPPlus- XLIFF 1.2
Excel automation