aboutsummaryrefslogtreecommitdiff
path: root/handbook/russian.sgml
blob: a53a7445c836243b31b428bff84da370a36315b6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
<!-- $Id: russian.sgml,v 1.5 1997-06-13 13:33:42 ache Exp $ -->
<!-- The FreeBSD Documentation Project -->

<sect><heading>Russian Language (KOI8-R encoding)<label id="russian"></heading>
<p><em>Contributed by &a.ache;<newline>
1 May 1997</em>.
<p>See more info about KOI8-R encoding at
<htmlurl url="http://www.nagual.pp.ru/~ache/koi8.html"
name="KOI8-R References (Russian Net Character Set)">.

<sect1><heading>Console Setup<label id="russian:console"></heading>
<p>
<enum>
<item>Russian console entry in <tt>/etc/rc.conf</tt> should looks like
<verb>
keymap=ru.koi8-r
keychange="61 ^[[K"
scrnmap=koi8-r2cp866
font8x16=cp866b-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8
</verb>
<p>
<it>NOTE:</it> ^[ means that real ESC character must be entered into
<tt>/etc/rc.conf</tt>,
not just ^[ string.
<p>
This tuning means KOI8-R keyboard with Alternative
screen font mapped to KOI8-R encoding to
preserve pseudographics, <it>Gray Delete</it> key remapped to match Russian
<tt>termcap(5)</tt> entry for FreeBSD console.
<p>
RUS/LAT switch will be <bf>CapsLock</bf>. Old CapsLock function still
available via <bf>Shift+CapsLock</bf>. CapsLock LED will
indicate RUS mode, not CapsLock mode.

<item>For each <tt>ttyv?</tt> entry in <tt>/etc/ttys</tt>
change terminal type from <tt>cons25</tt> to
<tt>cons25r</tt>, i.e. each entry should looks like
<verb>
ttyv0	"/usr/libexec/getty Pc"		cons25r	on  secure
</verb>
</enum>

<sect1><heading>Locale Setup<label id="russian:locale"></heading>
<p><label id="russian:env">
There is two environment variables for locale setup:
<itemize>
<item><tt>LANG</tt>
for POSIX <tt>setlocale(3)</tt> family functions;
<item><tt>MM_CHARSET</tt>
for applications MIME chararter set.
</itemize>
<p>
The best way is using <tt>/etc/login.conf</tt>
<tt>russian</tt> user's login class
in <tt>passwd(5)</tt> entry login class position.
See <tt>login.conf(5)</tt> for details.

<sect2><heading>Login Class Method<label id="russian:class"></heading>
<p>
First of all check your <tt>/etc/login.conf</tt> have
<tt>russian</tt> login class, this entry may looks like:
<verb>
russian:Russian Users Accounts:\
	:charset=KOI8-R:\
	:lang=ru_RU.KOI8-R:\
	:tc=default:
</verb>

<sect3><heading>How to do it with vipw(8)</heading>
<p>
If you use <tt>vipw(8)</tt> for adding new users,
<tt>/etc/master.passwd</tt>
entry should looks like:
<verb>
user:password:1111:11:russian:0:0:User Name:/home/user:/bin/csh
</verb>

<sect3><heading>How to do it with adduser(8)</heading>
<p>
If you use <tt>adduser(8)</tt> for adding new users:
<itemize>
<item>Set
<verb>
defaultclass = russian
</verb>
in <tt>/etc/adduser.conf</tt>
(you must enter <tt>default</tt> class for all non-Russian
users in this case);
<newline><newline>

<item>Alternative variant will be answering <tt>russian</tt>
each time when you see
<verb>
Enter login class: default []:
</verb>
prompt from <tt>adduser(8)</tt>;
<newline><newline>

<item>Another variant: call
<verb>
# adduser -class russian
</verb>
for each Russian user you want to add.
</itemize>

<sect3><heading>How to do it with pw(8)</heading>
<p>
If you use <tt>pw(8)</tt> for adding new users, call it in this form:
<verb>
# pw useradd user_name -L russian
</verb>

<sect2><heading>Shell Startup Files Method</heading>
<p>
If you don't want to use
<ref id="russian:class" name="login class method">
for some reasons, just set
this
<ref id="russian:env" name="two environment variables">
in the following shell startup files:
<itemize>
<item><tt>/etc/profile</tt>:
<verb>
LANG=ru_RU.KOI8-R; export LANG
MM_CHARSET=KOI8-R; export MM_CHARSET
</verb>

<item><tt>/etc/csh.login</tt>:
<verb>
setenv LANG ru_RU.KOI8-R
setenv MM_CHARSET KOI8-R
</verb>
</itemize>
<p>
Alternatively you can add this instructions to
<itemize>
<item><tt>/usr/share/skel/dot.profile</tt>:
<p>
(similar to <tt>/etc/profile</tt> above);

<item><tt>/usr/share/skel/dot.login</tt>:
<p>
(similar to <tt>/etc/csh.login</tt> above).
</itemize>

<sect1><heading>X Window Setup<label id="russian:xwindow"></heading>
<p>
Step by step instructions:
<enum>
<item>Do
<ref id="russian:locale" name="non-X locale setup"> first as described.
<p>
<it>NOTE:</it><label id="russian:note">
Russian KOI8-R locale may not work with old XFree86 releases
(lower than 3.3).
XFree86 port from <tt>/usr/ports/x11/XFree86</tt> already have
most recent XFree86 version,
so it will work, if you install XFree86
from this port.
XFree86 version shipped with the latest FreeBSD distribution should
work too (check XFree86 version number not less than 3.3 first).

<item>Go to <tt>/usr/ports/russian/X.language</tt> directory and say
<verb>
# make all install
</verb>
there. This port install latest version of KOI8-R fonts. XFree86 3.3
already have some KOI8-R fonts, but this ones scaled better.
<p>
Check find <tt>"Files"</tt> section in your <tt>/etc/XF86Config</tt>,
following lines must be before any other <tt>FontPath</tt> entries:
<verb>
    FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
    FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
    FontPath   "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"
</verb>
<p>
If you use high resolution video mode, swap 75 dpi and
100 dpi lines.

<item>To activate Russian keyboard add
<verb>
    XkbKeymap   "xfree86(ru)"
</verb>
line into <tt>"Keyboard"</tt> section in your <tt>/etc/XF86Config</tt>,
also make sure that <tt>XkbDisable</tt> is turned off (commented out)
there.
<p>
RUS/LAT switch will be <bf>CapsLock</bf>. Old CapsLock function still
available via <bf>Shift+CapsLock</bf> (in LAT mode only).
<p>
<it>NOTE:</it>
Russian XKB keyboard may not work with old XFree86 versions,
see <ref id="russian:note" name="locale note"> for more info.
Russian XKB keyboard may not work with non-localized applications
too, minimally localized application should call
<bf>XtSetLanguageProc</bf> (NULL, NULL, NULL);
function early in the program.
</enum>