Verificações e correções

As verificações de qualidade ajudam a apanhar erros comuns do tradutor, garantindo que a tradução esteja em boa forma. As verificações podem ser ignoradas em caso de falsos positivos.

Quando enviar uma tradução com uma verificação a falhar será imediatamente mostrada ao utilizador:

../_images/checks.png

Correções automáticas

Além de Verificações de qualidade, o Weblate pode corrigir automaticamente alguns erros comuns em cadeias traduzidas. Use-o com cuidado para não causar erros por meio disto.

Veja também

AUTOFIX_LIST

Verificações de qualidade

O Weblate emprega uma ampla gama de verificações de qualidade em cadeias. A secção a seguir descreve todos eles em mais detalhe. Há também verificações específicas de idiomas. Por favor, preencha um relatório de erro se alguma verificação for relatada por engano.

Verificações de tradução

Executado a cada alteração da tradução, ajuda os tradutores a manter traduções de boa qualidade.

Markup BBcode

BBcode na tradução não corresponde à fonte

BBCode representa marcação simples, como, por exemplo, destacar partes importantes de uma mensagem em fonte em negrito ou itálico.

Esta verificação garante que eles também estejam na tradução.

Nota

O método para detetar BBcode é atualmente bastante simples, então esta verificação pode produzir falsos positivos.

Palavras consecutivas duplicadas

O texto contém a mesma palavra duas vezes de seguida:

Novo na versão 4.1.

Verifica se não há palavras duplicadas consecutivas numa tradução. Isso geralmente indica um erro na tradução.

Dica

Esta verificação inclui regras específicas do idioma para evitar falsos positivos. Caso seja falso no seu caso, avise-nos. Veja Relatando problemas no Weblate.

Não segue o glossário

Novo na versão 4.5.

A tradução não segue os termos definidos num glossário.

Esta verificação tem de ser ligada a usar o sinalizador check-glossary (veja Personalizando comportamento a usar marcadores). Por favor, considere seguir antes de ativá-lo:

  • Ele faz a correspondência exata das cadeias, espera-se que o glossário contenha termos em todas as variantes.

  • A verificação de cada cadeia em relação ao glossário é dispendiosa, ela irá retardar qualquer operação na Weblate que envolva a execução de verificações como a importação de textos ou a tradução.

Espaço duplo

A tradução contém espaços duplos

Verifica se espaços duplos estão presentes na tradução para evitar falsos positivos em outras verificações relacionadas ao espaço.

A verificação é falsa quando espaços duplos são encontrados na fonte, o que significa que os espaços duplos são intencionais.

Cadeias formatadas

Verifica se a formatação em cadeias é replicada entre a fonte e a tradução. Omitir cadeias de formato na tradução geralmente causa problemas graves, de modo que a formatação em cadeias geralmente deve coincidir com a fonte.

O Weblate tem suporte a verificar cadeias de formato em vários idiomas. A verificação não é ativada automaticamente, somente se uma cadeia for sinalizada adequadamente (por exemplo, «c-format” para formato C). O Gettext adiciona-o automaticamente, mas provavelmente terá que adicioná-lo manualmente para outros formatos de ficheiro ou se os seus ficheiros PO não forem gerados por xgettext.

Isso pode ser feito por unidade (ver Informações adicionais sobre cadeias fonte) na Configuração de componente. Tê-lo definido por componente é mais simples, mas pode levar a falsos positivos no caso de a cadeia não ser interpretada como uma cadeia de formatação, mas a sintaxe de textos de formato passa a ser usada.

Dica

Caso a verificação de formato específico não esteja disponível no Weblate, pode usar Espaços reservados genéricos.

Além de verificar, isso também destacará as cadeias de formatação para inseri-los facilmente em cadeias traduzidas:

../_images/format-highlight.png

Cadeia de interpolação AngularJS

A cadeia de interpolação AngularJS não corresponde à fonte

Cadeia de formato nomeado

O seu saldo é {{amount}} {{ currency }}

Sinalize para ativar

angularjs-format

Formato C

A cadeia de formato C não corresponde à fonte

Cadeia de formato simples

%d maçãs

Cadeia de formato de posição

O seu saldo é %1$d %2$s

Sinalize para ativar

c-format

Formato C#

A cadeia de formato C# não corresponde à fonte

Cadeia de formato de posição

{0} maçãs

Sinalize para ativar

c-sharp-format

Literais de modelo de ECMAScript

Os literais de modelo de ECMAScript não correspondem à fonte

Interpolação

${number} maçãs

Sinalize para ativar

es-format

Interpolação de i18next

A interpolação de i18next não corresponde à fonte

Novo na versão 4.0.

Interpolação

{{number}} maçãs

Aninhamento

$t(number) maçãs

Sinalize para ativar

i18next-interpolation

Formato Java

A cadeia de formato Java não corresponde à fonte

Cadeia de formato simples

%d maçãs

Cadeia de formato de posição

O seu saldo é %1$d %2$s

Sinalize para ativar

java-format

Formato de Mensagem Java

A cadeia de MessageFormat de Java não corresponde à fonte

Cadeia de formato de posição

{0} maçãs

Sinalize para ativar

java-messageformat ativa a verificação incondicionalmente

auto-java-messageformat ativa a verificação somente se houver uma cadeia de formato na fonte

Formato JavaScript

A cadeia de formato JavaScript não corresponde à fonte

Cadeia de formato simples

%d maçãs

Sinalize para ativar

javascript-format

Formato Lua

O formato de cadeia Lua não corresponde com a fonte

Cadeia de formato simples

%d maçãs

Sinalize para ativar

lua-format

Formato Object Pascal

Object Pascal format string does not match source

Cadeia de formato simples

%d maçãs

Sinalize para ativar

object-pascal-format

Espaços reservados de percentagem

Os espaços reservados de percentagem não correspondem à fonte

Novo na versão 4.0.

Cadeia de formato simples

%number% maçãs

Sinalize para ativar

percent-placeholders

Veja também

Cadeias formatadas,

Formato Perl

A cadeia de formato Perl não corresponde à fonte

Cadeia de formato simples

%d maçãs

Cadeia de formato de posição

O seu saldo é %1$d %2$s

Sinalize para ativar

perl-format

Formato PHP

A cadeia de formato PHP não corresponde à fonte

Cadeia de formato simples

%d maçãs

Cadeia de formato de posição

O seu saldo é %1$d %2$s

Sinalize para ativar

php-format

Formato de chaveta Python

A cadeia de formato de chaves Python não corresponde à fonte

Cadeia de formato simples

{} maçãs

Cadeia de formato nomeado

O seu saldo é {amount} {currency}

Sinalize para ativar

python-brace-format

Formato Python

A cadeia de formato Python não corresponde à fonte

Cadeia de formato simples

%d maçãs

Cadeia de formato nomeado

O seu saldo é %(amount) %(currency)

Sinalize para ativar

python-format

Formato Qt

A cadeia de formato Qt não corresponde à fonte

Cadeia de formato de posição

%1 maçãs

Sinalize para ativar

qt-format

Forma plural Qt

A cadeia de formato de plural do Qt não corresponde à fonte

Cadeia de formato de plural

%Ln maçã(s)

Sinalize para ativar

qt-plural-format

Formato Ruby

A cadeia de formato Ruby não corresponde à fonte

Cadeia de formato simples

%d maçãs

Cadeia de formato de posição

O seu saldo é %1$f %2$s

Cadeia de formato nomeado

O seu saldo é %+.2<amount>f %<currency>s

Cadeia de modelo nomeado

O seu saldo é %{amount} %{currency}

Sinalize para ativar

ruby-format

Formato Scheme

O formato de cadeia Scheme não corresponde com a fonte

Cadeia de formato simples

~d maçãs

Sinalize para ativar

scheme-format

Formatação vue I18n

A formatação Vue I18n não corresponde com a fonte

Formatação nomeada

{count} maçãs

Formatação i18n de Rails

%{count} maçãs

Mensagens de localidade vinculadas

@:message.dio @:message.the_world!

Sinalize para ativar

vue-format

Foi traduzido

Esta cadeia foi traduzida no passado

Significa que uma cadeia já foi traduzida. Isso pode acontecer quando as traduções foram revertidas no VCS ou perdidas de outra forma.

Inconsistente

Esta cadeia tem mais que uma tradução neste projeto ou não é traduzida em alguns componentes.

O Weblate verifica traduções da mesma cadeia em todas as traduções de um projeto para ajudar a manter traduções consistentes.

A verificação falha em traduções diferentes de uma cadeia dentro de um projeto. Isso também pode levar a inconsistências nas verificações exibidas. Pode encontrar outras traduções desta cadeia na guia Outras ocorrências.

Nota

Esta verificação também é disparada no caso de a cadeia estar traduzida num componente e não em outro. Ela pode ser usada como uma maneira rápida de manusear manualmente cadeias que não estão traduzidas em alguns componentes apenas clicando no botão Usar esta tradução exibido em cada linha na guia Outras ocorrências.

Pode usar Tradução automática para automatizar a tradução de cadeias recém-adicionadas que já são traduzidas em outro componente.

Letra Kashida utilizada

As letras kashida decorativas não devem ser usadas

Novo na versão 3.5.

As letras Kashida decorativas não devem ser usadas na tradução. Estas também são conhecidas como Tatweel.

Veja também

Kashida na Wikipédia

Referências de Markdown

As referências da ligação Markdown não correspondem à fonte

Novo na versão 3.5.

As referências de ligação Markdown não correspondem à fonte.

Veja também

Ligações Markdown

Sintaxe de Markdown

A sintaxe de Markdown não corresponde à fonte

Novo na versão 3.5.

A sintaxe de Markdown não coincide com a fonte

Tamanho máximo da tradução

A tradução não deve exceder o comprimento dado

Verifica se as traduções são de comprimento aceitável para caber no espaço disponível. Isto apenas verifica o comprimento dos caracteres de tradução.

Ao contrário das outras verificações, o sinalizador deve ser definido como um par «chave:valor», como max-length:100.

Dica

Esta verificação analisa a quntidade de carácteres, o que pode não ser a melhor métrica ao utilizar fontes proporcionais para renderizar o texto. A verificação Tamanho máximo da tradução verifica a renderização real do texto.

O sinalizador replacements: também pode ser útil para expandir os objetos colocáveis antes de verificar a cadeia.

Tamanho máximo da tradução

O texto traduzido não deve exceder o tamanho determinado

Novo na versão 3.7.

O texto traduzido não deve exceder o tamanho determinado. Ele renderiza o texto com quebra de linhas e verifica se ele se encaixa nos limites determinados.

Esta verificação necessita de um ou dois parâmetros - largura máxima e quantidade máximo de linhas. Caso a quantidade de linhas não seja fornecida, um texto de uma linha é considerado .

Também pode configurar a fonte utilizada pelas diretivas font-* (veja Personalizando comportamento a usar marcadores), por exemplo, após os marcadores de tradução dizer que o texto renderizado com fonte ubuntu tamanho 22 deve caber em duas linhas e 500 pixels:

max-size:500:2, font-family:ubuntu, font-size:22

Dica

Queria definir as diretivas font-* na Configuração de componente para ter a mesma fonte configurada para todas as cadeias dentro de um componente. Pode sobrescrever esses valores por cadeia, caso precise personalizá-la por cadeia.

O sinalizador replacements: também pode ser útil para expandir os objetos colocáveis antes de verificar a cadeia.

\n não correspondente

Quantidade de \n na tradução não corresponde à da fonte

Normalmente as novas linhas escapadas são importantes para a formatação da saída do programa. A verificação falha se a quantidade de literais \n na tradução não corresponder à fonte.

Dois pontos não correspondentes

Fonte e tradução não terminam com dois pontos

Verifica se os dois pontos são replicados entre a fonte e a tradução. A presença de dois pontos também é verificada para vários idiomas onde eles não pertencem (chinês ou japonês).

Reticências não correspondentes

Fonte e tradução não terminam com uma reticências

Verifica se as reticências ao final são replicadas entre a fonte e a tradução. Isto só verifica se há reticências reais () e não três pontos (...).

Uma reticência é normalmente mais agradável do que três pontos na impressão e soa melhor com o texto para a fala.

Ponto de exclamação não correspondente

Fonte e tradução não terminam com um ponto de exclamação

Verifica se as exclamações são replicadas entre a fonte e a tradução. A presença de pontos de exclamação também é verificada para vários idiomas onde eles não pertencem (chinês, japonês, coreano, armênio, limbu, mianmar ou Nko).

Ponto final não correspondente

Fonte e tradução não terminam com um ponto final

Verifica se os pontos finais são replicados entre a fonte e a tradução. A presença de pontos finais é verificada para vários idiomas onde eles não pertencem (chinês, japonês, devanágari ou urdu).

Ponto de interrogação não correspondente

A fonte e a tradução não terminam ambas com um ponto de interrogação

Verifica se os pontos de interrogação são replicados entre a fonte e a tradução. A presença de pontos de interrogação também é verificada para vários idiomas onde eles não pertencem (armênio, árabe, chinês, coreano, japonês, etíope, vai ou copta).

Ponto e vírgula não correspondente

Fonte e tradução não terminam com ponto e vírgula

Verifica se os caracteres de ponto e vírgula no final das frases são replicados entre a fonte e a tradução. Isto pode ser útil para manter a formatação das entradas, como ficheiros de desktop.

Quebras de linha não coincidentes

Quantidades de novas linhas na tradução não corresponde à fonte

Geralmente, as novas linhas são importantes para formatar a saída do programa. A verificação falha se a quantidade de literais \n na tradução não corresponder à fonte.

Faltam plurais

Algumas formas no plural não estão traduzidas

Verifica se todas as formas plurais de uma cadeia fonte foram traduzidas. Especificações sobre como cada forma plural é usada encontram-se na definição da cadeia.

O não preenchimento correto das formas de plural vai levar, em alguns casos, a exibir nada quando a forma do plural está em uso.

Espaços reservados

Falta a tradução de alguns espaços reservados:

Novo na versão 3.9.

Alterado na versão 4.3: Pode usar expressões regulares como espaço reservado.

A tradução não contém alguns espaços reservados. Estes são extraídos do ficheiro de tradução ou definidos manualmente a usar o sinalizador placeholders, outros podem ser separados com ponto e vírgula, cadeias com o espaço podem ser postos entre aspas:

placeholders:$URL$:$TARGET$:"some long text"

Caso tenha alguma sintaxe para os espaços reservados, pode usar uma expressão regular:

placeholders:r"%[^% ]%"

Espaçamento da pontuação

Espaço rígido antes do sinal de pontuação dupla

Novo na versão 3.9.

Verifica se há espaço rígido antes do sinal de pontuação dupla (ponto de exclamação, ponto de interrogação, ponto e vírgula e dois pontos). Esta regra é usada apenas em alguns idiomas selecionados, como o francês ou o bretão, onde o espaço antes do sinal de pontuação dupla é uma regra tipográfica.

Expressão regular

A tradução não corresponde à expressão regular:

Novo na versão 3.9.

A tradução não corresponde à expressão regular. A expressão é extraída do ficheiro de tradução ou definida manualmente a usar o sinalizador regex:

regex:^foo|bar$

Mesmos plurais

Algumas formas de plural estão traduzidas da mesma forma

Verifica que falha se algumas formas de plural estiverem duplicadas na tradução. Na maioria dos idiomas, elas têm que ser diferentes.

Nova linha no início

Fonte e tradução não iniciam com uma nova linha

As novas linhas costumam aparecer nas cadeias fonte por uma boa razão, de forma que omissões ou adições podem levar a problemas de formatação quando o texto traduzido é posto em uso.

Veja também

Nova linha no final

Espaços no início

Fonte e tradução não iniciam com a mesma quantidade de espaços

Um espaço no início de uma cadeia é normalmente usado para recuo na interface, portanto, importante manter.

Nova linha no final

Fonte e tradução não terminam com uma nova linha

As novas linhas costumam aparecer nas cadeias fonte por uma boa razão, de forma que omissões ou adições podem levar a problemas de formatação quando o texto traduzido é posto em uso.

Veja também

Nova linha no início

Espaço no final

Fonte e tradução não terminam com um espaço

Verifica se os espaços no final são replicados entre a fonte e a tradução.

O espaço ao final é normalmente utilizado para espaçar os elementos vizinhos, de forma que a sua remoção pode quebrar a disposição.

Tradução inalterada

A fonte e a tradução são idênticas

Acontece se as cadeias fonte e a tradução correspondente forem idênticos, até pelo menos uma das formas de plural. Algumas cadeias normalmente encontrados em todos os idiomas são ignorados e várias marcações são ignoradas. Isto reduz a quantidade de falsos positivos.

Esta verificação pode ajudar a encontrar cadeias erroneamente não traduzidos.

O comportamento padrão desta verificação é excluir palavras da lista negra embutida da verificação. Estas são palavras que frequentemente não estão a ser traduzidas. Isto é útil para evitar falsos positivos em cadeias curtas, que consistem apenas numa única palavra que é a mesma em vários idiomas. Esta lista negra pode ser desativada a adicionar strict-same à cadeia ou componente.

HTML inseguro

A tradução usa uma marcação HTML insegura

Novo na versão 3.9.

A tradução utiliza uma marcação HTML insegura. Esta verificação tem que ser ativada a utilizar o sinalizador safe-html (veja Personalizando comportamento a usar marcadores). Há também o autocorretor acompanhado que pode automaticamente corrigir a marcação.

Veja também

A verificação HTML é feita pela biblioteca Bleach desenvolvida pela Mozilla.

URL

A tradução não contém uma URL

Novo na versão 3.5.

A tradução não contém uma URL. Isso só é acionado caso a unidade esteja marcada como a conter uma URL. Nesse caso, a tradução tem de ser uma URL válido.

Markup XML

As tags na tradução não correspondem com a fonte

Isso geralmente significa que a saída resultante terá uma aparência diferente. Na maioria dos casos, este não é o resultado desejado de alterar a tradução, mas ocasionalmente é.

Verifica se as tags XML são replicadas entre a fonte e a tradução.

Sintaxe XML

A tradução não é um XML válido

Novo na versão 2.8.

A marcação XML não é válida.

Espaçamento nulo

A tradução contém um caractere extra de espaço com largura zero

Os caracteres de largura zero (<U+200B>) são usados para quebrar mensagens dentro das palavras (word wrapping).

Como geralmente são inseridas por engano, esta verificação é acionada uma vez que estão presentes na tradução. Alguns programas podem ter problemas quando este caractere é usado.

Verificações de texto fonte

Estas verificações podem ajudar os programadores a melhorar a qualidade das cadeias fonte.

Reticências

A cadeia usa três pontos (…) ao invés do caractere de reticências (…)

Isto falha quando a cadeia usa três pontos (...) quando deveria usar um caractere de reticências ().

O uso do caractere Unicode é, na maioria dos casos, a melhor abordagem e parece melhor renderizado e pode soar melhor com texto para fala (text-to-speech).

Não traduzido há muito tempo

Esta cadeia não foi traduzida há muito tempo

Novo na versão 4.1.

Quando a cadeia não é traduzida há muito tempo, pode indicar um problema numa cadeia fonte, a dificultar a tradução.

Várias verificações falhadas

As traduções em diversos idiomas têm verificações com falha

Várias traduções desta cadeia têm falhas nas verificações de qualidade. Isto é normalmente uma indicação de que algo poderia ser feito para melhorar a cadeia fonte.

Esta falha na verificação pode muitas vezes ser causada por um ponto final de uma frase, ou por questões menores similares que os tradutores tendem a corrigir na tradução, enquanto seria melhor corrigi-la na cadeia fonte.

Várias variáveis sem nome

Há várias variáveis sem nome na cadeia, o que impossibilita aos tradutores reordená-las

Novo na versão 4.1.

Há várias variáveis sem nome na cadeia, o que impossibilita aos tradutores reordená-las.

Considere usar variáveis nomeadas para permitir que os tradutores as reordenem.

Não pluralizado

A cadeia é usado como plural, mas não está a usar formas de plural

A cadeia é usado como um plural, mas não usa formas de plural. Caso o seu sistema de tradução tenha suporte a isso, deve usar a variante que reconheça o plural.

Por exemplo, com o Gettext em Python poderia ser:

from gettext import ngettext

print ngettext("Selected %d file", "Selected %d files", files) % files