Если запускаю приложения через терминал (nemo,gvim), то приложения открываются на русском, стоит их запустить через rofi, язык английский.
В чем может быть проблоема, запранее благодарен за ответ.
Посмотри как с другими процессами, где русский язык отображается нормально, сравни.
Погугли как задаются локали в Linux через переменные окружения, настрой запуск приложения в rofi с передачей соответствующий переменных окружения. Либо для каждого приложения по отдельности.
Смотри ссылки выше, во второй есть пример, не проверял, если он не работает - смотри в документации как определять переменные окружения для приложений или глобально через rofi.
Ну либо в документации смотри, возможно можно как-то по другому глобально сделать, чтобы rofi передавал нужные переменные.
Вариант с указанием соответствующих переменных в конфигурации запуска каждого нужного тебе приложения тоже будет работать.
Смотри, когда ты запускаешь какое-то приложение через SHELL напрямую - SHELL, в твоём случае zsh, передаёт все свои переменные приложения дочернему процессу.
Немного не так, экспортированные или декларированные переменные.
Переменные могут быть ещё локальными только для этого SHELL и далее в дочернем SHELL или процессе видны не будут.
Когда ты запускаешь что-то через другое приложение, например rofi, то сам rofi будучи запущенным из какого-то окружения может наследовать все переменные окружения родителя, в случае SHELL будут наследованы все, а вот для тех приложений, которые запускает он - он уже сам формирует переменные окружения.
Поэтому делать export в оболочке смысла нет, rofi просто не передаёт при вызове дочерних процессов все переменные окружения, что есть у его родителя или у него самого.
Тебе надо смотреть как в конфигурационных файлах rofi указать, что rofi при вызове такого-то приложения должен передавать ему такие-то переменные окружения.
Читай документацию, смотри ссылку два в моём первом сообщении в теме.
Я rofi не пользуюсь, более сказать ничего не могу. Ставить его ради тебя и ковырять - не собираюсь.
Плюс, может у тебя в твоём SHELL нет нужных переменных окружения, а эмулятор терминала отображается на русском и вся оболочка потому, что у тебя стоит соответствующий пакет l10n для твоей графической оболочки.
Может ты сам сломал в SHELL правильное наследование переменных с определением локали.
Что у тебя в SHELL по локалям?
Смотри вывод:
export
set
Но думается мне - тебе всё же нужно читать документацию по rofi и определять передачу переменных с локалью в его конфиге для каждого запускаемого через него приложения.
Смотри, я вижу, что ты так и не сходил в гугл или другую поисковую систему и не стал разбираться через какие переменные окружения задаются параметры локали (локализации) в Linux.
Иначе бы не показывал мне весь вывод, иначе либо привёл только нужные переменные или сказал бы, что они заданы.
Я не вижу смысла тебе что-то дальше советовать или писать.
Я тебе уже дал все советы.
Изучай документацию по rofi.
Нужные переменные в окружении SHELL у тебя задаются.
Какие это переменные и собственно передачу каких тебе нужно обеспечить средствами rofi - найдёшь в гугл.
Спрашивай как настраивается локализация, через какие переменные, как определить текущую локаль в Linux.
На форуме помогают, дают советы, даже решения, но в первую очередь спрашивающий должен сам хотеть учиться и разбираться.
А то, как задаётся локаль, через какие переменные окружения - это база.
Я тебе об этом сказал в первом же сообщении.
И по сути после первого сообщения и указания на локали и это, что это база - ты должен был найти информацию о том как это работает в Linux и далее изучать документацию, примеры по настройке rofi или его баг трекер на предмет как сделать, чтобы в окружении программ, запускаемых через него были эти переменные.
А причем тут локаль в Linux?
Эти перменные заданы в .zshenv
LANG=ru_RU.UTF-8
LC_ALL=ru_RU.UTF-8
Система на русском, вопрос в том, как передать переменные окружения если это требуется в rofi. Странность в том, что firefox почему -то это не требует, а nemo и gvim видимо требуют.
В файрфокс параметры языка или локализации считываются из профиля firefox.
Ты можешь на китайской локали в системе в настройках файрфокс выбрать итальянский язык интерфейса, это сохранится, в профиле настроек браузера, не пользователя, а браузера, и на переменные окружения файфокс далее наплевать.
gvim и прочие приложения опираются на переменные окружения, если у них нет в окружении переменной с определением локали, то они используют локаль «C» на которой все на английском.
Файрфокс - это мульти платформенное приложение и свои настройки хранит в своем профиле, я том числе выбранный язык, а не берет из переменных окружения.
В windows нет переменных окружения с локалью, там по другому работает, но файрфокс при первом запуске читает настройки языка системы и запускается с соответствующей локализацией.
В linux / unix из переменных окружения и записывает в свой профиль выбранный язык.
В Windows - из реестра.
Дальше ты можешь поменять.
Иди изучай документацию по rofi и то, как в приниципе работает локализация в линукс и программах, что ты используешь в принципе.
Да, если запустить так то работает. Но rofi запускает приложения из: /usr/share/applications .desktop файлы получается там в Exec прописать локаль для каждого приложения?