Fiapo: Como ignorar os erros "<key> não está traduzido em <language>"?

189

Não consigo compilar / depurar nosso aplicativo Android, porque os arquivos de localização ainda não estão perfeitos.

A ferramenta de validação do meu IDE Lint cria erros dizendo:

newCardsOrderVals não está traduzido em ar, bg, ca, cs

Compilar / instalar / executar com o Ant funciona bem, mas eu gostaria de usar meu IDE para facilitar a depuração.

Existe uma maneira de desativar essa verificação específica ou, idealmente, torná-la um aviso e não um erro?

Entendo que antes do lançamento precisaremos realmente corrigir os arquivos de localização, mas, por enquanto, não é uma prioridade, pois as próprias telas estão sendo modificadas com muita frequência.

Nicolas Raoul
fonte
1
Existe uma maneira de configurar quais idiomas estão sinalizados como "não traduzidos?" Eu recebo erros como "es, ele e iw". Por que eu recebo esses idiomas? Como faço para configurar meu aplicativo Android para restringir apenas o conjunto "en"?
inder
@inder: Talvez porque você tenha diretórios como "valores-he" etc em sua pasta res /?
Nicolas Raoul
1
Não, eu não tenho nenhum desses diretórios. Somente valores, layout e drawable.
inder
7
es, ele e eu somos da biblioteca do SDK do Facebook.
precisa saber é
2
Este é um erro no Android Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Respostas:

348

Android Studio:

  • "Arquivo"> ​​"Configurações" e digite "MissingTranslation" na caixa de pesquisa

Eclipse:

  • Windows / Linux: em "Janela"> "Preferências"> "Android"> "Verificação de erro de cotão"
  • Mac: "Eclipse"> "Preferências"> "Android"> "Verificação de erro de cotão"

Encontre a MissingTranslationlinha e defina-a Warningcomo visto abaixo:

Traduções ausentes, não é traduzido em

Nicolas Raoul
fonte
2
... Está em "Janela"> "Preferências"> "Android"> "Verificação de erro de cotão"
Ollie Bennett
2
É útil, mas não tenho esse problema há muito tempo, até que apareceu de repente. E eu não sei porque.
pktangyue
Obrigado pelo seu post valioso
Pawan asati
Para sua informação, no Android Studio, clique em "Arquivo"> ​​"Configurações" e "MissingTranslation" na caixa de pesquisa.
par
86

Você pode definir o atributo translatable = "false" na definição como esta:

<string name="account_setup_imap" translatable="false">IMAP</string>

Para mais informações: http://tools.android.com/recent/non-translatablestrings

efor18
fonte
1
Eu disse "os arquivos de localização não é perfeito ainda ". Eles estão sendo preenchidos pouco a pouco. translatable = "false" impediria que alguém traduzisse.
Nicolas Raoul #
3
Embora a resposta não esteja diretamente relacionada à pergunta, acho que ela fornece uma solução brilhante para pessoas como eu que encontraram esse tópico quando o Google "como fazer fiapos não se preocupa com as constantes / parâmetros do meu aplicativo". Obrigado, efor18!
22614
83

Para ignorar isso em uma compilação gradle, adicione-o à seção android do seu arquivo de compilação:

lintOptions {
   disable 'MissingTranslation'
}
Janusz
fonte
2
Muito obrigado, literalmente me salvou dias de encontrar todas as seqüências corretas para produção.
D-Kent
Bom, isso foi feito #
Mirko
Adicionei isso ao meu módulo de aplicativo.
Mercury
23

Isso fará com que o Lint ignore o erro de conversão ausente de TODAS as seqüências de caracteres no arquivo, mas outros arquivos de recursos de sequência podem ser verificados, se necessário.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">
Tom Bollwitt
fonte
Essa é provavelmente a maneira mais correta de proceder, sem desativar o fiapo para todo o projeto
MatPag
11

Se você deseja desativar os avisos sobre as seqüências específicas, use o seguinte:

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>    

    <!--suppress MissingTranslation -->
    <string name="some_string">ignore my translation</string>
    ...

</resources>

Se você deseja avisar sobre cadeias específicas em vez de um erro, precisará criar uma regra Lint personalizada para ajustar o status da gravidade para uma coisa específica.

http://tools.android.com/tips/lint-custom-rules

Eduko
fonte
1
+1 Boa maneira de fazer isso de uma vez por todas, para que todos os desenvolvedores da equipe não precisem modificar suas configurações de IDE. Alguma maneira de torná-lo um aviso, em vez de suprimir completamente?
Nicolas Raoul
Você pode criar uma regra Lint personalizada para ajustar o status da gravidade para uma coisa específica. Há um exemplo aqui: tools.android.com/tips/lint-custom-rules
Eduko 31/05
9

Insira no lint.xmlarquivo isto:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    ...

    <issue
        id="MissingTranslation"
        severity="ignore" />
</lint>

Para mais detalhes: Suprimindo avisos de fiapos .

Brais Gabin
fonte
8

adicione as linhas no seu arquivo /res/values.xml na guia raiz do recurso, desta forma:

<resources
xmlns:tools="http://schemas.android.com/tools" 
    tools:locale="en" tools:ignore="MissingTranslation">

tools: locale defina o idioma local como inglês, sem a necessidade de tradução de idiomas posteriormente para todas as cadeias de recursos e ferramentas: ignore, deixe o Lint não saber as traduções ausentes dos valores da cadeia de recursos.

Purvik Rana
fonte
6

Adicione o seguinte ao seu arquivo gradle na seção android

    lintOptions {
       disable 'MissingTranslation'
    }
chzahid
fonte
5

Além do que, além do mais,

Não são dependências do projeto, Preferências do Eclipse.
No Mac, Eclipse> Preferências

insira a descrição da imagem aqui

Jinbom Heo
fonte
3

Outra abordagem é indicar os idiomas que você pretende oferecer suporte e filtrar o restante usando a opção 'resConfigs' com Gradle.

Confira esta outra resposta para obter detalhes

Acho que é melhor, porque você não precisa ignorar completamente os erros legítimos de tradução dos idiomas que realmente deseja oferecer suporte.

kip2
fonte
1

Muitos deles têm respostas de trabalho diferentes, e eu também tenho os mesmos erros de fiapo que eu ignoro fazendo o seguinte com o eclipse.

  1. clique no Windows
  2. clique nas preferências
  3. selecione android> Verificação de erro de cotão.
  4. clique em ignorar Tudo> Aplicar> Ok.

É isso aí.

raju
fonte
2
isso ignorará todas as preferências de cotão. Não é só a tradução que falta
Luciano Rodríguez
1

O seguinte funcionou para mim.

  • Clique no Windows
  • Clique nas preferências
  • Selecione android> Verificação de erro de cotão.
  • Localize e selecione a verificação de cotão relevante e
  • Defina a gravidade como 'Ignorar' (no canto inferior direito)
user4353093
fonte