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:

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:

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

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:

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

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

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.
Ver também
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.
Ver também
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
.
Ver também
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).
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.
Ver também
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.
Ver também
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.
Ver também
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.
Ver também
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
.
Ver também
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 |
|
Exclui idiomas |
|
Filtra apenas códigos de duas letras |
|
Exclui arquivos que não são idiomas |
|
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.
Alterado na versão 4.15: Isso agora também afeta a ordem dos termos correspondentes do glossário.
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.
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
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:
Formatação de mensagens de commit, veja Configuração de componente
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:
Configure o Celery para executar tarefas em segundo plano (veja Tarefas de fundo usando Celery)
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
.
Ver também