Линт: Как игнорировать ошибки «<ключ> не переведен в <язык>»?

189

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

Средство проверки моей IDE Lint создает ошибки, говоря:

newCardsOrderVals не переводится в ar, bg, ca, cs

Компиляция / установка / запуск с помощью Ant работает нормально, но я бы хотел использовать мою IDE для облегчения отладки.

Есть ли способ отключить эту конкретную проверку или в идеале сделать это предупреждением, а не ошибкой?

Я понимаю, что перед выпуском нам действительно нужно правильно настроить файлы локализации, но пока это не является приоритетом, поскольку сами экраны изменяются очень часто.

Николас Рауль
источник
1
Есть ли способ настроить все языки, помеченные как «не переведенные»? Я получаю ошибки, такие как «эс, он и я». Почему я получаю эти языки? Как настроить приложение Android для ограничения набора только на «en»?
индекс
@inder: Может быть, потому что у вас есть каталоги, такие как «values-he» и т. д. в вашей папке res /?
Николас Рауль
1
Нет, у меня нет таких каталогов. Только значения, макет и рисовать.
конец
7
Да, он и я из библиотеки Facebook SDK.
Мадей
2
Это ошибка в Android Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Ответы:

348

Android Studio:

  • "Файл"> "Настройки" и введите "MissingTranslation" в поле поиска

Затмение:

  • Windows / Linux: в «Окно»> «Настройки»> «Android»> «Проверка ошибок Lint»
  • Mac: «Eclipse»> «Настройки»> «Android»> «Проверка ошибок Lint»

Найдите MissingTranslationстроку и установите ее так, Warningкак показано ниже:

Пропущенные переводы, не переведены в

Николас Рауль
источник
2
... Он находится в «Окне»> «Настройки»> «Android»> «Проверка ошибок Lint»
Олли Беннетт
2
Это полезно, но у меня не было этой проблемы в течение очень долгого времени, пока она внезапно не появилась. И я не знаю почему.
pktangyue
Спасибо за ваш ценный пост
Паван Асати
К сведению, в Android Studio это «Файл»> «Настройки» и «MissingTranslation» в поле поиска.
peer
86

Вы можете установить атрибут transurable = "false" в определении следующим образом:

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

Для получения дополнительной информации: http://tools.android.com/recent/non-translatablestrings

efor18
источник
1
Я сказал , что «файлы локализации не совершенны еще ». Они наполняются понемногу. translatable = "false" не позволит никому переводить
Николас Рауль
3
Хотя ответ не имеет прямого отношения к вопросу, я думаю, он предоставляет блестящее решение для таких людей, как я, которые нашли эту тему, когда Google «как сделать ворс, не заботясь о константах / параметрах моего приложения». Спасибо, efor18!
aka_sh
83

Чтобы игнорировать это в сборке Gradle, добавьте это в раздел Android вашего файла сборки:

lintOptions {
   disable 'MissingTranslation'
}
Януш
источник
2
Огромное спасибо, буквально сэкономил мне дни, чтобы найти все правильные строки для производства.
D-Kent
Хороший, это сделал это
Мирко
Добавил это в мой модуль приложения.
Меркурий
23

Это приведет к тому, что Lint проигнорирует отсутствующую ошибку перевода для ВСЕХ строк в файле, но при необходимости можно проверить другие файлы строковых ресурсов.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">
Том Боллвитт
источник
Это, пожалуй, самый правильный способ, без отключения пуха для всего проекта
MatPag
11

Если вы хотите отключить предупреждения о конкретных строках, вы можете использовать следующее:

strings.xml

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

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

</resources>

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

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

Eduko
источник
1
+1 Хороший способ сделать это раз и навсегда, чтобы всем разработчикам команды не приходилось изменять свои настройки IDE. Есть ли способ сделать это предупреждением, а не подавлять полностью?
Николас Рауль
Вы можете создать собственное правило Lint, чтобы настроить статус серьезности для конкретной вещи. Вот пример: tools.android.com/tips/lint-custom-rules
Eduko
8

добавьте строки в ваш файл /res/values.xml на корневой вкладке ресурса следующим образом:

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

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

Пурвик Рана
источник
6

Добавьте следующее в ваш файл Gradle в разделе Android

    lintOptions {
       disable 'MissingTranslation'
    }
chzahid
источник
5

К тому же,

Не зависящие от проекта свойства, Eclipse Preferences.
В Mac Eclipse> Настройки

введите описание изображения здесь

Джинбом Хо
источник
3

Другой подход состоит в том, чтобы указать языки, которые вы намереваетесь поддерживать, и отфильтровать остальные, используя опцию 'resConfigs' с Gradle.

Проверьте этот другой ответ для деталей

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

kip2
источник
1

Вы также можете поместить ресурсы, которые вы не хотите переводить в файл с именем donottranslate.xml.

Пример и объяснение: http://tools.android.com/recent/non-translatablestrings

Михал Вициан
источник
это лучший способ сделать это, и это организовано.
Кэлвин Парк
1

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

  1. нажмите на Windows
  2. нажмите на настройки
  3. выберите android> Проверка ошибок Lint.
  4. нажмите игнорировать Все> Применить> ОК.

Это оно.

Раджу
источник
2
это будет игнорировать все предпочтения Lint. Не только отсутствующий перевод
Лучано Родригес
1

Следующее сработало для меня.

  • Нажмите на Windows
  • Нажмите на настройки
  • Выберите android> Проверка ошибок Lint.
  • Найдите и выберите соответствующую проверку Lint и
  • Установите уровень серьезности «Игнорировать» (справа внизу)
user4353093
источник