Linux Cyrillic HOWTO Aleksandra Belikova v perevode Evgeniya Baldina
---------------------------------------------------------------
From: Evgenij Baldin (baldin@sky.inp.nsk.su))
Kak-to pol goda nazad perevel dlya sebya Cyrillic HOWTO Belikova - koe-chto
ustarelo, koe-chto luchshe sdelat' po drugomu - no vobshchem,- polezno. Esli vy
hotite russificirovat' UNIX - to nachinat' luchshe posle togo, kak prochitali
etot teht (veroyatno est' eshche perevody, no pol goda nazad ya ih ne nashel)
-----------------------------------------------------------------------
Aleksandr L. Belikov, (abel@bfr.co.il), Berger Financial
Research Ltd. V3.15, 14 noyabrya 1997
V etom dokumente opisyvaetsya, kak nastroit' Linux dlya
redaktirovaniya, prosmotra i pechatati dokumentov na Russkom yazyke.
V etom dokumente opisyvayutsya priemy kotorye nuzhny dlya
redaktirovaniya, prosmotra, i pechatati dokumentov po-russki pod
Linux. I hotya zdes' predpolagaetsya, chto vy ispol'zuete Linux kak
operacionnuyu sistemu, bol'shinstvo opisyvaemoj informacii
odinakovo primenimo k drugim raznovidnostyam Unix. YA popytayus'
ukazyvat' na razlichiya.
Imeetsya ryad populyarnyh distributivov Linux. V kachestve primera
ya vybral RedHat 3.0.3 Linux (Picasso) i RedHat 4.1 Linux
(Vanderbildt) - eto tot, kotoryj ya lichno ispol'zuyu. Odnako, ya
budu podcherkivat' razlichiya, esli oni sushchestvuyut, pri nastrojke
Slackware Linux.
Tak kak takaya ustanovka neposredstvenno izmenyaet i rasshiryaet
operacionnuyu sistemu, to vy dolzhny ponimat', chto delaete.
Nesmotrya na to, chto ya proboval uprostit' izlozhenie nastol'ko,
naskol'ko eto vozmozhno, nalichie nekotorogo opyta raboty s
nastraevyemym programmnym obespecheniem yavlyaetsya preimushchestvom. YA
ne sobirayus' opisyvat' chto takoe X Windows ili kak k sozdayutsya
dokumenty v sistemah TeX i LaTeX, ili kak ustanovit' printer v
Linux. |to opisano drugih dokumentah.
V bol'shinstve sluchaev ya opisyvayu polnuyu russifikaciyu sitemy, po
umolchaniyu trebuyushchej privilegii root. Hotya, esli imeetsya
vozmozhnost' dlya nastrojki na urovne pol'zovatelya, to ya budu ob
etom upominat'.
OBRATITE VNIMANIE: X WIndows, TeX i drugie komponenty Linux-
slozhnye sistemy s navorochennym setupom. Esli Vy sdelaete chto-libo
nepravil'no, to ne tol'ko poterpite neudachu s russifikaciej
sistemy, no i mozhite chastichno esli ne polnost'yu isportit'
sistemu. |to ne dolzhno vas pugat', eto prosto preduprezhdenie,
kotroe daet vam ponyat' vsyu ser'eznost' processa nastrojki
takogo tipa. Ochen' rekomenduetsya sdelat' kopii fajlov
konfiguracii. Takzhe neploho by imet' vozmozhnost' svyazat'sya s
guru.
1.2. Mestopolozhenie dokumenta i obratnaya svyaz'
|tot dokument lezhit na sunsite.unc.edu ili tsx-11.mit.edu i
yavlyaetsya chast'yu Linux Document Project. Takzhe, ego mozhno najti na
razlichnyh FTP, imeyushchih otnoshenie k Linux. Krome togo, eto
dokument mozhet byt' vklyuchen v distributiv Linux.
Esli u vas imeyutsya lyubye predlozheniya ili ispravleniya po
kontekstu etogo dokumenta, to, pozhalujsta nezamedlitel'no
prokontaktirujte so mnoj abel@bfr.co.il. Predostavlenie lyuboj
novoj i poleznoj informacii otnositel'no podderzhki Kirillicy v
razlichnyh Unixah krajne pooshchryaetsya. Ne zabud'te, ved' eto pomozhet
drugim.
1.3. Blagodarnost' and copyrights
Mnogo lyudej pomogli mne (i ne tol'ko mne) cennoj informaciej i
predlozheniyami. I dazhe bol'shoe kolichestvo lyudej sozdalo
programmnoe obespechenie dlya public comunity. Mne ochen' zhal' esli ya
zabyl kogo - to upominut'.
Itak vot oni nashy geroi:
Bas V. Bakker
David Daves
Sergej Vakulenko
Sergej O. Naumov
Winfried Truemper
Il'ya K. Orehov
Michael Van Canneyt
Aleksej Bogdanov
relcom.fido.ru.unix i relcom.fido.ru.linux Usenet newsgroups.
|tot dokument - Copyright (C) 1995,1997 Aleksandra L. Belikova.
On mozhet ispol'zovat'sya i rasprostronyat'sya pod obychnymi Linux
HOWTO usloviyami, opisannymi nizhe.
Dalee idet - primechanie k avtorskim pravam Linux HOWTO:
Esli ne otmecheno inache, Linux HOWTO dokumenty zashchishchenny
avtorskimi pravami ih avtorov. Linux HOWTO dokumenty mogut
vosproizvodit'sya i rasprostranyat'sya polnost'yu ili chastichno, v
lyubym fizicheskim ili elektronnym sposobom, pokuda eto zayavlenie
avtorskogo prava sohranyaetsya vo vseh kopiyah. Kommercheskoe
raspredelenie pozvolyaetsya i pooshchryaetsya; odnako, avtor hotel by
utochnit' pravila otnositel'no lyubyh takih rasprostranenij.
Vse raboty, ispol'zuyushchie dannyj dokument, vklyuchaya lyuboj
Linux HOWTO, dolzhny byt' rasprostranyat'sya pod etim zhe
soglasheniem. To est' vy ne mozhete nalagat' dopolnitel'nye
ogranicheniya na rasprostranenie svoego produkta osnovannogo na
dannom HOWTO. Isklyucheniya k etim pravilam mogut predostavlyat'sya
tol'ko pri nekotoryh usloviyah; pozhalujsta vojdite v kontakt s
Linux HOWTO koordinatorom po adrese, dannom nizhe.
Koroche govorya, my zhelaem podderzhat' rasprostranenie etoj
informacii cherez nastol'ko mnogie kanaly rasprostraneniya
naskol'ko eto vozmozhno. Odnako, my zhelaem sohranit' avtorskie
prava na HOWTO dokumenty, i hotelos' by chto by nas preduprezhdali
o lyubyh planah otnositel'no rasprostraniniya etogo HOWTO.
Esli u vas imeyutsya voprosy, pozhalujsta vojdite v kontakt s Greg
Hankins, koordinatorom Linux HOWTO , po gregh@sunsite.unc.edu.
Dlya togo chtoby poluchit' nomer telefona i dopolnitel'nuyu
informaciyu dlya kontakta vy mozhete napustit' na etot adres finger.
Unix is a technology trademark of the X/Open Ltd.; MS-DOS,
Windows, Windows 95, and Windows NT are trademarks of the
Microsoft Corp.; The X Window System is a trademark of The X
Consortium Inc. Other trademarks belong to the appropriate
holders.
CHtoby ponimat' i pechatat' simvoly razlichnyh yazykov, sistema i
programmnoe obespechenie dolzhna byt' sposobna otlichit' ih ot
drugih simvolov. To est' kazhdyj unikal'nyj simvol dolzhen imet'
unikal'noe predstavlenie vnutri operacionnoj sistemy, ili
specificheskogo paketa programm. Takaya sovokupnost' vseh
unikal'nyh simvolov, kotorye sistema sposobna predstavit' srazu,
nazyvaetsya codeset (kodirovka).
Vo vremya sozdaniya bol'shenstva operacionnyh sisteme, nikto ne
zabotilsya otnositel'no programmnogo obespecheniya, yavlyayushchegosya
mnogoyazychnym. Sledovatel'no, naibolee populyarnyj codeset byl (i
fakticheski ostaetsya im) ASCII (Amerikanskij Standartnyj Kod dlya
Informacionnogo Obmena).
Standart ASCII (ili ASCII s 7 bitami) vklyuchaet 128 unikal'nyh
kodov. Oni podrazdelyayutsya na simvoly, kotorye ASCII opredelyaet
kak sobstvenno pechataemye, i na tak nazyvaemye simvoly
upravleniya, kotorye imeli special'nye znacheniya v staryh
protokolah svyazi. Kazhdyj element nabora identificirovan
celochislennym simvol'nym kodom (0-127). Podmnozhestvo pechataemyh
simvolov predstavlyayut te, kotorye nahodyat na klaviature pishushchej
mashinki s nekotorymi nekotorymi dobavleniyami. Starshij
razryad i 7mi bit ispol'zovalsya dlya celej upravleniya (to est', dlya
upravleniya peredachi v staryh paketah svyazi).
Koncepciya ASCII s 7 bitami byla rasshirena do ASCII s 8 bitami
(ili rasshirennogo ASCII). V etoj koderovke, diapazon simvolov
sootvetstvuet kodam ot 0 do 255. Mladshie bity (0-127) - chistyj
ASCII, v to vremya kak starshij razryad dobavlyaet eshche 127 simvolov.
Tak kak etot codeset obratno sovmestim s ASCII (simvol vse eshche
zanimaet 8 bit, i kody polnost'yu sootvetstvuyut staromu ASCII),
etot codeset stal shiroko ispol'zovat'sya.
Standart ASCII s 8 bitami ne opredelyaet soderzhanie verhnej
poloviny codeset. Poetomu MEZHDUNARODNAYA ORGANIZACIYA PO
STANDARTIZACII (ISO) vzyala otvetstvennost' po opredeleniyu
semejstva standartov, izvestnyh kak ISO 8859-X semejstvo. |to -
sovokupnost' 8mi bitnyh kodirovok, gde mladshaya polovina kazhdogo
codeset (simvoly s kodami 0-127) sootvetstvuet ASCII, i starshaya
polovina opredelyaet simvoly dlya razlichnyh yazykov. Naprimer,
sleduyushchij codesets opredeleny dlya:
8859-1 - Evropa, Latinskaya Amerika (takzhe izvestnyj kak Latin 1)
8859-2 - Vostochnaya Evropa
8859-5 - Kirillica
8859-8 - Idish
V Latin 1, starshaya polovina tablicy opredelyaet razlichnye
simvoly, kotorye - ne yavlyayutsya chast'yu Anglijskogo alfavita, no
prisutstvovuet v razlichnyh evropejskih yazykah (nemeckie umlauts,
francuzskie diakriticheskie znaki i t.d).
Drugaya populyarnaya realizaciya rasshirennogo ASCII - tak
nazyvaemaya kodovaya stranica IBM (nazvannaya po imeni komp'yuternoj
kompaniya, kotoraya sozdala, etot codeset dlya svoih personal'nyh
komp'yuterov). |ta koderovka v starshej polovine soderzhit psevdo -
graficheskie simvoly.
Programmnoe obespechenie, kotoroe ne delaet nikakih
predpolozhenij o simvolah ispol'zuyushchih 8-oj bit ASCII dannyh,
nazyvaetsya chisto 8mi bitnymi. Neskol'ko bolee staryh programm,
razrabotannye dlya ASCII s 7 bitami v pamyati ne dlya chistyh 8 bit
mogut rabotat' nepravil'no s vashimi rasshirennymi ASCII dannymi.
Bol'shinstvo paketov, odnako, sposobny rabotat' s rasshirennym
ASCII po umolchaniyu, ili dlya etogo trebuetsya prostaya
perekonfiguraciya.
OBRATITE VNIMANIE: pered zadaniem voprosa tipa: " ya delal vse
ustanovki pravil'no, no ya ne mogu vvesti ili uvidet' simvoly
Cyrillic! ", pozhalujsta konsul'tirujtes' s sootvetstvuyushchim
razdelom v doumentacii k programme, kotoruyu Vy ispol'zuete.
Tak kak v bol'shinstve sistem simvoly opisyvayutsya 8yu bitami, to
net nikakogo sposoba rasshirit' ASCII eshche bol'she. Sposob sozdaniya
novyh simvolov v ASCII - eto prosto sozdanie drugih rasshirennyh
ASCII realizacij. S pomoshch'yu etogo sposoba byla vvedena Kirillica
v ASCII.
My uzhe upomyanuli ISO 859-5 standart kak tot, v kotorom
opredelyaetsya codeset dlya Kirillicy. No poskol'ku (kak eto chasto
sluchaetsya so standartami), on byl razrabotan bez prinyatiya vo
vnimanie real'nyh processov prohodyashchih v SSSR (kogda eto eshche
bylo), to etot standart tol'ko uvelichil besporyadok s kodirovkami
Kirillicy. YA ne skazal by, chto ISO 8859-5 gde-libo shiroko
ispol'zuetsya.
Drugie standarty dlya Kirillicy vklyuchayut, tak nazyvaemyj, Alt
codeset i kodovaya stranica Microsoft CP1251. Vysheupomyanutyj Alt
standart byl razrabotan dlya MS-DOS dovol'no davno. Togda eshche
slyhom ne slyhivali pro seti i poetomu osnovnoe usilie sostoyalo v
tom, chtoby sdelat' etot standart nastol'ko naskol'ko eto vozmozhno
sovmestimym s IBM standartom. Sledovatel'no Alt codeset -
dejstvitel'no ta zhe samaya IBM kodovaya stranica, gde vse
specificheskie simvoly European v verhnej polovine byli zameneny
na Kirillicu, ostavlyaya psevdograficheskie simvoly netronutymi.
Sledovatel'no, eto ne portilo vid programm ispol'zuyushchih dlya
raboty tekstovye okna i takzhe obespechilo simvoly Cyrillic. Alt
standart vse eshche zhiv i chrezvychajno populyaren v srede MS-DOS.
Microsoft CP1251 kodovaya stranica - eto popytka Microsoft
pridumat' novyj standart dlya koderovki Kirillicy v Windows.
Naskol'ko ya znayu, eto ne sovmestimo s chem libo eshche (i ne
udivitel'noe, tri Ha-Ha)
Nu i nakonec KOI-8. |tot standart tokzhe dovol'no star, no byl
razrabotan nastol'ko produmanno, chto i v nastoyashchee vremya osnovnye
otpravnye idei razrabotki vyglyadyat dejstvitel'no poleznymi.
|to stanart sovmestim s ASCII, i simvoly Cyrillic razmeshcheny v
starshej polovine. No osnovnaya ideya proekta KOI-8 - to, chto
pozicii simvolov Cyrillic dolzhny sootvetstvovat' simvolam English
s toj zhe samoj fonetikoj. A imenno, esli my ustanavlivaem vos'moj
bit simvola English " ", my poluchim Kirillicu " ". |to oznachaet,
chto, v esli v tekste Kirillicy, napisannom v KOI-8, my ubiraem
vos'moj bit kazhdogo simvola, to my vse eshche imeem chitaemyj tekst,
hotya on i napisan simvolami English! |to ochen' vazhno teper', tak
kak imeetsya dovol'no mnogo sistem E-maile otkusyvayushchih vos'moj
bit, tak kak oni prbyvayut v uverennosti, chto kazhdyj o chelovek na
poverhnosti Zemli govorit na anglijskom yazyke.
Ne udivitel'no, chto KOI-8 bystro stal fakticheskim standartom
dlya Kirillicy v Internet. Andrej A. CHernov prodelal ogromnoe
kolichestvo raboty, chtoby sozdat' standart. On - avtor RFC 1489
("Registration of a Cyrillic Character Set ").
|ti dva standarta otlichayutsya tol'ko v poziciyah simvolov
kirillicy v tablice (kotoryj opredelyaetsya v kodah simvola
kirillicy).
Principial'noe razlichie - to, chto Alt codeset ispol'zuetsya
pol'zovatelyami MS-DOS i tol'ko, v to vremya kak KOI-8 ispol'zuetsya v
Unix, takzhe kak v MS-DOS (hotya v poslednem KOI-8 namnogo menee
populyaren). Tak kak my idem pravil'nym putem (a imenno rabotaem v
Unix-opodobnoj operacionnoj sisteme), my budem v osnovnom
ostanavlivat'sya na rassmotrenii KOI-8.
CHto kasaetsya standarta ISO, to on bolee populyaren v Evrope i SSHA
kak standart dlya Kirillicy. Lider v Rossii eto opredelenno KOI-8.
Imeyutsya takzhe drugie bolee gibkie standarty, kotorye yavlyayutsya
otlichnymi ot ASCI. Bol'she vsego izvesten standart Unicode.
Odnako, oni ne vstroeny takzhe horosho kak prostoj ASCII v Unix
voobshche i Linux v chastnosti. Sledovatel'no, zdes' ya ih ne
opisyvayu.
3. Nastrojka shriftov dlya tekstovogo rezhima (konsol')
Voobshche, nastrojka tekstovyh rezhimov - samyj prostoj sposob
pokazyvat' i vvodit' simvoly Cyrillic. Odnako, imeetsya odno
znachitel'noe oslozhnenie: tekstovye shrifty i raspolozhenie simvolov
na klaviature zavisyat ot realizacii drajvera terminala.
Sledovatel'no, ne imeetsya nikakogo obshchego sposoba dlya dostizheni
celi celi v razlichnyh sistem.
Nizhe, ya opishu sposob kak spravit'sya s drajverom Linux console.
Poetomu esli vy imeete druguyu sistemu, ne ozhidajte, chto eto budet
rabotat'. Vzamen, prokonsul'tirujtes' s rukovodstvom po drajveru
terminala i poshlite mne lyubuyu informaciyu,kotoruyu Vy najdete, v
etom sluchae ya smogu vklyuchit' eto v dal'nejshie versii etogo
dokumenta.
Konsol'nyj drajver Linux - dovol'no gibkij obrazchik
programmnogo obespecheniya. On mozhet menyat' shrifty i raskladki
klaviatury. CHtoby selat' eto, vam nuzhen paket kbd. I RedHat, i
Slackware ustanavlivayut kbd kak chast' sistemy.
Paket kbd soderzhit utility upravleniya klaviatur, krome etogo s
nim postavlyaetsya shirokij vybor shriftov i raskladok.
Ustanovka Kirillicy s pomoshch'yu kbd obychno sostoit iz:
1. |krannoj ustanovki shriftov, kotoraya vypolnyaetsya programmoj
setfont. Fajly shriftov razmeshcheny v /usr/lib/kbd/consolefonts.
OBRATITE VNIMANIE: Nikogda ne vypolnite programmu setfont
pod X, potomu chto eto privedet sistemu k krahu. |to proishodit,
potomu chto paket rabotaet s obrashcheniyami videoplaty nizkogo
urovnya, kotorye X ne perevarivaet.
2. Zagruzki sootvetstvuyushchej raskladki klaviatury programmoj
loadkeys.
OBRATITE VNIMANIE: V RedHat 3.0.3, /usr/bin/loadkeys imeet
slishkom ogranichennye prava dostupa, a imenno 700 (rwx ------).
Nikakih prichin dlya etogo net, tak kak kazhdyj mozhet skompilirovat'
i zapustit' svoyu sobstvennuyu kopiyu paketa (sootvetstvuyushchie
sistemnye vyzovy ne trebuyut privelegij root). Vam nado tol'ko
poprosit', chtoby vash sysadmin ustanovil bolee adekvatnye dlya
etogo prava dostupa (naprimer, 755).
Sleduyushchee eto vyzhimka iz moego skripta, zagruzhayushchego kirilicu,
kotoryj ustanavlivaet rezhim Cyrillic dlya konsoli Linux:
if [ notset.$DISPLAY != notset. ]; then
echo "`basename $0`: cannot run under X"
exit
fi
loadkeys /usr/lib/kbd/keytables/ru.map
setfont /usr/lib/kbd/consolefonts/Cyr_a8x16
mapscrn /usr/lib/kbd/consoletrans/koi2alt
echo -ne "\033(K" # the magic sequence - Mumba-YUmba
echo "Use the right Ctrl key to switch the mode..."
Pozvol'te mne eto poyasnit'. Vy zagruzhaete sootvetstvuyushchuyu
raskladku klaviatury. Zatem zagruzhaete shrift, sootvetstvuyushchij Alt
codeset. Zatem, chtoby byt' otobrazhat' tekst v KOI8-R pravil'no,
vy zagruzhaete ekrannuyu tablicu perekodirovki. CHto eto daet:
otobrazhaet nekotorye simvolov iz starshej poloviny codeset v Alt
kodirovku. Slovo " nekotoryj " yavlyaetsya zdes' central'nym - ne,
vse simvoly otobrazhayutsya, to est' nekotorye iz nih,
sootvetstvuyushchie IBM psevdograficheskim simvolam dlya ekrana i
displeya ne izmenyayutsya, tak kak oni sovmestimy s Alt codeset, v
protivopolozhnost' KOI8-R. CHtoby uverit'sya, zagruzite mc, i
voobrazite, chto Vy vernulis' v starye dobrye vremena k MS-DOS 3.3
...
V zaklyuchenie, magic sequence (Mumba-YUmba) neobhodima, no ya ne
imeyu ponyatiya, na koj ona. YA ukral/zanyal/nauchilsya etomu iz German
HOWTO v dalekom 1994, kogda eto byl edinstvennym orientirovannym
na nacional'nyj yazyk HOWTO. Esli Vy imeete hot' kakuyu-nibud' ideyu
otnositel'no etoj volshebnoj posledovatel'nosti, pozhalujsta
soobshchite mne.
V zaklyuchenie, dlya teh estetov, kto ne zhelaet ispol'zovat' Alt
codeset, ya prilagayu druguyu versiyu zagruzochnogo shrifta, ispol'zuya
rodnye KOI8-R shrifty.
if [ notset.$DISPLAY != notset. ]; then
echo "`basename $0`: cannot run under X"
exit
fi
loadkeys /usr/lib/kbd/keytables/ru.map
setfont /usr/lib/kbd/consolefonts/koi-8x16
echo "Use the right Ctrl key to switch the mode..."
Odnako, ne ozhidajte krasivyh ramok v vashih programmah,
ispol'zuyushchih dlya raboty menyushki v tekstovom rezhime.
Teper' Vy veroyatno hotite proverit' eto. Skonfigurirujte takim
obrazom bash ili tcsh, peregruzite ego, zatem nazhmite pravuyu
Klavishu CTRL, i udostoverites', chto Vy mozhite pechatat' na
russkom. Klavisha "q" dolzhna sootvetstvovat' "j", "w"
sootvetstvuet "c", i t.d.
Esli u vas voznikli nepredvidennye problemy, to luchshe vsego
vernut'sya k rodnoj (to est' US) raskladke. Dlya etogo sdelajte
sleduyushchie telodvizheniya:
loadkeys /usr/lib/kbd/keytables/defkeymap.map
setfont /usr/lib/kbd/consolefonts/default8x16
OBRATITE VNIMANIE: k sozhaleniyu, konsol' ne sposobna sohranit'
eto sostoyanie (po krajnej mere bez izlishnih uhishchrenij), kogda
peredaetsya pravlenie X Windows. Sledovatel'no, posle togo, kak vy
vyshli iz X (ili pereklyuchaetes' na konsol'), to vy dolzhny
perezagruzit' russkij shrift.
YA ne ispol'zuyu FreeBSD, tak chto ya ne mogu proverit' sleduyushchuyu
informaciyu. Vse dannye v etom razdele dolzhny vosprinimat'sya
tol'ko kak priblizitel'nye ukazateli napravleniya dejstvij. Na
stranichke FreeBSD, veroyatno, chto-to est' po etomu voprosu.
Drugoj horoshij istochnik informacii- relcom.fido.ru.unix newsgroup.
Krome togo, prover'te istochniki, perechislennye v razdele """.
Vo vsyakom sluchae, eto - to, chto Il'ya K. Orehov predlagaet
sdelat', chtoby zastavit' konsol' FreeBSD govorit' po russki:
1. In /etc/sysconfig add:
keymap=ru.koi8-r
keyrate=fast
# NOTE: '^[' below is a single control character
keychange="61 ^[[K"
cursor=destructive
scrnmap=koi8-r2cp866
font8x16=cp866b-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8
2. V /etc/csh.login:
setenv ENABLE_STARTUP_LOCALE
setenv LANG ru_SU.KOI8-R
setenv LESSCHARSET latin1
3. Sdelat' analogichnye izmeneniya v /etc/profile
4. X Windows
Podobno konsol'nomu rezhimu, X windows takzhe trebuet nekotoroj
nastrojki. Nastrojka vklyuchaet v sebya nastrojku vvoda i ustanovku
X shriftov. Dannye dejstviya obsuzhdayutsya nizhe.
Prezhde vsego Vy dolzhny poluchit' shrifty, imeyushchie Kirillicheskie
glyphs (izobrazheniya) v sootvetstvuyushchih mestah.
Esli Vy ispol'zuete dostatochno novyj distributiv X (ili
XFree86), to vozmozhno, chto u vas uzhe est' takie shrifty. V 1995, v
distributiv X Windows byl vklyuchen nabor shriftov Kirillicy,
sozdannyh Cronyx. Sprosite administratora vashej sistemy, ili,
esli vy- eto on i est', prover'te vashu sistemu na predmet, a
imenno::
1. Vypolnit' " xlsfonts | grep -i koi ". Esli imeyutsya
perechislennye shrifty, to vash X server uzhe znaet ob ih
sushchestvovanii.
2. Ili, naberite
find -name crox\*.pcf\*
Vy najdete mestopolozhenie shriftov Kirillicy v sisteme. Vy
dolzhny budete skormit' eti shrifty X servery, kak - ya ob®yasnyu nizhe.
Esli Vy ne nashli takie shrifty v vashej sisteme, to vy dolzhny
ustanovit' ih sami.
Imeetsya nekotoraya neodnoznachnost' so shriftami. V dokumentacii
na XFree86 utverzhdaetsya, chto rossijskaya kollekciya shriftov,
vklyuchennaya v nabor razrabotanna Cronyx. Odnako, vy mozhete najti
drugoj distributiv Cronyx shriftov Kirillicy v seti (a imenno na
ftp.kiae.su), izvestnyj, kak paket xrus (ne putat' eto s
programmoj xrus, kotoraya ispol'zuetsya dlya ustanovki rasskladok
Kirillicy. K schast'yu, poslednyaya byla nedavno pereimenovana v
xruskb). Xrus imeet men'shij nabor shriftov chem v kollekcii Xfree86
(38 protiv 68), no poslednyaya ne podoshla dlya raboty s " Netscape "
- ona podstavila prosto ogromnyh shrifty v menubar Netscape. Paket
xrus ne imeet etoj problemy.
YA predlozhil by, chtoby Vy zagruzili i oprobovali oba paketa.
Podberite tot, kotoryj vy najdete naibolee priyatnym v obshchenii.
Krome, ya skoro sozdam RPMki dlya oboih paketov, i polozhu, ih v
ftp.redhat.com i v moj FTP arhiv.
Imeetsya takzhe bolee staroe reshenie, naprimer paket vakufonts,
sozdannyj Sergeem Vakulenko, kotoryj stal osnovoj dlya paketa
vklyuchennogo v distributiv X Windows Imeetsya takzhe ryad drugih
paketov. Ochen' vazhno, chto imena shriftov v staroj kollekii ne
sovpadayut so standartom polnost'yu. Vakufonts v obshchem niche, no
inogda iz-za mogut voznikat' razlichnye sverh®estestvennye oshibki.
Naprimer, u menya byli problemy s Maple V dlya Linux, kotoryj padal
po neponyatnym prichinam s paketom vakufonts, no prekrasno
rabotal so "standartnymi" naborami.
Itak, davajte nachnem so shriftov:
1. Vytashchite po ftp sootvetstvuyushchij nabor shriftov. Paket dlya
XFree86 mozhno najti na lyubom FTP arhive, gde lezhit distributiv X
Windows, naprimer, neposredstvenno na oficial'nom XFree86 FTP
arhive. Paket Xrus mozhno najti na ftp.kiae.su
2. Teper', kogda u vas est' shrifty, sozdajte direktoriyu dlya
nih. Pomestit' novye shrifty v uzhe sushchestvuyushchij katalog shriftov ne
ochen' horoshaya ideya. Pomestite ih, naprimer, v
/usr/lib/X11/fonts/cyrillic dlya nastrojki vsej sitemy, ili prosto
sozdajte katalog u sebya tol'ko dlya personal'nogo pol'zovaniya.
3. Esli novye shrifty postavlyayutsya v formate BDF (* .bdf fajly),
to Vy dolzhny skompilirovat' ih. Dlya kazhdogo shrifta vypolnite:
bdftopcf -o <font>.pcf <font>.bdf
Esli vash server podderzhivaet szhatye shrifty, to sozhmite ih s
pomoshch'yu compress:
compress *.pcf
Esli zhe vy vse-taki hotite pomestit' novye shrifty v uzhe
sushchestvuyushchij katalog shriftov, to Vy dolzhny srostit' staryj i
novye fajly, s imenem fonts.alias v tom sluchae, estestvenno, esli
oba sushchestvuyut.
4. V kazhdyj katalog shriftov dlya X dolzhen byt' spisok shriftov.
|tot spisok nahoditsya v fajle fonts.dir. Vy ne dolzhny sozdavat'
etot spisok vruchnuyu. Vmesto etogo, sdelajte:
cd <new font directory>
mkfontdir .
5. Teper' Vy dolzhny sdelat' etot katalog shriftov izvestnym dlya
X servera. Zdes' u vas est' ryad vozmozhnostej:
Obshchesistemnaya nastrojka dlya XFree86. Esli vy ispol'zuete etu
versiyu X Windows, to dobav'te novyj katalog k spisku katalogov v
fajle XF86Config. CHtoby najti ego raspolozhenie, sm. chto govorit
startx pri zapuske. Bolee podrobno smotrite man XF86Config (4/5).
Obshchesistemnaya nastrojka cherez xinit. Dobav'te novyj katalog k
fajlu zapuska xinit. Bolee podrobno smotrite man xinit (1x).
Personal'naya nastrojka. U vas est' special'nyj fajl dlya zapuska
X - ~/.xinitrc (ili ~/.Xclients, ili ~/.xsession dlya
pol'zovatelej RedHat). Dobav'te sleduyushchie komandy v etot fajl:
xset +fp <new font directory>
xset fp rehash
Obratit' vnimanie, na opciyu " + fp "- eto oznachaet, chto novye
shrifty budut dobavleny v nachale spiska direktorij so shriftami. To
est' esli prikladnaya programma zaprashivaet, skazhem, fix font, to
budet podstavlen fixed font s simvolami Cyrillic, chego imenno my
i dobivalis'.
Hotya imeyutsya nekotorye problemy. V distributive shriftov
kirillicy net poluzhirnogo i kursivnogo fixed font. Moj lyubimyj
shrift - 6x13, a tak, kak poluzhirnye i kursivnye shrefty etogo
razmera takzhe otsutstvuyut, to ya ne mogu ispol'zovat' Emacs/XEmacs
v polnoj mere. Nadeyus', chto kto - to v konechnom schete sozdast eti
shrifty, i situaciya izmenitsya.
6. A teper' perezapustite vash X Windows., esli vy vse sdelali
pravil'no, to testy v nachale razdela budut projdeny uspeshno.
Krome togo, poigrajtes' s xfontsel (1x), chtoby udostoverit'sya chto
Vy sposobny vybrat' shrifty kirillicy.
CHtoby zastavit' X klienta ispol'zovat' shrifty Kirillicy, Vy
dolzhny ustanovit' sootvetstvuyushchie X resources. Naprimer, ya delayu
russkij shrift zadannym po umolchaniyu v moem ~/.Xdefaults:
*font: 6x13
Tak kak moi shrifty kirillicy pervye v spiske pojska shriftov to
oni i podstavlyayutsya esli programa trebuet kakoj-libo shrift s
imenem, sovpadayushchem s kakim-libo iz russkih shriftov (sm. vyvod)
|to prostoj primer. Esli Vy hotite nauchit' sootvetstvuyushchij X
client pol'zovat'sya kirillicheskim shriftom , to Vy dolzhny uznat'
tip resursa, kotoryj vam nado izmenit' (mozhno eto sdelat'
ispol'zuya editres (1x)) i opredelit' ego ili v baze dannyh
resursov, ili v komandnoj stroke. Naprimer mozhno sdelat' tak:
$ xterm -font '-cronyx-*-bold-*-*-*-19-*-*-*-*-*-*-*'
$ xfontsel -xrm '*quitButton.font: -*-times-*-*-*-*-13-*-*-*-*-*-koi8-*'
xfontsel.
V poslednih vypuskah X (X11R61 i vyshe) imeyutsya dva
"standartnyh" sposoba vvoda s klaviatury: rodnoj sposob,
rabotayushchij cherez utilitu xmodmap, i novyj, nazyvaemyj Xkb (X
KeyBoard). Pervoe chto vy dolzhny sdelat' eto otklyuchit' Xkb sposob!
Ne davajte sebya zagipnotezirovat' ego sposobnost'yu ustanavlivat'
"russian keyboard". |tot sposob, vrode by, ispol'zuet opisanie
simvolov Kirillicy opredelennyh v keysymdef.h. |tot fajl
opredelyaet simvoly dlya mnogih yazykov. Edinstvenaya problema
sostoit v tom, chto dannoe opredeleniya ne pozvolyayut, rabotat' s
rasshirennym ASCII codeset - ochen' mnogo programm mogut rabotat'
tol'ko s etoj rasskladkoj! YA pochti ne znayu programm, kotorye
razbirayutsya s opisaniem simvolov v keysymdef.h otlichnym ot
standartnogo 8mi bitnogo ASCII. Odnako, nasha glavnaya cel' sostoit
v tom, chtoby zastavit' rabotat' podderzhku KOI8-R.
CHtoby otklyuchit' podderzhku Xkb, v fajle XF86Config izuchite
razdel Keyboard i zakommentirujte, vse stroki, nachinayushchiesya s
Xkb. Vzamen, dobav'te sleduyushchuyu stroku:
XkbDisable
Programma xmodmap pozvolyaet nastroit' kody sootvetstvuyushchie
razlichnymi simvolam i ih kombinaciyam. |ta nastrojka osnovanna na
fajle, soderzhashchem tablicu perekodirovki.
V predydushchih versiyah etogo dokumenta ya ochen' podrobno opisyval
nastrojku kirillicy osnovannuyu na xmodmap. |to okazalos'
prakticheski bespoleznym. Obshcheizvestno, chto sposob perekodirovka
vvoda, osnovannyj na Xmodmap, yavlyaetsya, ne-portabel'nym, ploho
nastraevaemym, i ne okonchatel'nym. Vashi nastrojki mogut rabotat'
s odnoj versiej XFree i sboit' pri rabote s drugoj. Bolee togo,
inogda rezul'tat raboty odnoj i toj zhe nastrojki sil'no raznitsya
dlya razlichnyh serverov iz odnogo distributiva.
YA nastoyatel'no sovetuyu vam ne igrat' s xmodmap, po krajnej mere
dlya nachala. Vy ne poluchite nichego krome golovnoj boli i
razocharovaniya. Vmesto etogo, ya rekomenduyu vam ustanovit' paket
xruskb, kotoryj pozvolyaet vam skonfigurirovat' bol'shinstvo
vhodnyh parametrov perekodirovki bez neobhodimosti stalkivat'sya s
xmodmap.
5. Podderzhka Kirillicy v TeX i LaTeX
V etom razdele ya opishu neskol'ko sposobov nabora russkih
tekstov v TeX i LaTeX. Est' neskol'ko napravleniya dlya dostizheniya
celi, kotorye otlichayutsya v slozhnosti ustanovki i udobstve
ispol'zovaniya. Naprimer, odna iz vozmozhnostej eto nachat' rabotu s
ispol'zovaniem shrifty Kirillicy iz Washington AMSTeX (eto
delaetsya bez kakoj libo predvaritel'noj nastrojki). S drugoj
storony, Vy mozhete ustanavlivit' paket LaTeX, obespechivayushchim
ochen' vysokuyu stepen' nastrojki na Kirillicu. U menya byl opyt
raboty s dvumya podobnymi paketami. Odin iz nih - cmcyralt paket
Vadima V. ZHitnikova (vvzhy@phy.ncu.edu.tw) i Aleksandra Harina
(harin@lourie.und.ac.za), a drugoj - paket programm LH napisannyh
gruppoj CyrTUG so stilyami i rasstanovkoj defisov dlya LaTeX2e
sozdannyh Sergeem O. Naumovym (serge@astro.unc.edu). YA opishu oba.
Obratite vnimanie, chto dostupny dve versii LaTeX, odna iz nih -
2.09 - staraya, v to vremya kak 2e - novaya (vypusk pre-3.0). Esli
Vy ispol'zuete LaTeX 2.09, to kak mozhno bystree perehodite na 2e.
Poslednij sohranyaet sovmestimost' so staroj versiej, no imeet
namnogo bol'she vozmozhnostej. Krome togo, versiya 3 budet skoro
vypushchena. YA opisyvayu ustanovku LaTeX 2e.
Da, kstati, oba etih paketa trebuyut dlya redaktirovaniya russkih
tekstov ustanovku Alt kodirovki, a ne KOI-8! |to vyzvano
istoricheskimi prichinami, sozdateli etih paketov, ispol'zovali, ih
dlya raboty s EmTeX- MS-DOS versii TeX (oni eshche znali o Linux :-).
Perehod k KOI-8 trebuet nekotoryh usilij, ozhidaetsya, chto budet
skoro sdelan. A poka, ispol'zujte kakie-nibud' utilitu, dlya
perekodirovki russkogo teksta iz KOI-8 v Alt. Sm. razdel """.
5.1. Rabota s Washington Cyrillic
|tot paket byl sozdan dlya Amerikanskogo Matematicheskogo
Obshchestva, chtoby dat' vozmozhnost' sozdavat' dokumenty s ssylkami
na pervoistochniki na russkom. Sledovatel'no, avtory ne ochen'
napryagalis' pri sozdanii etogo paketa i shrifty v rezul'tate etogo
vyglyadyat dovol'no neuklyuzhe. Obychno etot paket upominaetsya kak "
dovol'no plohoj paket kirillicy dlya TeX ".
Odnako, my obsudim ego, tak kak on ochen' prost v ispol'zovanii
i ne trebuet ustanovki - etot nabor soderzhivaetsya v bol'shinstve
distributivov TeX.
Konechno, u vas ne budete takoj roskoshi kak avtomaticheskaya
rasstanovka defisov, no vse ravno ...
1. Snabdite vash dokument so sleduyushchimi direktivami:
\input cyracc.def
\font\tencyr=wncyr10
\def\cyr{\tencyr\cyracc}
2. Teper', chtoby napechatat' simvol kirillicy, vstav'te
\cyr
dlya pechti ispol'zujte sootvetstvuyushchij latinskij simvol ili
komandu TeX. To est', strochnye bukvy russkogo alfavita
sootvetstvuyut sleduyushchim sochitaniyam: a b v g d e \"e zh z i {\u
i} k l m n o p r s t u f kh c ch sh shch {\cprime} y {\cdprime}
\`e yu ya
CHrezvychajno slozhno preobrazovyvat' vashi russkie teksty v takuyu
kodirovku, no vy mozhete avtomatizirovat' etot process. Programma
translit (razdel """) podderzhivaet opciyu vyvoda TeX.
5.2. KOI-8 paket dlya teTeX
Est' takzhe dovol'no novyj paket teTeX-rus. On podderzhivaet nabor
simvolov KOI-8 i otvechaet vsem osnovnym trebovaniyam TeX i LaTeX.
YA lichno ego ne proboval, chto do, to da, no ya slyshal o nem mnogo
polozhitel'nogo.
OBRATITE VNIMANIE: |tot paket trebuet, chtoby Vy
perekonfigurirovali i peresobrat' nekotorye chasti vashego paketa
teTeX (naprimer precompiled LaTeX makrokomandy). Esli vy ne
znaete tochno, chto delaete, to vy ne dolzhny probovat' eto bez
razumnoj ostorozhnosti. Veroyatno luchshe pozaimstvovat' pravil'no
peresobrannye chasti u kogo - libo iz seti
5.3. Ispol'zovanie paketa dlya LaTeX cmcyralt
Cmcyralt paket mozhet byt' najden na lyubom CTAN (Comprehansive
TeX Archive Network)- mesto podobno ftp.dante.de. Vy dolzhny
poluchit' dve chasti: sovokupnost' shriftov iz fonts/cmcyralt i
sovokupnost' stilej s rasstanovkoj defisov- nahoditsya v
macros/latex/contrib/others/cmcyralt.
|to Vazhno: Udostoverites', chto u vas ustanovlen paket Sauter ,
tak kak cmcyralt trebuet nalichiya nekotoryh shriftov iz etogo
paketa, kotoryj vy tozhe mozhete dostat' iz lyubogo arhiva CTAN.
Teper' Vy dolzhny sdelat' sleduyushchee:
1. Pomestite novye shrifty v katalogi shriftov TeX. Na moej
sisteme (Slackware 2.2) ya sozdal katalog cmcyralt v
/usr/lib/texmf/fonts/cm/. Sozdajte podkatalogi src, tfm, i vf v
nem. Pomestite tam .mf, .tfm, i vf fajly sootvetstvenno.
2. Pomestite fajly drajvera shriftov (* .fd) iz nabora stilej v
sootvetstvuyushchee mesto (v moem sluchae eto bylo v
/usr/lib/texmf/tex/latex/fd).
3. Pomestite fajly stilya (* .sty) v sootvetstvuyushchij katalog
stilej LaTeX (v moem sluchae eto bylo v
/usr/lib/texmf/tex/latex/sty).
Teper' nastrojka rasstanovok perenosov. Ona potrebuet,
peresobrat' osnovnye fajly LaTeX.
1. Fajl hyphen.cfg soderzhit direktivy dlya i anglijskoj i
russkoj rasstanovki perenosov. Izvlekite direktivy dlya russkih
perenosov, i pomestite ih v fajl konfiguracii rasstanovki
perenosov LaTeX - lthyphen.ltx. V moem sluchae, etot fajl byl v
direktorii /usr/lib/texmf/tex/latex/latex-base.
2. Pomestit' rhyphen.tex v tot zhe samyj katalog. |to neobhodimo
dlya sozdaniya osnovnogo fajla. Pozzhe, Vy mozhete udalyat' ego.
3. Sdelajte "make" v tom kataloge. Ne zabud'te sdelat' dlya link
Makefile k Makefile.unx. Vo vremya kompelyacii sledite za vyvodom.
Dolzhno byt' soobshchenie:
Loading hyphenation patterns for Russian.
Esli vse O'K, to vy poluchite v tom kataloge novyj latex.fmt.
Pomestite ego v to mesto, gde byl predydushchij (veroyatno
/usr/lib/texmf/ini/). Ne zabud'te sohranit' predydushchuyu versiya
fajla (tak, na vsyakij pozharnyj)!.
|to vse. Ustanovka zakonchena. Probujte projtis' po primeram,
najdennym v arhive stilej. Esli vy v sostoyanii sozdavat'
PostScript fajly bez kakih-libo problem, to vse - OK. Teper',
chtoby ispol'zovat' Kirillicu v LaTeX, snabdite vash dokument
sleduyushchej direktivoj:
\usepackage{cmcyralt}
Podrobnee, smotrite README fajl v arhive stilej cmcyralt.
Obratite vnimanie: esli u vas est' problemy s primerami, i esli
vy vse sdelali pravil'no, to veroyatno vash paket TeX ne byl
pravil'no ustanovlen. Naprimer, vo vremya moej pervoj popytki,
kazhdaya popytka sozdat' .pk fajly dlya rossijskih shriftov terpela
neudachu (stadiya Make TeXPK). Prestrasnoe rassledovanie vyyavilo
nekij neyavnyj konflikt mezhdu localfont i ljfour METAFONT
nastrojkami. Prezhde eto rabotalo, no terpelo krah posle ustanovki
cmcyralt. Vojdite v kontakt vashim mestnym TeX guru. TeX ochen'
(inogda slishkom) slozhen, chtoby perekonfigurirovat' ego bez
otsutstviya navykov.
5.4. Ispol'zovanie paketa CyrTUG
Vy mozhete najti paket CyrTUG na arhive SunSite. Voz'mite fajly
CyrTUGfonts.tar.gz, CyrTUGmacro.tar.gz, i hyphen.tar.Z.
Process ustanovki ne slishkom otlichaetsya ot predydushchigo.
|ksperty govoryat, PostScript eto prosto. YA ne mogu sudit' - u
menya bylo slishkom mnogo veshchej, kotorye nado izuchit', chtoby
vykroit' vremya dlya izucheniya PostScript. No ya vse ravno poprobuyu
ispol'zovat' moi nebol'shie znaniya ob etom voprse. YA budu ochen'
blagodaren za lyubuyu informaciyu ob etom voprose ot Vas parni,
kotorye znayut bol'she menya (vas priblizitel'no 99 % ot Zemnoj
populyacii).
CHtoby pechatat' russkij tekst s ispol'zovaniem PostScript, Vy
dolzhny udostoverit'sya otnositel'no sleduyushchih veshchej:
shrift Kirillicy zagruzhen ili vklyuchen v dokument.
tekst Kirillicy vklyuchen v dokument.
tekst Kirillicy ispol'zuet sootvetstvuyushchie simvol'nye kody,
kotorye sootvetstvuyut trebovaniyam shrifta.
chtoby pechatat' tekst Kirillicy vybran sootvetstvuyushchij shrift.
Ne imeetsya nikakogo dostatochno obshchego resheniya, chtoby
rekomendovat'sya ego kak okonchatel'noe. YA poprobuyu osvetit'
razlichnye sposoby dlya resheniya razlichnyh problemami, svyazannyh s
etim voprosom.
Odin sposob eto poborot' problemy ustanovki Kirillicy voobshche
sostoit v tom, chtoby ispol'zovat' Ghostscript. Ghostscript (ili
prosto gs ot newspeak) absolyutno free (nu, ne sovsem)
interpretator PostScript. U nego est' mnogo preimushchestv; sredi
nih:
Sposobnost' rabotat' na mnogih platformah (razlichnye Unixy,
Okoshki i t.d)
Podderzhka dlya ogromnogo kolichestva ne-PostScript printerov
Vysokaya stepen' konfigurabel'nosti
V nashem specificheskom sluchae yavlyaetsya vazhnym to, - chto odnazhdy
ustanoviv i nastroiv Ghostscript , my mozhem vse pechatat' cherez
nego, takim obrazom nam ne nado nastraivat' dopolnitel'no
nastraivat' drugie PostScript ustrojstva (naprimer HP LaserJet
IV)
6.1. Dobavlenie shriftov Kirillicy k Ghostscript
|to vazhno, tak kak vy veroyatno ne hotite vzvalivat'
otvetstvennost' za vklyuchenie shriftov Kirillicy v PostScript na
drugie programmy. Vzamen, vy dobavlyaete ih tol'ko k gs i
zastavlyaete programmy vyvodit' russkij tekst sovmestimyj s etimi
shriftami.
CHtoby dobavlyat' novyj shrift (v formate pfa ili pfb) v gs, Vy
dolzhny:
1. Pomestit' etot shrift v katalog shriftov gs (to est'. v
/usr/lib/ghostscript/fonts).
2. Dobavit' sootvetstvuyushchie imena i aliases dlya shrifta v fajle
Fontmap v kataloge gs.
Nedavno poyavilsya prilichnyj nabor shriftov Kirillicy dlya
GhostScript. Ego mozhno najti na ftp.kapella.gpi.ru. |tot nabor
dazhe imeet neobhodimuyu chast' dlya dobavleniya k fajlu Fontmap. Vy
dolzhny utyanut' soderzhanie kataloga /pub/cyrillic/psfonts. V fajle
README opisyvayutsya vse neobhodimye podrobnosti.
Napechatat' chto-libo - eto vsegda problema. Imeetsya nabor
razlichnyh printerov ot razlichnyh proizvoditelej s razlichnymi
osobennostyami. Dazhe dlya vyvoda pechati na rodnom yazyke printera
net nikakih obshchih reshenij (eto primenmo ne tol'ko k UNIX, no
takzhe i k drugim operacionnym sistemam.
Printery imeyut razlichnye upravlyayushchie yazyki, i ochen' chasto oni
imeyut sil'no razlichnye realizacii podderzhki inostrannogo yazyka.
Horoshie novosti - eto to, chto v kachestve upravlyayushchego yazyka,
kazhetsya, de facto kak standart dlya opisaniya raboty pechati (ne
vezde no...) ispol'zuetsya yazyk PosScript, razrabotannyj
Korporaciej Adobe.
Drugaya problema - eto shirokij spektr trebovanij pred®yavlyaemyj k
pechati. Naprimer, inogda vy hotite prosto napechatat' chast' vashej
C programmy, soderzhashchej v kachestve kommentariya tekst na russkom,
tak chto Vy ne nuzhdaetes' v navorochennoj procedure pechati- vam
nuzhen prostoj ASCII vyvod s odnim shriftom. Sovsem drugoj delo,
kogda Vy sozdaete otkrytku dlya vashej podrugi. V etom sluchae
vy, veroyatno, budete nuzhdat'sya v pechate dokumenta s razlichnymi
shriftami i t.d. I eto uzhe opredelenno trebuet bol'shih usilij po
ustanovke podderzhki Kirillicy.
CHtoby vypolnit' vysheupomyanutuyu zadachu po vyvodu S programmy, Vy
dolzhny zastavit' vash printer ponyat' tol'ko odin shrift Kirillicy i
(vozmozhno) ustanavlivit' nekotoruyu programmu- fil'tr, chtoby
vyvodit' dannye v sootvetstvuyushchem formate. CHtoby sovladat' so
vtoroj zadachej, Vy dolzhny obuchit' vash printer razlichnym shriftam i
imet' special'noe programmnoe obespechenie.
Byvayut zadachi, trebuyushchie dlya vypolneniya nechto srednee, togda
vam nuzhna programmy, kotoraya znaet, kak organizovat' i shrifty i
sootvetstvuyushchij vyvod v printer, tak chto vy mozhete, skazhem,
poluchit' na vyhode kachestvenno otpechatannyj tekst, bez slozhnyh
sistem podgotovki tekstov.
Vse eti voprosy budut osveshcheny nizhe v bol'shej ili men'shej
stepeni.
7.1. Zagruzka shriftov Kirillicy v ne-postskriptnyj printer
Esli u vas est' staryj dobryj matrichnyj printer, i Vy
nuzhdaetes' v prostom vyvode teksta na KOI-8, to probujte
sleduyushchee:
1. Najti sootvetstvuyushchij KOI-8 shrift dlya vashego printera.
Prover'te ftp arhivy MS DOS - v Internete (naprimer arhiv SimTel
<ftp://ftp.simtel.net>).
2. Prochitajte rukovodstvo i najdite v nem kak zagruzit' takoj
shrift v vash printer, i, veroyatno, napishite prosten'kuyu programmu,
delayushchuyu eto.
3. Zapuskajte etu programmku iz sootvetstvuyushchego rc fajla pri
zagruzke.
Takim obrazom, nalichie simvolov Cyrillic v verhnej chasti nabora
simvolov printera pozvolit Vam pechatat' teksty po-russki bez
dopolnitel'nyh uhishchrenij.
Al'ternativno k KOI-8 shriftam Vy mozhete poprobovat'
ispol'zovat' Alt shrifty. Dlya etogo imeyutsya dve prichiny:
1. Veroyatno najti Alt shrifty namnogo proshche, tak kak te byli ochen'
shiroko rasprostraneny vo vremena MS-DOS.
2. Nalichie sootvetstvuyushchego Alt shrifta pozvolit Vam pechatat'
takzhe psevdo - graficheskie simvoly.
Odnako v etom sluchae, vy dolzhny budete preobrazovat' vashi
teksty iz KOI-8 v Alt pered posylkoj ih na printer. |to ne
problema, ta kak imeetsya mnozhestvo programm, delayushchih eto (smotri
naprimer " " translit " " ), tak chto vam nuzhno tol'ko vyzvat'
takuyu programmku iz fajla /etc/printcap v "if pole". Naprimer, s
programmoj translit mozhno sdelat' sleduyushchee:
if=/usr/bin/translit -t koi8-alt.rus
Podrobno smotrite printcap (5).
7.2. Pechat' s razlichnymi shriftami
Prekrasnyj sposob dlya razborki s razlichnymi printerami i
shriftami sostoit v tom, chtoby pol'zovat'sya dlya pechati paketom TeX
(sm. razdel """). TeX procesor spravitsya so vsemi problemamy, tak
chto kak tol'ko vy zastavite TeX ponyat' shrifty Kirillicy, to
vypobeditel'.
Drugoj sposob - vy dolzhny ispol'zovat' PostScript v kachestve
vyvoda. YA reshil posvyatit' etomu voprosu vsyu glavu " " " ", tak
chto eto ne prosto.
I v zaklyuchenie, imeyutsya i drugie tekstovye processory, kotorye
imeyut drajvery printerov. YA nikogda ne proboval chto - nibud'
krome TeX, tak chto ya ne mogu predlazhit' chto - libo.
7.3. Preobrazovanie teksta v TeX
Esli vse, v chem vy nuzhdaetes'- eto pechatat' ASCII teksta bez
dopolnitel'noj dopolnitel'noj obrabotki, to vy mozhete
ispol'zovat' nekotorye programmki, kotorye mogut preobrazovat'
vash tekst Kirillicy v gotovyj TeX fajl. Odna iz samyh luchshih
programm dlya takih celej - eto " "translit". V etom sluchae, Vy
dazhe ne dolzhny bespokoit'sya otnositel'no ustanovki shriftov
Kirillicy dlya TeX, tak kak translit ispol'zuet paket Kirillicy
Washington AmsTex, kotoryj vklyuchen v bol'shinstvo distributivov
TeX (ili - ya ne prav?)
7.4. Preobrazovanie teksta v PostScript
Inogda u vas est' prostoj ASCII KOI-8 tekst, i Vy hotite ego
tol'ko napechatat'. Odin iz samyh prostyh sposobov eto sdelat' eto
vospol'zovat'sya uslugami programm preobrazuyushchih tekst v
PostScript.
Est' ryad programm, delayushchih takoe preobrazovanie. YA lichno
predpochitayu a2ps. Pervonachal'no razrabotannaya kak prostoj
text-to-PostScript preobrazovatel' eta programma stala
chrezvychajno konfigurabel'noj s bol'shim kolichestvom opcij, i
sejchas pozvolyaet upravlyat' formatami i razmeshcheniyami stranic,
vydeleniem i t.d. Drugaya utilita (teper' dostupnaya kak chast'
proekta GNU) - enscript.
Osnovnaya problema pri rabote s takimi programmami eto to, chto
oni nichego ne znayut pro shrifty Kirillicy. Sejchas ya issleduyu
vozmozhnost', podklyucheniya k nim shriftov Kirillicy. Ostavajtes' s
nami.
Odnako vse eti razgovory vokrug da okolo byl by bessmyslenny
bez kakogo-libo real'nogo soveta. Itak, vot ono.
Preobrazovatel' teksta v PostScript byl i ostaetsya odnim iz
naibolee universal'nyh sredstv pechati. Avtor, kak okazalos',
ochen' otkryt dlya predlozhenij, i kak sledstvie, a2ps versiya 4.9.8
podderzhivaet kirillicu pryamo v programme. Vse, v chem vy teper'
nuzhdaetes' eto PostScript printer.
Komanda, kotoruyu ya ispol'zuyu dlya etogo:
a2ps -X koi8r --print-anyway <file>
Programma GNU enscript byla takzhe razrabotana dlya
preobrazovaniya teksta v PostScript i ona takzhe ne podderzhivaet
ascii codeset. Programma tak zhe ne imeet russkih PostScript
shrifov v svoem sostave, no ih ochen' prosto doustanovit'. Kak eto
sdelat' opisano nizhe (spasibo Michael Van Canneyt):
1. Ustanovite poslednij enscript. Teper', samaya poslednyaya
versiya eto 1.5. Vy mozhete najti ee na GNU FTP arhive, ili vzyat'
paket RPM s Redhat.
2. Esli Vy - schastlivyj pol'zovatel' RedHat Linux, zagruzite i
ustanavlivite shrift Cyrillic Textbook
<ftp://ftp.redhat.com/pub/contrib/i386/enscript-fonts-koi8-1.0-1.i386.rpm>.
3. Esli Vy ne ispol'zuete RPMki, vytyanite fajl textbook.tar.gz
iz arhiva na sunsite.unc.edu
<ftp://sunsite.unc.edu/pub/academic/russian-studies/Software/>
(sdes' lezhit programnoe obespechenie dlya russifikacii).
Razarhivirujte etot fajl v katalog, gde razmeshcheny enscript shrifty
(obychno /usr/share/enscript). Teper' perejdite tuda, i vypolnite
sleduyushchuyu komandu:
mkafmmap *.afm
4. Ustanovka zavershena. Probujte napechatat' tekst v KOI8-R
sleduyushchej komandoj:
enscript --font=Textbook8 --encoding=koi8 some.file
Esli vam trebuetsya dejstvitel'no bystryj i prostoj sposob, i
kachestva vyvoda dlya vas ne kritichno, i vse chto vam nuzhno - eto
tol'ko russkij tekst na bumage, probujte paket rtxt2ps. |to ochen'
prostoj bez ukrashatel'stv konverter teksta v PostScript. Kachestvo
vyvoda ne ochen' horoshee (ili, chestno govorya plohoe) no eto eto -
rabotaet.
8. Vsyakaya vsyachina - nastrojka i ustanovka
Obychno, chtoby zastavit' kakuyu-libo utilitu ili programmy
ponimatt' kirillicu trebuet tol'ko razreshit' 8mi bitnyj vvod.
Inogda trebuetsya skazat' programme, chto by ona pokazyvala
rasshirennye ASCII simvoly v ih "rodnoj" forme.
Dolzhny byt' ustanovleny tri peremennye, dlya togo chtoby
zastavit' bash ponyat' 8mi bitnye simvoly. Luchshe vsego eto
sdelat' iz fajl ~/.inputrc. Dolzheny byt' ustanovleny: set
meta-flag on set convert-meta off set output-meta on
V .cshrc pomestite:
setenv LC_CTYPE iso_8859_5
stty pass8
Esli u vas net POSIX sovmestimogo stty (tol'ko ne Linux),
zamenite poslednyuyu strochku sleduyushchej:
stty -istrip cs8
8.3. Dosemu (emulyator Dos)
|to, kazhetsya, edinstvenaya programma, kotoraya mozhet potrebovat'
nabora simvolov v Alt kodirovke. Prichinoj etogo yavlyaetsya to, chto
Alt kodirovka yavlyaetsya rodnoj dlya DOS, i bol'shinstvo programm
DOS, imeyushchih delo kirillicej alt-orientirovanny.
Dlya konsol'noj versii (DOS) Vy dolzhny zagruzit' tol'ko
klaviaturu i ekrannyj drajver. Bol'shinstvo drajverov DOS budet
prekrasno rabotat'. YA lichno ispol'zuyu rk drajver A. Strahova,
kotoryj rabotaet, i dlya konsoli i X versii dosemu. Drugaya
al'ternativa - r drajver Vadima Kurlyanda. On prekrasno
nastraivaetsya i podderzhivaet mnogo kodirovok v tom chisle, Alt i
KOI8. Odnako on ne budet rabotat' dlya X Windows (po krajnej mere
versiya 1.14, kotoruyu ya ispol'zuyu, a sejchas est' versiya 2.0).
Oba russifikatora mozhno najti na bol'shinstve Rossijskih
Internet arhivah, naprimer v ftp arhiv Kurchatovskogo Instituta
<ftp://ftp.kiae.su/pub/cyrillic/msdos>.
Dlya Xovyh versii dosemu vy dolzhny takzhe ustanovit'
sootvetstvuyushchij X shrift. Aleksej Bogdanov poslal mne takoj shrift
po elektronnoj pochte. |to - rodnoj shrift VGA iz distributiva
dosemu, izmenennyj dlya Alt kodirovki. K sozhaleniyu ya ne znayu, kto
- avtor etogo shrifta i gde oficial'noe mesto. YA pomeshchu etot shrift
v moj katalog na FTP
<ftp://ftp.netvision.net.il/home/b/belikoff/cyrillic>.
Dlya ustanovki shriftov dlya dosemu Vy dolzhny
Podstavit' etot shrift X. serveru, kak eto sdelat' opisano v " "
punkte 4.1 X shrifty ''.
Prikrutit' etot shrift dosemu. Esli shrift tol'ko zamenyaet
pervonachal'nyj shrift VGA, to on budet opoznan po umolchaniyu.
Inache, Vy dolzhny opisat' ego v /etc/dosemu.conf:
# Font to use (without filename extensions). For example:
X { updatefreq 8 title "MS DOS" icon_name "xdos" font "vga-alt"}
I v zaklyuchenie, vy dolzhny zagruzit' drajver klaviatury.
Obratite vnimanie, vam ne nuzhnu v ekrannye drajvery v X okne.
Bolee togo, ne vse drajvery budut rabotat'. No po krajnej mere
dva budut: rk A. Starhova, i cyrkeyb Pete Kvitek.
Minimal'naya podderzhka kirillicy v emacs obespechivaetsya pri
vypolnenii sleduyushchih obrashchenij k .emacs (pri uslovii, chto
podderzhka simvolov Cyrillic ustanovlena dlya konsoli ili X
sootvetstvenno):
(standard-display-european t)
(set-input-mode (car (current-input-mode))
(nth 1 (current-input-mode))
0)
|to pozvolit pol'zovatelyu prosmatrivat' i redaktirovat'
dokumenty po-russki.
Odnako, takoj rezhim ne ochen' udoben, potomu chto v rezhime vvoda
Kirillicy emacs ne raspoznaet obychnye komandy klaviatury. Imeetsya
celyj ryad paketov, kotorye ispol'zuyut drugoj podhod dlya resheniya
etoj problemy. Oni ne ispol'zuyut sredstva vvoda obespechennye
sredoj (ili X ili konsol'yu). Vzamen, oni pozvolyayut pol'zovatelyu
vklyuchat' rezhim vvoda special'noj komandoj emacs, i emacs beret na
sebya otvetstvenen za otobrazhenie russkih simvolov. Avtor
rassmatrivaet tri iz nih. Paket Valeriya Alekseeva
(valery@math.uga.edu) russian.el
<http://www.math.uga.edu/~valery/russian.el>
pozvolyaet pol'zovatelyu pereklyuchat'sya mezhdu kirillicej i
standartnym rezhimom vvoda i perekodirovat' soderzhanie bufera iz
odnoj standarta kirillicy v drugoj (chto yavlyaetsya osobenno
poleznym dlya chtenii tekstov importiruemyh iz MS-DOS).
Edinstvenoe neudobstvo - eto to, chto emacs obrabatyvaet
rossijskie simvoly kak special'nye, i kak sledstvie ne raspoznaet
granicy russkih slov i ne delaet razlichiya mezhdu strochnymi i
zaglavnymi bukvami. CHtoby obojti eto, vy dolzhny izmenit' Syntax i
Case tablicy emacs:
;; there is a garbage in the variables below, since SGML doesn't like
;; cyrillic characters. You have to put the uppercase and lowercase
;; parts of the Russian alphabet respectively (see the actual files)
(setq *russian-abc-ucase* "*** SGML SUCKS ***")
(setq *russian-abc-lcase* "*** SGML SUCKS ***")
(let ((i 0)
(len (length *russian-abc-ucase*)))
(while (< i len)
(modify-syntax-entry (elt *russian-abc-ucase* i) "w ")
(modify-syntax-entry (elt *russian-abc-lcase* i) "w ")
(set-case-syntax-pair (elt *russian-abc-ucase* i)
(elt *russian-abc-lcase* i)
(standard-case-table))
(setq i (+ i 1))))
Dlya etogo ya sozdal rusup.el fajl, kotoryj soderzhit eti komandy,
takzhe kak i paru drugih udobnye funkcii. Vy dolzhny vyzvat' ego v
vashem ~/.emacs.
Drugoj vozmozhnyj sposob - paket, kotoraya pytaetsya szdelat'
podderzhku kirilicy bolee obshchej. |tot paket napisan Per Abrahamsen
(abraham@iesd.auc.dk) i lezhit na ftp.iesd.auc.dk.
Po mneniyu avtora dlya nachala sleduet ustanovit' paket
russian.el, potomu chto on ochen' prost v ustanovke i v
ispol'zovanii.
V prirode sushchestvuet rspell sozdannomu Neal Dalton
(nrd@cray.com) - plug-in k paketu GNU ispell , no u menya pri
ispol'zovanii voznikli problemy. Prover'te ego - veroyatno vy
budete bolee udachlivymi.
Probujte opciyu -asis.
CHto kasaetsya public domain realizacii ksh - pdksh 5.1.3, to vy
mozhete razreshit' 8mi razryadnyj vvod v rezhime vvoda vi.
Ispol'zujte:
set -o vi
Poka, less ne podderzhivaet simvoly KOI-8, no ustanovka
sleduyushchej sistemnoj peremennoj pozvolyaet obojti eto:
LESSCHARSET=latin1
ili
LESS="-e -r"
Nachinaya s versii 2.6, vy mozhete vybirat' sootvetstvuyushchee
znachenie dlya displeya - Character set option.
8.10. Mc (The Midnight Commander)
CHtoby razobrat' tekst Kirillicy , vyberite opciyu full 8 bit v
Optiond/Display menyu.
Esli u vas problemy v vide urodlivyh okonnyh ramok,
prokonsul'tirujtes' " " " " razdele.
off-topic, esli vy zahotite chtoby mc v okne Xterm byl v cvete:
ustanavite peremennuyu COLORTERM:
COLORTERM= ; export COLORTERM
Udostoverites', chto Vy ispol'zuete versiyu Netscape vyshe 3. Esli
vash Netscape bolee staryj, voz'mite novyj iz www.netscape.com.
(tem bolee skoro budet vypushchen 5 yj Netscape i veroyatno pod GNU)
8.11.1. Obshchaya nastrojka
CHtoby uvidet' tekst Kirillicy v HTML dokumente v bol'shinstve
sluchaev, sdelajte sleduyushchee:
V menyu Options/Document Encoding vyberete Cyrillic(KOI-8).
V menyu Options/General Preferences/Fonts vyberete Cyrillic
(KOI-8) encoding, Times(Cronyx) kak proporcional'nyj shrift i
Courier(Cronyx) kak fiksirovannyj.
Sohranite opcii.
OBRATITE VNIMANIE: |ta ustanovka budet rabotat' s bol'shinstvom
chastej dokumenta. Odnako, Vy ne smozhite otobrazit' tekst
Kirillicy v zagolovke okna, menyu i nekotoryh drugih mestah. CHtoby
ustranit' eti problemy, sdelajte
8.11.2. Tekst Kirillicy vo frejmah i pri vvode
CHtoby ustranit' eto, dlya etogo obychno dostatochno:
1. Skopirovat' bazu dannyh ustanovok Netscape (obychno
Netscape.ad) v ~/Netscape.
2. V fajle, ustanovite sleduyushchuyu opciyu:
*documentFonts.charset*iso8859-1: koi8-r
|to vynudit vse frejmy i elementy vvoda ispol'zovat' shrifty s
kodirovkoj koi8-r vmesto zadannyh po umolchaniyu, a sledovatel'no
vy dolzhny udostoverit'sya v tom, chto vy uzhe ustanovili takie
shrifty (sm. razdel """).
8.11.3. Prodvinutaya nastrojka
Andrej A. CHernov - eto chelovek kotoryj znaet bol'she o KOI-8 chem
drugie v obshchem i v netscape v chastnosti. Posetite ego
prevoshodnuyu KOI-8 stranicu, i skachajte zaplatu dlya fajla resursa
Netscape, kotoryj zastavlyaet Netscape govorit' po Russki, tak
horosho kak eto tol'ko vozmozhno.
Vstav'te sleduyushchuyu strochku v ~/.pinerc dlya personal'noj
nastrojki, ili v /usr/lib/pine.conf dlya obshchej:
character-set=ISO-8859-5
Udostoverites', chto shell na meste adresata pravil'no
ustanovlena. Esli vash rlogin ne rabotaet po umolchaniyu,
ispol'zujte " rlogin -8 ".
8.14. Sendmail (drugimi slovami " Gibel' Susadmina ")
Nachinaya s versii 8, sendmail obrabatyvaet 8 bitnye dannye po
umolchaniyu pravil'no. Esli etogo ne proishodit- prover'te opciyu
EightBitMode i opciyu 7 v razdele mailers v fajl /etc/sendmail.cf.
Podrobnee smotrite "Sendmail. Operation and Installation Guide" .
YA napominayu, chto StarOffice, ne zarabotal s moej versiej libc.
Poetomu, ya ne smog proverit' ego vozmozhnosti po russifikacii.
YUrij Kovalenko () sostavil kratkoe rezyume na temu russifikacii
StarOffice. |to nahoditsya poadressu "" "". Eshche raz, ya ne
oproboval etot sposob i nichego ne mogu skazat' po etomu povodu,
V osnovnom, xemacs po umolchaniyu nastroen vpolne priemlemo.
Odnako Vy vse eshche budete nuzhdat'sya v pakete russifikacii.
Esli chto-to rabotaet ne tak, sm. razdel """. |to vozmozhno
pomozhet.
Hotya, ya eshche ne portiroval moj paket " " rusup.el " " dlya
xemacs, tak chto Vy vozmozhno budete ispytaete nedostatok ego
funkcional'nyh vozmozhnostej. YA portiruyu ego v blizhajshem budushchem.
Sdelajte to zhe samoe, chto delaetsya dlya csh (sm. razdel "
"csh"). Fajl inicializacii v etom sluchae - .zshrc ili /etc/zshrc.
9. Localization and Internationalization
Poka, ya opisyval, kak zastavit' razlichnye programmy ponyat'
Kirillicu. Obychno, kazhdaya programma trebovala, chtoby eto bylo ee
sobstvennyj metod, chrezvychajno otlichnyj ot drugih. Krome togo, u
nekotoryh programm byla nezavershennaya podderzhka otlichnyh ot
anglijskogo yazykov. Ne govorya uzhe ob ih nesposobnost'
vzaimodejstvovat', ispol'zuya rodnoj yazyk pol'zovatelya vmesto
anglijskogo.
Problemy, perechislennye vyshe sil'no podavlyayut, tak kak
programmnoe obespechenie redko sozdaetsya tol'ko dlya mestnogo
rynka. Pererabotka sushchestvennyh chastej programmnogo obespecheniya
kazhdyj raz pri vhode na novyj mezhdunarodnomu rynok, ochen'
neeffektivena; i internacional'naya podderzhka, osushchestvlyaemaya
sobstvennymi sredstvami programmy unikal'nym i prisushchim tol'ko ej
sposobom v terminah dolgosrochnogo planirovaniya tak zhe ne
blestyashchaya ideya.
Sledovatel'no, voznikaet potrebnost' v standartizacii. I
standart est'.
Vse svyazannoe s vysheperechislennymi problemami razdeleno v
sootvetstvii c dvumya bazisnymi koncepciyami: lokalizaciya i
internacionalizaciya. Pod lokalizaciej my imeem v vidu sozdanie
programm, sposobnyh obrabatyvat' razlichnye yazykovye soglasheniya
dlya razlichnyh stran. Pozvol'te privesti primer. Format daty
vydannyj v Soedinennyh SHtatah - imeet vid MM/DD/GG. Odnako v
Rossii, naibolee populyarnyj format - DD.MM.GG. Drugie problemy
vklyuchayut v sebya predstavlenie vremeni, formaty chisla i
predstavleniya valyuty. Krome etogo, odin iz naibolee vazhnyh aspekt
lokalizacii opredelyaet sootvetstvuyushchie klassy simvolov, to est'
opredelyaet, kakie simvoly v nabore simvolov yavlyayutsya
"kirpichikami" yazyka (bukvami) i kak oni uporyadochivayutsya. S drugoj
storony, lokalizaciya ne rabotaet so shriftami.
Internacionalizaciya (ili i18n dlya kratkosti) kak
predpolagaetsya, reshaet problemy, svyazannye so sposobnost'yu
programmy, vzaimodejstvuyut s pol'zovatelem na ego rodnom yazyke.
Obe eti koncepcii dolzhny byt' standartizovany, davaya
programmistam neprotivorechivyj put' sozdaniya programm, rabotayushchih
v nacional'noj srede.
Hotya standartizaciya eshche v processe, no mnogo ee chastej uzhe
fakticheski yavlyayutsya standartom; tak chto oni mogut ispol'zovat'sya
bez osobyh problemy.
YA opishu obshchuyu shema sozdaniya programm ispol'zuyushchih opisannye
vyshe vozmozhnosti standartnym sposobom. Tak kak eto zasluzhivaet
otdel'nogo dokumenta, ya budu davat' tol'ko ochen' obshchee opisanie i
ukazateli na bolee polnye istochniki.
Odno iz osnovnyh ponyatij lokalizacii - locale. Pod locale
podrazumevaetsya nabor soglashenij, specificheskih dlya otdel'no
vzyatogo yazyka v otdel'no vzyatoj strane. V obshchem sluchae govorit',
chto locale opredelyaetsya tol'ko stranoj nepravil'no. Naprimer, v
Kanade mogut byt' opredeleny dva locale- yazyk Kanada / Anglijskij
i yazyk Kanada / Francuzskij. Bolee togo, yazyk Kanada / Anglijskij
- ne yavlyaetsya ekvivalentom yazyku Velikobritaniya / Anglijskij ili
Amerikanskij / Anglijskij, tochno tak zhe Kanada / Francuzskij yazyk
- ne ekvivalent yazyku Franciya / Francuzskij ili yazyku SHvejcariya /
Francuzskij.
9.1.1. Kak ispol'zovat' locale
Kazhdaya locale - special'naya baza dannyh, opredelyayushchaya po
krajnej mere sleduyushchie pravila i soglasheniya:
1. Klassifikaciya simvolov i preobrazovaniya
2. Predstavlenie valyuty
3. Predstavlenie chisel (to est'. Desyatichnye simvoly)
4. Format daty / vremeni
V RedHat 4.1, kotoryj ya ispol'zuyu, imeyutsya fakticheski dve bazy
dannyh locale: odna dlya biblioteki C (libc) i drugaya dlya X
bibliotek. V ideal'nom sluchae dolzhna imet'sya tol'ko odna baza
dannyh locale dlya vsego.
CHtoby izmenit' znachenie locale po umolchaniyu mesto, obychno
dostatochno ustanovit' sistemnuyu peremennuyu LANG. Naprimer, kak
eto delaetsya v sh:
LANG=ru_RU
export LANG
Inogda, vy mozhete zahotet' izmenit' tol'ko odin aspekt locale
bez izmeneniya drugih. Naprimer, Vy mozhete reshit' (Bog znaet
pochemu) chtoby pol'zovat'sya s ru_RU locale, no chisla pechati dolzhny
budut sootvetstvovat' standartu POSIX odin. V podobnyh sluchayah,
imeetsya nabor sistemnyh peremennyh, kotorye Vy mozhete zadat'
chtoby skonfigurirovat' sootvetstvuyushchie chasti locale. Naprimer v
nashem sluchae eto by vyglyadelo tak:
LANG=ru_RU
LC_NUMERIC=POSIX
export LANG LC_NUMERIC
Podrobnee , sm. man locale (7).
Teper' davajte derzhat'sya poblizhe k specifike Linux. K
sozhaleniyu, v Linux libc versiya 5.3.12, vhodyashchaya v distributiv
RedHat 4.1 otsutstvuet russkaya locale. V dannom sluchae ee nado
skachat' iz Interneta (ya, odnako, ne znayu tochnogo adresa).
CHtoby proverit', dlya kakih yazykov u vas est' locale vypolnyaete
" locale -a ". |to vyvedet pisok vseh locale iz baz dannyh
dostupnyh libc.
K schast'yu, simejstvo Linux bystro megriruet v novuyu GNU libc
(glibc versiyu 2, kotoraya yavlyaetsya bolee posix-sovmestimoj i imeet
sootvetstvuyushchee rossijskoe locale). Distributiv RedHat 5.0 uzhe
ispol'zuet glibc.
CHto kasaetsya bibliotek X, to oni imeyut svoyu sobstvennuyu bazu
dannyh locale. V versii kotoruyu ya ispol'zuyu (XFree86 3.3), uzhe
imeetsya rossijskaya baza dannyh locale. YA ne uveren est' li ona v
predidushchej versii. V lyubom sluchae, Vy mozhete proverit' eto,
izuchiv direktoriyu usr/lib/X11/locale/ (v bol'shinstve sistem). V
moem sluchae, uzhe est' podkatalogi, imenovannye koi8-r i dazhe
iso8859-5.
9.1.2. Locale zavisimoe programmirovanie
S locale, programma ne dolzhna znat' o razlichnyh simvol'nyh
preobrazovaniyah i pravilah sravneniya, opisannyh vyshe. Vmesto
etogo, oni ispol'zuyut special'nyj API, kotoryj dejstvuet po
pravila, opredelennym locale. Krome togo, net neobhodimosti dlya
programmy, pol'zovat'sya tol'ko odnoj locale dlya soblyudeniya vseh
pravil- vozmozhno pol'zovat'sya drugimi pravilami, opisannyh v
drugih locale (hotya takoj metod ne ochen' horosh).
Iz man setlocale (3):
Programma mozhet byt' sdelana perenosimoj dlya vseh locale,
vyzyvaya setlocale (LC_ALL, "") posle inicializacii programmy,
ispol'zuya znacheniya, vozvrashchennye iz localeconv () zapros dlya
locale - zavisimoj informacii i ispol'zuya strcoll () ili strxfrm
() dlya sravneniya strok.
SunSoft, naprimer, opredelyaet 5 urovnej lokalizacii programmy:
1. CHistoe 8mi bitnoe programmnoe obespechenie. To est' programma
vyzyvaet setlocale (), ona ne delaet kakih-libo predpolozhenij
otnositel'no 8-ogo bita kazhdogo simvola. Ispol'zuyutsya
pol'zovatel'skie funkcii iz ctype.h i ogranicheniya iz limits.h, i
gde i reshayutsya problemy otnositel'no signed/unsigned rezul'tata.
Ne dolzhno (ochen' vazhno ne delat') kakih-libo predpolozhenij
otnositel'no haraktera nabora simvolov i ih uporyadocheniya. To est'
sleduet vozderzhat'sya ot sleduyushchih uslovij (dejstvij) pri
programmirovanii:
if (c >= 'A' && c <= 'Z') {
...
Vzamen vo vseh takih sluchayah dolzhny ispol'zovat'sya,
makrokomandy iz locale zavisimogo fajla zagolovka ctype.h.
2. Formaty, metody sortirovki, razmery lista bumagi. Programma
ispol'zuet strcoll () i strxfrm () vmesto strcmp () dlya strok,
ispol'zuet time (), localtime (), i strftime () / dlya raboty so
vremenem, i v zaklyuchenie, ispol'zuet localeconv () dlya
pravil'nogo predstavleniya chisel i valyuty.
3. Vidimyj tekst skladyvaetsya v "katalogi soobshchenij". Programma
dolzhna lokalizovat' ves' vidimyj tekst v special'nyh "katalogah
soobshchenij". Oni soderzhat sootvetstviya strok na anglijskom k ih
perevody na drugie yazyki. Vybor soobshchenij sootvetstvuyushchih yazyku
okruzheniya vypolnen tak, chto polnost'yu prozrachen i dlya programmy i
dlya pol'zovatelya. CHtoby ispol'zovat' eti sredstva, programma
dolzhna vyzvat' gettext () (Sun/POSIX standart), ili catgets ()
(X/Open standart). Podrobnee sm. razdel """.
4. EUC/Unicode podderzhka. Na etom urovne, programma ne
ispol'zuet tip char. Vzamen eto ona ispol'zuet wchar_t, kotoryj
opredelyaet ob®ekty, dostatochno bol'shie, chtoby soderzhat' simvoly
Unicode. ANSI C opredelyaet etot tip dannyh i sootvetstvuyushchij API.
Podrobnee, sm., naprimer (""") ili (""").
9.2. Internacionalizaciya
V to vremya kak lokalizaciya opisyvaet, kak adaptirovat'
programmu k inostrannomu okruzheniyu, internacionalizaciya (ili i18n
dlya kratkosti) detaliziruet sposoby obshcheniya programmy s
ne-anglogovoryashchim pol'zovatelem.
Prezhde, eto delalos' s pomoshch'yu sozdaniya abstrakcij soobshchenij,
dlya vyvoda ih iz koda programmy. Teper', takoj mehanizm (bolee
ili menee) standartizirovan. I, konechno, est' ego svobodnye
realizacii!
Proekt GNU nakonec stal na put' sozdaniya
internacionalizirovannyh prikladnyh programm. Ulrich Drepper
(drepper@ipd.info.uni-karlsruhe.de) razrabotal paket gettext.
|tot paket lezhit vo vseh GNU arhivah, naprimer v prep.ai.mit.edu.
On pozvolyaet Vam razrabatyvat' programmy v napravlenii, dvigayas'
v kotorom vy mozhete legko zastavit' ih podderzhivat' bol'shee
kolichestvo yazykov. YA i ne predpolagayu opisyvat' metody
programmirovaniya, eshche i potomu chto gettext paket postavlyaetsya s
prevoshodnym rukovodstvom.
Pros'ba o sotrudnichestve: Esli Vy hotite izuchit' gettext paket
i sdelat' svoj vklad v proektu GNU ili prosto sdelat' vklad bez
vsyakogo izucheniya, to vy mozhete delat' eto! GNU stanovitsya
mezhdunarodnym, tak chto vse utility delayutsya locale zavisimymi.
Problema sostoit v tom, chtoby perevodit' soobshcheniya ot Anglijskogo
yazyka na Russkogo (i drugie yazyki, konechno esli zahotite). V
obshchem, chto sleduet sdelat': vy dolzhny poluchit' special'nyj .po
fajl, sostoyashchij iz Anglijskih soobshchenij dlya nekih utilit, i
svyazat'kazhdoe soobshchenie s ego ekvivalentom na russkom. V konechnom
schete, eto zastavit govorit' sistemu Russkij, esli pol'zovatel'
zahochet etogo! Dlya dlya podrobnostej vojdite v kontakt s Ulrich
Drepper (drepper@ipd.info.uni-karlsruhe.de).
10.1. Utility perkodirovki
Imeetsya ryad programm, sposobnyh preobrazovyat' iz KOI-8 v Alt i
obratno. Zajdite v SovInformBureau ili ftp.funet.fi dlya poiska
udobnyh nebol'shih utilit. Vy mozhete dazhe ispol'zovat' special'nyj
rezhim dlya emacs (sm. razdel " "Emacs").
Odnako, ya osobenno rekomendoval by paket translit. On
podderzhivaet mnogo populyarnyh codesets i dazhe sposoben sozdat'
TeX fajly (sm. razdel """) iz russkogo teksta. Krome togo, dlya
transli sushchestvuet paket RPMt.
ftp:ftp:
1. Andrej CHernov. KOI-8 <http://www.nagual.ru/~ache/koi8.html>.
Informaciya i nastrojka KOI-8.
2. Ulrich Drepper. Internacionalizaciya proekta GNU
<http://i44www.info.uni-karlsruhe.de/~drepper/conf96/paper.html>.
Ochen' polnoe opisanie migracii GNU k i18n.
3. Michael Karl Gschwind. Internacionalizaciya
<http://www.vlsivie.tuwien.ac.at/mike/i18n.html>. Various
resources on i18n.
4. Sergej Naumov. Informaciya otnositel'no programmnogo
obespecheniya Kirillicy
<http://sunsite.oit.unc.edu/sergei/Software/Software.html>.
Informaciya ob ustanovki Kirillicy.
5. The Open Group Single UNIX specification
<http://www.UNIX-systems.org/online.html>.
6. Alec Voropay. Localization as it is
<http://www.sensi.org/~alec/locale>. Obshchee opisanie raboty locale
s russkim yazykom i t.d..
12. Spisok razlichnyh poleznyh resursov
a2ps homepage <http://www-inf.enst.fr/~demaille/a2ps.html>
Obshchaya informaciya o Linux <http://sunsite.unc.edu/mdw/linux.html>
Nabor vsyakoj vsyacheny dlya kirillizacii na ftp.kiae.su
<ftp://ftp.kiae.su/cyrillic/>
Nabor vsyakoj vsyacheny dlya kirillizacii na ftp.relcom.ru
<ftp://ftp.relcom.ru/cyrillic/>
Nabor programmnogo obespecheniya svyazannogo s kirilizaciej
<ftp://ftp.funet.fi/pub/culture/russian/comp/>
Cronyx <http://www.cronyx.ru> - sozdateli shriftov Kirillicy dlya
X Windows.
SHrifty Kirillicy dlya Ghostscript
<ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts>
SHrifty Kirillicy dlya X
<ftp://ftp.kiae.su/cyrillic/x11/fonts/xrus-2.1.1-src.tgz>
Ghostscript <http://www.cs.wisc.edu/~ghost/index.html>
GNU enscript <ftp://prep.ai.mit.edu/pub/gnu>
Novosti Relcom.fido.ru.unix.
RFC 1489 <file://ds.internic.net/rfc/rfc1489.txt>
Rspell dlya GNU ispell
<ftp://sunsite.unc.edu/pub/academic/russian-studies/Software/rspell.tar.gz>
SovInformBureau <http://www.siber.com/sib/russify/>
TeTeX paket russifikacii
<ftp://xray.sai.msu.su/pub/outgoing/teTeX-rus/>
Kbd paket dlya Linux
<ftp://sunsite.unc.edu/pub/Linux/system/Keyboards/>
Paket perekodirovki dlya Emacs <ftp://ftp.iesd.auc.dk/>
Paket rtxt2ps <http://www.siber.com/sib/russify/converters/>
Paket russian.el dlya emacs
<http://www.math.uga.edu/~valery/russian.el>
Paket translit
<ftp://ftp.osc.edu/pub/russian/translit/translit.tar.Z>
Paket xruskb <ftp://ftp.relcom.ru/pub/x11/cyrillic/>
Poleznye pakety dlya raboty s Kirillicy
<ftp://sunsite.unc.edu/pub/academic/russian-studies/Software>
Nabory X shriftov <ftp://ftp.switch.ch/mirror/linux/X11/fonts/>
XFree86 FTP arhiv <http://www.xfree86.org>
Last-modified: Tue, 29 Sep 1998 04:41:46 GMT