Verificações e correções

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

Uma vez que enviar uma tradução com uma verificação de falha, isso é imediatamente mostrado ao usuário:

../_images/checks.png

Correções automáticas

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

Ver também

AUTOFIX_LIST

Verificações de qualidade

O Weblate emprega uma ampla gama de verificações de qualidade em textos. A seção a seguir descreve todos eles em mais detalhes. 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

Executada a cada alteração na tradução, ajudando os tradutores a manter traduções de boa qualidade.

Marcação de 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 sejam encontrados na tradução.

Nota

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

Há palavras duplicadas de forma consecutiva

O texto contém a mesma palavra duas vezes seguidas:

Novo na versão 4.1.

Verifica se não ocorrem palavras duplicadas consecutivas em uma 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 seguir glossário

Novo na versão 4.5.

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

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

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

  • A verificação de cada texto 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ço duplo

Verifica se o espaço duplo está presente na tradução para evitar falsos positivos em outras verificações relacionadas ao espaço.

A verificação é falsa quando o espaço duplo é encontrado no texto fonte, o que significa que o espaço duplo é intencional.

Textos formatados

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

Weblate tem suporte a verificar textos de formato em vários idiomas. A verificação não é ativada automaticamente, somente se um texto for sinalizado adequadamente (por exemplo, “c-format’ para formato C). O Gettext adiciona isso automaticamente, mas você provavelmente terá que adicioná-lo manualmente para outros formatos de arquivo ou se seus arquivos PO não forem gerados por xgettext.

Isso pode ser feito por unidade (ver Informações adicionais sobre textos fonte) na Configuração de componente. Tê-lo definido por componente é mais simples, mas pode levar a falsos positivos no caso de o texto não ser interpretado como um texto 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, você pode usar Espaços reservados genéricos.

Além de verificar, isso também destacará os textos e formatação para inseri-los facilmente em textos traduzidos:

../_images/format-highlight.png

Texto de interpolação AngularJS

O texto de interpolação AngularJS não corresponde à fonte

Texto de formato nomeado

Seu saldo é {{amount}} {{ currency }}

Sinalizador para habilitar

angularjs-format

Formato C

O texto de formato C não corresponde à fonte

Texto de formato simples

%d maçãs

Texto de formato de posição

Seu saldo é %1$d %2$s

Sinalizador para habilitar

c-format

Formato C#

O texto de formato C# não corresponde à fonte

Texto de formato de posição

{0} maçãs

Sinalizador para habilitar

c-sharp-format

Literais de modelo de ECMAScript

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

Interpolação

${number} maçãs

Sinalizador para habilitar

es-format

Ver também

Template strings

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

Sinalizador para habilitar

i18next-interpolation

Formato Java

O texto de formato java não corresponde à fonte

Texto de formato simples

%d maçãs

Texto de formato de posição

Seu saldo é %1$d %2$s

Sinalizador para habilitar

java-format

Ver também

Java Format Strings

MessageFormat do Java

O texto de MessageFormat do Java não corresponde à fonte

Texto de formato de posição

{0} maçãs

Sinalizador para habilitar

java-messageformat habilita a verificação incondicionalmente

auto-java-messageformat habilita verificação somente se houver um texto de formato na fonte

Ver também

Java MessageFormat

Formato JavaScript

O texto de formato JavaScript não corresponde à fonte

Texto de formato simples

%d maçãs

Sinalizador para habilitar

javascript-format

Formato Lua

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

Texto de formato simples

%d maçãs

Sinalizador para habilitar

lua-format

Espaços reservados de porcentagem

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

Novo na versão 4.0.

Texto de formato simples

%number% maçãs

Sinalizador para habilitar

percent-placeholders

Formato Perl

O texto de formato Perl não corresponde à fonte

Texto de formato simples

%d maçãs

Texto de formato de posição

Seu saldo é %1$d %2$s

Sinalizador para habilitar

perl-format

Formato PHP

O texto de formato PHP não corresponde à fonte

Texto de formato simples

%d maçãs

Texto de formato de posição

Seu saldo é %1$d %2$s

Sinalizador para habilitar

php-format

Formato de chaves Python

O texto de formato de chaves Python não corresponde à fonte

Texto de formato simples

{} maçãs

Texto de formato nomeado

Seu saldo é {amount} {currency}

Sinalizador para habilitar

python-brace-format

Formato Python

O texto de formato Python não corresponde à fonte

Texto de formato simples

%d maçãs

Texto de formato nomeado

Seu saldo é %(amount) %(currency)

Sinalizador para habilitar

python-format

Formato Qt

O texto de formato Qt não corresponde à fonte

Texto de formato de posição

%1 maçãs

Sinalizador para habilitar

qt-format

Ver também

Qt QString::arg()

Formato de plural Qt

O texto de formato de plural do Qt não corresponde à fonte

Texto de formato de plural

%Ln maçã(s)

Sinalizador para habilitar

qt-plural-format

Ver também

Guia de i18n do Qt

Formato Ruby

O texto de formato Ruby não corresponde à fonte

Texto de formato simples

%d maçãs

Texto de formato de posição

Seu saldo é %1$f %2$s

Texto de formato nomeado

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

Texto do modelo nomeado

Seu saldo é %{amount} %{currency}

Sinalizador para habilitar

ruby-format

Ver também

Ruby Kernel#sprintf

Formato Scheme

O formato do texto Scheme não corresponde com a fonte

Texto de formato simples

~d maçãs

Sinalizador para habilitar

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 Rails i18n

%{count} maçãs

Mensagens da localidade vinculada

@:message.dio @:message.the_world!

Sinalizador para habilitar

vue-format

Foi traduzido

Este texto foi traduzido no passado

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

Inconsistente

Este texto tem mais de uma tradução neste projeto ou não é traduzida em alguns componentes.

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

A verificação falha em diferentes traduções de um texto dentro de um projeto. Isso também pode levar a inconsistências nas verificações exibidas. Você pode encontrar outras traduções deste texto na aba Outras ocorrências.

Nota

Esta verificação também é disparada no caso de o texto estar traduzido em um componente e não em outro. Ela pode ser usado como uma maneira rápida de manusear manualmente textos que não estão traduzidos em alguns componentes apenas clicando no botão Usar esta tradução exibido em cada linha na aba Outras ocorrências.

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

Letra Kashida usada

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.

Ver também

Kashida na Wikipédia

Referências Markdown

As referências de link Markdown não correspondem à fonte

Novo na versão 3.5.

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

Ver também

Links Markdown

Sintaxe Markdown

A sintaxe de Markdown não corresponde à fonte

Novo na versão 3.5.

A sintaxe de Markdown não corresponde à fonte

Comprimento 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 o número de gráficos, 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 o texto.

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 número máximo de linhas. Caso o número de linhas não seja fornecido, é considerado um texto de uma linha.

Você também pode configurar a fonte utilizada pelas diretivas font-* (veja Personalizando comportamento usando 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

Você pode querer definir as diretivas font-* na Configuração de componente para ter a mesma fonte configurada para todas as strings dentro de um componente. Você pode sobrescrever esses valores por texto, caso você precise personalizá-la por texto.

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

\n não correspondente

O número de \n nas traduções não corresponde ao fonte

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

Caractere de dois pontos não correspondente

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

Fonte e tradução não terminam com uma 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 arquivos desktop.

Quebras de linha descasadas

Número 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 o número 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 um texto fonte foram traduzidas. Especificações sobre como cada forma plural é usada podem ser encontradas na definição do texto.

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: Você pode usar uma expressão regular como espaço reservado.

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

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

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

placeholders:r"%[^% ]%"

Espaçamento de 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 arquivo de tradução ou definida manualmente usando 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 nos textos 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 é colocado em uso.

Espaços no início

Fonte e tradução não iniciam com o mesmo número de espaços

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

Linha em branco no final

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

As novas linhas costumam aparecer nos textos 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 é colocado em uso.

Ver 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 não alterada

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

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

Esta verificação pode ajudar a encontrar textos 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 sendo traduzidas. Isto é útil para evitar falsos positivos em textos curtos, que consistem apenas em uma única palavra que é a mesma em vários idiomas. Esta lista negra pode ser desabilitada adicionando strict-same ao texto 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 habilitada utilizando o sinalizador safe-html (veja Personalizando comportamento usando marcadores). Há também o autocorretor acompanhado que pode automaticamente corrigir a marcação.

Ver 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 contendo uma URL. Nesse caso, a tradução tem de ser uma URL válido.

Marcação 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ço com largura zero

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 desenvolvedores a melhorar a qualidade dos textos fonte.

Reticências

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

Isto falha quando o texto 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 a muito tempo

Este texto não foi traduzido há muito tempo

Novo na versão 4.1.

Quando o texto não é traduzida há muito tempo, pode indicar um problema em um texto fonte, tornando difícil a tradução.

Várias verificações com falha

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

Várias traduções deste texto têm falhas nas verificações de qualidade. Isto é normalmente uma indicação de que algo poderia ser feito para melhorar o texto 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 que seria melhor corrigi-la no texto fonte.

Várias variáveis sem nome

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

Novo na versão 4.1.

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

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

Não pluralizado

O texto é usado como plural, mas não está usando formas de plural

O texto é usado como um plural, mas não usa formas de plural. Caso o seu sistema de tradução tenha suporte a isso, você 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