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

185

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

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

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

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

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

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

  • 1
    Есть ли способ настроить все языки, помеченные как «не переведенные»? Я получаю ошибки, такие как «эс, он и я». Почему я получаю эти языки? Как настроить приложение Android для ограничения набора только на «en»?
  • 0
    @inder: Может быть, потому что у вас есть каталоги, такие как «values-he» и т.д. в вашей папке res /?
Показать ещё 3 комментария
Теги:
android-studio
android-resources
localization
android-lint

13 ответов

329
Лучший ответ

Android Studio:

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

Eclipse:

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

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

Изображение 6834

  • 2
    ... Он находится в «Окне»> «Настройки»> «Android»> «Проверка ошибок Lint»
  • 2
    Это полезно, но у меня не было этой проблемы в течение очень долгого времени, пока она внезапно не появилась. И я не знаю почему.
Показать ещё 4 комментария
88

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

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

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

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

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

lintOptions {
   disable 'MissingTranslation'
}
  • 2
    Огромное спасибо, буквально сэкономил мне дни, чтобы найти все правильные строки для производства.
  • 0
    Хороший, это сделал это
Показать ещё 1 комментарий
21

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

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">
  • 0
    Да, этот способ работает!
  • 0
    Это, пожалуй, самый правильный способ, без отключения пуха для всего проекта
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

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

Вставьте в файл lint.xml это:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    ...

    <issue
        id="MissingTranslation"
        severity="ignore" />
</lint>

Подробнее: Подавление предупреждений о линге.

8

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

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

tools: locale устанавливает локальный язык на английский язык, не требуется перевод языка позже, для всех строк и инструментов ресурсов: ignore let Lint to is not the missing translations значений строки ресурса.

6

Добавьте в заголовок вашего файла strings.xml следующее

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources  xmlns:tools="http://schemas.android.com/tools" tools:locale="en">

Это позволяет вам указать инструменты, которые вы используете в папке базовых значений. Для строк в папках values-de или values-en это очевидно, но не в базовой папке "values". Lint будет использовать информацию локали для выбора правильного словаря при поиске орфографических ошибок по умолчанию.

5

Кроме того,

Не зависит от проекта, Eclipse Preferences.
В Mac Eclipse > Предпочтения

Изображение 6835

3

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

Подробнее этот другой ответ

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

1

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

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

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

  • щелкните по Windows
  • нажмите на настройки
  • выберите android > Проверка ошибок Lint.
  • нажмите на игнорировать All > Apply > Ok.

Вот оно.

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

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

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

  • 0
    это лучший способ сделать это, и это организовано.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню