A tradução de software inclui etapas como:
- Preparando o código para tradução
- Exportando as strings do software
- Aperfeiçoando estratégias de análise e segmentação
- Desenvolvendo uma lista de terminologia chave (glossário)
- Criando o projeto de tradução de software
- Atribuindo tradutores
- Atribuindo aos revisores
- Gerenciamento de consultas
- Verificações de QA automatizadas
- Re-importando strings traduzidas
- Verificações de QA tanto no ambiente de staging quanto de capturas de tela
- Testando
Neste artigo, exploraremos esses diferentes componentes e suas implicações no processo geral de localização.
Preparando o código para tradução
Embora alguns softwares sejam codificados levando em consideração a tradução, muitas vezes a tradução se torna um requisito quando o software já está maduro. Para preparar o código para tradução, é necessário prestar uma atenção mais próxima às variáveis, datas e à arquitetura geral do conteúdo traduzível em relação ao código. Datas, moedas e outros fatores mudam de formato de acordo com a região. Se eles estiverem codificados de forma rígida, será necessário recodificá-los como entidades dinâmicas para permitir flexibilidade intercultural. Dependendo de como o código é escrito, pode ser muito fácil ou difícil isolar o código do texto traduzível. Isso afetará o próximo passo na exportação das strings, mas é talvez o aspecto mais negligenciado e subestimado da tradução de software. Cada pequena alteração na simplicidade do código em relação ao texto resultará em inúmeras repercussões que afetarão o processo de localização como um todo. Isso pode resultar em cenários em que é desafiador preservar a integridade do código ou torná-lo amigável para os tradutores. Claro, você pode superar alguns desses desafios por meio de estratégias de análise e segmentação, mas quanto mais limpo você puder exportar o conteúdo traduzível sem interferência de código, melhor (mais sustentável e escalável) será o seu processo de tradução de software.
Exportando as strings do software
Exportar as strings deve ser um processo simples. Mas não é. Certos formatos são os preferidos, enquanto outros devem ser evitados. Exemplos de formatos go-to: XML, YAML, JSON. Eles são estruturados, previsíveis, facilmente analisáveis e relativamente fáceis de encontrar padrões dentro do código, o que reduz problemas resultantes da tradução para diferentes idiomas. Exemplos de formatos a serem evitados: TXT, CSV, Código misto. Uma exportação CSV, por exemplo, pode se tornar um pesadelo. Caracteres delimitadores como ponto e vírgula são necessários como ferramentas linguísticas. É praticamente impossível distinguir algoritmicamente entre um ponto e vírgula que é usado como uma quebra de código vs. um ponto e vírgula que é usado como uma ferramenta linguística. Isso cria centenas de falsos positivos que precisam ser verificados durante o processo de Garantia de Qualidade, bem como problemas durante a reimportação de código, etc. Com código misto, por exemplo, estamos nos referindo a XML com JSON nele como exemplo, o que adiciona complexidade ao processo de análise e segmentação. Codificação também é um ponto crítico:
- Codificação HTML
- Codificação de URL
- Codificação Unicode
- Codificação Base64
- Codificação Hexadecimal
- Codificação ASCII
Cada um desses frameworks de codificação terá ramificações no processo de localização, incluindo incompatibilidade de caracteres dependendo dos idiomas abrangidos.
Aperfeiçoando as estratégias de análise e segmentação
Se você seguiu as melhores práticas descritas acima, suas estratégias de análise e segmentação serão otimizadores de processo. Se você ainda não fez isso, a análise e segmentação se tornarão facilitadores do processo. Como otimizadores de processos, uma estratégia de segmentação bem ajustada garantirá que o conteúdo seja inserido em seu sistema de gerenciamento de tradução de forma amigável para tradutores e revisores. Aqui é onde você pode garantir que as variáveis sejam protegidas, qualquer código restante seja protegido e que o texto seja dividido de maneiras que façam sentido para o processo de tradução. Se você não fez sua lição de casa, esta é a etapa em que as coisas podem ficar loucas. Seja porque é simplesmente impossível criar análises suficientes para proteger o código e as variáveis ou porque exigirá um nível insano de esforço para escrever expressões regulares suficientes para tornar o software conteúdo mais amigável para tradução. De qualquer forma, este é um passo crucial. Se você alterar a estratégia de análise e segmentação ao longo do tempo, você experimentará uma perda na alavancagem da memória de tradução, o que criará custos extras e complexidade no processo. Pode não parecer grande coisa até que exploda na sua cara. Vamos supor, por exemplo, que seu software completo tenha 100.000 palavras e que você está traduzindo para 10 idiomas e que seu custo médio por palavra seja de $0,15. Vamos supor que você tenha traduzido seu software, mas agora está iterando em sua estratégia de análise, mas isso causará uma perda de alavancagem de 10% (o que pode ser um resultado esperado de uma pequena alteração na análise), são $15.000 perdidos logo de cara, sem mencionar o tempo extra necessário e outras ramificações.
Desenvolvendo uma lista de terminologia chave (glossário)
Qualquer pessoa pode desenvolver um glossário. Muito poucos podem desenvolver um grande. Algumas pessoas seguem a rota estatística e exploram um banco de dados de conteúdo em busca das palavras-chave mais recorrentes. E enquanto isso acelera as coisas e captura termos importantes com base na frequência, vários termos-chave não são necessariamente tão frequentemente utilizados. Algumas pessoas adotam a abordagem qualitativa e têm tradutores examinando grandes quantidades de conteúdo e identificando manualmente os termos relevantes. Outros usam IA para buscar padrões linguísticos e identificar entidades e termos não necessariamente baseados apenas na frequência, mas em sua relevância semântica geral. Independentemente da abordagem, quando se trata de um glossário, menos é mais. Embora você queira garantir que capturou os termos essenciais, se você sinalizar muitos termos como termos do glossário, é quase impossível garantir a governança sobre a aplicação adequada. Muitos falsos positivos e alertas tornam desafiador para tradutores e revisores gerenciar as sugestões de termos e executar verificadores automatizados de controle de qualidade. Outra dica com glossários é que é tão importante sinalizar os termos que não devem ser traduzidos quanto aqueles que exigem um tipo específico de tradução.
Criando o projeto de tradução de software
Esta etapa depende muito do framework do sistema de gerenciamento de tradução que você está usando. Alguns sistemas permitirão que você gerencie o ciclo de vida completo do projeto dentro do mesmo ambiente e projeto, enquanto outras plataformas exigirão uma abordagem diferente, que pode ser baseada em string ou arquivo. Embora possa parecer uma formalidade, configurar o projeto de tradução real tem pontos-chave, como:
- Garantindo que os arquivos foram ingestados na sua totalidade
- Garantindo que os pares de idiomas estejam corretos até o nível de localidade
- Garantindo que as datas estejam corretas
- Garantindo que as etapas do fluxo de trabalho sejam as necessárias
- Atribuindo aos tradutores
Nesta etapa, estamos pressupondo que você já possui uma equipe de tradutores previamente avaliada à sua disposição por par de idiomas. É fundamental trabalhar com tradutores que sejam:
O mesmo ocorre com os tradutores, com ênfase adicional no discernimento crítico. Você precisa de revisores que sejam críticos o suficiente para entender as diferenças entre estilo e erros. Revisores que alteram demais nesta etapa do processo comprometem a integridade do processo de tradução como um todo. Aqui é onde o framework proprietário de gerenciamento de qualidade do Bureau Works entra em jogo.
Gerenciamento de consultas
Uma parte fundamental da tradução de software é ser capaz de responder às perguntas que surgem durante o processo de tradução. Por exemplo, o que significa o botão "X" ou para que essa variável aponta? É importante ter um processo que permita fazer perguntas sobre o idioma de origem e ter as respostas disponíveis para todos os tradutores do projeto, independentemente de seu par de idiomas, a fim de minimizar ter que responder a mesma pergunta várias vezes. Também é fundamental ter uma maneira de atribuir diferentes status à consulta, como novo, atribuído, resolvido, e assim por diante, para que sua equipe de gerenciamento de projetos possa garantir que as consultas sejam respondidas de forma oportuna.
Verificações automatizadas de garantia de qualidade
Essenciais para qualquer processo de tradução de software, as verificações automatizadas de QA garantem que determinados itens-chave sejam sinalizados, como:
- Espaços finais
- Limites de caracteres
- Pontuação inconsistente
- Não adesão ao glossário
- Ortografia
- Tags inconsistentes (incompatibilidades entre o código de origem e o código traduzido)
- Re-importando strings traduzidas
Se você chegou até aqui vivo, está fazendo algo certo! :) Pode ser menos doloroso, mas você está aqui. Agora é hora de reimportar as strings de volta para o seu repositório e reconstruir o software. Se você perdeu ou gerenciou mal alguma das melhores práticas mencionadas anteriormente, pode enfrentar dificuldades nesta etapa com problemas no processo de reimportação devido a quebras de código, incompatibilidade de tags ou outros problemas que possam afetar a reintegração bem-sucedida do código.
Souce: Linkedin
QA verificações tanto no ambiente de staging quanto de capturas de tela
Esta etapa pode ser ignorada se estiver mesclada com testes, mas é útil fornecer aos tradutores acesso a um ambiente de staging ou capturas de tela das telas principais para garantir que as strings sejam exibidas corretamente e não haja problemas evidentes que impeçam o início dos testes.
Testando
Esta é uma etapa que impulsiona a qualidade além da detecção e correção óbvia de bugs. Testar permite uma nova visão das strings traduzidas no contexto. Algumas traduções que pareciam perfeitas durante o processo de tradução, podem não ser as melhores do ponto de vista da Experiência do Usuário. É importante trabalhar com testadores que estejam comprometidos em buscar melhorar a experiência do usuário e não apenas procurar reativamente por bugs.
Conclusão
A tradução de software é um processo extenso, caro e complexo. Mas não é apenas isso. É iterativo e contínuo, o que significa que você passará inúmeras vezes pelo mesmo processo para atualizar seu software à medida que ele continua a evoluir. Esta é uma visão geral de alto nível e superficial de um processo que pode se tornar infinitamente mais detalhado e complexo para lidar. Mas a principal lição é que vale a pena investir cada centavo em um framework e nas melhores práticas desde o início. Uma vez que o navio tenha partido, se tornará cada vez mais desafiador e caro consertá-lo.