Подтвердить что ты не робот

Какова цель использования переводимых в Android-строк?

Что означает атрибут translatable, например translatable="false"?

4b9b3361

Ответ 1

Этот атрибут указывает, что этот атрибут будет одинаковым для всех локалей. Почему это полезно?

  • Файлы локализации более читабельны для человека и экономят время.
  • Он сообщает инструменту Lint, что все в порядке и что Android не нужно искать этот перевод ресурсов.

Полное объяснение: http://tools.android.com/recent/non-translatablestrings

Итак, в общем случае это означает, что если вы не поместите этот атрибут, вы всегда должны локализовать этот ресурс, иначе сообщите людям и компилятору, что это уникально для всех локалей, указав этот атрибут.

P.S. Поверьте мне, когда ваш проект станет большим, он очень большой, это очень полезно. Например, я сейчас работаю над проектом с клавиатурой, и это экономит много времени.

Ответ 2

Если вы поддерживаете несколько языков, и есть некоторые строки, которые не должны быть переведены (что значит одинаково на всех языках), вы можете использовать translatable = "false"

Для ex: Numbers <string name="account_setup_imap" translatable="false">IMAP</string>

Подробное описание

Ответ 3

Я никогда не слышал об этом атрибуте, но, видимо, (теперь) есть причина для его использования: см. этот пост от ADT-Dev google group.

Кстати, я просто попробовал, и он работает в исправлении ошибок Android Lint.

Ответ 4

Это просто непроверенное предположение: это может также помочь компилятору Android генерировать более эффективный код для частей, в которых используется эта строка, поскольку он потенциально может оптимизировать все идентификаторы ресурсов этой строки (и ее динамический поиск в ресурсе xmls) и просто введите его значение.

Ответ 5

Я не вижу ссылки на официальные документы, однако, вероятно, это всего лишь показатель для людей, которые смотрят на файл, что этот конкретный строковый объект не должен быть переведен.

Если у вас есть приложение для Android, которое вы хотите интернационализировать, общая тактика заключается в том, чтобы просто отправить файл strings.xml переводчикам. Так что атрибут будет для них просто флагом.