Intereting Posts
Невозможно создать задачи для загрузки Proguard Mapping File.java.lang.IllegalStateException: разрешение конфигурации 'androidTestAnnotationProcessor' Как создать экземпляр слушателя путем отражения в Android Не найден ресурс, который соответствует указанному имени: attr 'android: tabLayout' Имя пакета, не отображаемого в Logcat в ICS Gson не может анализировать данные формата json формата в Kotlin Android: Как программно настроить drawablePadding? Как установить другой цвет для нажатого состояния кнопки? Вставить null в таблицу Sqlite Номер в панели действий, подобный Gmail Как загрузить файл html, хранящийся на SD-карте, в веб-представлении Тестирование базы данных на Android: ProviderTestCase2 или RenamingDelegatingContext? Несколько действий, идентичные onCreateOptionsMenu, onOptionsItemSelected и onKeyDown. Могу ли я каким-то образом повторно использовать код? Список всех установленных сертификатов на Android Phonegap + Eclipse + Cordova – нет config.xml Android Tumblr Oauth-signpost 401

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.