Caso de estudo
Chaos – ferramenta de localização de conteúdo do site
A Chaos é líder mundial em tecnologia de visualização 3D, fundada em 1997 e conhecida pelo V-Ray - o motor de renderização baseado na física distinguido com um Óscar da Academia e com um Engineering Emmy. Na sequência da fusão com a Enscape, o portefólio da empresa abrange V-Ray, Enscape, Corona, Vantage, Phoenix e Cosmos, ao serviço da arquitetura, engenharia e construção, media e entretenimento, design de produto e indústria transformadora.
Com sede em Karlsruhe e escritórios em Sófia, Praga, Tóquio, Seul, Los Angeles e Nova Iorque, a Chaos serve uma base de clientes mundial - o que faz da rapidez e do rigor da tradução dos seus conteúdos web uma questão comercial direta.
O projeto
O desafio
O site chaos.com assenta numa arquitetura orientada a componentes: cada página é guardada como um documento JSON que contém uma lista de widgets, cada um com o seu próprio objeto de definições profundamente aninhado. Os textos de marketing vivem dentro dessas definições - títulos, etiquetas de botões, títulos de separadores, citações de testemunhos, entradas de FAQ, avisos legais de formulários - misturados com parâmetros de layout, referências a media, sinalizadores de estilo e IDs de widgets.
Localizar uma página obrigava um programador ou um editor de conteúdos a abrir JSON em bruto e a editar valores à mão dentro de arrays aninhados. Era lento, não podia ser entregue a uma agência de tradução e bastava um parêntesis reto fora do sítio ou um ID de widget editado por engano para quebrar a página. A Chaos precisava de uma forma de extrair o texto traduzível, colocá-lo nas mãos dos tradutores e devolvê-lo com segurança.
A nossa abordagem
Construímos uma aplicação de ambiente de trabalho para Windows em C#/.NET que faz uma ida e volta sem perdas entre o JSON da página e uma folha de cálculo acessível aos tradutores.
No centro está um mapa de campos configurável que cobre mais de 50 tipos de componentes de widget, no qual cada componente declara quais dos seus parâmetros contêm texto traduzível - expressos como caminhos em notação de ponto, tais como list.title, tabs.description ou button_1.sub_line. Um motor de travessia recursiva resolve esses caminhos através de objetos e arrays aninhados a qualquer profundidade, pelo que a ferramenta alcança o texto dentro de itens de lista repetidos com a mesma fiabilidade com que alcança os campos de topo. Os valores de SEO ao nível da página (meta título e descrição) são extraídos juntamente com o conteúdo dos widgets.
O próprio JSON é tratado como um documento dinâmico e não como um modelo de dados fixo. Só os valores de texto mapeados são escritos de volta - IDs de widgets, estrutura, definições, ordenação e referências a media são devolvidos intactos, byte a byte. Esta foi a decisão de conceção determinante: a ferramenta não consegue, fisicamente, corromper a estrutura de uma página.
Como funciona
- Passo um - o editor seleciona um ficheiro JSON de página. A ferramenta produz um livro Excel que lista todas as cadeias de texto traduzíveis, com colunas para o ID do widget, o componente, a chave do parâmetro, o valor de origem e uma coluna Tradução vazia. Qualquer componente ou campo que o mapa não reconheça é reportado como aviso, em vez de ser ignorado em silêncio.
- Passo dois - o livro preenchido é selecionado e a ferramenta escreve um novo ficheiro JSON traduzido, pronto a ser importado de volta para o CMS. Os nomes dos ficheiros são derivados automaticamente do original, pelo que a correspondência entre origem, folha de cálculo e resultado nunca se pode perder.
O que entregámos
- Uma aplicação de ambiente de trabalho com dois botões, utilizável pelas equipas de marketing e de localização sem envolvimento de programadores e sem contacto com JSON em bruto
- Um mapa de campos que cobre mais de 50 componentes de widget, extensível a novos componentes com a adição de uma única entrada de configuração
- Resolução recursiva de caminhos através de objetos e arrays aninhados a qualquer profundidade
- Exportação/importação em Excel como formato principal para tradutores, além de exportação XLIFF 1.2 para agências de tradução profissionais e ferramentas CAT
- Um relatório de avisos que expõe componentes não mapeados e campos em falta antes de a tradução começar, e não depois
- Escrita de retorno não destrutiva, que garante a integridade da estrutura da página
O resultado
Traduzir uma página passou de uma tarefa manual de programador a uma operação de dois cliques. Os conteúdos podem agora ser enviados para tradutores ou agências externas num formato normalizado com que já trabalham e devolvidos ao site sem que ninguém toque no JSON subjacente - eliminando tanto o estrangulamento como o risco de quebrar páginas em produção. À medida que a biblioteca de componentes do site cresce, a ferramenta cresce com ela através de configuração e não de código.
Tecnologias
C#
.NET 8
.NET 9- Windows Forms
- Newtonsoft.Json
EPPlus- XLIFF 1.2
Excel automation