Это дополнение к штатному выбору языка самого телефона, а не замена ему: на Android 13 и новее язык приложения можно переключить и в системных настройках, и здесь. Оба способа работают вместе.
Возможности
- Три чипа в ряд под заголовком
ЯЗЫК ИНТЕРФЕЙСА(в английском интерфейсе он будетINTERFACE LANGUAGE): Системный, Русский, English. Выбранный обведён бирюзовой рамкой вдвое толще обычной, и его подпись тоже бирюзовая. Фон у всех трёх одинаковый — меняется только рамка и цвет текста. - Подписи чипов названы по-русски и по-английски одновременно. Если интерфейс русский, вы увидите «Русский» и «English». Если английский — «Russian» и «English». Каждая подпись остаётся понятной в любом из двух языков, а не переводится в нечитаемое.
- Строка «Сейчас: …» под чипами — показывает выбранный язык словами, а не кодом. Это дублирует выбранный чип, чтобы язык был виден текстом.
- Подсказка внизу экрана объясняет, чем системный вариант отличается от русского и английского, и предупреждает про пересоздание приложения.
- Две подписи в шапке экрана: имя раздела
y83@languageи короткая метка справа. Метка — код языка буквами:ruилиen. При системном варианте там код языка самого телефона, а не слово «системный». - Кнопка «назад» в шапке возвращает на предыдущий экран.
- Никаких других настроек тут нет — только язык. Формат времени, разряды батареи, шрифт и размеры текста живут в других разделах.
Технические данные
| Параметр | Значение |
|---|---|
| Вариантов языка | 3: Системный, Русский, English |
| Языков в сборке | 2: русский и английский |
| Где лежат переводы | 1214 русских строк, 1201 английских |
| Строк без перевода | 13, все помечены как непереводимые |
| Где хранится выбор | настройки телефона, не в базе данных |
| Ключ настройки | один, называется ui_language |
| Куда дублируется выбор | на Android 13+ и в системный выбор языка |
| Что происходит при смене | приложение пересоздаётся целиком |
| Экран возвращается | на тот же, где вы были |
| Где раздел в хабе | секция App, пять карточек |
| Тайл на главной | не показывается, настроить нельзя |
| Работает без интернета | да |
Как читать экран
Экран маленький и весь состоит из трёх вещей: секции с чипами, строки «Сейчас» и абзаца-подсказки под ними. Никаких списков, переключателей и кнопок сохранения тут нет — язык применяется сразу по нажатию.
Все три чипа стоят в одну строку и не прокручиваются. На очень узком экране они могут оказаться теснее, чем на обычном.
Про системный вариант
Системный — это не отдельный перевод, а отказ от своего выбора: приложение берёт язык телефона. Телефон на русском — приложение на русском.
Так сделано специально. Если бы выбор всё время оставался зашитым в приложении, то смена языка в системных настройках Android 13 и новее перестала бы на него влиять. Сейчас обе настройки работают вместе: системная настроит приложение целиком, а эта — только язык интерфейса.
Явный выбор языка, наоборот, имеет приоритет: приложение применяет его само при запуске каждого экрана, поэтому тут выигрывает именно выбор здесь.
Про два языка, а не двадцать
В приложении всего два языка интерфейса — русский и английский. Никаких других в сборке нет, поэтому системный вариант на любом нерусском телефоне даёт английский: других переводов просто не из чего показать.
Подсказка на экране обещает «системный, русский или английский», и это правда: все варианты, что есть в приложении, перечислены. Переключатель умеет ровно три значения, а не «любой язык мира».
Почему переводов не ровно столько, сколько строк
Русских строк 1214, английских — 1201. Разница в 13 строк — это образцы текста на экране оформления: ваш вопрос, ответ агента, строка плана, блок размышлений, блок кода, подпись события. Они специально помечены как непереводимые и содержат оба языка внутри одной строки через косую черту.
Это сделано ради проверки шрифта: на экране оформления нужно видеть, как выбранный шрифт рисует латиницу и кириллицу одновременно. Если бы образцы переводились, в английском интерфейсе кириллицы на экране не было бы и проверять было бы нечего.
Почему приложение пересоздаётся
Смена языка меняет не надписи на одном экране, а все строки в процессе разом. Чтобы не вычислять это вручную, приложение пересоздаёт себя целиком и читает строки заново. Отсюда и подсказка на экране, и ощущение короткой паузы при переключении.
Раньше из-за этого терялся экран: после переключения вы оказывались на главном. Сейчас этого нет — открытый экран запоминается и восстанавливается, поэтому можно спокойно переключить язык прямо на этом экране и сразу увидеть результат. Кнопка «назад» после этого работает как обычно.
Что ещё меняет язык
Язык влияет не только на надписи на экране. Он же определяет язык:
- сообщений об ошибках и длинных подсказок, которые собираются вне экранов;
- подписей кнопок и полей в диалогах;
- имён и подписей, которые приложение показывает вне своих экранов, в том числе в списке приложений телефона.
Это работает даже для тех строк, которые читаются не из экрана, а из кода: сообщения об ошибках, тексты в уведомлениях, записи в журнал. Такие строки берут язык на лету и не отстают от интерфейса.
А вот на то, что пишет агент, язык не влияет никак. Ответы агента, текст его размышлений и названия файлов остаются такими, какие пришли от модели.
Что агент умеет
Агент может открыть этот экран командой открытия экрана language — это работает, проверено на живом устройстве.
Агент может прочитать текущий выбранный язык командой чтения настроек: он видит ключ ui_language со значением ru, en или system. На устройстве разработчика сейчас стоит английский, при том что телефон русский — так видно, что выбор именно здесь, а не системный.
Агент может и сменить язык: команда нажатия на элемент экрана умеет тапать по чипу. Но есть условие — телефон должен быть открыт и лежать на экране, а не в фоне. Проверено: пока приложение свёрнуто, чтение и нажатие на элементы отказываются работать и требуют сначала вывести приложение на первый план.
Отдельного инструмента «поставить язык» нет ни в мосте, ни среди инструментов агента. Смена языка — это обычное нажатие на экран, обходных команд нет.
Ограничения
- Языков всего два. Системный вариант на нерусском телефоне даёт английский.
- Выбрать язык отдельного агента или отдельного чата нельзя — язык общий для всего приложения.
- Приложение пересоздаётся целиком: открытые всплывающие окна и диалоги закрываются, недописанный текст в поле ввода может потеряться.
- На экране оформления часть подписей всегда на обоих языках сразу — это образцы, а не ошибка перевода.
- Выбор языка хранится в настройках телефона. Сброс настроек приложения к заводским вернёт системный вариант.
- Уведомление VPN всегда английское: на выбор языка оно не реагирует, потому что его текст написан в коде напрямую, без перевода.