Я не могу скомпилировать/отладить наше приложение для Android, потому что файлы локализации еще не идеальны.
Мой инструмент проверки IDE Lint создает ошибки, говорящие:
newCardsOrderVals не переводится в ar, bg, ca, cs
Компиляция/установка/работа с Ant отлично работает, но я хотел бы использовать мою среду IDE для облегчения отладки.
Есть ли способ отключить эту конкретную проверку или в идеале сделать ее предупреждением, а не ошибкой?
Я понимаю, что до релиза нам действительно нужно получить файлы локализации правильно, но пока это не приоритет, так как сами экраны очень часто меняются.
Android Studio:
Eclipse:
Найдите строку MissingTranslation
и установите ее на Warning
, как показано ниже:
Вы можете установить атрибут translatable = "false" в определении следующим образом:
<string name="account_setup_imap" translatable="false">IMAP</string>
Для получения дополнительной информации: http://tools.android.com/recent/non-translatablestrings
Чтобы проигнорировать это в сборке gradle, добавьте это в раздел Android вашего файла сборки:
lintOptions {
disable 'MissingTranslation'
}
Это приведет к тому, что Lint проигнорирует недостающую ошибку перевода для ВСЕХ строк в файле, но при необходимости могут быть проверены другие файлы строковых ресурсов.
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
Если вы хотите отключить предупреждения о конкретных строках, вы можете использовать следующее:
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--suppress MissingTranslation -->
<string name="some_string">ignore my translation</string>
...
</resources>
Если вы хотите предупреждать об определенных строках вместо ошибки, вам нужно будет создать пользовательское правило Lint, чтобы настроить статус серьезности для конкретной вещи.
Вставьте в файл lint.xml
это:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
...
<issue
id="MissingTranslation"
severity="ignore" />
</lint>
Подробнее: Подавление предупреждений о линге.
добавьте строки в файл /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 значений строки ресурса.
Добавьте в заголовок вашего файла 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 будет использовать информацию локали для выбора правильного словаря при поиске орфографических ошибок по умолчанию.
Кроме того,
Не зависит от проекта, Eclipse Preferences.
В Mac Eclipse > Предпочтения
Другой подход - указать языки, которые вы собираетесь поддерживать, и отфильтровывать остальные, используя параметр resConfigs с Gradle.
Подробнее этот другой ответ
Это лучше, я думаю, потому что вам не нужно полностью игнорировать законные ошибки перевода для языков, которые вы действительно хотите поддержать
Следующие работали для меня.
Многие из них имеют разные рабочие ответы, и у меня тоже есть те же ошибки ворса я заставляю его игнорировать, выполняя следующие действия с помощью eclipse.
Вот оно.
Вы также можете поместить ресурсы, которые вы не хотите переводить в файл с именем donottranslate.xml
.
Пример и пояснение: http://tools.android.com/recent/non-translatablestrings