Локализация FreeBSD — переводим консоль на русский utf-8 | XaXaTyXa

:

Продолжая своё знакомство с FreeBSD, я обнаружил что система по-умолчанию совершенно  не дружит с UTF-8. Так как система будет использоваться для веб-сайтов, то присутствие кодировки UTF-8 просто необходимо. Да и не хочется коллекционировать кодировки, ведь я пользуюсь разными системами.

В интернете много статей, но мне помогла родная документация  www.freebsd.org/doc

Правим файл /etc/login.conf:

russian|Russian Users Accounts:\
               :charset=UTF-8:\
               :lang=ru_RU.UTF-8:\
               :tc=default:

login.conf — это база данных описывающая классы пользователей ОС. Если точнее, то это текстовый файл описывающий конфигурацию базы данных /etc/login.conf.db. Для применения изменений в login.conf.db необходимо после правки файла login.conf воспользоваться программой cap_mkdb:

cap_mkdb /etc/login.conf

Изменяем данные пользователя root, применяем к нему класс russian

pw usermod -n root -L russian

На этом всё. Хотелось бы отметить, что этот способ не затрагивает системную консоль и применим только в юзерском шеле.

Чтобы подействовало и на системную консоль, идём дальше:

В файле /etc/ttys для каждого имени терминала ttyv0-ttyv7, указать тип cons25r, например:

ttyv0 "/usr/libexec/getty Pc" cons25r on secure
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
ttyv2 "/usr/libexec/getty Pc" cons25r on secure
ttyv3 "/usr/libexec/getty Pc" cons25r on secure
ttyv4 "/usr/libexec/getty Pc" cons25r on secure
ttyv5 "/usr/libexec/getty Pc" cons25r on secure
ttyv6 "/usr/libexec/getty Pc" cons25r on secure
ttyv7 "/usr/libexec/getty Pc" cons25r on secure

В файл /etc/rc.conf добавить строки:

font8x8="koi8-r-8x8"
font8x14="koi8-r-8x14"
font8x16="koi8-r-8x16"
keymap="ru.koi8-r.win"
mousechar_start="3"

Теперь нужно выполнить перезагрузку. Русский язык должен поддерживаться. Переключение языков осуществляется комбинацией клавиш Ctrl+Shift.

Если вы используете другой шелл:

/etc/csh.cshrc

setenv LANG ru_RU.UTF-8
setenv LC_CTYPE ru_RU.UTF-8
setenv LC_COLLATE POSIX
setenv LC_ALL ru_RU.UTF-8

/etc/profile  (bash)

LANG="ru_RU.UTF-8"; export LANG
LC_CTYPE="ru_RU.UTF-8"; export LC_CTYPE
LC_COLLATE="POSIX"; export LC_COLLATE
LC_ALL="ru_RU.UTF-8"; export LC_ALL

/root/.cshrc (руту русификации не положены)

setenv LANG C
setenv LC_CTYPE C
setenv LC_COLLATE POSIX
setenv LC_ALL C