"здесь переведено, но не найдено в локали по умолчанию" ошибка в strings.xml с translatable = "false"

Вот мой значения \ strings.xml (файл по умолчанию), и все говорит само за себя: "здесь переведено, но не найдено в локали по умолчанию" ошибка в strings.xml с translatable = "false"

Мои вопросы):

  1. Как он может быть «не найден в локали по умолчанию», если я редактирую локаль по умолчанию (values ​​\ strings.xml)?
  2. Как это может быть ошибка перевода линта, если я установил translatable = "false"? В папках values-pl \ strings.xml (а также values-ru, values-iw) строки даже не существуют? в любом случае не должно.
  3. Кажется, я не могу понять, почему я не получаю ошибку для русской строки.

(Я бы показал здесь values-ru \ string.xml или values-pl \ string.xml, но там нет ничего интересного, поскольку строки все равно отсутствуют ...)

Если это случается время от времени, просто выполните обычную очистку (очистка / восстановление или аннулирование кешей / перезапуск в ASTUDIO и т. д.) Если, конечно, ошибка «настоящая». ;) Я хочу сказать, что с Android Studio 3.2 (beta atm) это происходит случайно, хорошие строки подчеркнуты, вы что-то касаетесь, и ошибка исчезает. Это глючит. ¯_ (ツ) _ / ¯

Martin Marconcini 05.09.2018 23:22

Попробуйте этот метод: stackoverflow.com/a/53780805/7831470

Sagar Giri 04.01.2019 06:15

На данный момент работает Android Studio 3.3.2. Это случается со мной иногда, если я дублирую имя строки в файле strings.xml (например, при копировании-вставке). Это немного расстраивает, но очистка и перезапуск, похоже, исправляют.

John Riggs 12.04.2019 00:26

Это происходит очень часто, если вы перемещаете ресурс из одного файла в другой файл в другом модуле. Мне приходится каждый раз аннулировать кеш, очистка / сборка не имеют никакого эффекта. Кажется, проблема с индексацией.

3c71 01.06.2019 13:48

Запуск приложения сработал для меня

kreker 22.07.2020 16:04

Со мной это тоже случилось. Кажется, это проблема IDE, поскольку приложение строится и работает нормально и отображает затронутое сообщение. Сообщение нигде не дублируется.

ka3ak 10.10.2020 07:47
106
6
29 553
13
Перейти к ответу Данный вопрос помечен как решенный

Ответы 13

Ответ принят как подходящий

это случилось и со мной

Я делаю 2 вещи:

  • Проверьте весь файл, чтобы увидеть, что еще один перевод не выполнен (у меня есть в файле en, ​​но в pt-br)
  • Очистите, обновите gradle, выйдите и перезапустите Android Studio.

Просто очистите проект и перезапустите Android Studio. И это сработало;)

Ektos974 23.11.2018 10:37

Если очистка проекта и перезапуск Android Studio не работают, попробуйте запустить Invalidate Caches / Restart.

makuno 27.11.2018 09:20

Очищенные и недействительные кеши / перезагрузка. У меня тоже сработало! :)

Reeshabh Ranjan 19.06.2019 08:55

❗ Попробуйте удалить линию и снова добавить ее, прежде чем сделать это. Жизнь коротка.

Nolan Amy 07.09.2019 05:16

Думаю, к ответу стоит добавить дополнение, а именно команду: Invalidate Caches / Restart. Чтобы не искать в комментариях, как я например сделал.

Morozov 09.09.2019 08:55

Учитывая частоту, с которой это происходит, я бы предпочел использовать решения lekanbaruwa, которые уже работали 3 раза сегодня: просто перезапустите Android Studio.

3c71 15.04.2020 11:03

У меня тоже сработало. Блин. Я скучаю по Затмению.

Edward Falk 14.09.2020 20:44

Я создал инструмент для управления статусом перевода приложений Android. Он не только сообщает вам, какие строки отсутствуют на других языках, но также может сообщать и очищать оставшиеся строки, которые вы, возможно, удалили в файле перевода по умолчанию.

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

Чтобы очистить все остатки на других языках, вызовите вот так

./ams --cleanleftovers -o all.txt

Это очистит оставшиеся строки и выведет отчет об отсутствующих строках для всех языков в файл all.txt.

У меня было такое же сообщение об ошибке, только с той странной проблемой, что оно было выброшено в самой локали по умолчанию и во всех переводах. Оказывается, вы не должны использовать точки в своем имени (например, name = "bla.blub"), потому что оно будет внутренне преобразовано в "bla_blub", а затем не сможет совпадать с "bla.blub", отсюда и ошибка. Мне нужно было только заменить точки на подчеркивание в локали по умолчанию, а затем все другие ошибки в других переводах (включая точки в имени) также исчезли.

Но имейте в виду, что другие инструменты сборки по-прежнему могут создавать проблемы, поэтому замените все точки подчеркиванием!

Восстановление может занять много времени. YMMV, но ...

Просто удалите оскорбительную строку и снова добавьте ее.

Работал у меня. Очень быстро.

Пришлось сделать еще меньше. Я переименовал строку, а затем вернул ее обратно.

Matt 26.04.2019 04:50

Ух ты! это супер быстро.

userAbhi 08.07.2019 07:50

Выберите строку, вызывающую нарушение, ctrl-X, ctrl-V. Сделанный. Сработало у меня!

ONE 15.07.2019 22:32

Выберите нарушающую строку, удалите, отмените (команда / управление z). Сделанный. Сработало у меня!

HendraWD 19.09.2019 09:06

Более быстрые решения

mochadwi 27.03.2020 22:08

Нажмите Недействительные кеши / перезапуск ..., чтобы перезапустить студию Android. У меня это сработало. На самом деле это произошло, когда я скопировал файлы с другого компьютера и вставил их через проводник.

Просто убедитесь, что у вас есть одинаковые соглашения об именах для всех строковых файлов, включая одинаковые заглавные буквы. скажем, если у вас есть «sign_in» в strings.xml и «sign_In» в вашем fr / string.xml, поэтому это даст вам ошибку на fr / strings.xml, например, «переведено здесь, но не найдено в локали по умолчанию». Итак, когда вы редактируете "sign_in". Ошибка удалим.

Вам просто нужно скопировать строку с нарушением (или только одну из нескольких строк с нарушением), удалить ее и снова вставить. Это устранило проблему для меня.

Хотя это может помочь OP, лучше добавить больше деталей, объяснений, примеров и т. д. Пожалуйста, дать ответы, не требующие пояснений от спрашивающего.

Tiw 10.05.2019 18:39

Не знаю, что еще можно было добавить для уточнения. Ошибка в инструменте - вот и все. Этот ответ не менее подробен, чем любой другой хороший ответ здесь. Однако это дубликат более раннего ответа.

jerry 26.05.2021 09:00

В моем случае это помогло мне:

  1. Выберите строки, вызывающие ошибку.
  2. Разрежьте их.
  3. Вставьте их снова

Если это не сработает, попробуйте добавить те же строки в файл strings.xml(v21).

Выход из Android Studio и перезапуск исправили это для меня.

У меня тоже работает, это гораздо менее болезненно, чем отключение кеша и перезапуск.

3c71 15.04.2020 11:02

Я решил эту проблему, выполнив следующие шаги:

  1. очистка моего проекта

  2. восстанавливая это

  3. и, наконец, нажав недопустимые кеши / перезапустить в меню файлов

Копирование и вставка у меня не сработали.

Я также попробовал очистить и перезапустить, предыдущая ошибка исчезла, но в новых введенных строках все еще возникают новые ошибки.

Я попытался закрыть открытый файл strings.xml и Редактор переводов, а затем перезапустить.

файл strings.xml и редактор переводов

Это подходит для меня.

У меня была эта проблема для всех строк в моем XML-файле.

Дело в том, что ваш strings.xml по умолчанию не должен иметь атрибута tools:locale, как у других переведенных файлов. Если это так, то всякий раз, когда я компилирую приложение в режиме выпуска, оно обрабатывает его как еще один переведенный файл.

Нажмите двойную смену, чтобы открыть Translations Error, а затем установите и снимите флажок в столбце Untranslatable с элементом с ошибкой.

Другие вопросы по теме