Integrando com Weblate

Básico do Weblate

Estrutura de projetos e componentes

No Weblate, as traduções são organizadas em projetos e componentes. Cada projeto pode conter vários componentes, os quais contêm traduções para idiomas individuais. O componente corresponde a um arquivo traduzível (por exemplo, GNU gettext PO (Objeto Portátil) ou Recurso de textos do Android). Os projetos estão lá para ajudá-lo a organizar componentes em conjuntos lógicos (por exemplo, para agrupar todas as traduções usadas dentro de um aplicativo).

Além disso, componentes dentro de projetos podem ser estruturados usando categorias. Componentes podem pertencer a uma categoria, e categorias podem ser aninhadas.

Internamente, cada projeto tem traduções para textos comuns propagados em outros componentes dentro dele por padrão. Isso alivia o fardo da tradução repetitiva e de várias versões. A propagação da tradução pode ser desabilitada por Configuração de componente usando Permitir propagação de tradução caso as traduções devam divergir.

Integração com repositório

O Weblate foi criado para integrar-se ao repositório de controle de versão upstream, Tradução contínua descreve os blocos de construção e como as alterações fluem entre eles.

Ver também

Visão geral da arquitetura descreve como o Weblate funciona internamente.

Atribuição ao usuário

O Weblate mantém as traduções devidamente criadas pelos tradutores no repositório de controle de versão usando nome e e-mail. Ter um e-mail real anexado ao commit segue os espíritos do controle de versão distribuído e permite que serviços como o GitHub associem suas contribuições feitas no Weblate com seu perfil do GitHub.

Esse recurso também traz o risco de uso indevido de e-mail publicado nos commits de controle de versão. Além disso, uma vez que tal commit é publicado em hospedagem pública (como GitHub), não há efetivamente nenhuma maneira de redigi-lo. O Weblate permite escolher um e-mail de commit privado em Conta para evitar isso.

Portanto, os administradores devem considerar isso ao configurar o Weblate:

  • Esse uso de e-mail deve ser claramente descrito nos termos de serviço, caso tal documento seja necessário. Termos Jurídicos pode ajudar com isso.

  • PRIVATE_COMMIT_EMAIL_OPT_IN pode tornar os e-mails privados por padrão.

Importando um projeto de localização para o Weblate

O Weblate foi desenvolvido com a integração VCS em mente como seu recurso principal, então a maneira mais fácil é conceder ao Weblate o acesso ao seu repositório. O processo de importação o guiará pela configuração de suas traduções em componentes do Weblate.

Como alternativa, você pode deixar o Weblate configurar um repositório somente local contendo todas as traduções sem integração.

Obtendo traduções atualizadas do Weblate

O Weblate armazena textos atualizados em um banco de dados e as envia para um repositório de controle de versão local. Você pode adicionar um repositório Weblate (quando Exportador git estiver ativado) como um repositório remoto adicional e buscar atualizações de tradução dele.

Antes disso, você pode querer fazer commit de quaisquer alterações locais pendentes feitas no Weblate (consulte Commits adiados). Isso pode ser feito a partir da interface do usuário (em Manutenção do repositório) ou na linha de comando usando o Weblate Client.

Fazer push das alterações pode ser automatizado se você conceder acesso push do Weblate ao seu repositório e configurar URL de envio do repositório na Configuração de componente. Consulte Fazendo push das alterações do Weblate.

Alternativamente, use API REST do Weblate para atualizar as traduções de forma que elas correspondam às versões mais recentes a partir do upstream em seu repositório VCS remoto.

Buscando alterações remotas para o Weblate

Para buscar quaisquer textos recém-atualizados em seu repositório VCS remoto para o Weblate, permita ao Weblate fazer pull do repositório upstream. Isso pode ser feito na interface do usuário (em Manutenção do repositório) ou na linha de comando usando o Weblate Client.

Isso pode ser automatizado configurando um webhook em seu repositório para acionar o Weblate sempre que houver um novo commit. Consulte Atualizando repositórios para mais detalhes.

Se você não estiver usando integração VCS, você pode usar a UI ou API REST do Weblate para atualizar as traduções de forma que elas correspondam à sua base de código.

Adicionando novos textos

Se seus arquivos de tradução serem armazenados em um VCS remoto junto com o código, você provavelmente tem um fluxo de trabalho existente para os desenvolvedores introduzirem novos textos. Qualquer forma de adicionar textos será escolhida, mas considere usar Rota de qualidade para os textos fonte para evitar a introdução de erros.

Quando arquivos de tradução são separados do código, as seguintes formas podem introduzir novos textos no Weblate.

  • Manualmente, usando Adicionar novo texto de tradução do menu Ferramentas no idioma fonte. Você pode escolher entre os botões de opção Singular e Plural dentro do formulário. Selecione o formulário apropriado da novo texto de tradução a ser adicionado.

  • Programaticamente, usando a API POST /api/translations/(string:project)/(string:component)/(string:language)/units/.

  • Ao enviar o arquivo fonte como Substituir arquivo tradução existente (isso sobrescreve os textos existentes, portanto, certifique-se de que o arquivo inclua os textos antigos e novos) ou Adicionar novos textos. Consulte Métodos de importação.

Nota

A capacidade de adicionar textos no Weblate requer Gerenciar textos.

Atualizando arquivos de idioma de destino

Para arquivos monolíngues (consulte Formatos de arquivo de localização), o Weblate pode adicionar novos textos de tradução presentes no Arquivo de idioma da base monolíngue, e não nas traduções reais. No entanto, ele não executa nenhuma limpeza automática de textos obsoletos, pois isso pode ter resultados inesperados. Se você ainda quiser fazer isso, instale o complemento Limpar arquivos de tradução, que lida com a limpeza de acordo com seus requisitos.

Weblate também não tentará atualizar arquivos bilíngues quando as alterações de fonte, então se você precisar que os arquivos po sejam atualizados de pot, faça isso sozinho usando Métodos de importação de Atualizar textos fonte, ou usando o complemento Atualizar arquivos PO para corresponder ao POT (msgmerge).

Dica

Ferramentas de extração de textos fonte, como xgettext ou lupdate, precisam ser executadas fora do Weblate.

Introduzindo novos textos

Você pode adicionar novos textos no Weblate com Gerenciar textos ativado, mas geralmente é melhor introduzir novos textos junto com as alterações de código que as introduziram.

Formatos monolíngues precisam ser configurados para que novos textos sejam adicionados a Arquivo de idioma da base monolíngue. Isso é feito tipicamente por desenvolvedores, enquanto eles escrevem o código. Você pode querer usar um processo de revisão desses textos usando Rota de qualidade para os textos fonte.

Formatos bilíngues normalmente extraem textos do código-fonte usando algumas ferramentas (como xgettext ou intltool-update). Siga a documentação do seu framework de localização para obter instruções sobre como fazer isso. Depois que os textos forem extraídos, pode haver uma etapa adicional necessária para atualizar as traduções existentes, consulte Atualizando arquivos de idioma de destino.

Dica

A automação da extração de textos está atualmente fora do escopo do Weblate. Ela normalmente envolve a execução de código não confiável, o que a torna mais adequada para uma integração contínua genérica do que para uma plataforma específica de localização.

Talvez você queira integrar isso aos seus pipelines de integração contínua para fazer com que novos textos apareçam automaticamente para tradução. Esse pipeline também deve cobrir Evitando conflitos de mesclagem.

Gerenciando o repositório VCS local

O Weblate armazena todas as traduções em seu repositório de controle de versão subjacente. É sugerido que ele seja conectado a um remoto, mas a configuração somente interna também é possível. A Manutenção do repositório permite controlar este repositório.

Dica

Com Tradução contínua, quaisquer alterações têm o push feito automaticamente a partir do repositório, então geralmente não há necessidade de gerenciá-las manualmente.

../_images/component-repository.webp