Помилка "перекладено тут, але не знайдено в локальній локації за замовчуванням"


98

Ось мої значення \ strings.xml (файл за замовчуванням), і все само собою пояснюється: введіть тут опис зображення

Моє запитання:

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

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


2
Якщо це трапляється раз у раз, просто виконайте звичайні чистки (очистіть / відновіть або скасуйте кеш / перезапустіть на ASTUDIO тощо), якщо, звичайно, помилка не є «реальною». ;) Я хочу сказати, що з Android Studio 3.2 (бета-банкомат) це відбувається якось випадково, хороші рядки підкреслюються, ви щось торкаєтесь, і помилка зникає. Це глючить. ¯_ (ツ) _ / ¯
Мартін Маркончіні

1
Спробуйте цей спосіб: stackoverflow.com/a/53780805/7831470
Sagar Giri

На даний момент працює Android Studio 3.3.2. Це трапляється зі мною іноді, якщо я продублюю ім'я рядка у файлі strings.xml (наприклад, при копіюванні). Це трохи засмучує, але чистка та перезапуск, здається, це виправляє.
Джон Ріггс,

Це трапляється дуже часто, якщо ви переміщуєте ресурс з одного файлу в інший файл в іншому модулі. Мені доводиться анулювати кеш кожного разу, очищення / збірка не впливає. Здається проблема з індексацією.
3c71

Запуск програми працював у мене
kreker

Відповіді:


82

це трапилось і зі мною

Я роблю 2 речі:

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

8
Просто очистіть проект і перезапустіть Android Studio. І це спрацювало;)
Ektos974

19
Якщо очищення проекту та перезапуск Android Studio не працюють, спробуйте запустити Invalidate Caches / Restart.
макуно

2
Очищені та недійсні кеші / перезапуск. Працював і у мене! :)
Reeshabh Ranjan

2
❗ Спробуйте видалити рядок і повторно додати його, перш ніж це зробити. Життя коротке.
Нолан Емі

Я думаю , що і повинні зробити доповнення до відповіді, а саме команда: Invalidate Caches / Restart. Щоб не шукати в коментарях, як я це зробив, наприклад.
Морозов

68

Відновлення може зайняти багато часу. YMMV, але ...

Просто видаліть порушувальну лінію та додайте її знову.

Працював у мене. Дуже швидко.


3
Мені довелося робити ще менше. Я перейменував рядок, а потім змінив його назад.
Метт,

1
Оце Так! це дуже швидко.
userAbhi

3
Виберіть рядок, що порушує, ctrl-X, ctrl-V. Готово. Працював у мене!
ОДИН

1
Виберіть рядок, що порушує, видалити, скасувати (команда / керування z). Готово. Працював у мене!
HendraWD

1
Швидші рішення
mochadwi

22

У моєму випадку це мені допомогло:

  1. Виберіть рядки, що спричиняють помилку.
  2. Наріжте їх.
  3. Вставте їх ще раз

Якщо у вас це не працює, спробуйте додати ті самі рядки до strings.xml(v21)файлу.


10

Натисніть Invalidate Caches / Restart ..., щоб перезапустити android studio. У мене це спрацювало. Насправді це сталося, коли я скопіював файли з мого іншого комп'ютера та вставив їх за допомогою провідника файлів.


5

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

Але майте на увазі, що інші інструменти побудови все ще можуть створювати проблеми, тому замініть усі крапки на підкреслення!


4

Вихід з Android Studio і його перезапуск виправили це для мене.


Це працює і для мене, це набагато менш болісно, ​​ніж скасування кешу та перезапуск.
3c71,

3

Я вирішив цю проблему, виконавши наступні кроки:

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

  2. відбудовуючи його

  3. і, нарешті, натискання недійсних кеш-пам'яток / Перезапуск у меню файлів


2

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

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

Щоб очистити всі залишки на інших мовах, використовуйте такий спосіб

./ams --cleanleftovers -o all.txt

Це очистить залишені рядки та виведе звіт про відсутність рядків для всіх мов у файл all.txt


2

Вам просто потрібно скопіювати рядок, що порушує (або лише один із декількох рядків), видалити його та вставити повторно. Це видалило проблему для мене.


Хоча це може допомогти ОП, краще додати більше деталей, пояснення, приклади тощо. Будь ласка, надайте відповіді, які не вимагають пояснень від автора запиту.
Тів,

1

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


0

Копіювати та вставити мені не вдалося.

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

Я спробував закрити відкритий файл strings.xml та редактор перекладів , а потім перезапустити.

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

Це працює для мене.


0

У мене була ця проблема для всіх рядків у моєму файлі xml.

Справа в тому, що за замовчуванням ваш атрибут strings.xmlне повинен мати tools:localeатрибут, як у інших перекладених файлів. Якщо це так, щоразу, коли я складаю програму в режимі випуску, вона розглядає її як інший перекладений файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.