Texto adicional de Ekaterina e Darya
Pães
Como os pipelines multirramificados não eram suportados, tivemos que criar manualmente os deltas para tradução e, posteriormente, enviá-los de volta para os ramos.
Não podíamos fazer traduções adicionais solicitadas em paralelo, por exemplo, se os textos de origem fossem alterados no processo. Em vez disso, tínhamos que esperar que o pacote de tradução básico estivesse pronto e só então prosseguir com as traduções adicionais.
Falhas na compilação devido a erros em “não traduzíveis”, apóstrofos não escapados e outros erros humanos estavam se tornando cada vez mais um problema.
Texto muito longo para o tamanho do elemento da tela. Às vezes, isso pode envolver implicações legais, se o texto omitido incluir isenções de responsabilidade ou informações financeiras.
Texto não traduzido, seja por erro do tradutor ou porque foi codificado em vez de externalizado como uma string,
Texto traduzido no contexto errado, por exemplo, quando o texto em um botão — por exemplo, “Baixar” — é gramaticalmente um imperativo em vez de um infinitivo.
Só a parte de capturar as telas já levava uma quantidade exorbitante de tempo. Por exemplo, se um novo recurso envolvesse 40 telas de interface do usuário e houvesse 20 idiomas de destino, isso poderia levar até 70 horas de trabalho manual e mecânico tedioso.
Tínhamos duas opções:
1. Contratar trabalhadores com pouca experiência e diminuir a quantidade de trabalho de localização — o que naturalmente levaria a uma queda na qualidade, OU
2. Automatizar.
Optamos pela segunda opção.
Por que Smartcat
Requisitos de servidor leves — novamente, para evitar aprovações demoradas,
Acessível, de preferência gratuito, para entrar no serviço.
Suporte adequado por parte do serviço para não precisarmos contratar um desenvolvedor interno,
Requisitos de segurança — nós nos conectamos a ele, e não o contrário,
Suporte multirramo — para traduzir vários recursos em paralelo,
Traduções adicionais possíveis em paralelo com o lote original.
Então, escolhemos o Smartcat. Como não temos permissão para conectar ferramentas CAT diretamente ao nosso VCS interno, optamos por usar um pacote Smartcat–Serge. (O Serge é um software de código aberto que sincroniza strings entre sistemas de controle de versão e gerenciamento de tradução. Ele identifica strings em arquivos de vários formatos e as converte para o formato PO padrão da indústria, que é então enviado para o Smartcat. Podemos instalá-lo diretamente em nossos servidores, para que nenhuma de nossas informações confidenciais saia da empresa.)
Aqui está o que mais gostamos na solução resultante:
Ela atende a todos os nossos requisitos: pipelines multirramificados, traduções adicionais, segurança, etc.
Recebemos atualizações instantâneas, sem precisar baixar ou instalar nada.
Podemos criar nossos próprios esquemas de análise para strings graças ao pacote Smartcat–Serge.
Podemos conversar com os tradutores que trabalham em nossos documentos sem sair da plataforma.p>
Podemos encontrar freelancers diretamente no mercado da plataforma, se precisarmos aumentar a produção,
Podemos pagar por todos os idiomas e projetos com apenas uma fatura,
Adoramos o suporte que recebemos — a equipe da Smartcat nos ajudou a colocar nosso fluxo de trabalho em funcionamento e priorizou alguns dos recursos que eram essenciais para nós,
O serviço é praticamente gratuito — acabamos optando por uma assinatura por causa do recurso de pesquisa de texto em todo o projeto, mas essa mudança foi opcional.
O gerente de projeto precisa enviar convites manualmente aos tradutores — mas soubemos que essa etapa será automatizada em breve.
Considerando nossa experiência com o Smartcat até agora, temos esperança de que a equipe deles já esteja trabalhando para resolver essas questões.
Antes e depois
Processo
Antes
Tradução:
Obter textos de diferentes ramos no repositório — manualmente,
Criar um delta para tradução — manualmente,
Criar pacotes para tradução,
Carregue-os em um servidor FTP,
Escreva uma série de e-mails para agências, freelancers ou escritórios locais,
Pegue a tradução do servidor FTP assim que estiver pronta,
Carregue-a na ferramenta CAT e certifique-se de que tudo está correto,
Carregar as strings traduzidas no repositório, tentando não misturar os branches — manualmente,
Executar uma compilação, corrigir erros, concluir a compilação,
Solicitar traduções adicionais — basicamente repetindo o mesmo processo novamente.
Testes linguísticos:
Inicie a compilação e aguarde até que ela seja concluída,
Reinicie a compilação se ela falhar devido a erros de localização,
Configure um ambiente de teste especial, se não houver menu de depuração,
Faça todas as capturas de tela relevantes para mais de 20 idiomas,
Descubra, junto com a equipe de controle de qualidade, como obter as capturas de tela que ainda estão faltando,
Crie e nomeie pacotes de capturas de tela,
Faça o upload deles para o servidor FTP,
Atribua tarefas a agências de tradução para verificar as traduções,
Responda às perguntas das agências,
Aceite as tarefas e faça as alterações,
Faça a compilação — o que às vezes leva muito tempo,
Refaz a compilação se houver erros,
Tire capturas de tela para testes regressivos,
Mais uma vez, fazer o upload das capturas de tela e atribuir tarefas às agências de tradução,
Mais uma vez, discutir tudo com as agências,
Mais uma vez, realizar outra rodada de testes regressivos se houver alterações na tradução.
Depois
O gerente de projetos de localização designa tradutores,
Os tradutores traduzem no contexto — com capturas de tela e comentários ao alcance dos dedos,
O gerente de projetos de localização revisa e confirma a tradução, que então retorna automaticamente ao Git,
A equipe de localização executa o bot de captura de tela de recursos para textos localizados,
A equipe de localização coloca as capturas de tela localizadas no servidor FTP e as envia aos linguistas,
Os linguistas verificam e corrigem as traduções, se necessário, enquanto analisam as capturas de tela localizadas,
As alterações são automaticamente enviadas para o Git,
A equipe de localização fecha a solicitação de pull.
É isso — com essa redução de complexidade em três vezes, realmente sentimos a diferença em relação ao que tínhamos antes!
Números
Etapa | Horas antes | Horas depois |
Coletar strings de todos os ramos | 1 | - |
Criar um delta contendo apenas strings novas ou atualizadas e enviá-las para a ferramenta CAT para mais de 20 idiomas | 4 | 0,25 |
Crie pacotes de tradução para mais de 20 idiomas | 0,5 | - |
Carregar pacotes de tradução para o servidor FTP para mais de 20 idiomas | 0,5 | - |
Comunicar-se com agências/tradutores para confirmar que eles podem aceitar o trabalho, para mais de 20 idiomas | 2–3 | |
Atribuir trabalhos a agências/tradutores diretamente na plataforma | - | 0,25 |
Responda às perguntas dos tradutores | 2–4 | 0,5 |
Revisar e confirmar traduções | 1 | 0,25 |
Executar uma compilação | Até 8 | 0,25 |
Traduções adicionais | 8 | 0,25 |
Obter capturas de tela | 16–32 | 8 com a ferramenta de captura de tela automática |
Carregar capturas de tela para o servidor FTP | 8 | 1 |
Comunicar com agências/tradutores e obter traduções corrigidas | 8 | 1 |
Atualizar os arquivos de recursos | 8 | 2 |
Grave as alterações no Git | 8 | 0,25 |
Tempo total por lançamento por aplicativo | 84 horas | 14 horas |
Bônus
O Smartcat identificou alguns bugs antigos graças às suas configurações de erros críticos.
Não desperdiçamos o tempo e os recursos de outras pessoas: não precisamos pegar dispositivos de teste da equipe de controle de qualidade nem usar o tempo da equipe de desenvolvimento para fazer capturas de tela.
As capturas de tela disponíveis para os tradutores, que eles podem abrir e visualizar facilmente diretamente no editor, melhoraram muito a qualidade das traduções.
Podemos continuar e temos certeza de que, com o tempo, encontraremos outras maneiras de melhorar a eficiência e a qualidade dos nossos processos de localização. Mais importante ainda, a localização não é mais um gargalo no ciclo de lançamento. Acreditamos que obter esses resultados em tão pouco tempo foi uma conquista tanto para a nossa equipe quanto para a plataforma Smartcat.
Apêndice. Dicas e ideias
Integração:
Teste a integração Git–Serge–Smartcat para garantir que todas as strings cheguem aos projetos Smartcat e vice-versa. Você não quer ter surpresas na fase de produção.
Chegue a um acordo com os engenheiros de software sobre a nomenclatura dos branches. Dessa forma, você poderá configurar um bot que procurará os branches específicos que precisam ser localizados, economizando horas de comunicação tanto para você quanto para os desenvolvedores.
. Por exemplo, tornamos os IDs das strings, comentários e links para referências de capturas de tela visíveis para os tradutores. de acordo com a máscara de nome acordada acima. Considere testar a interface do usuário e fazer capturas de tela dos recursos usando a estrutura Kaspresso. Por exemplo, nossos desenvolvedores colocam um link para uma captura de tela para cada string que usam. Quando o arquivo chega ao Smartcat, o link da captura de tela vai automaticamente para a guia Comentários. Você pode ler mais sobre o Kaspresso e por que você pode querer usá-lo aqui.
Localização e testes linguísticos:
Se você tiver glossários disponíveis, carregue-os no Smartcat para garantir a consistência em todas as suas localizações.
Adicione seus linguistas internos para que eles possam explorar a plataforma e aprender como ela funciona antes de receberem trabalhos reais de você.
Encontre e selecione freelancers e integre-os aos processos da sua empresa, garantindo que eles saibam como usar capturas de tela, comentários, glossários etc.
Quando necessário, encontre agências de tradução para necessidades adicionais de localização ou testes.



