Руссификация FreeBSD (UTF-8)



1008

Однажды я осознал что многобайтовым кодировкам принадлжеит будущее и решил не изобретать кастыли с koi8-r.
Почему utf8:
- это удобно
- это кроссплатформенно (я, например, работаю на многих разных системах: freebsd, linux, windows и хочу везде иметь возможность беспроблемного доступа к своим файлам)
- utf8 это родная кодировка во многих системах (linux), а также в файловых системах.
- в базах данных давно самая беспроблемная кодировка - utf8 (особенно когда есть необходимость работы с несколькими языками)
- я думаю рано или поздно во freebsd все равно будет utf8 по умолчанию.

так что приступим:

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

# cap_mkdb /etc/login.conf
# pw usermod -n $username -L russian

Собственно, этого достаточно - вот так все просто ;)
Альтернативно, либо дополнительно к вышеприведенному способу, можно прописать переменные в используемом шеле:
/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: (опционально, для тех кто любит баш.)
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

/etc/fstab:
# NTFS data
/dev/ad0s4      /mnt/data2 ntfs-3g  default,rw,locale=ru_RU.UTF-8 0 0
Из консоли можно так:

# mount_ntfs -C UTF-8 /dev/ad0s4 /mnt/winda # ro mount
# mount_ntfs-3g /dev/ad0s4 /mnt/winda -o deafult,rw,locale=ru_RU.UTF-8 # right way; portinstall sysutils/fusefs-ntfs


update 280609:
Хотел сказать что вышеприведенный спрособ руссификации не затрагивает системную консоль, но этого достаточно, чтобы в юзерском шеле был utf8
Также о процессе перевода и системной консоли на utf8 можно посмотреть тут: http://www.opennet.ru/tips/info/1448.shtml


Переключение раскладки клавиатуры в X11:


/etc/X11/xorg.conf:
(в принципе, можно обойтись и без этого, если вы настроите переключение в соотвествующем оконном менеджере, но данный вариант более универсален.)
Section "InputDevice" 
Identifier "Keyboard0" 
Driver "keyboard" 
Option "XkbModel" "microsoftpro" 
Option "XkbLayout" "us,ru" 
Option "XkbOptions" "grp:ctrl_shift_toggle,grp:lwin_switch,grp_led:scroll" 
Option "XkbVariant" ",winkeys" 
EndSection

Переключение раскладки клавиатуры в KDE:



Тут можно все сделать через kcontrol типа (Пуск -> Настройка -> Региональные и спец.настройки -> Настройка клавиатуры) но это не по джидайски. Посему идем классическим unix way:

~/.kde/share/config/kdeglobals должна быть строчка
Switch to Next Keyboard Layout=Ctrl+Shift_L;
Вообще я крайне рекомендую поизучать и сохранять этот файл. Потом настроить рабочую среду на другом компе - дело 2 минут.


xxkb индикатор раскладки c привязкой к приложению:

~./.kde/share/config/kxkbrc
[Layout]
DisplayNames=
EnableXkbOptions=true
IncludeGroups=ru(winkeys):us
LayoutList=us,ru(winkeys)
Model=pc104
Options=grp:lctrl_lshift_toggle,grp_led:scroll
ResetOldOptions=true
ShowFlag=true
ShowSingle=false
StickySwitching=false
StickySwitchingDepth=2
SwitchMode=WinClass
Use=true

Usefull links:

http://www.lissyara.su/?id=1444 FreeBSD как десктопная система
http://community.livejournal.com/ru_linux/1147523.html русификация аудиопроигрывателей (конвертация mp3 тегов).

http://pcbsd.ru/doc/statyi/article21-2008-03-23.html PC-BSD 1.5: установка, настройка, русификация. (utf-8)
http://www.pcbsd.ru/forum/index.php/topic,93.0.html Руссификация компонентов системы
http://forum.pcbsd.org.ua/viewtopic.php?t=120 Русификация системы (koi8-r)


Home

Sergej A. Kandyla skandyla at gmail.com
Any comments and suggestions are welcome.
CentOS FreeBSD