Case Study
Chaos Website Content Localization Tool
Chaos is a global leader in 3D visualisation technology, founded in 1997 and known for V-Ray — the physically based renderer honoured with both an Academy Award and an Engineering Emmy. Following the merger with Enscape, the company's portfolio spans V-Ray, Enscape, Corona, Vantage, Phoenix and Cosmos, serving architecture, engineering and construction, media and entertainment, product design and manufacturing.
With headquarters in Karlsruhe and offices in Sofia, Prague, Tokyo, Seoul, Los Angeles and New York, Chaos serves a worldwide customer base — which makes the speed and accuracy of translating its web content a direct commercial concern.
The Project
The challenge
The chaos.com website is built on a component-driven architecture: every page is stored as a JSON document containing a list of widgets, each with its own deeply nested settings object. Marketing copy lives inside those settings — headlines, button labels, tab titles, testimonial quotes, FAQ entries, form disclaimers — mixed together with layout parameters, media references, styling flags and widget IDs.
Localising a page meant a developer or content editor opening raw JSON and hand-editing values inside nested arrays. It was slow, it could not be handed to a translation agency, and a single misplaced bracket or an accidentally edited widget ID was enough to break the page. Chaos needed a way to get translatable text out, into the hands of translators, and safely back in.
Our approach
We built a Windows desktop application in C#/.NET that performs a lossless round trip between the page JSON and a translator-friendly spreadsheet.
At the core is a configurable field map covering more than 50 widget component types, where each component declares which of its parameters carry translatable text — expressed as dot-notation paths such as list.title, tabs.description or button_1.sub_line. A recursive traversal engine resolves those paths through nested objects and arrays of any depth, so the tool reaches text inside repeating list items just as reliably as top-level fields. Page-level SEO values (meta title and description) are extracted alongside the widget content.
The JSON itself is handled as a dynamic document rather than a fixed data model. Only the mapped text values are ever written back — widget IDs, structure, settings, ordering and media references are returned untouched, byte for byte. This was the key design decision: the tool physically cannot corrupt a page's structure.
How it works
- Step one — the editor selects a page JSON file. The tool produces an Excel workbook listing every translatable string, with columns for widget ID, component, parameter key, the source value and an empty Translation column. Any component or field the map does not recognise is reported as a warning instead of silently skipped.
- Step two — the completed workbook is selected and the tool writes a new translated JSON file, ready to be imported back into the CMS. File names are derived automatically from the original, so the pairing between source, spreadsheet and output can never drift.
What we delivered
- A two-button desktop application usable by marketing and localisation staff with no developer involvement and no exposure to raw JSON
- A field map covering 50+ widget components, extensible to new components by adding a single configuration entry
- Recursive path resolution through arbitrarily nested objects and arrays
- Excel export/import as the primary translator format, plus XLIFF 1.2 export for professional translation agencies and CAT tools
- A warnings report surfacing unmapped components and missing fields before translation begins, rather than after
- Non-destructive write-back that guarantees page structure integrity
The result
Translating a page went from a manual developer task to a two-click operation. Content can now be sent to external translators or agencies in a standard format they already work with, and returned into the site without anyone touching the underlying JSON — removing both the bottleneck and the risk of breaking live pages. As the site's component library grows, the tool grows with it through configuration rather than code.
Technologies
C#
.NET 8
.NET 9- Windows Forms
- Newtonsoft.Json
EPPlus- XLIFF 1.2
Excel automation