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

Weblate is built to integrate with upstream version control repository, Tradução contínua describes building blocks and how the changes flow between them.

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_IN pode criar “”e-mails”” privados por predefinição.

Importing a localization project into Weblate

Weblate has been developed with VCS integration in mind as it’s core feature, so the easiest way is to grant Weblate the access to your repository. The import process will guide you through configuring your translations into Weblate components.

Alternatively, you can let Weblate set up a local-only repository containing all the translations without integration.

Obtendo traduções atualizadas do Weblate

O Weblate armazena cadeias atualizadas num banco de dados e as envia para um repositório de controlo 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.

Prior to this, you might want to commit any pending local changes made in Weblate (see Commits adiados). This can be done from the user interface (in the Repository maintenance), or from the command-line using 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.

Alternatively, use API REST do Weblate to update translations so that they match the latest version from the upstream in your remote VCS repository.

Buscando alterações remotas para o Weblate

To fetch any strings recently updated in your remote VCS repository into Weblate, allow Weblate to pull from the upstream repository. This can be achieved in the user interface (in the Repository maintenance), or from the command-line using Cliente Weblate.

This can be automated by setting a webhook in your repository to trigger Weblate whenever there is a new commit. See Atualizar repositórios for more details.

If not using VCS integration, you can use the UI or API REST do Weblate to update the translations so that they match your codebase.

A adicionar novas cadeias

If your translation files are stored in a remote VCS together with the code, you most likely have an existing workflow for developers to introduce new strings. Any way of adding strings will be picked up, but consider using Portal de qualidade para cadeias fonte to avoid introducing errors.

When translation files are separated from the code, the following ways can introduce new strings into Weblate.

  • Manualmente, usando Adicionar nova cadeia de tradução do menu Ferramentas no idioma fonte. Pode escolher entre os botões de opção Singular e Plural no formulário. Selecione o formulário apropriado da nova cadeia de tradução a ser adicionada.

  • 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

The ability to add strings in Weblate requires Gerir cadeias.

Updating target-language files

For monolingual files (see Localization file formats), Weblate might add new translation strings present in the Ficheiro de idioma base monolingue, and not in actual translations. It does not however perform any automatic cleanup of stale strings, as that might have unexpected results. If you still want to do this, please install the Limpeza de ficheiros de tradução add-on, which handles cleanup according to your requirements.

Weblate will also not try to update bilingual files when the source changes, so if you need po files to be updated from pot, do it yourself by using Update source strings Métodos de importação, or by using the Atualizar ficheiros PO para coincidir com POT (msgmerge) add-on.

Dica

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

Introducing new strings

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 Updating target-language files.

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.

Managing the local VCS repository

O Weblate guarda todas as traduções no repositório do controlo de versão. É sugerido que seja ligado a um remoto, mas é possível a configuração de apenas interno. A Manutenção do repositório permite-lhe controlar este repositório.

Dica

With Tradução contínua, any changes are automatically pushed from the repository, so there is usually no need to manage it manually.

../_images/component-repository.webp