Projetos de tradução

Organização de tradução

O Weblate organiza o conteúdo VCS traduzível do projeto/componentes em uma estrutura semelhante a uma árvore.

  • O objeto de nível inferior é Configuração de projeto, que deve conter todas as traduções pertencentes a um conjunto (por exemplo, tradução de um aplicativo em várias versões e/ou documentação que o acompanha).

  • No nível acima, Configuração de componente, que é na verdade o componente a ser traduzido, você define o repositório VCS a ser usado e a máscara dos arquivos a serem traduzidos.

  • Acima da Configuração de componente existem traduções individuais, manipuladas automaticamente pelo Weblate como arquivos de tradução (que correspondem a Máscara de arquivo definido em Configuração de componente) aparecem no repositório VCS.

O Weblate tem suporte a uma ampla gama de formatos de tradução (bilíngues e monolíngues) suportados pelo Translate Toolkit, veja Formatos de arquivos suportados.

Nota

Você pode compartilhar repositórios VCS clonados usando URLs internas do Weblate. Usar este recurso é altamente recomendado quando você tem muitos componentes compartilhando o mesmo VCS. Ele melhora o desempenho e diminui o espaço em disco necessário.

Adicionando projetos e componentes de tradução

Alterado na versão 3.2: Uma interface para adicionar projetos e componentes está incluída, e você não precisa mais usar A interface administrativa do Django.

Alterado na versão 3.4: O processo de adição de componentes agora tem vários estágios, com descoberta automatizada da maioria dos parâmetros.

Com base em suas permissões, novos projetos e componentes de tradução podem ser criados. É sempre permitido para usuários com a permissão Adicionar novos projetos, e se sua instância usa cobrança (por exemplo, como https://hosted.weblate.org/, veja Cobrança), você também pode criar aqueles com base na permissão de seus planos da conta de usuário que gerencia a cobrança.

Você pode visualizar seu plano de cobrança atual em uma página separada:

../_images/user-billing.png

A criação do projeto pode ser iniciada a partir daí, ou utilizando o menu da barra de navegação, preenchendo informações básicas sobre o projeto de tradução para completar a adição dele:

../_images/user-add-project.png

Depois de criar o projeto, você é levado diretamente para a página do projeto:

../_images/user-add-project-done.png

A criação de um novo componente de tradução pode ser iniciada com um único clique lá. O processo de criação de um componente possui vários estágios e detecta automaticamente a maioria dos parâmetros de tradução. Existem várias abordagens para a criação de componentes:

De controle de versão

Cria um componente do repositório de controle de versão remoto.

De componente existente

Cria um componente adicional ao existente, escolhendo arquivos diferentes.

Ramo adicional

Cria um componente adicional ao existente, apenas para um ramo diferente.

Enviar arquivos de tradução

Envia os arquivos de tradução para o Weblate caso você não tenha controle de versão ou não queira integrá-lo ao Weblate. Você pode atualizar o conteúdo posteriormente usando a interface web ou API REST do Weblate.

Traduzir documento

Envia um único documento ou arquivo de tradução e o traduz.

Iniciar do zero

Cria um projeto de tradução vazio e adiciona textos manualmente.

Depois de ter os componentes de tradução existentes, você também pode adicionar facilmente novos para arquivos adicionais ou ramos usando o mesmo repositório.

Primeiro você precisa preencher o nome e o local do repositório:

../_images/user-add-component-init.png

Na próxima página, você verá uma lista de recursos traduzíveis descobertos:

../_images/user-add-component-discovery.png

Como última etapa, você analisa as informações do componente de tradução e preenche os detalhes opcionais:

../_images/user-add-component.png

Configuração de projeto

Cria um projeto de tradução e, em seguida, adiciona um novo componente para tradução nele. O projeto é como uma estante, na qual as traduções reais estão empilhadas. Todos os componentes no mesmo projeto compartilham sugestões e seu dicionário; as traduções também são propagadas automaticamente por todos os componentes em um único projeto (a menos que desligado na configuração do componente), veja Memória de tradução.

Esses atributos básicos configuram e informam os tradutores de um projeto:

Nome do projeto

Nome detalhado do projeto, usado para exibir o nome do projeto.

URL amigável

Nome do projeto adequado para URLs.

Site do projeto

URL onde os tradutores podem encontrar mais informações sobre o projeto.

Este é um parâmetro obrigatório, a menos que seja desligado por WEBSITE_REQUIRED.

Instruções de tradução

Texto que descreve o processo de localização no projeto e qualquer outra informação útil para tradutores. Markdown pode ser usado para formatação de texto ou inserção de links.

Definir o cabeçalho do “Language-Team”

Se o Weblate deve gerenciar o cabeçalho Language-Team (este é um recurso apenas do GNU gettext no momento).

Usar memória de tradução compartilhada

Para usar memória de tradução compartilhada, veja Memória de tradução compartilhada para mais detalhes.

O valor padrão pode ser alterado por DEFAULT_SHARED_TM.

Contribuir com memória de tradução compartilhada

Para contribuir com a memória de tradução compartilhada, veja Memória de tradução compartilhada para mais detalhes.

O valor padrão pode ser alterado por DEFAULT_SHARED_TM.

Controle de acesso

Configura o controle de acesso por projeto, veja Controle de acesso do projeto para mais detalhes.

O valor padrão pode ser alterado por DEFAULT_ACCESS_CONTROL.

Habilitar revisões

Habilita o fluxo de trabalho de revisão para traduções, veja Revisores dedicados.

Habilitar revisões de fontes

Habilita o fluxo de trabalho de revisão para textos fonte, veja Revisões de textos fonte.

Habilitar ganchos

Se Ganchos de notificação não autenticados devem ser usados para este repositório.

Aliases de idioma

Define o mapeamento dos códigos de idioma ao importar traduções para o Weblate. Use isso quando os códigos de idioma forem inconsistentes em seus repositórios e você quiser obter uma visualização consistente no Weblate ou no caso de desejar usar uma nomenclatura fora do padrão de seus arquivos de tradução.

O caso de uso típico pode ser mapear inglês americano para inglês: en_US:en

Vários mapeamentos devem ser separados por vírgula: en_GB:en,en_US:en

Usando código não padrão: ia_FOO:ia

Dica

Os códigos de idioma são mapeados ao combinar os arquivos de tradução e as correspondências diferenciam maiúsculas de minúsculas, por isso certifique-se de usar os códigos de idioma fonte na mesma forma usada nos nomes dos arquivos.

Configuração de componente

Um componente é um agrupamento de algo para tradução. Você insere um local de repositório VCS e uma máscara de arquivo para os arquivos que deseja traduzir, e o Weblate busca automaticamente neste VCS e encontra todos os arquivos traduzíveis correspondentes.

Você pode encontrar alguns exemplos de configurações típicas nos Formatos de arquivos suportados.

Nota

Recomenda-se manter os componentes de tradução em um tamanho razoável – divida a tradução por qualquer coisa que faça sentido no seu caso (aplicativos ou extensões individuais, capítulos de livros ou sites).

O Weblate lida facilmente com traduções com 10000s de textos, mas é mais difícil dividir o trabalho e coordenar entre os tradutores com componentes de tradução tão grandes.

Se a definição do idioma de uma tradução estiver faltando, uma definição vazia é criada e nomeada como “cs_CZ (generated)”. Você deve ajustar a definição e relatar isso aos autores do Weblate, para que os idiomas em falta possam ser incluídos na próxima versão.

O componente contém todos os parâmetros importantes para trabalhar com o VCS e para obter traduções dele:

Nome do componente

Nome detalhado do componente, usado para exibir o nome do componente.

URL amigável do componente

Nome do componente adequado para URLs.

Projeto do componente

Configuração de projeto ao qual o componente pertence.

Sistema de controle de versão

VCS para usar, veja Integração com controle de versão para detalhes.

Repositório do código-fonte

Repositório VCS usado para fazer pull das alterações.

Ver também

Veja Acessando repositórios para mais detalhes sobre especificar URLs.

Dica

Pode ser uma URL VCS real ou weblate://projeto/componente indicando que o repositório deve ser compartilhado com outro componente. Veja URLs internas do Weblate para mais detalhes.

URL de push do repositório

URL do repositório usado para fazer push. Esta configuração é usada apenas para Git e Mercurial e o suporte a push é desativado para estes quando está vazio.

Para repositórios vinculados, isso não é usado e se aplica a definição do componente vinculado.

Ver também

Veja Acessando repositórios para mais detalhes sobre como especificar uma URL de repositório e Fazendo push das alterações do Weblate para mais detalhes sobre como fazer push de mudanças do Weblate.

Navegador do repositório

URL de navegação do repositório usada para exibir os arquivos fonte (local das mensagens usadas). Quando vazio, nenhum desses links será gerado. Você pode usar Marcação de modelo.

Por exemplo, no GitHub, use algo como: https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename}}#L{{line}}

No caso de seus caminhos serem relativos a pastas diferentes (caminho contém ..), você pode querer remover o diretório principal pelo filtro parentdir (veja Marcação de modelo): https://github.com/WeblateOrg/hello/blob/{{branch}}/{{filename|parentdir}}#L{{line}}

URL do repositório exportado

URL para onde as alterações feitas pelo Weblate são exportadas. Isso é importante quando Localização contínua não é usada, ou quando há a necessidade de mesclar manualmente as alterações. Você pode usar Exportador git para automatizar isso para repositórios Git.

Ramo do repositório

De qual ramo fazer checkout do VCS e onde procurar traduções.

Para repositórios vinculados, isso não é usado e se aplica a definição do componente vinculado.

Ramo do push

Ramo para fazer push de alterações, deixe vazio para usar Ramo do repositório.

Para repositórios vinculados, isso não é usado e se aplica a definição do componente vinculado.

Nota

Atualmente, isso é compatível apenas com Git, GitLab e GitHub, mas é ignorado para outras integrações VCS.

Máscara de arquivo

Máscara de arquivos a traduzir, incluindo caminho. Deve incluir um “*” substituindo o código de idioma (veja Definições de idioma para informações sobre como isso é processado). Caso seu repositório contenha mais de um arquivo de tradução (por exemplo, mais domínios gettext), você precisa criar um componente para cada um deles.

Por exemplo, po/*.po ou locale/*/LC_MESSAGES/django.po.

No caso de seu nome de arquivo conter caracteres especiais como [, ], eles precisam ser escapados como [[] ou []].

Arquivo de idioma da base monolíngue

Arquivo base contendo definições de texto para Componentes monolíngues.

Editar o arquivo base

Permite a edição do arquivo base para Componentes monolíngues.

Arquivo de idioma intermediário

Arquivo de idioma intermediário para Componentes monolíngues. Na maioria dos casos, este é um arquivo de tradução fornecido por desenvolvedores e é usado ao criar textos fonte reais.

Quando definido, os textos fonte são baseados neste arquivo, mas todos os outros idiomas são baseados no Arquivo de idioma da base monolíngue. Caso o texto não esteja traduzido para o idioma fonte, a tradução para outros idiomas é proibida. Isso fornece uma Rota de qualidade para os textos fonte.

Modelo para novas traduções

Arquivo base usado para gerar novas traduções, por exemplo, arquivo .pot com gettext.

Dica

Em muitos formatos monolíngues, o Weblate começa com um arquivo vazio por padrão. Use-o no caso de desejar que todos os textos estejam presentes com um valor vazio ao criar uma nova tradução.

Formato de arquivo

Formato do arquivo de tradução, veja também Formatos de arquivos suportados.

Endereço do relatório de erros do texto fonte

Endereço de e-mail usado para relatar bugs upstream. Este endereço também receberá notificação sobre quaisquer comentários de texto fonte feitos no Weblate.

Permitir propagação de tradução

Você pode desativar a propagação de traduções para este componente de outros componentes dentro do mesmo projeto. Isso realmente depende do que você está traduzindo, às vezes é desejável ter feito uso de uma tradução mais de uma vez.

Normalmente, é uma boa ideia desligar isso para traduções monolíngues, a menos que você esteja usando os mesmos IDs em todo o projeto.

O valor padrão pode ser alterado por DEFAULT_TRANSLATION_PROPAGATION.

Habilitar sugestões

Se sugestões de tradução são aceitas para este componente.

Votação de sugestões

Ativa a emissão de votos para sugestões, veja Votação de sugestões.

Aceitar sugestões automaticamente

Aceita automaticamente sugestões votadas, veja Votação de sugestões.

Marcadores de tradução

Personalização de verificações de qualidade e outros comportamentos do Weblate, veja Personalizando comportamento usando marcadores.

Verificações forçadas

Lista de verificações que não podem ser ignoradas, veja Forçando verificações.

Nota

Forçar a verificação não a habilita automaticamente, você ainda deve habilitá-la Personalizando comportamento usando marcadores em Marcadores de tradução ou Informações adicionais sobre textos fonte.

Licença da tradução

Licença da tradução (não precisa ser igual à licença do código-fonte).

Acordo de colaborador

Acordo de usuário que precisa ser aprovado antes de um usuário poder traduzir este componente.

Adicionando nova tradução

Como lidar com solicitações de criação de novos idiomas. Opções disponíveis:

Contatar os mantenedores

O usuário pode selecionar o idioma desejado e os mantenedores do projeto receberão uma notificação sobre isso. Cabe a eles adicionar (ou não) o idioma ao repositório.

Apontar para a URL de instruções de tradução

É apresentado ao usuário um link para a página que descreve o processo de iniciar novas traduções. Use-o caso deseje um processo mais formal (por exemplo, formar uma equipe antes de iniciar a tradução real).

Criar novo arquivo de idioma

O usuário pode selecionar o idioma e o Weblate cria automaticamente o arquivo para ele e a tradução pode começar.

Desabilitar adição de novas traduções

Não haverá a opção para o usuário iniciar uma nova tradução.

Dica

Os administradores do projeto podem adicionar novas traduções mesmo se estiver desabilitado aqui quando for possível (tanto Modelo para novas traduções ou o formato de arquivo tem suporte a partir de um arquivo vazio).

Gerenciar textos

Novo na versão 4.5.

Configura se os usuários no Weblate terão permissão para adicionar novos textos e remover os existentes. Ajuste isso para corresponder ao seu fluxo de trabalho de localização – como os novos textos devem ser introduzidos.

Para formatos bilíngues, os textos são normalmente extraídos do código-fonte (por exemplo, usando xgettext) e adicionar novos textos no Weblate deve ser desabilitado (elas seriam descartadas na próxima vez que você atualizasse os arquivos de tradução). No Weblate, você pode gerenciar textos para cada tradução e não exige que os textos em todas as traduções sejam consistentes.

Para formatos monolíngues, os textos são gerenciados apenas no idioma fonte e são automaticamente adicionados ou removidos nas traduções. Os textos aparecem nos arquivos de tradução assim que são traduzidos.

Estilo de código de idioma

Personalize o código de idioma usado para gerar o nome do arquivo para traduções criado por Weblate.

Estilo de mesclagem

Você pode configurar como as atualizações do repositório upstream são tratadas. Isso pode não ser compatível com alguns VCSs. A implementação real depende do VCS, veja /vcs.

Rebase

Faz um rebase dos commits do Weblate no topo do repositório upstream na atualização. Isso fornece um histórico limpo sem commits de mesclagem extras.

Rebasing pode causar problemas em caso de mesclagens complicadas, então considere cuidadosamente se você quer ou não habilitá-los.

Você pode precisar habilitar o push forçado escolhendo Git com push forçado como Sistema de controle de versão, especialmente ao fazer push para um branch diferente.

Mesclar

Alterações no repositório upstream são mesclados com o do Weblate. Esta configuração utiliza fast-forward quando possível. Esta é a maneira mais segura, mas pode produzir muitos commits de mesclagem.

Mesclar sem fast-forward

As alterações do repositório upstream são mescladas com o do Weblate fazendo uma mesclagem de commits toda vez (mesmo quando fast-forward era possível). Toda alteração no Weblate vai aparecer como um commit de merge no repositório do Weblate.

Valor padrão pode ser alterado por DEFAULT_MERGE_STYLE.

Mensagens de commit, add, merge, extensão e merge request

Mensagem usada ao fazer commit uma tradução, veja Marcação de modelo.

O valor padrão pode ser alterado por DEFAULT_ADD_MESSAGE, DEFAULT_ADDON_MESSAGE, DEFAULT_COMMIT_MESSAGE, DEFAULT_DELETE_MESSAGE, DEFAULT_MERGE_MESSAGE, DEFAULT_PULL_MESSAGE.

Push ao fazer commit

Se as alterações confirmadas devem ser enviadas automaticamente para o repositório upstream. Quando habilitado, o push é iniciado assim que o Weblate confirma as alterações em seu repositório subjacente (veja Commits adiados). Para habilitar o push URL de push do repositório também deve ser configurado.

Idade das alterações para fazer commit

Define a idade (em horas) das alterações antes de ser feito commit pela tarefa em segundo plano ou pelo comando de gerenciamento commit_pending. Todas as alterações em um componente tem commit feito quando houver pelo menos uma alteração anterior a esse período.

O valor padrão pode ser alterado por COMMIT_PENDING_HOURS.

Dica

Existem outras situações onde mudanças pendentes podem ter seu commit feito, veja Commits adiados.

Bloquear em erro

Bloqueia o componente (e os componentes vinculados, consulte URLs internas do Weblate) no primeiro push ou mesclagem com falha em seu repositório upstream, ou extraia dele. Isso evita adicionar outros conflitos, que teriam que ser resolvidos manualmente.

O componente será desbloqueado automaticamente quando não houver mais erros de repositório.

Idioma fonte

Linguagem usada para textos fonte. Altere isso se você estiver traduzindo de algo diferente do inglês.

Dica

Caso você esteja traduzindo arquivos bilíngues do inglês, mas também queira fazer correções na tradução para o inglês, escolha Inglês (Desenvolvedor) como idioma fonte para evitar conflito entre o nome do idioma fonte e a tradução existente.

Para traduções monolíngues, você pode usar tradução intermediária neste caso, veja Arquivo de idioma intermediário.

Filtro de idioma

Expressão regular usada para filtrar a tradução ao examinar por uma máscara de arquivo. Pode ser usada para limitar a lista de idiomas gerenciados pelo Weblate.

Nota

Você precisa listar os códigos de idioma conforme aparecem no nome do arquivo.

Alguns exemplos de filtragem:

Descrição do filtro

Expressão regular

Apenas idiomas selecionados

^(cs|de|es)$

Exclui idiomas

^(?!(it|fr)$).+$

Filtra apenas códigos de duas letras

^..$

Exclui arquivos que não são idiomas

^(?!(blank)$).+$

Inclui todos os arquivos (padrão)

^[^.]+$

Expressão regular de variantes

Expressão regular usada para determinar as variantes de um texto, veja Variantes de textos.

Nota

A maioria dos campos pode ser editada por proprietários ou administradores de projetos, na interface do Weblate.

Prioridade

Componentes com prioridade mais alta são oferecidos primeiro para os tradutores.

Acesso restrito

Por padrão, o componente é visível para qualquer pessoa que tenha acesso ao projeto, mesmo se a pessoa não puder realizar nenhuma alteração no componente. Isso torna mais fácil manter a consistência da tradução dentro do projeto.

Restringir o acesso em um componente ou nível de lista de componentes assume a permissão de acesso a um componente, independentemente das permissões de nível de projeto. Você terá que conceder acesso a ele explicitamente. Isso pode ser feito concedendo acesso a um novo grupo de usuários e colocando usuários nele, ou usando os grupos de controle de acesso padrão personalizado ou privado.

O valor padrão pode ser alterado em DEFAULT_RESTRICTED_COMPONENT.

Dica

Isso se aplica aos administradores do projeto também – certifique-se de não perder o acesso ao componente após alternar o status.

Compartilhar em projetos

Você pode escolher projetos adicionais onde o componente ficará visível. Útil para bibliotecas compartilhadas que você usa em vários projetos.

Nota

Compartilhar um componente não altera seu controle de acesso. Só o torna visível ao navegar em outros projetos. Os usuários ainda precisam acessar o componente real para navegar ou traduzi-lo.

Usar como um glossário

Novo na versão 4.5.

Permite usar este componente como glossário. Você pode configurar como ele será listado usando a Cor do glossário.

O glossário estará acessível em todos os projetos definidos por Compartilhar em projetos.

É recomendado habilitar Gerenciar textos em glossários para permitir adicionar novas palavras a eles.

Ver também

Glossário

Cor do glossário

Cor de exibição para um glossário usado ao mostrar correspondências de palavras.

Marcação de modelo

O Weblate usa uma linguagem de marcação simples em vários lugares onde a renderização de texto é necessária. É baseado em The Django template language, então pode ser bastante poderoso.

Atualmente isso é usado em:

As seguintes variáveis estão disponíveis nos modelos de componentes:

{{ language_code }}

Código do idioma

{{ language_name }}

Nome do idioma

{{ component_name }}

Nome do componente

{{ component_slug }}

URL amigável do componente

{{ project_name }}

Nome do projeto

{{ project_slug }}

URL amigável do projeto

{{ url }}

URL de tradução

{{ filename }}

Nome do arquivo de tradução

{{ stats }}

Estatísticas de tradução, isso tem outros atributos, exemplos abaixo.

{{ stats.all }}

Contagem total de textos

{{ stats.fuzzy }}

Contagem de textos que precisam de revisão

{{ stats.fuzzy_percent }}

Porcentagem de textos que precisam de revisão

{{ stats.translated }}

Contagem de textos traduzidos

{{ stats.translated_percent }}

Porcentagem de textos traduzidos

{{ stats.allchecks }}

Número de textos com falhas nas verificações

{{ stats.allchecks_percent }}

Porcentagem de textos com falhas nas verificações

{{ author }}

Autor do commit atual, disponível apenas no escopo do commit.

{{ addon_name }}

Nome da extensão atualmente em execução, disponível apenas na mensagem de commit da extensão.

As seguintes variáveis estão disponíveis nos modelos de navegador ou editor de repositório:

{{branch}}

ramo atual

{{line}}

linha no arquivo

{{filename}}

nome do arquivo, você também pode remover as partes principais usando o filtro parentdir, por exemplo {{filename|parentdir}}

Você pode combiná-los com filtros:

{{ component|title }}

Você pode usar as condições:

{% if stats.translated_percent > 80 %}Well translated!{% endif %}

Há uma tag adicional disponível para substituir caracteres:

{% replace component "-" " " %}

Você pode combiná-lo com filtros:

{% replace component|capfirst "-" " " %}

Existem também filtros adicionais para manipular com nomes de arquivos:

Directory of a file: {{ filename|dirname }}
File without extension: {{ filename|stripext }}
File in parent dir: {{ filename|parentdir }}
It can be used multiple times:  {{ filename|parentdir|parentdir }}

…e outros recursos de modelos do Django.

Velocidade de importação

Obter o repositório VCS e importar traduções para o Weblate pode ser um processo demorado, dependendo do tamanho de suas traduções. Aqui estão algumas dicas:

Otimizar a configuração

A configuração padrão é útil para testar e depurar o Weblate, enquanto para uma configuração de produção, você deve fazer alguns ajustes. Muitas delas têm um grande impacto no desempenho. Por favor, confira Configuração de produção para mais detalhes, especialmente:

Verificar limites de recursos

Se você estiver importando grandes traduções ou repositórios, pode ser atingido por limitações de recursos do seu servidor.

  • Verifique a quantidade de memória livre, pois os arquivos de tradução armazenados em cache pelo sistema operacional melhorará muito o desempenho.

  • As operações de disco podem ser um gargalo se houver muitos textos a serem processadas – o disco é enviado pelo Weblate e pelo banco de dados.

  • Núcleos de CPU adicionais podem ajudar a melhorar o desempenho de tarefas em segundo plano (veja Tarefas de fundo usando Celery).

Desabilitar verificações desnecessárias

Algumas verificações de qualidade podem ser bastante custosas e, se não forem necessárias, podem economizar algum tempo durante a importação, se omitidas. Veja CHECK_LIST para informações sobre configuração.

Criação automática de componentes

Caso seu projeto tenha dezenas de arquivos de tradução (por exemplo, para diferentes domínios gettext ou partes de aplicativos Android), você pode querer importá-los automaticamente. Isso pode ser feito na linha de comando usando import_project ou import_json, ou instalando a extensão Descoberta de componente.

Para usar a extensão, primeiro você precisa criar um componente para um arquivo de tradução (escolha aquele que tem menos probabilidade de ser renomeado ou removido no futuro) e instalar a extensão neste componente.

Para os comandos de gerenciamento, você precisa criar um projeto que conterá todos os componentes e então executar import_project ou import_json.