Intereting Posts
Для Android-событий, почему операторы switch более распространены, чем цепочки if-else? Android Studio не распознает мое устройство OpenGL ES 2.0 Несколько программ или несколько шейдеров или что? Как это работает? Очистка данных при удалении учетной записи Установите громкость приложения для Android Android. Какой файл debug.keystore – это IntelliJ, подписывающее мое приложение? Как обновить некоторые данные в Listview без использования notifyDataSetChanged ()? Java-оболочка для библиотеки Soundtouch Spinner с многострочными элементами перекрывает выбранный элемент на Froyo Разница в контексте this и getContext () Навигационная панель навигации Lollipop отображается на экране активности Android – activity_main не может быть разрешен или не является полем android.content.ActivityNotFoundException: Android отключает тайм-аут экрана во время работы приложения Попытка нарисовать кнопку: как установить цвет штриха и как «выровнять» градиент на дне, не зная высоты?

Android Lint: как игнорировать отсутствующие предупреждения о переводе в определенном файле

Можно ли перевести некоторые строки, но не все, в отдельный файл ресурсов без Lint, жалующихся на MissingTranslation ?

Например: строки моего приложения находятся в res / values ​​/ strings.xml . Одна из строк

<string name="postal_code">Postal Code</string>

Поскольку «почтовый код» обычно называется «почтовый индекс» в США, я хочу добавить еще один ресурс res / values-en-rUS / strings.xml с содержимым:

 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="postal_code">Zip Code</string> </resources> 

Тем не менее, Линт жалуется на другие строки в значениях / strings.xml, но не на значения-en-rUS / strings.xml

Я понимаю, что вы можете подавить предупреждения, указав tools:ignore in values ​​/ strings.xml . Но это нежелательно, потому что предупреждение Lint действительно полезно при переводе на другой язык.

Вместо этого можно ли подавить предупреждение в файле values-en-rUS / strings.xml , как показано , чтобы Lint не использовал этот файл в качестве критерия при поиске недостающих переводов?

Solutions Collecting From Web of "Android Lint: как игнорировать отсутствующие предупреждения о переводе в определенном файле"

Хорошим способом отключить проверку MissingTranslations является добавление опции в файл build.gradle, специфичный для модуля.

 android { lintOptions{ disable 'MissingTranslation' } //other build tags } 

Если строки не указаны в файле Strings, специфичном для локали, он берет строки из файла по умолчанию, который обычно является Strings.xml.

Я нашел лучшее решение в соответствии с этим ответом: https://stackoverflow.com/a/13797364/190309

Просто добавьте ignore="MissingTranslation" в ваш string.xml , например:

 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation" > <!-- your strings here; no need now for the translatable attribute --> </resources> 

Это пока еще не ответило, поэтому я покажу вам одно решение:

В вашем XML-файле DEFAULT вы можете определить строки, которые не нуждаются в переводах, таких как:

 <string name="developer" translatable="false">Developer Name</string> 

Эта строка не обязательно должна быть переведена, и lint не будет жаловаться на нее либо …

Lint имеет определенную поддержку только для переопределения некоторых элементов в файлах ресурсов для конкретных регионов (например, en-rUS en ). Если регион соответствует языку по умолчанию, вы должны сообщить ему, на каком языке указаны ваши строки по умолчанию, указав язык в values/strings.xml :

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

От lint:

По умолчанию этот детектор позволяет областям языка просто предоставлять подмножество строк и возвращаться к стандартным языковым строкам. […]

Вы можете указать lint (и другие инструменты), язык которых является языком по умолчанию в вашей папке res / values ​​/, указав инструменты: locale = "languageCode" для корневого элемента в вашем файле ресурсов. (Префикс инструментов относится к объявлению пространства имен http://schemas.android.com/tools .)

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

Если вы используете Eclipse, просмотрите кнопки панели инструментов в представлении предупреждений Lint. Один из них называется «Игнорировать в файле». Это должно помочь, но только если Lint присваивает ошибку вашему «US» файлу. Эта кнопка просто изменяет файл lint.xml в вашем проекте, так что вы можете легко и быстро исследовать (и отменить).

Более подробная информация об этом подавлении зависит от http://tools.android.com/tips/lint/suppressing-lint-warnings.