Локализуйте пользовательский интерфейс с помощью редактора переводов (представлений).

Concepts and Jetpack Compose implementation

The Translations Editor provides a consolidated and editable view of all of your default and translated string resources .

Для ознакомления с процессом перевода вашего приложения на разные языки, прочтите раздел «Поддержка разных языков и культур» .

Figure 1. The Translations Editor showing app text before translation

Откройте редактор переводов из редактора дизайна.

Вы можете открыть редактор переводов из редактора дизайна редактора макета, чтобы отредактировать текст по умолчанию и переведенный текст и настроить его под свой макет. Информацию о переключении языков в редакторе дизайна см. в разделе «Отображение переведенного текста в редакторе дизайна» .

  1. В левой панели Project > Android выберите ModuleName > res > layout .
  2. Чтобы открыть файл content_main.xml для редактирования, дважды щелкните по нему.
  3. Чтобы открыть редактор дизайна , нажмите вкладку «Дизайн» в левом нижнем углу.
  4. В редакторе дизайна выберите язык . выпадающий список.
  5. Выберите «Редактировать переводы» . .

Отображение переведенного текста в редакторе дизайна

Чтобы увидеть, как переведенный текст отображается в макете вашего приложения, переключайтесь между версией по умолчанию и переведенной версией в редакторе дизайна следующим образом:

  1. In the Project > Android panel on the left, select ModuleName > res > layout .
  2. Чтобы открыть файл content_main.xml для редактирования, дважды щелкните по нему.
  3. Чтобы открыть редактор дизайна , нажмите вкладку «Дизайн» в левом нижнем углу.
  4. В редакторе дизайна выберите язык . выпадающий список.
  5. Выберите «Редактировать переводы» . .
  6. Select the language you want to use to view your app.

    Рисунок 2. Выпадающий список языков с выбранным испанским языком.

Редактор дизайна отображает макет вашего приложения на выбранном языке, в данном случае — испанском.

Рисунок 3. Редактор дизайна, отображающий переведенный текст на испанском языке.

Установите язык редактора дизайна по умолчанию.

To set the language back to the default, select es > Language .

Управление и тестирование локализуемого текста.

Платформа Android и Android Studio предоставляют ряд функций для управления и тестирования локализуемого текста приложения. Эти функции включают в себя параметры, позволяющие выявлять проблемы с письмами справа налево (RTL), такими как арабский или иврит. Тестирование локализуемого текста позволяет вносить корректировки в текст пользовательского интерфейса и его расположение перед отправкой сообщений в репозиторий исходного кода для последующего перевода.

Переработайте свой проект для поддержки RTL.

В Android Studio есть команда рефакторинга, которая включает поддержку двунаправленного текста в элементах TextView , ConstraintLayout и LinearLayout , позволяя вашим приложениям отображать и редактировать текст как слева направо (LTR), так и справа налево (RTL). Эта команда также обеспечивает автоматическое зеркальное отображение макетов пользовательского интерфейса приложения и всех виджетов. Чтобы увидеть изменение направления текста и зеркальное отображение макета, необходимо также установить свойства направления текста и макета в редакторе макетов .

Следующая процедура показывает, как переработать ваш проект для поддержки RTL:

  1. Выберите «Рефакторинг» > «Добавить поддержку RTL там, где это возможно» , чтобы отобразить диалоговое окно, показанное на рисунке 4.

    Рисунок 4. Добавление поддержки RTL.

    • Если элемент <application> в файле AndroidManifest.xml не имеет атрибута android:supportsRTL="true" , установите флажок «Обновить AndroidManifest.xml» .
    • Если targetSdkVersion вашего приложения равен 17 или выше, выберите «Заменить свойства Left/Right на свойства Start/End ». В этом случае вместо свойств "left" и "right" следует использовать "start" и "end". Например, android:paddingLeft становится android:paddingStart .
    • Если targetSdkVersion вашего приложения равно 16 или меньше, выберите Generate -v17 Versions. В этом случае ваш XML-файл должен использовать оба набора свойств. Например, ваш XML-файл должен использовать как android:paddingLeft , так и android:paddingStart .
  2. Чтобы отобразить окно предварительного просмотра рефакторинга , нажмите кнопку «Выполнить» .

    Рисунок 5. Посмотрите предварительный просмотр.

  3. Нажмите «Выполнить рефакторинг» .

Для получения дополнительной информации о рефакторинге проекта для поддержки RTL см. раздел «Нативная поддержка RTL в Android 4.2» .

Свойства направления текста и макета

В окне «Свойства» справа отображается свойство textDirection , используемое для текстовых виджетов, и свойство layoutDirection , используемое для виджетов компоновки, позволяющее изменять направление текста и компонентов компоновки. Свойства направления перечислены в окне «Свойства» справа и работают с API уровня 17 или выше.

Чтобы увидеть изменение направления текста и зеркальное отображение макета, необходимо также выполнить рефакторинг проекта для поддержки RTL (написанного справа налево). В английском языке изменение направления текста перемещает только знаки препинания с правого края на левый; например, "Hello World!" становится "!Hello World". Чтобы увидеть переключение текста с левого на правое направление (LTR) на RTL, необходимо использовать язык с RTL в вашем приложении. Если вы хотите использовать английский язык и увидеть переключение текста на RTL в целях тестирования, используйте псевдолокали . Псевдолокали не зависят от команды рефакторинга и свойств направления.

Для доступа к свойствам направления и их использования выполните следующие действия:

  1. В редакторе макетов выберите текстовый виджет.
  2. Откройте окно «Свойства» и найдите нужное свойство RTL. Чтобы задать значение свойства, выберите один из следующих вариантов:

    • firstStrong : Значение по умолчанию для корневого представления. Первый символ направления определяет направление абзаца. Если такого символа нет, направление абзаца определяется направлением компоновки, заданным в представлении.
    • anyRtl : Направление абзаца — RTL, если он содержит хотя бы один символ, строго соответствующий направлению справа налево; в противном случае — LTR, если он содержит хотя бы один символ, строго соответствующий направлению слева направо. Если таких символов нет, направление абзаца определяется направлением компоновки, заданным в представлении.
    • ltr : Направление абзаца — слева направо (LTR).
    • rtl : Направление абзаца — справа налево (RTL).
    • локаль : Направление абзаца определяется системной локалью.
    • inherit : Default. Use the direction given in parent.

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

  3. Чтобы проверить перевернутый текст и расположение элементов, запустите приложение.