Arch linux нет русского языка

Locale (Русский)

Состояние перевода: На этой странице представлен перевод статьи Locale. Дата последней синхронизации: 2022-04-03. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Локали определяют язык, который использует система, а также региональные особенности, такие как денежные знаки, формат чисел, даты и времени и наборы символов. Они используются glibc и некоторыми другими программами или библиотеками для рендеринга текста.

Генерирование локалей

Имена локалей обычно имеют вид [язык][_ТЕРРИТОРИЯ][.НАБОР_СИМВОЛОВ][@модификатор] , где язык это код языка ISO 639, ТЕРРИТОРИЯ это код страны ISO 3166 и НАБОР_СИМВОЛОВ это кодировка вроде ISO-8859-1 или UTF-8. Смотрите setlocale(3) .

Чтобы вывести список всех доступных и сгенерированных локалей, выполните:

Перед тем, как локаль сможет быть использована в системе, она должна быть сгенерирована. Локали, которые вы можете сгенерировать перечислены в файле /etc/locale.gen . Чтобы сгенерировать локаль, первым делом раскомментируйте соответствующую строку в файле (а для удаления наоборот, закомментируйте); вы можете раскомментировать несколько локалей, в зависимости от ваших потребностей.

Например, для русской локали раскомментируйте ru_RU.UTF-8 UTF-8 :

. #ro_RO ISO-8859-2 #ru_RU.KOI8-R KOI8-R ru_RU.UTF-8 UTF-8 #ru_RU ISO-8859-5 #ru_UA.UTF-8 UTF-8 .

После сохранения файла сгенерируйте выбранные локали командой:

  • locale-gen также запускается каждый раз при обновлении glibc . [1]
  • UTF-8 предпочтительнее других кодировок. [2]

Установка локали

Чтобы отобразить текущую локаль и связанные с ней переменные окружения, наберите:

Используемая локаль, выбранная среди сгенерированных в системе, устанавливается в файлах locale.conf , каждый из которых должен содержать список переменных окружения в том же формате, в каком их выводит команда locale.

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

Установка системной локали

  • Системная локаль устанавливается с помощью переменной LANG в файле /etc/locale.conf . Значением должен быть первый столбец из раскомментированной записи в /etc/locale.gen :

Вы можете установить ее также при помощи localectl:

# localectl set-locale LANG=ru_RU.UTF-8 

Совет: Во время установки системы, если вас устраивает вывод команды locale, вы можете просто сохранить его в файл командой locale > /etc/locale.conf (в сеансе arch-chroot).

Переопределение системной локали в пользовательском сеансе

  • Системная локаль может переопределяться в каждом пользовательском сеансе с помощью файла ~/.config/locale.conf (обычно ~/$XDG_CONFIG_HOME/locale.conf ).
  • Это позволяет вести системные логи в /var/log/ на английском, при использовании местного языке в рабочей среде пользователя.
  • Вы можете создать файл /etc/skel/.config/locale.conf , тогда для всех новых пользователей, добавленных командой useradd с опцией -m сразу будет автоматически сгенерирован файл ~/.config/locale.conf .
Читайте также:  Линукс лучше чем виндовс чем лучше чем виндовс

Немедленное применение изменений локали

После внесения изменений в файлы locale.conf , они вступят в силу после перезагрузки системы, и для отдельных сеансов пользователей — при входе. Чтобы принудительно обновить локаль в текущем окружении без перезагрузки, выполните:

$ unset LANG $ source /etc/profile.d/locale.sh

Примечание: Переменную LANG нужно обязательно сбросить, иначе locale.sh не обновит значения из locale.conf . Будут обновлены только новые и изменённые переменные; те же, что были удалены из файла locale.conf , по-прежнему останутся в текущем сеансе.

Дополнительно

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

Например, чтобы проверить, как работает конкретное приложение с какой-нибудь локалью, вы можете запустить его следующим образом:

Аналогично, для установки локали всем процессам, запускаемом из текущей командной оболочки (например, в процессе установки системы):

Переменные окружения

Файлы locale.conf могут содержать следующие переменные окружения:

  • LANG
  • LANGUAGE
  • LC_ADDRESS
  • LC_COLLATE
  • LC_CTYPE
  • LC_IDENTIFICATION
  • LC_MEASUREMENT
  • LC_MESSAGES
  • LC_MONETARY
  • LC_NAME
  • LC_NUMERIC
  • LC_PAPER
  • LC_TELEPHONE
  • LC_TIME

Полное объяснение этих переменных можно узнать в locale(7) , детали описаны в locale(5) .

Примечание: При поиске значений, зависящих от локали, программы следуют определённому порядку приоритета.

LANG: локаль по умолчанию

Локаль, установленная в этой переменной используется в качестве значения для всех остальных LC_* -переменных, которые не установлены явно.

Совет: Например, вы англоговорящий пользователь в Испании и вы хотите, чтобы приложение обрабатывало числа и даты согласно стандартам Испании, но тексты были на английском. Тогда вы можете установить переменную LANG в значение es_ES.UTF-8 и переменную LC_MESSAGES в en_US.UTF-8 .

LANGUAGE: запасные локали

Программы, использующие gettext для перевода, учитывают также переменную LANGUAGE в дополнение к стандартным переменным. Это позволяет пользователям установить список локалей, которые будут использоваться в указанном порядке для поиска перевода. Если перевод для более предпочтительной локали (которая идет первее в списке) недоступен, будет произведена попытка получить перевод для следующей, и так далее. Например, пользователь из Австралии может предпочесть британский вариант перевода американскому:

LANG=en_AU LANGUAGE=en_AU:en_GB:en

LC_TIME: формат даты и времени

Например, если переменная LC_TIME имеет значение en_US.UTF-8 , будет использован формат даты ММ/ДД/ГГГГ . Если вы хотите использовать формат ISO 8601 ( ГГГГ-ММ-ДД ), установите:

Примечание: Программы не всегда учитывают указанный здесь формат даты. Например, date(1) использует свои собственные параметры, а Firefox не учитывал LC_TIME в версиях 57-84 (Bug 1429578).

LC_COLLATE: порядок сортировки

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

Установка значения LC_COLLATE=C , например, приведет к тому, что команда ls будет располагать файлы, имена которых начинаются с точки, первыми, за ними последуют имена, начинающиеся с цифры, затем с заглавной и, наконец, со строчной буквы:

Читайте также:  Guide to install kali linux

Чтобы избежать возможных проблем, в Arch переменная установлена как LC_COLLATE=C в /etc/profile , однако этот метод сейчас устарел.

LC_ALL: решение проблем

Переменная LC_ALL переопределяет своим значением все LC_* -переменные, включая LANG , независимо от того, установлены они или нет.

Переменная LC_ALL — единственная из всех LC_ -переменных, которую нельзя установить в /etc/locale.conf : она предназначена только в целях проверки при решении проблем.

Советы и рекомендации

Запуск приложения с другой локалью в терминале

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

# env LANG=he_IL.UTF-8 abiword &

Запуск приложения с другой локалью из меню

Скопируйте файл .desktop в домашний каталог пользователя:

$ cp /usr/share/applications/abiword.desktop ~/.local/share/applications/

И отредактируйте команду в опции Exec :

~/.local/share/applications/abiword.desktop
Exec=env LANG=he_IL.UTF-8 abiword %U

Решение проблем

Эмулятор терминала не поддерживает UTF-8

Небольшой список терминалов с поддержкой UTF-8:

  • gnustep-terminal
  • konsole
  • mlterm
  • rxvt-unicode (Русский)
  • st
  • эмуляторы на основе VTE
  • xterm — необходимо запускать с опцией -u8 или с настройкой xterm*utf8: 2 . Также вы можете запускать uxterm, который предоставляется пакетом xterm .

gnome-terminal или rxvt-unicode не поддерживают UTF-8

Чтобы заработала поддержка UTF-8 в этих приложениях, необходимо запускать их с локалью, в которой установлена кодировка UTF-8, например ru_RU.UTF-8 . Включите эту локаль в системе, установите ее как системную локаль по умолчанию в соответствиями с инструкциями в предыдущих разделах и перезагрузите компьютер.

Моя система использует неверный язык

Возможно, некоторые переменные окружения из locale.conf . Подробнее смотрите на странице Переменные окружения#Установка переменных.

Если вы используете окружение рабочего стола, такое как GNOME, его настройки могут перекрывать locale.conf .

KDE Plasma также позволяет изменить язык интерфейса через свои настройки. Если он всё равно использует язык по умолчанию после изменения, удаление файла ~/.config/plasma-localerc (ранее ~/.config/plasma-locale-settings.sh ) должно помочь.

Если вы используете экранный менеджер вместе с accountsservice , смотрите Display manager (Русский)#Установка языка.

LightDM автоматически использует accountsservice для выбора локали, если он установлен. В противном случае LightDM читает настройки сеанса из ~/.dmrc . Возможно, что нежелательные настройки локали прочитались оттуда.

Смотрите также

  • Руководство по локализации Gentoo Linux
  • http://wikigentoo.ksiezyc.pl/Locales.htm [устаревшая ссылка 2023-05-06 ⓘ]
  • Интерактивная проверка сортировки от ICU
  • Инициатива Free Standards Group создания открытого стандарта интернационализации
  • О локалях в The Single UNIX Specification от The Open Group
  • Переменные окружения для настройки локали на Ubuntu Help.

Источник

Арчеводы, помогите с русским языком (консоль tty)

По многочисленным советам в интернете, решил попробовать поставить арч, ибо пакман, роллинг-релиз и вообще бубунты не нужны.

Первым делом полез в вики по установке, скачал исошку, поставил пакстрапом бейс пакеты. Вроде как все сделал по инструкции (расскоментировал локали, сгенерировал. ), поставил загрузчик, ребут.

Читайте также:  Линукс ос есть лицензия

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

1. Как сделать так, чтобы вместо квадратиков были русские буквы?

2. Как сделать русский набор букв?

3. Как поставить шрифт terminus? стандартный шрифт полное Г, извините.

Перелопатил кучу статей в интернетах, пробовал и хуки делать и то и се, ничего не помогает.

linux:~$ cat /etc/vconsole.conf FONT=cyr-sun16 KEYMAP=ruwin_cplk-UTF-8 
linux:~$ egrep ^HOOKS /etc/mkinitcpio.conf HOOKS="base udev autodetect modconf block filesystems keyboard fsck consolefont resume" 

Если у меня такой вывод этих команд, это критично, Скриншотом: https://pp.vk.me/c626122/v626122910/219e1/wLMLBWAAiyA.jpg

поставь KEYMAP в vconsole.conf

ruwin_alt-UTF-8 ruwin_alt_sh-UTF-8 ruwin_cplk-UTF-8 ruwin_ct_sh-UTF-8 

а FONT’ы смотри в /usr/share/kbd/consolefonts какие есть

Поставь графическое окружение.

Так, кеймап поставил >ruwin_alt_sh-UTF-8 Полагаю, это адекватный вариант альт+шифт слева. Фонты проверил, в папке есть мой фонт ter-v16-v (устанавливал пакет terminus-font).

Апдейт, спасибо за подсказки, вроде как починил русский язык, переключение и русский ввод тоже работают.

пропиши модуль своей видеокарты в /etc/mkinitcpio.conf, запусти mkinitcpio

для 3 FONT=ter-v16v в /etc/vconsole.conf при установленном терминусе.

У меня на данный момент с видеокартой сложно, сейчас скажу почему, вы скажете, что я аутист.

1. Установил арчик через виртуалбокс, на свой жесткий диск (дуалбут с оффтопиком). Это для того, чтобы был доступ в интернеты и в вики, ибо если буду делать все без бокса, рискую остаться без интернета в полной жопе. 2. На ноутбуке 2 видеокарты (интел+нвдия, оптимус в общем).

И что там ставить? Вроде поставил i985, если не ошибаюсь.

ter-v16v — это вообще что? В мане есть только n, b и f.

intelfx ★★★★★ ( 31.07.16 15:04:09 MSK )
Последнее исправление: intelfx 31.07.16 15:04:17 MSK (всего исправлений: 1)

Я не тебя спрашивал. Мне интересно, что обозначает этот символ в названии файла шрифта, т. к. в документации он не упомянут.

# int13h @ homepc in ~ [18:24:53] ➜ locale LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_NUMERIC="en_US.UTF-8" LC_TIME=ru_RU.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

[1)] В /etc/locale.gen расскоментируешь нужную локаль. [2)] Дальше locale-gen, генерирует нужные локали. Советую сгенерировать также en_US.UTF-8, некоторым приложениям она нужна. [3)] Дальше ставим terminus, пакет называется terminus-font. [4)] Выставляем шрифт, setfont ter-v16v [5)] Чтобы при загрузке сам выставлялся, прописываем в файл /etc/vconsole.conf строку FONT=ter-v16v [6)] Выставляем при помощи localectl клавиатуру, localectl set-keymap ru (вместо ru может быть что угодно). Преимущество этого метода в том, что также генерируется конфиг для иксов. [7)] Через тот же localectl выставляем локаль. localectl set-locale LANG=ru_RU.UTF-8

P.S Лоркод говно, опять не работает.

Deleted ( 31.07.16 18:34:13 MSK )
Последнее исправление: Romashev 31.07.16 18:36:18 MSK (всего исправлений: 3)

Источник

Оцените статью
Adblock
detector