- Смена языка приложения в настройках
- Как добавить русский язык на Андроид-смартфон
- Установка русского языка из меню Андроид
- Установка русификатора
- Установка русской клавиатуры
- Советуют читатели 4PDA
- Как поменять язык в вк на компьютере, на телефоне, в приложении
- Почему самопроизвольно меняется язык Вконтакте
- Пробуем менять с телефона
- Как поменять страну в ВК
- Куда нажимать, когда ничего не понятно?
- Переключение языка в Android-приложении
- О чем пойдет речь, а о чем не пойдет?
- Что мы хотим сделать?
- Архитектурное решение
- Форматирование чисел, денежных сумм и процентов
- Представление языков и валют
- Особенности форматирования числовых значений
- Числа
- Валюты
- Проценты
- DecimalFormat
- В итоге
- Как проще тестировать? (бонус)
Смена языка приложения в настройках
В системе Android очень удобная для использования система локализации, достаточно создать папку и в ней файл со строками. Но в приложение сложно встроить все возможные языки, и не плохо бы предоставить пользователю выбор языка, отличного от стандартного.
Приведу пример такой ситуации:
В приложении есть 2 языка стандартный английский и русский. Это приложение решил установить украинец, у которого аппарат на украинском языке, но так же он хорошо знает русский, а английский не очень. Но вот Андроид, обнаружив, что в приложении нет украинского языка, запустит приложение со стандартным языком, который в нашей ситуации — английский, а для того, что бы приложение запустить на русском, необходимо менять язык системы, что не очень хорошо.
Вот для этой и многих подобных ситуаций есть решение, в настройки вывести пункт выбора языка, который включает автоматический выбор языка, английский, русский, etc. (смотря какие требуются).
Приступим к написанию.
1. Необходимо создать класс Application и определить его в манифесте в соответственном разделе application в параметре android:name=»».
например:
(хотя у некоторых этот класс уже может быть)
2. Создать настройку с выбором языка, для этого в файле настроек добавим:
3. В файл со строками добавим нужные строки:
4. А в файл с массивами 2 текстовых массива:
5. В созданном классе в методе onCreate объявим строковую переменную «lang», чтение переменной из настроек, изменение конфигурации приложение, и метод, который вызывается при изменении конфигурации, в котором еще раз её меняем (без повторной смены язык не хотел меняться во всем приложении). В итоге получим следующий класс:
6. После для того, что бы язык применился, необходимо полностью перезапустить приложение (finish(); тут не поможет, так как перезапускает только активити), для этого использую команду System.exit();
(В примере сделал пункт перезапуска по будильнику).
7. Для того, что бы в не возникло проблем в сети советуют в манифесте к каждому активити, в котором используется локализация:
А так же, что бы приложение отображалось правильно определить поддерживаемые размеры экранов:
Вот таким нехитрым образом можно упростить пользователю жизнь.
Плюсы этого подхода:
-Пользователю дается выбор языка.
Минусы:
-Необходимость указывать в массивах добавляемые языки.
Источник
Как добавить русский язык на Андроид-смартфон
Уровень сложности: для начинающих. Главное удобство управления любым смартфоном заключается в понятном и лаконичном расположении всех элементов и пунктов меню. Но как быть в том случае, если языковые настройки гаджета отличны от «великого и могучего», а для навигации по подпунктам меню требуется полная русификация устройства? Все надписи отображаются на английском, или, что ещё хуже, на китайском? Не проблема! В этой инструкции мы расскажем о том, как добавить русский язык на Андроид-смартфон из меню системы и сторонних русификаторов, а также, как добавить русскую раскладку клавиатуры.
Установка русского языка из меню Андроид
Для того чтобы установить русский язык в качестве системного, на большинстве смартфонов достаточно выполнить несколько простых шагов. Мы прилагаем несколько вариантов скриншотов одних и тех же пунктов меню на английском и китайском языках. Именно они помогут добраться до нужного места в настройках.
1. Откройте Settings («Настройки») и найдите пункт Language & Input («Язык и ввод»).
2. В открывшемся меню выберите Language («Язык»).
3. В предложенном списке найдите «Русский» и, единожды тапнув по нему, установите в качестве системного.
В случае, если в списке отсутствует русский язык, потребуется загрузка русификатора из магазина приложений Google Play.
Установка русификатора
1. Для установки русского языка на смартфон, в списке языковых настроек которого его наличие не предусмотрено, из магазина приложений Google Play загрузите утилиту MoreLocale 2.
2. Установив приложение MoreLocale 2, получите права доступа для разработчиков. Для этого откройте меню Settings («Настройки») — About («О телефоне»).
3. В открывшемся меню найдите пункт Build Number в котором указана версия прошивки, установленной на вашем устройстве.
4. Продолжайте тапать до появления надписи You are now a developer («Теперь вы разработчик»). Нажмите клавишу «Назад». В списке настроек появится дополнительный пункт меню — Developer options («Для разработчиков»).
5. Откройте этот пункт и в списке, найдите USB (Android) Debugging («Отладка по USB») и поставьте соответствующий ползунок в положение On.
6. Загрузите архив с исполнительным ADB-файлом (скачать) и разархивируйте папку ADB в корень диска C.
7. Подключите смартфон к компьютеру, работающему под управлением операционной системы Windows. Запустите командную строку и для перехода в директорию с только что скачанным приложением введите команду: cd c:\adb.
Для того чтобы убедиться, что смартфон определился системой, в командной строке введите следующую команду: adb devices и нажмите клавишу Enter.
Если устройство опознано, в командной строке отобразится его кодовое имя.
8. Введите следующую команду: pm list packages morelocale, после чего еще одну: pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION. Финальный экран командной строки должен выглядеть так:
Отключите смартфон от компьютера и откройте приложение MoreLocale 2.
9. В списке языков появится «Русский». Выберите его.
Система автоматически перейдет на русскую локализацию. Русификация окончена.
Установка русской клавиатуры
Для установки русской клавиатуры достаточно загрузить соответствующую клавиатуру из магазина приложений Google Play.
1. Скачайте приложение «Google Клавиатура».
2. Откройте «Настройки» — «Язык и ввод» и выберите «Клавиатура Google».
3. Перейдите в меню «Язык» и отметьте требуемые языки ввода соответствующими переключателями.
На этом установка русской клавиатуры окончена.
Советуют читатели 4PDA
Советует groove-max: В программе MoreLocale 2 не всегда будет нужный вам язык в списке. Особенно это касается телефонов Samsung. Нужно либо через Custom Locale указывать нужную локализацию, либо добавлять её в список уже существующих через меню программы.
Источник
Как поменять язык в вк на компьютере, на телефоне, в приложении
Почему самопроизвольно меняется язык Вконтакте
Здравствуйте друзья! Сейчас все современные люди пользуются различными социальными сетями и Вконтакте не исключение. У новичков, которые только впервые купили себе компьютер, иногда возникает проблема во время использования Вк – автоматическое изменение языка.
Данная проблема происходит из-за многих причин, которые на неё влияют. Это может проявляться после обновления Вконтакте, или во время «глюков» в системе. Итак, как изменить язык в Вк на компьютере на русский или какой-либо другой? На этот вопрос постараюсь ответить в следующей части статьи.
Пробуем менять с телефона
Давайте попробуем проделать эту процедуру с телефона Андроид или iPhone. Что, не получается? Все потому, что в приложении нет раздела с языковыми настройками. Как быть?
Менять язык нужно непосредственно в операционной системе телефона. Разбираемся на примере .
Переходим в раздел «», затем пункт «». Открываем раздел «», затем переходим к разделу «». Здесь нажимаем на кнопку «», и выбираем в списке нужный язык.
Это необходимо делать только в первый раз. После добавления, между языками можно переключаться, просто отмечая приоритетный в списке добавленных.
Попробуйте теперь запустить приложение ВК. Язык будет соответствовать выбранному.
Как поменять страну в ВК
Ещё один пункт, связанный с предпочтительными настройками языка — Страна и регион проживания. Просто перейдите к редактированию страницы и выберите там вкладку “Контакты”.
Страну можно вписать любую, но только реально существующую. В зависимости от выбранного региона, появится возможность задать и более точное географическое положение, такое как населённый пункт и подробный адрес, вплоть до номера дома.
Куда нажимать, когда ничего не понятно?
Если вдруг вы по ошибке выбрали язык, который совершенно не понимаете, и все пункты в меню у Вас теперь отображаются иероглифами, воспользуйтесь схематической подсказкой — на картинках показано, куда нужно кликать.
Шаг 1. Идем в настройки.
Нажмите вот сюда, чтобы попасть к списку языков
Шаг 2. Выбираем язык. Если нет нужного, открываем полный список.
Шаг 3. Выбираем нужный язык. Здесь очень удобно — родной язык подсвечивается. Его легко увидеть.
Выбираем русский язык
Источник
Переключение языка в Android-приложении
Есть простой способ реализовать переключение языка в Single-Activity приложении. Стек экранов при этом подходе не сбрасывается, пользователь остается там, где переключил язык. Когда пользователь переходит на предыдущие экраны, они сразу отображаются переведенными. А результат локализации чисел, денежных сумм и процентов может удивить дизайнеров.
О чем пойдет речь, а о чем не пойдет?
Далее не будет ничего о:
- Теории, которая лежит в основе форматированного вывода строк, и деталях реализации библиотек, которые этим занимаются. То есть того, что помогло бы вам написать свою библиотеку.
- Ресурсах строковых, векторных и прочих. О том, какие квалификаторы ресурсов использовать, какие картинки на арабском должны отображаться справа налево, а какие нет, и других тонкостях.
- Процессе централизованного перевода ресурсов для всех платформ. Как его организовать, чтобы всем жилось хорошо, даже iOS-никам.
А пойдет речь о:
- Практике. Рассмотрим задачу, ее ограничения и решение с диаграммами, примерами и фрагментами кода.
- API SDK, которое было использовано для этого решения.
- Особенностях форматирования числовых значений для разных региональных стандартов, о которых стоит знать дизайнерам.
Что мы хотим сделать?
Пусть в нашем приложении есть экран с настройками, и мы хотим добавить в него пару новых пунктов, один из которых позволил бы переключать язык приложения, а другой изменять валюту, в которой отображаются денежные суммы. Приведем примеры того, как это может выглядеть.
Кроме перевода текста и отображения верстки справа налево, эти настройки должны влиять на формат отображения числовых значений. Необходимо, чтобы все отображалось согласно выбранной локали.
Архитектурное решение
Представим, что наше приложение написано в соответствии с Single-Activity подходом. Тогда механизм переключения языка может быть реализован следующим образом.
SettingsInteractor является источником текущего значения языка. Он позволяет подписаться на это значение, получить его синхронно и подписаться только на обновления. В случае необходимости можно ввести дополнительную абстракцию над SettingsInteractor по принципу разделения интерфейса. На диаграмме несущественные детали опущены.
AppActivity при создании заменяет контекст на новый, чтобы приложение использовало ресурсы для выбранного языка.
AppPresenter в свою очередь подписывается на обновления языка и уведомляет View об изменениях.
AppActivity при получении уведомления о смене языка пересоздается.
AppActivity является единственной в приложении. Все остальные экраны реализованы фрагментами. Поэтому при пересоздании активити стек экранов сохраняется системой. При возврате на предыдущие экраны они будут переинициализированы и отображаться переведенными. Пользователь останется на списке выбора языка и увидит результат своего выбора мгновенно.
Форматирование чисел, денежных сумм и процентов
Кроме замены контекста необходимо форматировать данные – числа, денежные суммы, проценты. Пусть эту задачу каждая View делегирует отдельному компоненту, назовем его UiLocalizer .
Для преобразования числа в строку UiLocalizer использует соответствующие инстансы NumberFormat .
Обратите внимание, что валюту необходимо устанавливать отдельно.
Если вы экономите такты CPU и биты памяти, а переключение валюты и языка – основная и часто используемая функция вашего приложения, то здесь, конечно, необходим кэш.
Представление языков и валют
Экземпляры класса Locale создаются по языковому тегу, который состоит из двухбуквенного кода языка и двухбуквенного кода региона. А экземпляры класса Currency – по трехбуквенному ISO коду. В этом виде язык и валюта должны сериализовываться для сохранения на диск или передачи по сети, и тогда будет хорошо. Приведем примеры.
Особенности форматирования числовых значений
Результат форматирования чисел в соответствии с региональными стандартами может разойтись с ожидаемым. Символ валюты или ее трехбуквенный код на разных языках будет выводиться по-разному. Знак минуса у отрицательных денежных значений будет появляться в неожиданных местах, а кое-где вместо него будут выводиться скобки. Знак процента может оказаться не совсем тем знаком, к которому мы привыкли.
Дело в том, что с точки зрения региональных шаблонов итоговая строка состоит из префикса и суффикса для положительных и отрицательных чисел, разделителя тысячных и десятичного разделителя, а они разные для разных локалей.
Числа
Language | Negative Prefix | Negative Suffix | Positive Prefix | Positive Suffix | Grouping Separator | Decimal Separator |
---|---|---|---|---|---|---|
ru-RU | «-« | » « | «,» | |||
en-US | «-« | «,» | «.» | |||
iw-IL | «-« | «,» | «.» | |||
ar-AE | «-« | «٬» | «٫» | |||
fr-FR | «-« | » « | «,» | |||
de-DE | «-« | «.» | «,» | |||
de-CH | «-« | «‘» | «.» | |||
da-DK | «-« | «.» | «,» |
Валюты
Language | Negative Prefix | Negative Suffix | Positive Prefix | Positive Suffix | Grouping Separator | Decimal Separator |
---|---|---|---|---|---|---|
ru-RU | «-« | » ₽» | » ₽» | » « | «,» | |
en-US | «-$» | «$» | «,» | «.» | ||
iw-IL | «-« | » ₪» | » ₪» | «,» | «.» | |
ar-AE | «-« | » د.إ.» | » د.إ.» | «٬» | «٫» | |
fr-FR | «-« | » €» | » €» | » « | «,» | |
de-DE | «-« | » €» | » €» | «.» | «,» | |
de-CH | «CHF-« | «CHF « | «‘» | «.» | ||
da-DK | «-« | » kr.» | » kr.» | «.» | «,» |
Проценты
Language | Negative Prefix | Negative Suffix | Positive Prefix | Positive Suffix | Grouping Separator | Decimal Separator |
---|---|---|---|---|---|---|
ru-RU | «-« | «%» | «%» | » « | «,» | |
en-US | «-« | «%» | «%» | «,» | «.» | |
iw-IL | «-« | «%» | «%» | «,» | «.» | |
ar-AE | «-« | » ٪» | » ٪» | «٬» | «٫» | |
fr-FR | «-« | » %» | » %» | » « | «,» | |
de-DE | «-« | » %» | » %» | «.» | «,» | |
de-CH | «-« | «%» | «%» | «‘» | «.» | |
da-DK | «-« | » %» | » %» | «.» | «,» |
Более того, результаты форматирования для Android SDK и JDK могут быть разными. При этом все варианты правильные, каждый из них используется в определенных контекстах.
DecimalFormat
Когда мы создаем NumberFormat для форматирования тех или иных значений, мы получаем объекты класса DecimalFormat , которые просто сконфигурированы разными шаблонами. Приведя объект к типу DecimalFormat и используя его интерфейс, можно изменить части шаблона, чтобы все сломать. Но лучше поклоняться данности.
Также можно написать тест, чтобы насладиться разнообразием. Не для всех локалей одна и та же валюта выводится символом.
В итоге
Общая схема решения выглядит следующим образом.
Жизненный цикл AppActivity является жизненным циклом всего приложения. Поэтому достаточно пересоздать ее, чтобы перезапустить все приложение и применить выбранный язык. А поскольку активити одна, подписку на изменение языка достаточно держать в одном месте – в AppPresenter .
Как мы увидели, региональные форматы вывода чисел нетривиальны. Не стоит жестко задавать единый шаблон на все случаи жизни. Лучше доверить форматирование SDK и договориться, что числа будут выводиться по стандарту, а не как нарисовано на макетах.
Как проще тестировать? (бонус)
Для экономии времени можно воспользоваться следующим флагом.
Выбрать необходимую псевдолокаль в настройках телефона.
И наблюдать, как едет верстка из-за длинного текста, а некоторые элементы UI упорно не хотят отображаться справа налево.
Более подробную информацию можно прочитать в документации.
Стоит отметить, что псевдолокали не будут работать, если вы подменяете контекст, как в решении выше. Вы ведь подменяете контекст. Поэтому необходимо добавить en-XA и ar-XB в список выбора языка внутри приложения.
На этом все. Хорошей вам локализации и хорошего настроения!
Источник