Projetos de tradução

Organização de tradução

O Weblate organiza o conteúdo VCS traduzível do projeto/componentes numa 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 uma aplicação 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, define o repositório VCS a ser usado e a máscara dos ficheiros a serem traduzidos.

  • Acima da Configuração de componente existem traduções individuais, manipuladas automaticamente pelo Weblate como ficheiros de tradução (que correspondem a Máscara de ficheiros 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 ficheiros suportados.

Nota

Pode compartilhar repositórios VCS clonados a usar URLs internas do Weblate. Usar este recurso é altamente recomendado quando tem muitos componentes a compartilhar 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 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 nas suas permissões, novos projetos e componentes de tradução podem ser criados. É sempre permitido para utilizadores com a permissão Adicionar novos projetos e se a sua instância usa cobrança (por exemplo, como https://hosted.weblate.org/, veja Faturação), também pode criar aqueles com base na permissão dos seus planos da conta de utilizador que gere a cobrança.

Pode visualizar o seu plano de cobrança atual numa página separada:

../_images/user-billing.png

A criação do projeto pode ser iniciada a partir daí, ou a utilizar o menu da barra de navegação, a preencher 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, é levado diretamente à 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:

Do controle de versão

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

Do componente existente

Cria um componente adicional ao existente, a escolher ficheiros diferentes.

Ramo adicional

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

Enviar ficheiros de tradução

Envia os ficheiros de tradução para o Weblate caso não tenha controle de versão ou não queira integrá-lo ao Weblate. Pode atualizar o conteúdo posteriormente a usar a interface web ou API REST do Weblate.

Traduzir documento

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

Começar do zero

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

Depois de ter os componentes de tradução existentes, também pode adicionar facilmente novos para ficheiros adicionais ou ramos a usar o mesmo repositório.

Primeiro precisa preencher o nome e a localização do repositório:

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

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

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

Como última etapa, 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 o dicionário deles; as traduções também são propagadas automaticamente por todos os componentes num único projeto (a menos que desligado na configuração do componente), veja Memória de Tradução.

Veja também

Integrando com Weblate

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 da Web 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 para 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 a formatação de texto ou inserção de ligações.

Definir cabeçalho «Language-Team»

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

Utilizar memória de tradução partilhada

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

O valor padrão é determinado por DEFAULT_SHARED_TM.

Contribuir à 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 é determinado por DEFAULT_SHARED_TM.

Controlo de acesso

Configura o controle de acesso por projeto, veja Controlo de acesso ao projeto para mais detalhes.

O valor padrão pode ser alterado por DEFAULT_ACCESS_CONTROL.

Activar revisões

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

Ativar revisões de fontes

Ativa o fluxo de trabalho de revisão para cadeia fonte, veja Revisões de cadeias fonte.

Ativar hooks

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

Aliases do 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 nos seus repositórios e quiser obter uma visualização consistente no Weblate ou no caso de desejar usar uma nomenclatura fora do padrão dos seus ficheiros 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 ficheiros 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 ficheiros.

Configuração de componente

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

Veja também

Integrando com Weblate

Pode encontrar alguns exemplos de configurações típicas nos Formatos de ficheiros suportados.

Nota

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

O Weblate lida facilmente com traduções com 10000s de cadeias, 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 a faltar, uma definição vazia é criada e nomeada como «cs_CZ (generated)». 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 controlo de versões

VCS para usar, veja Integração de controlo de versões para detalhes.

Repositório do código-fonte

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

Veja também

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

Dica

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

URL de submissão 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.

For linked repositories, this is not used and setting from linked component applies.

Veja 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 ficheiros fonte (localização das mensagens usadas). Quando vazio, nenhuma dessas ligações será gerado. 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 os seus caminhos serem relativos a pastas diferentes (caminho contém ..), pode 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 Tradução contínua não é usada, ou quando há a necessidade de mesclar manualmente as alterações. 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.

For linked repositories, this is not used and setting from linked component applies.

Ramo do push

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

For linked repositories, this is not used and setting from linked component applies.

Nota

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

Máscara de ficheiros

Máscara de ficheiros a traduzir, incluindo caminho. Deve incluir um «*» a substituir 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 ficheiro de tradução (por exemplo, mais domínios gettext), precisa criar um componente para cada um deles.

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

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

Ficheiro de idioma base monolingue

Ficheiro base a conter definições de cadeias para Componentes monolínguas.

Editar ficheiro base

Permite a edição do ficheiro base para Componentes monolínguas.

Ficheiro de idioma intermédio

Ficheiro de idioma intermediário para Componentes monolínguas. Na maioria dos casos, este é um ficheiro de tradução fornecido por programadores e é usado ao criar cadeias de origem reais.

Quando definido, as cadeias fonte são baseados neste ficheiro, mas todos os outros idiomas são baseados em Ficheiro de idioma base monolingue. Caso a cadeia não seja traduzida para o idioma fonte, a tradução para outros idiomas é proibida. Isso fornece uma Portal de qualidade para cadeias fonte.

Modelo para novas traduções

Ficheiro base usado para gerar novas traduções, por exemplo, um ficheiro .pot com gettext.

Dica

Em muitos formatos monolíngues, o Weblate começa com um ficheiro em branco por padrão. Use-o no caso de desejar que todas as cadeias estejam presentes com um valor vazio ao criar uma tradução.

Formato de ficheiro

Formato do ficheiro de tradução, veja também Formatos de ficheiros suportados.

Endereço para reportar erros na cadeia fonte

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

Permitir propagação da tradução

Pode desativar a propagação de traduções para este componente de outros componentes dentro do mesmo projeto. Isso realmente depende do que está a traduzir, à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 esteja a usar os mesmos IDs em todo o projeto.

O valor padrão pode ser alterado por DEFAULT_TRANSLATION_PROPAGATION.

Ativar sugestões

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

Votação de sugestão

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

Aceitar sugestões automaticamente

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

Marcadores de tradução

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

Verificações impostas

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

Nota

Forçar a verificação não a ativa automaticamente, ainda deve ativá-la Personalizando comportamento a usar marcadores em Marcadores de tradução ou Informações adicionais sobre cadeias fonte.

Licença da tradução

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

Acordo de contribuidor

Acordo do utilizador que tem de ser aprovado antes do utilizador poder traduzir este componente.

Adicionar nova tradução

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

Contactar gestores

O utilizador pode selecionar o idioma desejado e os mantenedores do projeto receberão uma notificação sobre isso. Cabe adiciona-los (ou não) o idioma ao repositório.

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

É apresentado ao utilizador uma ligação 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 equipa antes de iniciar a tradução real).

Criar novo ficheiro de idioma

O utilizador pode selecionar o idioma e o Weblate cria automaticamente o ficheiro para ele e a tradução pode começar.

Desativar adição de novas traduções

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

Dica

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

Gerir cadeias

Novo na versão 4.5.

Configura se os utilizadores 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 novas strings no Weblate deve ser desativado (elas seriam descartadas na próxima vez que atualizasse os ficheiros de tradução). No Weblate, pode gerir textos para cada tradução e não exige que os textos em todas as traduções sejam consistentes.

Para formatos monolingues, as cadeias são geridas apenas no idioma fonte e são automaticamente adicionadas ou removidas nas traduções. As cadeias aparecem nos ficheiros de tradução assim que são traduzidas.

Estilo de código de idioma

Personalizar o código de idioma usado para gerar o nome do ficheiro para traduções criadas por Weblate.

Estilo de união

Pode configurar como as atualizações do repositório upstream são tratadas. Isso pode não ser compatível com alguns VCSs. Veja Mesclar ou rebase para mais detalhes.

Valor predefindo pode ser alterado por DEFAULT_MERGE_STYLE.

Mensagens de commit, add, merge e extensão

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

O valor predefinido pode ser alterado por DEFAULT_ADD_MESSAGE, DEFAULT_ADDON_MESSAGE, DEFAULT_COMMIT_MESSAGE, DEFAULT_DELETE_MESSAGE, DEFAULT_MERGE_MESSAGE.

Enviar ao submeter

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

Idade das alterações a fazer commit

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

O valor predefinido pode ser alterado por COMMIT_PENDING_HOURS.

Dica

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

Bloquear com erro

Bloqueia o componente (e os componentes vinculados, consulte URLs internas do Weblate) no primeiro push ou mesclagem com falha no repositório upstream dele, 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 estiver a traduzir de algo diferente do inglês.

Dica

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

Para traduções monolíngues, pode usar tradução intermediária neste caso, veja Ficheiro de idioma intermédio.

Filtro de idioma

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

Nota

Precisa listar os códigos de idioma conforme aparecem no nome do ficheiro.

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 ficheiros que não são idiomas

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

Inclui todos os ficheiros (predfinição)

^[^.]+$

Expressão regular das variantes

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

Nota

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

Prioridade

Componentes de prioridade mais elevada são oferecidos primeiro aos tradutores.

Acesso restrito

Por predefinição, o componente é visível para todos que tenham 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 num 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. Terá que conceder-lhe acesso explicitamente. Isso pode ser feito concedendo acesso a um novo grupo de utilizadores e colocando utilizadores nele, ou usando os grupos de controle de acesso predefinido personalizado ou privado.

O valor predefinido 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

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

Nota

Compartilhar um componente não altera o controle de acesso dele. Só o torna visível ao navegar em outros projetos. Os utilizadores 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. Pode configurar como ele será listado a usar a Cor do glossário.

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

É recomendado ativar Gerir cadeias em glossários para permitir adicionar-lhes novas palavras.

Veja 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 ficheiro 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 }}

Percentagem de textos que precisam de revisão

{{ stats.translated }}

Contagem de textos traduzidos

{{ stats.translated_percent }}

Percentagem de textos traduzidos

{{ stats.allchecks }}

Quantidade de textos com falhas nas verificações

{{ stats.allchecks_percent }}

Percentagem 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 ficheiro

{{filename}}

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

Pode combiná-los com filtros:

{{ component|title }}

Pode usar as condições:

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

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

{% replace component "-" " " %}

Pode combiná-lo com filtros:

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

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

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 ao Weblate pode ser um processo demorado, dependendo do tamanho das suas traduções. Aqui estão algumas dicas:

Otimizar a configuração

A configuração predefinida é útil para testar e depurar o Weblate, enquanto para uma configuração de produção, 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 estiver a importar 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 ficheiros 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 a usar o Celery).

Desativar 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 ficheiros de tradução (por exemplo, para diferentes domínios gettext ou partes de apps Android), 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 componentes.

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

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