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 ficheiro traduzível (por exemplo, GNU gettext PO (Objeto Portátil) ou Recursos de cadeias de carateres para Android). Os projetos existem para ajudá-lo a organizar os componentes em conjuntos lógicos (por exemplo, para agrupar todas as traduções utilizadas dentro de uma aplicação).
Adicionalmente, os componentes dentro dos projetos podem ser estruturados utilizando as categorias. Os componentes podem pertencer a uma categoria, e as categorias podem ser integradas.
Internamente, cada projeto tem traduções para cadeias de carateres comuns propagadas noutros componentes dentro dele por predefinição. Isto alivia o fardo da tradução repetitiva e de várias versões. A propagação da tradução pode ser desativada por Configuração de componente a utilizando Permitir propagação da tradução caso as traduções devam divergir.
Integração do repositório¶
O Weblate foi criado para integrar-se com o repositório de controle de versão upstream, Tradução contínua descreve os blocos de criação e como as alterações fluem entre eles.
Veja também
Visão geral da arquitetura descreve como o Weblate funciona internamente.
Atribuição do utilizador¶
O Weblate mantém as traduções devidamente criadas pelos tradutores no repositório do controlo de versão utilizando o nome e “”e-mail””. Ter um “”e-mail”” real anexado à submissão segue os espíritos do controle de versão distribuído e permite que os serviços, como o GitHub associem as suas contribuições efetuadas no Weblate com o seu perfil do GitHub.
Este recurso também traz o risco de utilização indevida do “”e-mail”” publicado nas submissões do controlo de versão. Além disso, uma vez que tal submissão é publicada na hospedagem pública (como GitHub), não há efetivamente nenhuma maneira de redigi-la. O Weblate permite escolher um “”e-mail”” de submissão privado em Conta para evitar isto.
Por isso, os administradores deverião considerar isto enqunto configuram o Weblate:
Tal utilização do “”e-mail”” deverá ser claramente descrita nos termos do serviço no caso de tal documento ser necessário. Módulo legal pode ajudar com isso.
PRIVATE_COMMIT_EMAIL_OPT_INpode criar “”e-mails”” privados por predefinição.
Importar um projeto de localização para o Weblate¶
O Weblate foi desenvolvido com a integração VCS em mente como o 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 das suas traduções em componentes do Weblate.
Como alternativa, 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 cadeias atualizadas numa base de dados e envia-as para um repositório de controle de versão local. 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, pode fazer commit de quaisquer alterações locais pendentes feitas no Weblate (consulte Commits adiados). Isto pode ser feito a partir da interface do utilizador (em Manutenção do repositório) ou na linha de comando usando o Cliente Weblate.
Pushing changes can be automated if you grant Weblate push access to your repository and configure URL de submissão do repositório in the Configuração de componente, see 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 no seu repositório VCS remoto.
Buscando alterações remotas para o Weblate¶
Para buscar quaisquer cadeias recém-atualizados no seu repositório VCS remoto para o Weblate, permita ao Weblate fazer pull do repositório upstream. Isto pode ser feito na interface do utilizador (em Manutenção do repositório) ou na linha de comando usando o Cliente Weblate.
Isto pode ser automatizado configurando um webhook no seu repositório para acionar o Weblate sempre que houver um novo commit. Consulte Atualizar repositórios para mais pormenores.
Se não usar a integração de VCS, pode usar a UI ou API REST do Weblate para atualizar as traduções de forma que elas correspondam à sua base de código.
Veja também
A adicionar novas cadeias¶
Se os seus ficheiros de tradução serem armazenados num VCS remoto junto com o código, provavelmente tem um fluxo de trabalho existente para os programadores introduzirem novas cadeias. Qualquer forma de adicionar cadeias será escolhida, mas considere usar Portal de qualidade para cadeias fonte para evitar a introdução de erros.
Quando ficheiros de tradução são separados do código, as seguintes formas podem introduzir novas cadeias no Weblate.
Manually, using Add new translation string from Operations menu in the source language. You can choose between the radio buttons Singular and Plural inside the form. Select the appropriate form of the new translation string to be added.
Programaticamente, usando a API
POST /api/translations/(string:project)/(string:component)/(string:language)/units/.Ao enviar o ficheiro fonte como Substituir ficheiro de tradução existente (isso sobrescreve as cadeias existentes, portanto, certifique-se de que o ficheiro inclua as cadeias antigas e novas) ou Adicionar novas cadeias. Veja Métodos de importação.
Nota
A capacidade de adicionar textos no Weblate requer Gerir cadeias.
Atualizando ficheiros de idioma de destino¶
Para ficheiros monolíngues (consulte Formatos de ficheiro de localização), o Weblate pode adicionar novos textos de tradução presentes no Ficheiro de idioma base monolingue, e não nas traduções reais. No entanto, ele não executa nenhuma limpeza automática de textos obsoletos, pois isto pode ter resultados inesperados. Se você ainda quiser fazer isto, instale o complemento Limpeza de ficheiros de tradução, que lida com a limpeza de acordo com seus requisitos.
Weblate will also not try to update bilingual files when the source changes,
so if you need po files to be updated from pot, you have two options:
Automatically with an add-on (recommended for continuous updates): Install the Atualizar ficheiros PO para coincidir com POT (msgmerge) add-on, which automatically runs msgmerge to update all PO files whenever the POT file changes.
Manually via upload: Use the Update source strings Métodos de importação to upload your POT file, which will merge it with existing translations.
Dica
Ferramentas de extração de cadeias fonte, como xgettext ou lupdate, precisam ser executadas fora do Weblate.
Introduzindo novas cadeias de carateres¶
Pode adicionar novas cadeias no Weblate com Gerir cadeias ativado, mas geralmente é melhor introduzir novas cadeias junto com as alterações de código que as introduziram.
Formatos monolíngues precisam ser configurados para que novas cadeias sejam adicionadas a Ficheiro de idioma base monolingue. Isto é feito tipicamente por programadores, enquanto eles escrevem o código. Pode usar um processo de revisão desses textos usando Portal de qualidade para cadeias fonte.
Formatos bilíngues normalmente extraem cadeias 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 as cadeias forem extraídas, pode haver uma etapa adicional necessária para atualizar as traduções existentes, consulte Atualizando ficheiros de idioma de destino.
Dica
A automação da extração de cadeias 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 queira integrar isto aos seus pipelines de integração contínua para fazer com que novas cadeias apareçam automaticamente para tradução. Esse pipeline também deve cobrir Evitar conflitos de mesclagem.
Gerir o repositório VCS local¶
Weblate stores all translations in its underlying version control repository. It is suggested to be connected to a remote one, but internal-only setup is also possible. The Repository maintenance allows controlling this repository. For a detailed description of the available actions, see Manutenção do 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.