Как поменять язык в файлах на телефоне

Обновлено: 04.07.2024

можно ли программно изменить язык приложения, все еще используя ресурсы Android?

Если нет, можно ли запросить ресурс на определенном языке?

Я хотел бы позволить пользователю изменить язык приложения из приложения.

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

У нас есть то же самое требование для изменения языка, но мы решили согласиться с тем, что UI должен быть таким же, как UI телефона. Он работал через настройку locale, но был слишком глючным. И вы должны устанавливать его каждый раз, когда вы входите в действие (каждое действие) из моего опыта. вот код, если вам все еще нужно это (опять же, я не рекомендую)

Если у вас есть языковое содержимое-вы можете изменить эту базу на настройке.

Это действительно работает:

введите код языка в languageToLoad переменной:

Вы можете найти пример здесь

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

  • пользователь должен быть указан (через намерение) в настройках системы, чтобы изменить его вручную
  • приложение должно обрабатывать свою локализацию самостоятельно, как описано в ответе Alex

необходимо менять язык системы programmtically.

это недокументированный API и, следовательно, не должен использоваться для приложений рынка/конечного пользователя!

в любом случае, вот решение я нашел:

Если вы хотите сохранить язык, измененный по всему вашему приложению, вам нужно сделать две вещи.

во-первых, создайте базовое действие и сделайте все ваши действия простирающимися от этого:

обратите внимание, что я сохраняю новый язык в sharedPreference.

во-вторых, создайте расширение приложения следующим образом:

обратите внимание, что getLocale() это то же самое, что и выше.

вот и все! Надеюсь, это кому-то поможет.

Я изменен на немецкий язык для моего запуска приложения.

вот мой правильный код. Кто-то хочет использовать это же для меня.. (Как изменить язык в android программно)

просто добавляю лишний кусок, который меня споткнулся.

в то время как другие ответы отлично работают с "de", например

выше не будет работать, например "fr_BE" locale, поэтому он будет использовать values-fr-rBE папка или аналогичная.

необходимо следующее небольшое изменение для работы с "fr_BE"

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

вспомогательный класс язык:

необходимо переопределить attachBaseContext и вызвать LocaleHelper.onAttach () для инициализации параметров локали в приложении.

все, что вам нужно сделать, это добавить

везде, где вы хотите изменить язык.

создать класс Extends Application и создайте статический метод. Затем вы можете вызвать этот метод во всех действиях до setContentView() .

использование в деятельности:

для Android 7.0 Нуга (и ниже) следуйте этой статье:

ответ
Это включает поддержку RTL / LTR:

в каждом действии, чем нет необходимости устанавливать его каждый раз, когда вы вводите activity

единственное решение, которое полностью работает для меня, - это комбинация кода Алекса Волового с механизмом перезапуска приложения:

важные обновления:

обратите внимание, что на SDK >= 21 вам нужно позвонить '.updateConfiguration ()', в противном случае ресурс не будет обновляться.

я столкнулся с такой же проблемой. На GitHub я нашел Android-библиотека LocalizationActivity.

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

LocalizationActivity расширяет AppCompatActivity, поэтому вы также можете использовать его при использовании фрагментов.

по данным в этой статье

  1. создать MyApplication класс, который расширяет Application
  2. переопределить attachBaseContext() обновить язык.

зарегистрировать этот класс в манифесте.

создать BaseActivity и переопределить onAttach() обновить язык. необходимо для Android 6+

сделайте на ваше приложение простирается от BaseActivity .

Locale configuration должно быть установлено в каждом activity перед установкой контент - this.setContentView(R.layout.main);

сначала создайте несколько строк.xml для разных языков; затем используйте этот блок кода в onCreate() способ:

Алекс Воловой ответ работает только для меня, если он находится в onCreate методе деятельности.

ответ, который работает во всех методах, находится в другом потоке

вот адаптация кода

надеюсь, что это помогает.

обратите внимание, что это решение, используя updateConfiguration больше не будет работать с Android M релиз через несколько недель. Новый способ сделать это теперь с помощью applyOverrideConfiguration метод ContextThemeWrapper см. API doc

время для должного обновления.

во-первых, устаревший список с API, в котором он был устаревшим:

  • configuration.locale (API 17)
  • updateConfiguration(configuration, displaymetrics) (API 17)

вещь, на которую недавно не ответил ни один вопрос, - это использование нового метода.

createConfigurationContext-это новый метод updateConfiguration.

некоторые использовали его как самостоятельный это:

. но это не работает. Почему? Метод возвращает контекст, который затем используется для обработки строк.переводы xml и другие локализованные ресурсы (изображения, макеты, что угодно).

правильное использование таково:

если вы просто скопировали это в свою IDE, вы можете увидеть предупреждение о том, что API требует от вас таргетинга API 17 или выше. Это можно обойти, поместив его в метод и добавив аннотацию @TargetApi(17)

Но подождите. Как насчет старых API?

вам нужно создать другой метод, используя updateConfiguration без аннотации TargetApi.

вам не нужно возвращать контекст здесь.

теперь управлять ими может быть сложно. В API 17+ Вам нужен созданный контекст (или ресурсы из созданного контекста), чтобы получить соответствующие ресурсы на основе локализации. Как ты справляешься с этим?

хорошо, вот как я это делаю:--12-->

этот код работает, имея один метод, который делает вызовы соответствующего метода на основе какого API. Это то, что я сделал с большим количеством различных устаревших вызовов (включая Html.fromHtml). У вас есть один метод, который принимает необходимые аргументы, который затем разбивает его на один из двух (или трех или более) методов и возвращает соответствующий результат на основе уровня API. Он гибок, поскольку вам не нужно проверять несколько раз, " запись" метод делает это за вас. Метод ввода здесь setLanguage

вам нужно использовать контекст, возвращаемый при получении ресурсов. Почему? Я видел здесь другие ответы, которые используют createConfigurationContext и не используют контекст, который он возвращает. Чтобы заставить его работать так, необходимо вызвать updateConfiguration. Что является устаревшим. Используйте контекст, возвращаемый методом, чтобы получить ресурсы.

пример использования:

конструктор или что-то вроде:

и затем, где бы вы ни хотели получить ресурсы, вы делаете:

использование любого другого контекста (теоретически) нарушит это.

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

и, наконец, использовать recreate() о деятельности по обновлению содержимого. Ярлык, чтобы не создавать намерение обновить.


В системе Android очень удобная для использования система локализации, достаточно создать папку и в ней файл со строками. Но в приложение сложно встроить все возможные языки, и не плохо бы предоставить пользователю выбор языка, отличного от стандартного.
Приведу пример такой ситуации:
В приложении есть 2 языка стандартный английский и русский. Это приложение решил установить украинец, у которого аппарат на украинском языке, но так же он хорошо знает русский, а английский не очень. Но вот Андроид, обнаружив, что в приложении нет украинского языка, запустит приложение со стандартным языком, который в нашей ситуации — английский, а для того, что бы приложение запустить на русском, необходимо менять язык системы, что не очень хорошо.
Вот для этой и многих подобных ситуаций есть решение, в настройки вывести пункт выбора языка, который включает автоматический выбор языка, английский, русский, etc. (смотря какие требуются).


Приступим к написанию.
1. Необходимо создать класс Application и определить его в манифесте в соответственном разделе application в параметре android:name="".
например:

(хотя у некоторых этот класс уже может быть)
2. Создать настройку с выбором языка, для этого в файле настроек добавим:


3. В файл со строками добавим нужные строки:

4. А в файл с массивами 2 текстовых массива:

5. В созданном классе в методе onCreate объявим строковую переменную «lang», чтение переменной из настроек, изменение конфигурации приложение, и метод, который вызывается при изменении конфигурации, в котором еще раз её меняем (без повторной смены язык не хотел меняться во всем приложении). В итоге получим следующий класс:

6. После для того, что бы язык применился, необходимо полностью перезапустить приложение (finish(); тут не поможет, так как перезапускает только активити), для этого использую команду System.exit();
(В примере сделал пункт перезапуска по будильнику).
7. Для того, что бы в не возникло проблем в сети советуют в манифесте к каждому активити, в котором используется локализация:

А так же, что бы приложение отображалось правильно определить поддерживаемые размеры экранов:


Вот таким нехитрым образом можно упростить пользователю жизнь.


Плюсы этого подхода:
-Пользователю дается выбор языка.
Минусы:
-Необходимость указывать в массивах добавляемые языки.

Как перевести Android приложение на нужный вам язык на лету с помощью Language Navi (Oreo+)

Вы нашли в 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. При первом запуске приложения вам нужно будет включить его службу в разделе "Спец. возможности" в меню основных настроек системы:

Как перевести Android приложение на нужный вам язык на лету с помощью Language Navi (Oreo+)

2. В списке приложений выбрать то, которое вы хотели бы перевести

3. Выбрать (при желании) язык с которого будет производиться перевод ( Translate from ) и язык на который вы хотели бы переводить приложения (Translate To)

Как перевести Android приложение на нужный вам язык на лету с помощью Language Navi (Oreo+)

4. Наслаждаться результатом

При необходимости вы можете быстро вернуться к искодному языку в приложении открыв шторку уведомлений системы и нажав на кнопку «Stop»

Как перевести Android приложение на нужный вам язык на лету с помощью Language Navi (Oreo+)

Добавлено 02.02.2020:

Некоторое время назад Language Navi было удалено из онлайн-магазина Google. Но вы можете по-прежнему скачать его установочный APK файл по этому адресу.

В качестве замены мы могли бы порекомендовать вам воспользоваться приложением с неказистым названием "Перевести на экран" (Screen Translate), которое умеет делать то же самое, но несколько иным способом.

При его работе на экран выводится кнопка, на которую нужно нажать для выделения области экрана с текстом, который нужно перевести. Для перевода используются онлайн сервисы Google, Яндекс, Microsoft, Bing и прочие на выбор пользователя.

как поменять язык на андроиде

В большинстве прошивок на Android-аппарата русский язык, так или иначе, присутствует – соответствующий языковой пакет есть в них по умолчанию, его нужно только включить.

Способ 1: Системные настройки

Доступ к настройкам через строку состояния

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

Как видите – все довольно просто. Однако может быть ситуация, когда среди доступных языков русского нет. Такое случается, когда на аппарате установлена прошивка, не предназначенная для СНГ или РФ в частности. Её можно русифицировать с помощью следующего способа.

Способ 2: MoreLocale2

Комбинация из приложения и ADB-консоли позволяет добавить к неподдерживаемой прошивке русский язык.

Командная строка с активным ADB

Корректно определенный девайс в командной строке

Мы рассмотрели все доступные варианты установки русского языка в телефон. Если вы знаете еще какие-нибудь хитрые методы, поделитесь ими в комментариях.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Как добавить русский язык в Android

Заказать смартфон из-за рубежа в наше время — очень просто. Поэтому покупатели зачастую отдают предпочтение дешевым устройствам из Китая. Однако когда смартфон приходит по почте, владельцы сталкиваются с проблемой — в их устройстве нет русского языка. Установить «великий и могучий» в свой смартфон может быть сложной задачей для обычного пользователя. Поэтому мы решили составить простую инструкцию, как получить Андроид на русском.

Содержание

На большинстве современных смартфонов с более-менее новыми версиями Android русский язык уже есть «из-коробки». Его просто нужно активировать. Для этого нужно совершить простые действия.

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

  1. Откройте «Настройки» или “Settings”. Найдите пункт «Язык и ввод» или “Language & Input” (значок с глобусом). В открывшемся меню выберите пункт «Язык» или “Language” (первый пункт).

Как добавить русский язык в Android
Как добавить русский язык в Android

Как добавить русский язык в Android

Если русского языка нет в списке, то вам поможет вторая инструкция.

Альтернативный способ русификации Android

Данный способ актуален для смартфонов под управлением Android 4.2 Jelly Bean и новее. Способ предполагает подключение устройства к компьютеру и загрузку в него файла локализации.

Инструкция — как получить русский язык на Андроид, если его изначально нет:

    Скачайте приложение MoreLocale 2 на Трешбоксе. Его можно даже не открывать.

Как добавить русский язык в Android
Как добавить русский язык в Android
Как добавить русский язык в Android

Как добавить русский язык в Android

Как добавить русский язык в Android

Инструкция для старых устройств

Если ваше устройство работает под управлением Android 4.1 Jelly Bean и старее, а еще в списке его системных языков нет русского, то нужно использовать немного другую инструкцию:

  1. Скачиваем приложение MoreLocale 2 на Трешбоксе.
  2. Запускаем его и на первом же экране нажимаем кнопку “CustomLocale”.

Как добавить русский язык в Android

Как добавить русский язык в Android
Как добавить русский язык в Android
Как добавить русский язык в Android

Как добавить русский язык в Android

Клавиатура с русским языком в Android

Последний этап достижения русского Андроида — это установка клавиатуры с соответствующим языком. Для Android создано несколько качественных клавиатур, которые поддерживают русский ввод. Одна из самых популярных и качественных — Клавиатура Google. Именно ее установку мы и рассмотрим.

Инструкция по установке русской клавиатуры в Android:

Как добавить русский язык в Android
Как добавить русский язык в Android

Как добавить русский язык в Android
Как добавить русский язык в Android
Как добавить русский язык в Android
Как добавить русский язык в Android

Как добавить русский язык в Android

Также вам могут понравиться следующие клавиатуры с поддержкой русского языка:

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

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

Читайте также: