Вот здесь показано красиво как получить языки (имеется в виду код языка который сейчас в системе стоит):
Locale.getDefault().getLanguage() ---> en
Locale.getDefault().getISO3Language() ---> eng
Locale.getDefault().getCountry() ---> US
Locale.getDefault().getISO3Country() ---> USA
Locale.getDefault().getDisplayCountry() ---> United States
Locale.getDefault().getDisplayName() ---> English (United States)
Locale.getDefault().toString() ---> en_US
Locale.getDefault().getDisplayLanguage()---> English
Locale.getDefault().toLanguageTag() ---> en-US
Вообще логика такая – вы создаете базовый strings.xml
например английский:
<?xml version="1.0" encoding="utf-8"?> <resources>
<string name="hello_world">Hello world!</string>
<string name="hello_name">Hello %s!</string>
</resources>
дальше вы добавляете через мастера переводов новую локаль, например русский. Забрасываете туда все переводы строк из английского strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_world">Привет мир!</string>
<string name="hello_name">Привет%s!</string>
</resources>
и дальше система сама решает какой файл взять. Например у вас в системе стоит английский язык, тогда система будет брать английский strings.xml. То какой файл выберет ось, не зависит от модели устройства, а только от языка который вы используете. Ресурса с переводами системы нет, все делается вручную. Вот есть документация по вопросу локализации приложения. Так же вот туториал, где прекрасно расписан принцип локализации вашего приложения. Вот как добавить новую локаль:
Туторил на русском с инструкцией по добавлению нового языка.
UPDATE
Нашел вот такой интересный вопрос на просторах интернета. В нем указывается что сама система может вам выдать разные стринги. Вот так же есть такой issue. И вот тут вроде как есть все строки которые присутствуют в системе. Вот тут тоже много системных строк.
Нужно удалить все языки которые есть в системе за исключением Русского и Английского.
Платформа RK2926.
Где эти языки хранятся ?
-
Вопрос заданболее трёх лет назад
-
6124 просмотра
Пригласить эксперта
В /system/framework/framework-res.apk
upd: там будет папка “res”, в которой будут папки с названиями типа “ru” – это и есть папки с языками. После изменения .apk требуется переподписать. Перед изменениями сделайте бекап файла
-
Показать ещё
Загружается…
20 мая 2023, в 17:01
3000 руб./за проект
20 мая 2023, в 15:39
1000 руб./в час
20 мая 2023, в 15:37
750 руб./в час
Минуточку внимания
Высокий уровень комфорта — то, что больше всего нас интересует в смартфоне. Поэтому мы стараемся выбирать устройства с быстрым процессором и хорошим экраном. Однако все характеристики перестают иметь хоть сколько-нибудь важное значение, когда отсутствует русский язык на телефоне Андроид. Как пользоваться таким девайсом и получать от него удовольствие? Да никак! Тут уж либо учить иностранные языки, либо перепрошивать аппарат с риском превратить его в кирпич, либо прочитать наш материал о том, как установить на телефоне русский язык. Именно последним вариантом я и рекомендую воспользоваться каждому из вас.
Русский язык можно поставить даже на телефон, где его нет по умолчанию
Почему смартфон без русского языка
В большинстве своем современные смартфоны оснащаются мультиязычными прошивками, которые позволяют выбрать в настройках хоть русский, хоть узбекский язык. Однако добавление в оболочку конкретного языка напрямую зависит от того, на какой рынок ориентирована модель. Поэтому в Китае выбор чаще всего ограничивается родным (китайским в нескольких его вариациях) и языком международного общения (английским).
На наличие или отсутствие языков влияет то, какая прошивка установлена на смартфоне
Если вы покупаете китайскую версию смартфона, то с высокой долей вероятности она будет лишена русскоязычной локализации. Происходит это не всегда (в частности, на iQOO для внутреннего рынка есть русский), но очень часто. Помимо прошивки на наличие перевода влияют настройки телефона. Кто-то, например, просто забывает включить русский на Андроиде, после чего мучительно пытается найти нужный вариант среди китайских иероглифов или букв арабского алфавита.
⚡ Подпишись на Androidinsider в Дзене, где мы публикуем эксклюзивные материалы
Как поменять язык на телефоне
Русификация Андроид возможна без сторонних приложений и скачивания дополнительных языковых пакетов. Но этот вариант является работоспособным только в том случае, если прошивка имеет нужный вам вариант локализации. Поэтому взгляните на самый простой вариант, как изменить язык на Андроид, если по умолчанию используется английский:
- Запустите приложение «Settings».
- Перейдите в раздел «Additional Settings».
- Откройте вкладку «Languages and input», а затем — «Languages».
- Выберете необходимый язык.
Русский язык легко включается через настройки, но только в том случае, если он предусмотрен системой
На смартфонах разных производителей названия пунктов меню могут отличаться, поэтому не стесняйтесь пользоваться поисковой строкой настроек: введите слово «Language» и откройте предлагаемую вкладку. Если по умолчанию на Андроид стоит китайский язык, то выполняйте поиск по запросу «语言» или «yuyan».
🔥 Загляни в телеграм-канал Сундук Али-Бабы, где мы собрали лучшие товары с АлиЭкспресс
Скачать русский язык на телефон Андроид
Скорее всего, вы открыли этот текст не из-за того, что не можете сделать пару кликов в настройках, ведь даже там нужный язык нередко отсутствует. Чтобы исправить недоразумение, вам понадобятся приложения для русского языка на Андроид.
Но сначала прочитайте наш текст о том, как узнать версию Android, поскольку план действий будет отличаться в зависимости от поколения ОС. Так, если у вас установлена старая версия Android 4.1, то для русификации телефона потребуется:
- Скачать приложение MoreLocale 2 и установить его через APK.
- Запустить программу и нажмите кнопку «Custom Locale».
- В поле «ISO3166» выбрать «Russian Federation», а в «ISO639» — «Russian».
- Нажать кнопку «Set».
На старых смартфонах русский язык устанавливается в два счета, а вот на более-менее современных моделях придется попыхтеть
Инструкция максимально простая, но с каждым обновлением Google повышает безопасность Android, и на смартфонах с более свежей операционной системой, которая, скорее всего, установлена у вас, парой нажатий локализацию не настроить. А для того, чтобы перевести телефон на русский язык, понадобится компьютер и 10-15 минут свободного времени, в течение которых нужно сделать следующее:
- Включить режим разработчика, для чего необходимо перейти в раздел «About phone» и тапнуть несколько раз по версии прошивки, пока на экране не появится надпись в духе «Congratulations, you have become a developer».
- Перейти в раздел «Additional Settings», после чего — «Developer options».
- Включить отладку по USB, активировав пункты «USB debugging», «Install via USB» и «USB debugging (Security settings)».
- Скачать на компьютер архив Android Debug Bridge и распаковать его содержимое в корень диска или по пути «Этот компьютер» > «Windows (C)» > «Пользователи» > «Имя пользователя».
- Скачать на телефон приложение Language Changer.
- По запросу «Russian» найти в программе русский язык и нажать на него.
- При появлении надписи «Permission Denied» нажать кнопку «Show how to use pm command».
- На экране появится команда, которая поможет сделать русский язык на Android. Не закрывайте приложение и подключите смартфон к ПК, используя USB-кабель. Также не забудьте разрешить обмен данными, выбрав опцию «File transfer» через всплывающее окно, отображаемое на дисплее телефона при подключении к компьютеру.
- На ПК запустить командную строку. Для этого зажать клавиши «Win» + «R», а в появившемся окне прописать запрос «cmd» и нажать кнопку «Enter».
- В командной строке написать «adb.exe» и подтвердить действие нажатием на «Enter». Если все сделано верно, то на экране ПК появится окно с перечислением шаблонов для работы с ADB.
- Прописать «adb devices» и подтвердить команду.
- При появлении сообщения «daemon started successfully» вернуться к запущенному на смартфоне приложению Language Changer и через командную строку написать запрос, который отображается на экране мобильного устройства. В моем случае это «adb shell pm grant com.dogfeederz.localechanger android.permission.CHANGE_CONFIGURATION».
- Нажать клавишу «Enter» для подтверждения действия.
- Перезапустить приложение Language Changer, предварительно выгрузив его из оперативной памяти.
- Снова найти в списке русский язык и нажать на него.
- При успешном выполнении всех предыдущих шагов инструкции в нижней части экрана появится уведомление «Изменено».
В настройках нужно активировать все опции, связанные с отладкой по USB
Примерно так должно выглядеть содержимое архива ADB в распакованном виде
Язык сразу поменяется на старом Андроиде, а на новом придется продолжать
Если вы правильно указали расположение файла, то в командной строке появится нечто подобное
На этом операцию можно считать почти законченной
На моем смартфоне русский язык уже был вшит в систему, но после принудительной установки пакета «Русский» в настройках не выделяется, как это происходит при стандартном изменении параметров
На Android сразу же должен появиться русский язык. При этом, если вы зайдете в настройки телефона, то не обнаружите нужный вариант в списке, хотя весь интерфейс или большая его часть будут локализированы.
⚡ Подпишись на Androidinsider в Пульс Mail.ru, чтобы получать новости из мира Андроид первым
Допустим, вам не удалось включить русский язык на Android. Что же тогда делать? Либо повторите описанные выше действия, либо выполните частичную локализацию за счет изменения языка в настройках отдельных приложений. Вариант не самый удобный, но рабочий. Так хотя бы программы будут на русском.
По умолчанию приложения используют язык системы, но при желании его можно поменять, если сама программа является мультиязычной
Напишите в комментариях, удалось ли вам сделать русский язык на телефоне, или на каком-то из этапов возникли проблемы. Также задавайте вопросы в нашем телеграм-чате, где вы сможете получить дополнительные рекомендации.
Афоризм
Большому кораблю – большие в трюме крысы.
Наталья Резник
Поддержка проекта
Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
• Yandex.Деньги
410013796724260
• Webmoney
R335386147728
Z369087728698
Вопросам локализации приложений уделено немало места на страницах нашего сайта. Наиболее значимая статья,
связанная с фундаментальными основами локализации, рассказывает о региональных
стандартах, форматах представления числовых, денежных и временных значениях в различных странах, ресурсных
файлах и форматах сообщений. Поэтому, в этой статье будет рассмотрен только вопрос локализации интерфейса Android
приложений. Здесь на примере мы должны увидеть процесс формирования и использования ресурсных файлов.
На странице описания табличной разметки TableLayout был создан файл
table.xml, в котором уже подключались свойства ресурсного файла strings.xml. В этой статье мы продолжим
эту тему и рассмотрим следующие вопросы локализации приложений в среде разработки Android Studio :
- создание ресурсных директорий;
- создание ресурсных файлов;
- локализация интерфейса;
- динамическое подключение ресурсных файлов.
Ресурсные директории
Для локализации интерфейса, первое, что нам необходимо выполнить, это создать ресурсные файлы, которые хранятся
в определенных ресурсных директориях. Создадим такие директории для языков локализации «ru» и «en». Для этого выделяем
проект p02Layout, открываем контексное меню правой клавишей мыши и выбираем пункт меню
New / Android Resource Directory. В открывшемся диалоговом окне в списке Available qualifiers выбираем
пункт Locale и переносим его в правую часть Chosen qualifiers нажатием на кнопку с изображением «двух
стрелок вправо».
В результате предыдущего действия интерфейс окна изменится и появятся другие компоненты и списки. Теперь необходимо
в списке Language выбрать нужный язык. Прокрутка списка для выбора русского языка не дала нужного результата.
Русский язык не был найден и представленная на скриншоте строка не была обнаружена, несмотря на то, что в последнем
списке (Specific Region Only:) страна «RU: Russia» присутствует. Но после ввода символов «ru» при активности
(нахождении фокуса) списка Language, сразу же появилась нужная запись и поле фильтрации в верхней части списка.
Возьмите это на вооружение при поиске требуемого языка локализации. Наименование директории values-ru было
сформировано студией автоматически после выбора языка локализации. Следующим шагом точно также была добавлена
директория для английского языка «en».
Примечание : в проекте ничего не изменилось; как была одна директория res/values, так к ней ничего и не
добавилось. Это специфика Android Studio – ничего личного, только проект.
Но если посмотреть на структуру проекта со стороны проводника, то Вы сразу же увидите добавленные ресурсные
директории values-en, values-ru. Так что особых тревог быть не должно; все делаем правильно и ничего не пропало.
Примечание :
1. При создании ресурсных директорий не был использован регион из списка Specific Region Only.
Т.е. была выделена запись Any Region. Но если появится необходимость разделить англичан и американцев, то
необходимо будет выделить дополнительно соответствующую запись и создать для английского языка две директории :
res/values-en-rUK и res/values-en-rUS. Дополнительный символ обозначения региона к наименованию страны Studio добавит
самостоятельно (…-rUK, …-rUS). Не забудьте, что в этом случае в объекте локализации Locale также должен быть
учтен регион/страна.
2. Локализовать можно не только строковые ресурсы, но и изображения. Так, например, при использовании национальных
флагов, следовало бы дополнительно создать соответствующие директории res/drawable-en, res/drawable-ru, в которых
будут храниться изображения, ориентированные на определенные регионы.
Ресурсные файлы
После определения ресурсных директорий необходимо добавить ресурсные файлы. Для этого опять же выделяем проект,
вызываем контекстное меню правой клавишей мыши и выбираем New / Android Resource File. В открывшемся диалоговом
окне опять же выбираем Language и переносим его в список Chosen qualifiers, как это было сделано на предыдущем шаге.
В списке Language вводим требуемый язык, в результате чего Studio определит директорию размещения файла (Directory
name). Теперь необходимо ввести наименование файла (File name) и нажать ОК. Скриншот отображает состояние после выбора
языка локалилизации и определения наименования файла ресурсов string.xml.
В результате создания ресурсных файлов в структуре проекта будут добавлены записи в раздел
res/values/strings. Помним, что простой strings.xml используется по умолчанию, если в системе не будет
найден ресурсный файл приложения для соответствующего объекта Locale.
Ресурсные файлы
После выполнения двух предыдущих шагов были созданы ресурсные директории с файлами string.xml. То есть в трех разных
директориях (values, values-en, values-ru) хранятся три файла с одинаковыми наименованиями strings.xml. В этом
суть отличия локализации приложений Android. Теперь необходимо определить содержимое файлов так, чтобы ключевые
наименования у них были одинаковыми. Эти ключевые наименования будут использоваться для определения заголовков меток и
кнопок.
Листинг файла values-ru/string.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">p2Layout : авторизация</string> <string name="lbl_login">Логин</string> <string name="lbl_password">пароль</string> <string name="hint_login">Учетная запись</string> <string name="btn_ok">OK</string> <string name="btn_close">Закрыть</string> </resources>
Листинг файла values-en/string.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">p2layout : authorization</string> <string name="lbl_login">Login</string> <string name="lbl_password">Password</string> <string name="hint_login">Account</string> <string name="btn_ok">OK</string> <string name="btn_close">Close</string> </resources>
Содержимое файла values/string.xml определим согласно англоязычного варианта локализации.
Локализация интерфейса
При локализации интерфейса необходимо к текстовым параметрам меток (android:text), полям ввода (android:hint) и
кнопкам (android:text) подключить соответствующие ресурсные строки. Это можно сделать двумя способами.
Определение ресурсных значений в файле описания конфигурации
Простой способ связан с прямым определением соответствующих значений в файле описания интерфейса интерфейса. Для этого
необходимо открыть файл table.xml, найти в описании компонент и связать его параметры с соответствующими ресурсными
строками. Вот как это выглядит для метки и текстового поля определения учетной записи :
<TableRow android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tvLogin" android:layout_width="80dp" android:layout_height="wrap_content" android:labelFor="@+id/edLogin" android:text="@string/lbl_login" /> <EditText android:id="@+id/edLogin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="2" android:ems="10" android:hint="@string/hint_login" android:inputType="textPersonName" android:labelFor="@+id/tvLogin" android:text="" /> </TableRow>
Текстовое значение метки tvLogin связали с ресурсной строкой «@string/lbl_login» (android:text), а подсказку
текстового поля edLogin связали с «@string/hint_login» (android:hint).
Определение ресурсных значений в панели атрибутов компонента
Установить связь текстового значения компонента с ресурсным значением можно через интерфейс среды разработки Studio.
Для этого необходимо выделить компонент и перейти к панели атрибутов. Здесь следует найти соответствующий параметр.
На следующем скриншоте представлена выделенная строка текстового параметра компонента кнопки.
Сейчас у кнопки определено несвязанное текстовое значение Button. Можно в этой же строке ввести
новое/необходимое значение; но можно и нажать на кнопку с изображением многоточия. В результате будет открыто окно
выбора ресурсного значения. Здесь находим нужную строку в списке и нажимаем ОК.
Динамическое подключение ресурсных файлов
Для реализации динамического изменения локализуемых надписей интерфейса приложения проще всего в интерфейс добавить
пару кнопок : одна из кнопок будет переводить интерфейс на русский язык, а другая – на английский. Конечно же,
желательно, чтобы на кнопках были изображены соответствующие флаги. Но не будем сейчас усложнять задачу и ограничимся
дополнительным размещением обычных кнопок. Вопрос использования изображений рассмотрен в отдельной статье
Представления изображений в Android.
Полагаю, особого труда у Вас не составит самостоятельно поместить в таблицу две строки TableRow : одну для кнопок
(btnEn, btnRu) и одну в качестве «разделителя». Ну и в заключении создадим метод changeLocale(Locale locale).
Теперь, когда интерфейс определен и ресурсные файлы подготовлены, осталось только разработать метод определения
локализованных надписей интерфейса (changeLocale) и к кнопкам подключить соответствующие обработчики событий. Для этого
откроем основной класс приложения MainActivity и внесем в него дполнительный код, представленный ниже :
import android.content.res.Configuration; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import java.util.Locale; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.table); Button ru_btn = (Button) findViewById(R.id.btnRu); ru_btn.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { System.out.println("ru_btn.click"); Locale locale = new Locale("ru"); changeLocale(locale); } }); Button en_btn = (Button) findViewById(R.id.btnEn); en_btn.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { System.out.println("en_btn.click"); Locale locale = new Locale("en"); changeLocale(locale); } }); } @SuppressWarnings("deprecation") private void changeLocale(Locale locale) { Locale.setDefault(locale); Configuration configuration = new Configuration(); configuration.setLocale(locale); getBaseContext().getResources() .updateConfiguration(configuration, getBaseContext() .getResources() .getDisplayMetrics()); setTitle(R.string.app_name); TextView tv = (TextView) findViewById(R.id.tvLogin); tv.setText(R.string.lbl_login); tv = (TextView) findViewById(R.id.tvPassword); tv.setText(R.string.lbl_password); EditText et = (EditText)findViewById(R.id.edLogin); et.setHint(R.string.hint_login); Button btn = (Button) findViewById(R.id.btnClose); btn.setText(R.string.btn_close); } }
В методе onCreate к кнопкам btnRu и btnEn подключены соответствующие обработчики событий. При нажатии на
одну из кнопок в «консоль» выводится сообщение, формируется объект локализации и вызывается метод changeLocale.
В методе changeLocale выполняется определение текущей Locale, после этого выполняется чтение соответствующего
ресурсного файла и локализуются надписи интерфейса.
«Консоль» сообщений
Чтобы открыть консоль сообщений работающего приложения необходимо нажать вкладку Run, которая появляется
после первого старта.
После старта Вы должны увидеть интерфейс приложения, представленный на следующем скриншоте. Нажатием на
верхние кнопки текстовые строки интерфейса переводятся на соответствующий язык локализации.
Локализация даты и времени
Для проверки функционирования локализации даты и времени ниже представлен соответствующий метод. Здесь все
тривиально просто. Обратите только внимание на импорт класса Calendar.
import android.icu.util.Calendar; private void printCurentDateTime() { // Получаем текущее время и дату: Date currentDate = Calendar.getInstance().getTime(); java.text.DateFormat dateFormat; dateFormat = android.text.format.DateFormat.getDateFormat(this); java.text.DateFormat timeFormat; timeFormat = android.text.format.DateFormat.getTimeFormat(this); // Форматируем строку текущей даты String formattedDate = dateFormat.format(currentDate); System.out.println("formattedTime : " + formattedDate); // Формируем строку текущего времени String formattedTime = timeFormat.format(currentDate); System.out.println("formattedTime : " + formattedTime); }
Вызвав printCurentDateTime из метода changeLocale в консоль будут выведены следующие сообщения о дате и времени
для двух различных языков локализации :
I/System.out: ru_btn.click I/System.out: formattedTime : 07.12.2018 I/System.out: formattedTime : 9:56 I/zygote: Do partial code cache collection, code=52KB, data=61KB After code cache collection, code=51KB, data=60KB Increasing code cache capacity to 256KB I/System.out: en_btn.click I/System.out: formattedTime : 12/7/18 I/System.out: formattedTime : 9:56 AM
Связанные страницы
Пример создания проекта Android
Модули Android приложения
Layout интерфейса приложения Android
TableLayout приложения Android
Представление изображений в Android
Довольно часто на смартфонах на базе Android по умолчанию используется английский язык. Для удобства пользования необходимо изменить язык на русский. Конечно, при условии, что он встроен в текущую прошивку вашего устройства. О том, как это сделать наша статья. Рассмотрим пример на базе смартфона с интерфейсом Marshmallow, хотя, надо заметить, этот способ подходит и для других прошивок таких смартфонов, как Samsung, Huawei, HTC, Lenovo, ASUS, Xiaomi и т.д.
Как изменить язык телефона с английского на русский на Android?
Итак, у нас есть смартфон на английском языке. Заходим в настройки.
Далее находим раздел Languages Input. В нашем примере рядом с ним указана иконка в виде глобуса, что значительно упрощает поиск нужной информации.
Если не нашли, не переживайте: в верхней части окна имеется строка поиска (выделена синей стрелкой на скриншоте выше), укажите слово language и выберите указанный пункт Languages.
Самая верхняя строка меню (Languages) это и есть нужный нам подраздел. Нажимаем.
Далее возможны варианты: либо вы сразу видите список доступных языков и банально тапаете по нужному из них, либо у вас указан только один язык, как в нашем примере. Нажмите Add a language.
Найдите русский язык, нажмите на него.
Выберите регион Россия.
Вы увидите примерно такую картину.
Для того, чтобы изменить язык, переместите русский на первую строчку, нажав на строку и удерживая ее. Язык был изменен на русский, о чем в том числе говорит название подраздела на русском языке.
Сложновато, но только для первого раза.
Как вам статья?
( 1 оценка, среднее 5 из 5 )