Локализация пользовательского интерфейса с помощью редактора переводов

Редактор переводов предоставляет сводную и редактируемую информацию обо всех ваших строковых ресурсах по умолчанию и переведенных строках.

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

Рисунок 1. Редактор переводов , отображающий текст приложения до перевода.

Строковые ресурсы

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

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

Откройте редактор переводов

В Android Studio доступ к редактору переводов можно получить из следующих мест.

Открыть из представления Android

  1. В панели Project > Android слева выберите ModuleName > res > values .
  2. Щелкните правой кнопкой мыши файл strings.xml и выберите «Открыть редактор переводов» .

    Редактор переводов отображает пары ключ-значение из файла strings.xml .

    Примечание: Если у вас есть переведенные файлы strings.xml , в вашем проекте будет несколько соответствующих папок values ​​с суффиксами, указывающими на язык, например, values-es для испанского. Ваш файл strings.xml по умолчанию всегда находится в папке values ​​(без суффикса).

На рисунке 1 показан текст приложения по умолчанию (в данном случае, английский) в редакторе переводов для простого приложения до начала перевода. Содержимое переведенных файлов strings.xml будет отображаться справа от столбца «Непереводимые» , по одному столбцу на каждый язык, как показано на рисунке 2.

Откройте файл strings.xml.

Вы можете получить доступ к редактору переводов из любого из ваших файлов strings.xml .

  1. В панели Project > Android слева выберите ModuleName > res > values .
  2. Чтобы открыть файл strings.xml для редактирования, дважды щелкните по нему.
  3. В файле strings.xml нажмите ссылку «Открыть редактор» в правом верхнем углу.

Настройка непереводимых строк

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

При выборе параметра «Непереводимый » в соответствующую строку файла strings.xml по умолчанию добавляется translatable="false" . В следующем примере EasyApp в верхней строке не переводится, поскольку это название продукта.

<resources>
    <string name="app_name" translatable="false">EasyApp</string>
    <string name="action_settings">Settings</string>
    <string name="easy_app">I am a Simple App!</string>
    <string name="next_page">Next Page</string>
    <string name="second_page_message">I am the Second Page!</string>
    <string name="title_activity_second">SecondActivity</string>
</resources>

Добавление и удаление языков

Редактор переводов поддерживает BCP 47 и объединяет коды локали и региона (страны) в один общий выбор для целевой локализации. Локаль определяет не только язык. Она включает в себя зависящее от страны форматирование таких элементов, как дата и время, валюты и десятичные знаки.

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

  1. В редакторе переводов нажмите на значок глобуса. .
  2. Из выпадающего списка выберите язык, который хотите добавить. Новый язык появится в редакторе переводов , и в проект будет добавлена ​​папка values-* с файлом `strings.xml`. Например, values-es для испанского языка.

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

Удалить язык в редакторе переводов можно, удалив все значения в столбце (см. Редактирование, добавление и удаление текста ), или же можно удалить папку проекта для этого языка следующим образом:

  1. В панели Project > Android слева выберите ModuleName > res .
  2. Щелкните правой кнопкой мыши папку values-* для языка, который вы хотите удалить. Например, values-hi для хинди.
  3. В списке выберите «Удалить» , чтобы удалить папку и содержащийся в ней файл strings.xml .

Редактировать, добавлять и удалять текст

Вы можете работать с настройками текста непосредственно в файле strings.xml или через редактор переводов . В этом разделе описывается подход с использованием редактора переводов . В редакторе переводов вы можете редактировать, добавлять или удалять текст, используя список или поле «Перевод» в нижней части редактора переводов .

Рисунок 2. Вверху — список, внизу — поле «Перевод» .

Список

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

  1. Дважды щелкните ячейку, в которой хотите отредактировать или добавить текст.
  2. Используйте функцию копирования и вставки с клавиатуры, или, если ваша клавиатура поддерживает диакритические знаки, вводите текст непосредственно в список.
  3. Нажмите клавишу Tab или переместите курсор за пределы поля.

Чтобы удалить текст, выполните следующие действия:

  1. Дважды щелкните ячейку, которую хотите удалить.
  2. В режиме списка выделите текст и нажмите клавишу Delete .
  3. Нажмите клавишу Tab или переместите курсор за пределы поля.

Поле перевода

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

  1. В режиме списка щелкните один раз по ячейке, в которой хотите отредактировать или добавить текст.
  2. В поле «Перевод» выполните копирование и вставку с клавиатуры или, если ваша клавиатура поддерживает диакритические знаки, введите текст непосредственно в поле «Перевод» .
  3. Нажмите клавишу Tab или переместите курсор за пределы поля.

Чтобы удалить текст, выполните следующие действия:

  1. Щелкните один раз по ячейке, которую хотите удалить.
  2. В поле «Перевод» выделите текст и нажмите клавишу Delete .

Добавление и удаление ключей

В редакторе переводов в столбце «Ключ» перечислены уникальные идентификаторы каждого элемента данных в ваших файлах strings.xml . Вы можете добавлять и удалять ключи через редактор переводов. При удалении ключа редактор переводов удаляет его и все связанные с ним переводы. Редактор переводов использует функцию «Безопасное удаление» для удаления ключа, чтобы вы знали, используется ли текст ключа где-либо еще, и имели возможность внести необходимые корректировки перед удалением ключа. Функция «Безопасное удаление» гарантирует, что ваш код по-прежнему будет компилироваться после удаления ключа.

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

  1. В редакторе переводов нажмите «Добавить ключ» . .
  2. В диалоговом окне введите имя ключа, значение по умолчанию и расположение файла strings.xml по умолчанию.

    Рисунок 3. Добавить ключ.

Для удаления ключа выполните следующие действия:

  1. В редакторе переводов выберите ключ, который хотите удалить.
  2. Нажмите «Удалить клавиши». .
  3. В диалоговом окне «Удалить» выберите, хотите ли вы безопасно удалить файл и хотите ли вы выполнить поиск в комментариях и строках, а затем нажмите «ОК» .

    Рисунок 4. Диалоговое окно удаления

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

    Рисунок 5. Диалоговое окно удаления

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

    Рисунок 6. Небезопасные способы использования.

  5. Щелкните правой кнопкой мыши по примеру использования, чтобы отобразить контекстное меню, и выберите «Перейти к исходному коду» , чтобы внести необходимые изменения.
  6. В панели «Поиск конфликтов безопасного удаления» выберите «Повторно запустить безопасное удаление» , чтобы убедиться в отсутствии других случаев использования, требующих внимания.
  7. После очистки списка использований нажмите кнопку «Выполнить рефакторинг» , чтобы удалить ключ.

Исправьте ошибки

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

Рисунок 7. Красный текст указывает на ошибку, которую необходимо исправить.

Чтобы исправить ошибку, наведите курсор на красный текст, чтобы отобразить объяснение проблемы и способ её решения.

При внесении изменений в редакторе переводов соответствующие файлы strings.xml обновляются в соответствии с вашими изменениями. При внесении изменений в файл strings.xml соответствующий столбец в редакторе переводов также обновляется в соответствии с вашими изменениями.

Примеры исправлений в редакторе переводов :

  • На рисунке 7 показано, что для строки app_name установлен флажок «Непереводимый» , но предоставлен испанский перевод. Удалите испанский перевод, чтобы исправить ошибку.
  • На рисунке 7 показано, что в строке next_page отсутствует французский перевод. Используйте клавиатуру, чтобы скопировать Page Suivante в ячейку и исправить ошибку. Операция копирования и вставки с клавиатуры копирует текст вместе с диакритическими знаками в ячейку.

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

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

Поддержка языков с написанием справа налево

Jetpack Compose изначально поддерживает компоновку с направлением письма справа налево (RTL). Модификаторы компоновки и API основаны на концепциях направления, таких как start и end а не на абсолютных направлениях, таких как left и right . Когда язык системы меняется на локаль RTL, Compose автоматически зеркально отображает эти макеты.

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

Для включения поддержки RTL выполните следующие действия:

  1. Откройте файл AndroidManifest.xml .
  2. Добавьте атрибут android:supportsRtl="true" к элементу <application> :
<manifest ... >
    <application
        ...
        android:supportsRtl="true">
    </application>
</manifest>

Чтобы узнать больше о том, как Compose обрабатывает компоновку текста, зеркальное отображение и пользовательские настройки RTL, см. раздел «Работа с языками RTL» .

Задать направление текста вручную

В Jetpack Compose вам не нужно использовать визуальное окно свойств для принудительного задания расположения или направления текста. Compose автоматически обрабатывает зеркальное отображение текста справа налево (RTL) в зависимости от системной локали.

Однако, если вам необходимо вручную изменить направление для определенного текстового элемента (например, отобразить строку с направлением текста слева направо в макете с направлением текста справа налево), вы можете передать объект TextDirection в ваш TextStyle .

Поддерживаемые значения включают:

  • TextDirection.Content: (Default) : Определяет направление по первому четко выраженному символу направления.
  • TextDirection.Ltr : Принудительно устанавливает направление текста слева направо.
  • TextDirection.Rtl : Принудительно устанавливает направление текста справа налево.

Чтобы узнать больше о стилевом оформлении текста и настройке направления текста вручную в Compose, см. раздел «Стиль текста» .

Используйте локализованные строки в своем приложении.

После добавления и перевода строк с помощью редактора переводов ваши базовые файлы res/values/strings.xml автоматически обновляются, и вы можете использовать локализованные ресурсы непосредственно в пользовательском интерфейсе.

Чтобы узнать, как отображать локализованный текст, обрабатывать текст справа налево (RTL) и использовать @Preview для тестирования различных языковых и псевдолокальных версий, см. раздел «Строки» в разделе «Ресурсы» в Compose.

Псевдолокалии

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

Информацию об использовании псевдолокалей см. в разделе «Тестирование приложения с помощью псевдолокалей» .

Дополнительные ресурсы

Просмотры контента