Как поменять язык в приложении h m
Вопрос заблокирован. Ответить на него невозможно.
Удалить запись? Все, что вы написали, станет недоступно. Не удалось прикрепить файл. Нажмите здесь, чтобы повторить попытку. Сейчас уведомления отключены и вы не получаете электронные письма о новых записях. Чтобы включить их, откройте свой профиль и перейдите в настройки уведомлений.Добавить или удалить ссылку
We found the following personal information in your message:
This information will be visible to anyone who visits or subscribes to notifications for this post. Are you sure you want to continue?
Сейчас уведомления отключены и вы не получаете электронные письма о новых записях. Чтобы включить их, откройте свой профиль и перейдите в настройки уведомлений . Компания Google очень серьезно относится к неправомерному использованию своих сервисов. Мы рассматриваем подобные нарушения в соответствии с законодательством вашей страны. Получив вашу жалобу, мы изучим ее и примем необходимые меры. Мы свяжемся с вами только в том случае, если потребуется дополнительная информация или появятся интересующие вас сведения.Если вам нужно, чтобы тот или иной контент был изменен согласно действующему законодательству, воспользуйтесь этим инструментом.
Запись не относится к теме, посвящена сторонним продуктам, написана в неуважительной форме или содержит персональную информацию. Запись содержит домогательства, дискриминационные высказывания, изображение наготы, вредоносный, противозаконный, сексуальный или рекламный контент или ее автор выдает себя за другое лицо. Компания Google очень серьезно относится к неправомерному использованию своих сервисов. Мы рассматриваем подобные нарушения в соответствии с законодательством вашей страны. Получив вашу жалобу, мы изучим ее и примем необходимые меры. Мы свяжемся с вами только в том случае, если потребуется дополнительная информация или появятся интересующие вас сведения.Если вам нужно, чтобы тот или иной контент был изменен согласно действующему законодательству, воспользуйтесь этим инструментом.
Есть простой способ реализовать переключение языка в 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 в список выбора языка внутри приложения.
Фитнес-браслет Mi Band 5 стал настоящим бестселлером 2020 года. Эту продукцию покупают люди со всего мира, причем даже поклонники девайсов Apple не брезгуют приобретать новинку от Xiaomi. Однако многие новоявленные владельцы Mi Band 5, решившие сэкономить и купить китайскую версию часов, сталкиваются с неожиданной проблемой – отсутствием русификации меню браслета. Мы решили помочь таким людям и подготовили детальную инструкцию, рассказывающую, как установить русский язык на Mi Band 5. Потому читайте нашу статью, выполняйте рекомендации и больше не задумывайтесь о том, как поменять язык на Mi Band 5 китайской версии.
Почему на Xiaomi Mi Band 5 русский язык не всегда установлен по умолчанию
Многие устройства из экосистемы Xiaomi делятся на две группы. На рынок КНР поставляются гаджеты с китайской прошивкой. На международный рынок поступают глобальные вариации девайсов. Но в случае с умными браслетами принципиальной разницы между моделями нет, за исключением стоимости и перечня поддерживаемых языков. Китайская версия дешевле, но поддерживает два языка (китайский и английский), глобальная – дороже, но там присутствует русификация.
Однако наши соотечественники любят экономить, поэтому выбирают третий вариант. Они приобретают китайскую вариацию часов с намерением установить русский язык на Mi Band 5. Суть решения понятна – получить стандартный функционал за меньшие деньги. Вот только без соответствующих знаний поменять язык на Mi Band 5 не так просто. Поэтому мы рекомендуем не мучиться, а покупать браслет с глобальной прошивкой. Или хотя бы русифицировать приобретенное устройство в полном соответствии с неоднократно проверенными инструкциями. Собственно, о способах русификации мы далее и расскажем.
Как установить русский язык на Mi Band 5 через Android
Процесс состоит из нескольких этапов. Для начала убедитесь, что браслет включен и подключен к телефону, а на самом смартфоне Xiaomi установлена официальная версия Mi Fit. Далее выполните нижеперечисленные действия:
- откройте Гугл Плей и скачайте приложение Notify for Mi Band;
- установите программу и дайте ей все запрашиваемые разрешения;
- запустите приложение, зайдите в «Настройки» – «Разное» – «Настройки браслета»;
- найдите опцию «Язык Mi Band» и выберите нужный вариант.
Этот способ позволяет установить на Xiaomi Mi Band 5 русский язык без каких-либо сложных манипуляций, поэтому рекомендуем применять именно упомянутый метод. Он действительно прост и безопасен. Кстати, после выбора нужных настроек приложение можно удалить. Русификация не слетит.
Как заново поставить русский язык на Xiaomi Mi Band 5, если он внезапно пропал
После завершения русификации владельцы браслетов Xiaomi чаще всего возвращаются к использованию приложения Mi Fit. И вот совсем недавно многие пользователи этой программы столкнулись с неприятным моментом. Ранее установленный на часы Mi Band 5 русский язык неожиданно пропал, а его восстановление вызывает видимые затруднения. Если такое случилось и с вами, не расстраивайтесь. Мы расскажем, как выпутаться из упомянутой ситуации.
На самом деле русский язык из браслета Mi Band 5 никуда не исчез. Русификация слетела из-за очередного обновления прошивки. Поэтому решить вопрос довольно легко. Достаточно скачать Mi Fit 4.4.0 (эта версия была стабильной) и подключить телефон к фитнес-трекеру. После этого русский язык на Xiaomi Mi Band 5 восстановится автоматически. Если этого не произошло, то после установки ПО активируйте в настройках браслета опцию «Использовать язык телефона». Этот шаг позволит достичь требуемого результата.
Как поставить русский язык в Xiaomi Mi Band 5 через iOS
Для счастливых обладателей iPhone и прочей продукции Apple предусмотрен другой способ русификации браслета Сяоми. Подготовка стандартна (как в случае с устройствами на ОС Android) – скачивание Mi Fit и последующая привязка часов к смартфону. А вот далее перечень действий немного меняется:
- скачайте приложение AmazTools из официального магазина App Store;
- установите и запустите софт;
- включите на телефоне протокол Bluetooth;
- подключитесь к браслету;
- перейдите в настройки, найдите раздел «Язык часов»;
- установите русский язык на Mi Band 5.
Если создать подключение не получится, то зайдите в Mi Fit, найдите в списке умных устройств Xiaomi Mi Band 5, после чего отключите опцию «Ограничения подключения». После установки удобного языка можно будет вернуть настройки к прежним значениям.
Ниже размещаем видеоинструкцию, как поставить русский язык в Mi Band 5 на iOS.
Вы нашли в Google Play Маркет интересное приложение, но в нем отсутствует перевод на ваш язык? Не беда: вы в любой момент сможете перевести любое Android приложение на один из 103 языков с помощью приложения Language Navi.
Интересной особенностью Language Navi, которое только что появилось в Google Play Маркет является то, что оно не вносит никаких изменений приложение которое переводит. Принцип работы Language Navi основан на том, чтобы считывать текст с экрана вашего смартфона или планшета и переводить его на лету с помощью системы автоматического перевода Google.
Выглядит работа Language Navi достаточно фантастически: все тексты в запущенном вами приложении через пару-тройку секунд переводятся на язык, который вы заранее выбрали.
Среди достоинств и возможностей приложения:
- Не требует для работы Root прав
- Автоматическое определение исходного языка
- Перевод на один из 103 языков с помощью Переводчика Google
В ближайшем будущем разработчик обещает добавить:
- Локализацию самого приложения на разные языки
- Оптическое распознавание текста
Работает приложение на устройствах с операционной системой Android версии 8.0 Oreo и выше, и так как новинка пока еще находится на стадии разработки, она пока еще не лишена отдельных недостатков: Language Navi иногда переводит не все тексты, а размеры шрифтов перевода не всегда соответствуют размерам шрифта оригинала.
Тем не менее, тем кому нужно быстро перевести Android приложение на понятный язык, чтобы оперативно разобраться с его функциями и возможностями, оно придется как нельзя кстати.
Пользоваться Language Navi очень просто:
1. При первом запуске приложения вам нужно будет включить его службу в разделе "Спец. возможности" в меню основных настроек системы:
2. В списке приложений выбрать то, которое вы хотели бы перевести
3. Выбрать (при желании) язык с которого будет производиться перевод ( Translate from ) и язык на который вы хотели бы переводить приложения (Translate To)
4. Наслаждаться результатом
При необходимости вы можете быстро вернуться к искодному языку в приложении открыв шторку уведомлений системы и нажав на кнопку «Stop»
Добавлено 02.02.2020:
Некоторое время назад Language Navi было удалено из онлайн-магазина Google. Но вы можете по-прежнему скачать его установочный APK файл по этому адресу.
В качестве замены мы могли бы порекомендовать вам воспользоваться приложением с неказистым названием "Перевести на экран" (Screen Translate), которое умеет делать то же самое, но несколько иным способом.
При его работе на экран выводится кнопка, на которую нужно нажать для выделения области экрана с текстом, который нужно перевести. Для перевода используются онлайн сервисы Google, Яндекс, Microsoft, Bing и прочие на выбор пользователя.
Читайте также:
- Почему не работает электронное приложение к учебнику
- Ковалев алексей как река енисей telegram
- 1с сборщик мобильных приложений преобразование к типу число не может быть выполнено
- Как понять что друг удалил приложение zenly
- Приложение и служба ammyy admin не могут работать одновременно в режиме ожидания сеанса