Русификатор для андроид студио

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

В статье, посвященной ресурсам, мы уже затрагивали эту тему с теоретической точки зрения. Разберем теперь практическую часть. Мы уже умеем пользоваться строковыми ресурсами и меняли строчки, например, 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’. Иными словами, мы определяем не только язык, но и регион.

Читайте также:  Фифа 14 для андроид открыть все

Проведем несколько экспериментов. Удалим из файла 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 рассказано о некоторых вещах по этой теме.

Читайте также:  Восстановление данных sd карты для андроид

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

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

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

Источник

Flutter: локализация приложений средствами Android Studio

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

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

Речь идет о локализации при помощи flutter_i18n — плагина Android Studio, используя который удается избавиться от рутинной работы и шаблонного кода.

Подготовка

Сперва установите плагин flutter-i18n

После перезагрузки в структуру проекта автоматически добавятся файлы generated/i18n.dart и res/values/strings_en.arb

(файл strings_ru.arb добавлен мною вручную для русского языка)

Обратите внимание, что Android Studio 3.3.1 — 3.4 содержит какой-то косяк, из-за которого файлы локализации не генерятся. Я описывал эту проблему на stackoverflow, и получил решение. Еще одним решением является временно остаться на AS 3.2, но это на любителя.

Еще потребуется установить пакет flutter_localizations для локализации внутренних виджетов Flutter (это будет делаться за вас на системном уровне).

После этого вам достаточно будет внести в конструктор параметры локализации:

и не забыть импортировать пакет

Локализация

Просто начинайте добавлять необходимые строки, соблюдая нотацию JSON, вот так:

strings_en.arb:

Кстати, плагин реализует логику работы с plurals (множественными числами), для этого следует определенным образом называть ключи в arb-файлах. Как это работает вам станет понятно из кода примера.

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

strings_ru.arb:

При любых изменениях в этих файлах плагин будет перестраивать файл i18n.dart. Кстати, рекомендую его хотя бы просмотреть, многое станет понятнее.

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

Вот как это выглядит

Код с примером находится здесь (ветка iter_0001_localiz ).

PS
По информации awaik

под iOS не заработает локализация. Чтобы она заработала надо в Xcode добавить языки в разделе инфо. Иначе не определяет ничего и ошибок не выдает.

Источник

Android Studio

Android Studio — мощная платформа для разработки и тестирования Android-приложений.

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

Возможности

    Позволяет создавать надёжное и стабильно работающее приложение или игру; Тест производительности, аппаратное ускорение медленных Андроид-устройств; Любые внесенные изменения отображаются в реальном времени, маркировка кода; По умолчанию реализована поддержка языка Kotlin, основанного на JetBrains IDE; Работа с Android Software Development Kit, Java Development Kit (в том числе JDK 14); Загрузка Eclipse, подключение популярных плагинов для эмулятора Андроид СДК; Улучшен интерфейс, усовершенствован компилятор, удобное окно предпросмотра; Загружает проект на установленной Microsoft Windows 10, Mac OS, Linux, Ubuntu.
Читайте также:  Android app one touch call

Скриншоты

Описание

Удобное создание проекта

Программное обеспечение обладает интуитивно понятным пользовательским интерфейсом, хоть и не получило русскоязычной локализации. Не конфликтует с антивирусами. При первом запуске софта выберите «Start a new project», клавиша расположена возле надписи «Добро пожаловать». В открывшемся диалоговом окне понадобится указать имя разрабатываемого проекта, папку в которой он будет храниться и версию ОС. Также введите название своего приложения.

Дальнейший этап — выбор мобильного устройства, под которое вы планируете разработать утилиту или игру. Стоит отметить большое количество AVD шаблонов для различных гаджетов, включая всевозможные модификации смартфонов, планшетов, Android TV, умных часов под Wear OS. Возможна работа с очками виртуальной реальности и системами АндроидАвто. Есть доступ к разнообразным билдам Андроид 1.0, 2.1, 2.3, 3.0, 4.0, 4.4, 5.5 и выше.

Нажав кнопку «Next», следует выбрать один из предложенных пунктов. Тем, кто желает создавать приложение «с нуля», рекомендуется кликнуть по разделу «Empty Activity». При необходимости, можно ознакомиться и с прочими пунктами (рекомендуемый API для создания актуального на сегодня ПО — 16). Нажмите клавишу «Finish», а затем «ОК». Учтите, что скорость генерации вашего проекта и компиляции кода зависит от количества оперативной памяти и мощности процессора ПК.

Визуальный редактор XML

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

Использование GRADLE Android Studio существенно упрощает процедуру разработки приложений и полноценной упаковки APK файла. Управлять функционалом получится даже у новичков. К слову, на официальном сайте компании Google есть множество инструкций и уроков о том, как пользоваться данной интегрированной средой.

Преимущества сборки и отладки

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

Если будете тестировать на Android-гаджете, требуется подключить его к компьютеру по USB. Не забудьте запустить режим USB-отладки, а также установить галочку напротив пункта «Установка из неизвестных источников» на смартфоне/планшете. Теперь нужно нажать «Run» и «Run App». Останется указать устройство для тестирования, после чего можно запускать АПК-файл на мобильнике. Примечательно, что опция «Monitors» может показать уровень нагрузки на системные ресурсы устройства.

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

Чтобы начать тест, перейдите в раздел «Tools», а затем кликните «Android/ADV Manager». Жмём «Create Virtual Device» и выбираем модель гаджета, под который потребуется скачивание соответствующей прошивки.

Отдельного внимания заслуживает предустановленный Android SDK Manager, с его помощью пользователь сможет проводить тестирование создаваемых утилит и игр на корректность и совместимость с конкретными версиями операционок. На финальном этапе, пользователь может делать АПК-файл с применением цифровой подписи, который можно будет загрузить на Google Play. Доступна отправка дистрибутивов на облачные сервисы Google Cloud Platform. Также можно использовать средства Cloud Messaging и App Engine.

Источник

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