Android поддержка русского языка

Локализация. חתול מדען (хатуль мадан) — кот учёный

В статье, посвященной ресурсам, мы уже затрагивали эту тему с теоретической точки зрения. Разберем теперь практическую часть. Мы уже умеем пользоваться строковыми ресурсами и меняли строчки, например, Hello, World на Здравствуй, Мир! Но на самом деле это не совсем правильный подход. Для профессионально написанного приложения лучше использовать другой подход. А именно, локализацию.

Что это значит? Мы не будем менять строчку Hello, World, которая будет считаться строкой по умолчанию, а создадим новый локализованный ресурс. Это даст нам дополнительное преимущество, если пользователь запустит приложение на телефоне с английской локалью, то он увидит текст на знакомом ему языке. Если приложение запустит русский пользователь, то он увидит текст на русском языке. Согласитесь — очень удобно.

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

Чтобы не усложнять материал, воспользуемся стандартным приложением, который мы изучали в самом начале. Создадим новый проект «LocaleApp», но на этот раз мы не будем трогать файл strings.xml в каталоге res/values.

Для русской локализации необходимо создать новый подкаталог values-ru в том же каталоге res. Если вы планируете создавать локализацию только для русского языка, то название каталога не трудно запомнить и вы можете создать папку вручную через res | New | Directory. Но вряд ли вы запомните названия других папок. Поэтому покажу способ создания с помощью мастера студии.

Щёлкаем правой кнопкой мыши на папке res и выбираем New | Android resource directory. В диалоговом окне в левой части Available qualifiers: выбираем пункт Locale и переносим его в правую часть Chosen qualifiers: с помощью кнопки с двумя стрелками вправо. В появившейся третьей колонке выбираем нужные языки, например, русский. Вы увидите, что в поле Directory name автоматически появится нужное название папки. Дополнительно вы можете указать и регион в колонке Specific Region Only

В режиме Android вы можете не увидеть созданную папку, поэтому временно переключитесь в режим Project. Скопируйте файл res/values/strings.xml и вставьте его в новую папку. Можете вернуться в прежний режим. Если папка не пуста, то она уже видна.

Изменим его содержание.

В английской версии им соответствуют ресурсы

Запустим приложение и увидим, что текст выводится на русском, если у вас на эмуляторе или реальном устройстве выбраны русские настройки.

Как перейти на американскую локаль? Идём в Настройки→Язык и клавиатура→Выбрать язык. Выбираем английский язык English (United States). Снова запускаем приложение в эмуляторе или на телефоне. Теперь наше приложение будет выглядеть так:

Ресурсы из каталога res/values считаются ресурсами по умолчанию. Они отображаются в том случае, когда система не найдёт ресурсы для текущей локали устройства. В нашем случае, при выборе любого языка, кроме русского будет использоваться res/values. Если мы захотим разделить англичан и американцев, тогда придётся создавать два каталога: res/values-en-rUK и res/values-en-rUS. Обратите внимание, что перед кодом второй части ставится буква ‘r’. Иными словами, мы определяем не только язык, но и регион.

Читайте также:  Очистить хранилище андроид как ватсап

Проведем несколько экспериментов. Удалим из файла res/values-ru/strings.xml строковый ресурс hello_world с текстом Здравствуй, Мир!. Сохраним изменения и запустим проект на устройстве с русским языком. Платформа заменила отсутствующий в локализации ресурс дефолтным английским.

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

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

На самом деле локализовать можно не только строковые ресурсы. В разных странах принято рисовать какой-нибудь объект в соответствии со своими традициями, например, изображение почтового ящика. В этом случае вы можете создать каталог /res/drawable-de, в котором будут находиться изображения, предназначенные для немцев.

В коде вы обращаетесь к нужным ресурсам следующим образом:

Система сама подставит нужную строку. Явно указать, что хочется использовать ресурс на конкретном языке, у вас не получится.

Спустя продолжительное время один из читателей подсказал, как всё-таки задействовать локальный ресурс. Объяснять код не буду, сами поймёте, когда наберётесь опыта.

Просмотр и создание локализованных строк в режиме дизайна

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

Можно сразу создать локализованный файл через удобный мастер. Там же в меню есть пункт Edit Translations. , который выводит диалоговое окно со списком уже имеющихся строковых ресурсов из вашей программы (раньше). Вам нужно выбрать язык для перевода, а затем заполнить в таблице нужную колонку.

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

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

Непереводимая игра слов с использованием местных идиоматических выражений

Если вы решили использовать локализацию на разных языках, то можете встретиться с одной проблемой. Предположим, вы перевели только несколько строковых ресурсов и в один прекрасный день решили выложить программу в магазин приложений. Android Studio при сборке подписанного приложения может заругаться, что вы перевели не все строки. Есть два способа обхода проблемы. Вы можете использовать атрибут translatable=»false», чтобы указать среде разработке, что данная строка не требует перевода:

В окне редактора это сделать проще через флажки в столбце Untranslatable.

Второй вариант — явно указать, что все строки в файле не нужно переводить с помощью tools:ignore=»MissingTranslation».

Есть ещё один вариант, когда непереводимые строки размещаются не в ресурсе strings.xml, а в другом файле под именем donottranslate.xml.

Когда вы исправите строковые ресурсы, то избавьтесь от ошибок через Project | Clean. и попытайтесь собрать приложение заново.

Поддержка письма справа налево

Арабы и некоторые другие народы используют непривычную для европейцев схему написания текстов справа налево. В Android 4.2 появилась поддержка данного режима. В блоге (англ.) Native RTL support in Android 4.2 рассказано о некоторых вещах по этой теме.

Читайте также:  Андроид для планшета тексет

Теперь вы можете писать приложение для израильских военкоматов. Русские призывники в интервью офицерам душевного здоровья часто используют сочетание хатуль мадан (חתול מדען). Теперь вы знаете, как локализовать строки пушкинского стихотворения про кота учёного.

Несколько локалей

В Android 7.0 (API 24) пользователь может установить несколько локалей. В этом случае, если не будут найдены ресурсы для первой локали, то будут искаться ресурсы для второй локали. Таким образом, если француз знает два языка, например, французский и испанский, а в приложение не поддерживает французского, но поддерживает испанский, то пользователь увидит текст на испанском, а не на английском.

Источник

Как установить русский язык на телефоне Андроид

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

Использование меню Android

Нужно отметить, что стандартно компания Google дополняет свои операционные системы поддержкой нескольких языков, которые пользуются самой большой популярностью. В перечне есть и русский язык. Некоторые производители избавляются от определенных языков, что позволяет сократить расходы объема памяти постоянной и оперативной. Однако на практике многие производители уже не трогают языковые пакеты.

Кроме того, после покупки гаджета и при запуске мобильного устройства система должна автоматически предлагать выбрать нужный язык. Зачастую эта функция работает на всех моделях под управлением Андроид. Если такое меню не появляется, значит, аппарат уже запускался кем-то ранее. Это не является проблемой, поскольку выбрать нужный язык можно очень легко при помощи стандартных возможностей. Для этого нужно воспользоваться простой инструкцией:

  • Перейти в меню настроек смартфона «Settings», а если язык непонятен или есть иероглифы, тогда нужно нажать на шестеренку. Она может находиться не только в меню телефона, но и на панели уведомлений, которую следует сдвинуть сверху вниз.
  • Перейти по разделу «Language & Input». Зачастую он находится под иконкой в виде земного шара.
  • Тапнуть по строке «Language», которая будет самой первой из всего перечня.
  • Будет предложен весь перечень доступных языков, которые есть в системе Андроид и нужно пролистать, чтобы найти русский.

На этом этапе процесс изменения закончен. Если в перечне не будет нужного варианта, значит, производитель внес некоторые коррективы. В таком случае нужно воспользоваться другими средствами для установки русского языка.

Использование русификатора MoreLocale 2

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

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

  • Запустить раздел с настройками «Для разработчиков». Он находится в основном меню настроек.
  • Нажать на вкладку «About Phone».
  • Около 10 раз следует нажать на пункт «Build Number», чтобы включить права администратора и получить доступ к работе с системными документами. При успешном выполнении на экране отобразится уведомление «You are now a developer».
  • Вернуться назад в меню и перейти в новый раздел для разработчиков «Developer Options».
  • В нем установить галочку возле раздела «USB Debugging», что позволяет активировать отладку по USB.
  • Далее необходимо найти и скачать архив с ADB-файлом. После скачивания он распаковывается в коревой каталог диска С на ПК.
  • Соединить мобильное устройство с компьютеров через кабель USB, после чего включить командную строку при помощи меню Пуск, в поле поиска набрать «adb». Нажать на результаты.
  • После этого в строку вводится: cd c:ADB и нажимается ввод.
  • Прописать запрос «adb devices» и нажать ввод. Это позволяет увидеть зашифрованное имя смартфона, который включен к ПК. Если устройство не в состоянии определить гаджет, значит, действия на определенном пункте выполнены некорректно или используется некачественный шнур.
  • В случае правильного выполнения потребуется поочередно ввести запросы: pm list packages morelocale и pm grant jp.c.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION. Стоит отметить, что командная строка не может использовать копирование, поэтому писать запросу нужно вручную.
  • Отключить мобильное устройство от ПК, после чего зайти в утилиту MoreLocale 2.
  • В перечне с возможными языками найти русский и нажать на него для активации.
Читайте также:  Андроид пропало верхнее меню

После проведенных действий система Андроид автоматически изменит язык. Описанная программа рекомендуется для Андроид версии 4.2 и ниже, а если применяется версия от 4.2, тогда лучше установить программу Set Locale & Language или Android Debug Bridge.

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

  • На компьютер установить программу, а в дополнение записать MoreLocale 2.
  • Включить режим отладки USB на мобильном устройстве, чтобы выполнить перенастройку.
  • Подключить гаджет к ПК и выполнить распаковку приложения на локальный диск С.
  • Путь к документу должен быть следующим: C:adbadb.exe
  • В папке с нужным приложение выполнить распаковку и нажать на значок «Run».
  • В конце установки нажать любую кнопку. На подключенном телефоне включить MoreLocale 2 и активировать русский язык.
  • Сделать перезагрузку смартфона.

По мере установки могут появляться некоторые сложности. К примеру, гаджет может не читаться программой и будет написано «offline». Это указывает, что версия утилиты устарела для используемого смартфона. Чтобы исключить проблему, потребуется установить на ПК Android SDK и расположить программу в папке /platform-tools/.

Русификация клавиатуры

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

  • Первым делом необходимо установить Google Клавиатуру из Плей Маркета.
  • Перейти в меню настроек и зайти в раздел «Язык и ввод».
  • Активировать вкладку «Клавиатура Google» и нажать на строку с языками.
  • Выбрать необходимый вариант или запустить раздел «Язык системы», если мобильное устройство уже на русском.

После этого русификация клавиатуры будет окончена. Аналогичным образом может активироваться язык для любой другой клавиатуры телефона. К примеру, пользователи могут установить приложение из маркета под названием «SwiftKey Keyboard». С его помощью пользователь сможет писать на русском или украинском языках.

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

Источник

Оцените статью