Лучшая практика для строк, не зависящих от языка - PullRequest
3 голосов
/ 21 марта 2012

Приложение Android содержит ряд строк, не зависящих от языка, таких как тарифы и номера телефонов поддержки. Я поместил XML-файл в /res/values, содержащий, например:

<string name="helpdesk_number">0900 12345678</string>
<string name="helpdesk_tariff">60p</string>
<string name="helpdesk_address1">221B Baker Street</string>
<string name="helpdesk_address2">London NW1 6XE</string>

Линт жалуется, что эти строки не переведены на другие языки:

В локали отсутствует переводы для: helpdesk_number, helpdesk_number, helpdesk_address1, helpdesk_address2 ... (еще 56)

Хотя может быть целесообразно отобразить другой тариф для других языков, служба поддержки находится только в одной стране.

Имеет ли смысл копировать эти строки на другие языки? Или есть ли способ заставить Lint игнорировать эти конкретные строки (или строковый файл)?

Ответы [ 6 ]

5 голосов
/ 21 марта 2012

грядущий (надеюсь, скоро) ADT17 принесет некоторые функции для игнорирования некоторых предупреждений о ворсинках:

http://tools.android.com/recent/ignoringlintwarnings

http://tools.android.com/tips/lint/suppressing-lint-warnings

так что с ADT 17 вы можете поместить lint.xml в папку вашего проекта, содержащую:

<issue id="MissingTranslation" severity="ignore" />

или, возможно, вы также можете сделать это для строки через:

tools:ignore="MissingTranslation"

но в этом документе нет ясности на 100%, и у меня нет времени на бета-тестирование 17 на данный момент ..

A Продолжение: ADT17 был выпущен вскоре после вашего запроса и должен решить ваши проблемы!

4 голосов
/ 31 мая 2014

В последних версиях Lint вы можете игнорировать определенные строки "MissingTranslation", подобные этим:

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>    

    <!--suppress MissingTranslation -->
    <string name="some_string">ignore my translation</string>
    ...

</resources>

http://tools.android.com/tips/lint/suppressing-lint-warnings

3 голосов
/ 09 октября 2013

другой способ избежать этого сообщения, добавив в ваш файл ресурсов:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
3 голосов
/ 20 февраля 2013

Прямо из инструмента Lint:

Если строка не должна быть переведена, вы можете добавить в элемент атрибут transurable = "false" или определить все непереводимые строкив файле ресурсов с именем donottranslate.xml.Или вы можете проигнорировать проблему с помощью атрибута tools: ignore = "MissingTranslation".

Просто создайте файл "donottranslate.xml" внутри вашей папки res / values ​​по умолчанию, и Lint проигнорирует его.Я поместил здесь все свои ключи / идентификаторы приложений и тому подобное, а также настройки, поскольку их не нужно «переводить» и просто занимать место в других файлах.

1 голос
/ 21 марта 2012
 > Best practice for language-independent strings

В моем приложении у меня есть два файла строковых ресурсов, один из которых называется «NonTranslatabable.xml», который будет получать те строки, которые не будут переведены (appName, fileNames, ..).

Когдапереводя приложение на другой язык, мне не нужно думать, нужно ли переводить строку или нет.

0 голосов
/ 17 апреля 2016

Добавьте это в свой файл приложения Gradle в разделе «Android»

...