"переводится здесь, но не найден в default locale" ошибка в strings.xml с translatable = "false"

Вот мои значения\strings.xml (файл по умолчанию), и все говорит само за себя: enter image description here

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

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

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

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

Ответ 7

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

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

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

./ams --cleanleftovers -o all.txt

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

Ответ 8

"xmlns:tools="http://schemas.android.com/tools" Вы должны добавить этот код в тег ресурсов файла strings.xml

Ответ 9

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

Ответ 10

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

Ответ 11

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

  1. убираю мой проект

  2. восстановить его

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

Я надеюсь, что это может помочь любому, кто сталкивается с этой проблемой в Android Studio.