Erro “é traduzido aqui, mas não encontrado na localidade padrão” em strings.xml com translatable = “false”

95

Aqui estão meus valores \ strings.xml (o arquivo padrão) e tudo é autoexplicativo: insira a descrição da imagem aqui

Minhas perguntas):

  1. Como pode ser "não encontrado na localidade padrão" se estou editando a localidade padrão (valores \ strings.xml)?
  2. Como pode ser um erro de tradução de lint se eu definir translatable="false"? Nas pastas values-pl \ strings.xml (e também nas pastas values-ru, values-iw) as strings nem existem? não deveria de qualquer maneira.
  3. Não consigo entender por que não recebo o erro para a string russa.

(Eu mostraria os valores-ru \ string.xml ou values-pl \ string.xml aqui, mas não há nada ali de interesse, já que as strings estão faltando de qualquer maneira ...)

PIXP
fonte
2
Se isso é algo que acontece de vez em quando, apenas execute as limpezas usuais (limpar / reconstruir ou invalidar caches / reiniciar no ASTUDIO, etc.) A menos, é claro, que o erro seja “real”. ;) Meu ponto é, com o Android Studio 3.2 (beta atm), isso acontece de forma aleatória, strings boas são sublinhadas, você toca em algo e o erro desaparece. É bugado. ¯_ (ツ) _ / ¯
Martin Marconcini
1
Experimente este método: stackoverflow.com/a/53780805/7831470
Sagar Giri
Executando o Android Studio 3.3.2 no momento. Isso acontece comigo ocasionalmente se eu duplicar um nome de string no arquivo strings.xml (como ao copiar e colar). É um tanto frustrante, mas limpar e reiniciar parece consertar.
John Riggs,
Isso acontece com muita frequência se você mover um recurso de um arquivo para outro arquivo em outro módulo. Tenho que invalidar o cache todas as vezes, limpeza / compilação não surtem efeito. Parece um problema com a indexação.
3c71
Executar o aplicativo funcionou para mim
kreker

Respostas:

80

Isso aconteceu comigo também

Eu faço 2 coisas:

  • Verifique o arquivo inteiro para ver outra tradução não feita (tenho alguns no arquivo en, mas em pt-br)
  • Limpe, atualize o Gradle e saia e reinicie o Android Studio
JoaoLopesF
fonte
8
Limpe o projeto e reinicie o Android Studio. E funcionou;)
Ektos974
17
Caso a limpeza do projeto e a reinicialização do Android Studio não funcionem, tente executar Invalidate Caches / Restart.
Makuno
2
Caches limpos e inválidos / reinicialização. Funcionou para mim também! :)
Reeshabh Ranjan
2
❗ Tente remover a linha e adicioná-la novamente antes de fazer isso. A vida é curta.
Nolan Amy,
Eu acho que u deve adicionar um suplemento para a resposta, ou seja, o comando: Invalidate Caches / Restart. Para não pesquisar nos comentários, como fiz por exemplo.
Morozov
68

A reconstrução pode levar muito tempo. YMMV, mas ...

Basta remover a linha problemática e adicioná-la novamente.

Funcionou para mim. Muito rápido.

Nolan Amy
fonte
3
Tive que fazer ainda menos. Renomeei a string e depois mudei de volta.
Matt
1
Uau! isso é super rápido.
userAbhi
3
Selecione a linha problemática, ctrl-X, ctrl-V. Feito. Funcionou para mim!
ONE
1
Selecione a linha problemática, exclua, desfaça (comando / controle z). Feito. Funcionou para mim!
HendraWD
1
Soluções mais rápidas
mochadwi
22

No meu caso, isso me ajudou:

  1. Selecione as strings que causam o erro.
  2. Corte-os.
  3. Cole-os novamente

Se não funcionar para você, tente adicionar as mesmas strings ao strings.xml(v21)arquivo.

Gourav
fonte
9

Pressione Invalidate Caches / Restart ... para reiniciar o Android Studio. Funcionou para mim Na verdade, isso aconteceu quando eu copiei arquivos do meu outro computador e colei através do explorador de arquivos.

abir-cse
fonte
5

Eu recebi a mesma mensagem de erro, apenas com o problema estranho de que ela foi lançada no próprio local padrão e em todas as traduções. Acontece que você não deve usar pontos em seu nome (por exemplo, name = "bla.blub") porque ele será convertido internamente para "bla_blub" e não poderá corresponder a "bla.blub", daí o erro. Eu só tive que mudar os pontos para sublinhados na localidade padrão e, em seguida, todos os outros erros em outras traduções (incluindo pontos no nome) também desapareceram.

Mas esteja ciente de que outras ferramentas de construção ainda podem criar problemas, então substitua todos os pontos por sublinhados!

CitrusO2
fonte
4

Sair do Android Studio e reiniciá-lo corrigiu para mim.

Lekanbaruwa
fonte
Funciona para mim também, é muito menos doloroso do que invalidar o cache e reiniciar.
3c71
2

Criei uma ferramenta para gerenciar o status de tradução de aplicativos Android. Ele não apenas informa quais strings estão faltando nos outros idiomas, mas também pode relatar e limpar as strings que você pode ter excluído do arquivo de tradução padrão.

https://github.com/gubatron/android-missing-strings

Para limpar todas as sobras em outros idiomas invoque assim

./ams --cleanleftovers -o all.txt

Isso limpará as strings restantes e produzirá o relatório de strings ausentes para todos os idiomas no arquivo all.txt

Gubatron
fonte
2

Você simplesmente tem que copiar a linha ofensiva (ou apenas um dos múltiplos de linhas ofensivas), removê-lo e colá-lo novamente. Isso removeu o problema para mim.

Austin Alex
fonte
Embora isso possa ajudar o OP, é melhor adicionar mais detalhes, explicações, exemplos, etc. Forneça respostas que não requeiram esclarecimento do autor da pergunta.
Tiw
2

Resolvi esse problema seguindo as etapas abaixo:

  1. limpando meu projeto

  2. reconstruindo isso

  3. e finalmente pressionando caches inválidos / Reiniciar no menu de arquivo

Hizbullah Watandost
fonte
1

Apenas certifique-se de ter as mesmas convenções de nomenclatura em todos os arquivos de strings, incluindo a mesma capitalização. digamos que você tenha "sign_in" em strings.xml e "sign_In" em seu fr / string.xml, então ele apresentará um erro em fr / strings.xml como "é traduzido aqui, mas não encontrado no locale padrão". Então, quando você edita para "sign_in". O erro será removido.

Babar Shamsi
fonte
0

Copiar e colar não funcionou para mim.

Eu também tentei limpar e reiniciar, o erro anterior tinha desaparecido, mas novas strings inseridas ainda têm novos erros ocorrendo.

Tentei fechar o arquivo strings.xml aberto e o Translations Editor e reiniciá-lo.

arquivo strings.xml e Editor de traduções

Isso funciona para mim.

Roy Wan
fonte
0

Eu estava tendo esse problema para todas as strings no meu arquivo xml.

A questão é que seu padrão strings.xmlnão deve ter um tools:localeatributo como os outros arquivos traduzidos têm. Em caso afirmativo, sempre que compilo o aplicativo no modo de lançamento, ele o trata como outro arquivo traduzido.

Dielson Sales
fonte