Intereting Posts
Установка цвета фона элементов ListView при нажатии кнопки Причина вызова shutdown () для ExecutorService Ошибки компоновщика в Android NDK (неопределенная ссылка на `__cxa_end_cleanup ') Действительно ли кеширование значений SharedPreferences имеет смысл? Изменения разрешений манифеста при развертывании новой версии приложения Нужно ли мне использовать «Приобретать покупку», если моему приложению нужна только одна покупка времени? AppBarLayout с контейнером FrameLayout в качестве прокручиваемого содержимого не работает Как я могу закодировать свою игру для работы над каждым решением Android-устройств? (С единством) Переименование apk с помощью gradle -> получение того же apk дважды Не удалось создать проект Android F # – Visual Studio 2015 Xamarin Community Как отключить прокрутку просмотра ресайклеров, чтобы он прослушивал макет Scrollview? Android: как получить список установленных действий, как они появляются в пусковой установке, без дубликатов Android: установка Редактирование текста или текстового вида Как удалить неиспользуемые ресурсы из сторонних библиотек, которые я включил в Android? SurfaceView в макете

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.