1

После некоторых манипуляций с системой интерфейс ОС стал на английском, как и все запускаемые по умолчанию приложения. Пробовал изменить локаль через ГУИ, однако там всё на местах.

locale
LANG=ru_RU.UTF-8
LANGUAGE=C.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8

locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
ru_RU.utf8
ru_UA.utf8

cat /etc/default/locale 
#  File generated by update-locale
LANG="ru_RU.UTF-8"
LANGUAGE="ru:en"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"

nano ~/.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
#export LC_xxx=C.UTF-8
export LC_ALL=ru_RU.UTF-8
...

cat /proc/$(pgrep -u $(whoami) | head -n 1)/environ | xargs -0 -n 1 echo | grep '^\(LANG\|LC\)'
LANG=ru_RU.UTF-8
LANGUAGE=ru:en
LC_ADDRESS=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_PAPER=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8

localectl
   System Locale: LANG=ru_RU.UTF-8
                  LANGUAGE=ru:en
       VC Keymap: n/a
      X11 Layout: us,ru
       X11 Model: pc105
     X11 Variant: ,
     X11 Options: grp:alt_shift_toggle,grp_led:scroll

поскольку gdb в консоли пишет по русски выполнил команду с его PID:

cat /proc/4274/environ 2>/dev/null | xargs -0 -n 1 echo | grep '^\(LANG\|LC\)'
LC_PAPER=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LANG=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LANGUAGE=ru
LC_TIME=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8

по английски:

Xorg

cat /proc/1257/environ 2>/dev/null | xargs -0 -n 1 echo | grep '^\(LANG\|LC\)'

yandex_browser

cat /proc/2642/environ 2>/dev/null | xargs -0 -n 1 echo | grep '^\(LANG\|LC\)'

UPD:1

env | grep '^\(LANG\|LC\)' 
LC_PAPER=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LANG=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LANGUAGE=ru
LC_TIME=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8

sudo nano /etc/X11/Xsession.d/00upstart

UPD: 2

добавил строку:

env | grep '^\(LANG\|LC\)' >> /tmp/log.file

презапустил сессию

cat /tmp/log.file 
LC_PAPER=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LANG=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LANGUAGE=C.UTF-8
LC_TIME=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
shaman888
  • 1,826
  • 1
    LANGUAGE=C.UTF-8LANGUAGE=ru – aleksandr barakin Oct 19 '17 at 10:06
  • какое вообще отношение файл .bashrc может к вашей x-сессии? для начала удостоверьтесь, что запущенные от вашего имени программы получают корректные значения: for p in $(pgrep -u $(whoami)); do cat /proc/$p/environ 2>/dev/null | xargs -0 -n 1 echo | grep '^\(LANG\|LC\)'; done | sort -u – aleksandr barakin Oct 19 '17 at 10:14
  • Уж сколько раз твердили миру, что локаль — это свойство приложения, а не системы. – 0andriy Oct 19 '17 at 10:50
  • @alexanderbarakin делал это https://ru.stackoverflow.com/questions/723433/qt5-отладчик-выдаёт-нечитаемый-текст сейчас произвёл обратные шаги, но результат пока не изменился – shaman888 Oct 19 '17 at 14:57
  • вы про какие «шаги»? изменение содержимого desktop-файла? это уж никак не может повлиять на язык интерфейса. так переменные окружения какого-нибудь «не по-русски пишущего» процесса проверили? $ cat /proc/идентификатор-процесса/environ 2>/dev/null | xargs -0 -n 1 echo | grep '^\(LANG\|LC\)' – aleksandr barakin Oct 19 '17 at 15:02
  • не поняли. объясняю. в каталоге /etc/X11/Xsession.d/ находятся скрипты, которые запускаются при старте x-сессии. в том порядке, в котором их выдаёт, например, программа ls: обычно в начале их имён стоят цифры. вот эти цифры и определяют последовательность запуска. добавьте в начало самого первого скрипта команду, которую я привёл в пред. комментарии, перезапустите x-сессию («разлогиньтесь/залогиньтесь») и смотрите, что попадёт в файл /tmp/log.file. в зависимости от того, будут ли там присутствовать определённые в /etc/default/locale переменные, можно будет сделать какие-то выводы. – aleksandr barakin Oct 19 '17 at 16:06
  • 1
    как видите, переменная LANGUAGE имеет совсем не то значение, которое вам хотелось бы. ищите, где она переопределяется. а заодно — где вообще убираются из окружения процессов переменные окружения, имена которых начинаются на LANG или LC. удачи! – aleksandr barakin Oct 20 '17 at 09:03
  • Комментарии не предназначены для расширенной дискуссии; разговор перемещён в чат. – Qwertiy Oct 25 '17 at 15:25

1 Answers1

1

поиск файла и строки с заданной настройкой (см. вопрос)

grep -r "LANGUAGE=C.UTF-8" /home/

найденный файл оказался .profile

nano .profile

комментирую строку

#export LANGUAGE=C.UTF-8

Забыл что там производил изменения и сам файл как то скрывался с глаз. За решение выражаю благодарность "alexander barakin"

shaman888
  • 1,826