Можно ли указать, что строки в файле в value-*
каталогах намеренно не переводятся на другие языки? У меня есть несколько строк, которые являются общими для всех языков и не нуждаются в переводе, поэтому я создал unlocalized-strings.xml
файл в values
каталоге .. Запуск Android Lint для проверки наличия проблем, он постоянно сообщает, что некоторые переводы отсутствуют .. Я не хочу чтобы отключить эту проверку для всего проекта, я бы хотел отключить ее только в некоторых файлах XML .. возможно ли это?
"title_widget_updater_service" is not translated in de, en, en-rUS, it
Issue: Checks for incomplete translations where not all strings are translated
Id: MissingTranslation
If an application has more than one locale, then all the strings declared in one language
should also be translated in all other languages.
By default this detector allows regions of a language to just provide a subset of the
strings and fall back to the standard language strings. You can require all regions to
provide a full translation by setting the environment variable
ANDROID_LINT_COMPLETE_REGIONS.
Как можно определить эту область из нелокализованных строк?
android
android-resources
android-lint
Джанни Костанци
источник
источник
Ответы:
Я не знаю, как игнорировать весь файл, но вы можете сделать это строка за строкой, используя:
источник
Это
ignore
атрибутtools
пространства имен в вашем файле строк, как показано ниже:источник
Project->Clean
окончательно удалить ошибки.Добавить в
build.gradle
:источник
Я знаю 3 способа:
Чтобы применить значение модификации по значению: Установите атрибут
translatable="false"
в<string>
определении:Если у вас много ресурсов, которые не следует переводить, вы можете поместить их в файл с именем,
donottranslate.xml
и lint будет рассматривать все из них как непереводимые ресурсы.Еще один способ, который я обнаружил при просмотре источников проекта Hackers Keyboard :
вы можете добавить префикс
donottranslate-
в свой файл ресурсов. Как и в предыдущем примере, lint будет рассматривать все их непереводимые ресурсы.В вашем случае вы можете заменить
unlocalized-strings.xml
наdonottranslate-strings.xml
. Кажется, это работает, но я не нашел документации по этому совету.См .: Сайт проекта Android Tools: Непереводимые строки
источник
donottranlate.xml
, нам больше не нужно будет добавлятьtranslatable="false"
тег?А вот решение Android Studio для отключения этой фатальной ошибки Lint:
источник
Я думаю, что вам нужно вместо отключения линта пометить их атрибутом
источник
Создайте файл ресурсов с именем, начинающимся с « donottranslate » (например, donottranslate.xml , donottranslate_urls.xml и т. Д.), И lint будет полностью игнорировать его строки при проверке отсутствующих переводов.
источник
Если вы хотите отключить проверку текстур при отсутствии перевода, вы можете перейти
«Свойства проекта -> Настройки Android Lint -> Выберите MissingTranslation -> Swtich игнорировать по степени серьезности»,
надеюсь, что это поможет другим, потому что я просто столкнулся с этой проблемой :)
источник
Другой способ сделать это - добавить строку в файл gradle с помощью
resValue
илиbuildConfigField
. Что-то такое:Обычаи:
источник
Чтобы избежать предупреждений в Android Studio, откройте «Настройки» ==> «Инспекции», снимите флажок «Неполные переводы». Но это не повлияет на сборку Gradle.
источник
Также существует «Редактор переводов» (щелкните правой кнопкой мыши на string.xml «Открыть редактор переводов»).
Затем установите флажок «Непереводимый» в строке.
https://developer.android.com/studio/write/translations-editor
источник