The Hebrew HOWTO

Maintained by Yair G. Rajwan, yair@hobbes.jct.ac.il
v0.4, 12 wrzesień 1995
Wersja polska: Gwidon S. Naskrent naskrent@hoth.amu.edu.pl
v1.0, wrzesień 1997


Te dokument "Często Zadawane Pytania" (FAQ) / HOWTO opisuje konfigurowanie maszyny linuxowej by używała znaków hebrajskich w systemie X-Windows oraz na Wirtualnych Konsolach (WK). Najświeższą wersję Hebrew-HOWTO uzyskać można z mojej strony WWW albo z <tt>ftp://hobbes.jct.ac.il</tt>.

1. Wstęp

Każde ustawienia językowe różne od oryginalnego amerykańskiego angielskiego mają dwa aspekty:

  1. Wyświetlanie prawidłowych znaków - dla hebrajskiego jest to standard ISO-8859-8.
  2. Odwzorowywanie klawiatury

W hebrajskim jest o wiele więcej (pisanie od prawej do lewej, geometria w X-Windows itd.), ale to HOWTO (przynajmniej pierwszy szkic) zajmuje się tylko sprawami podstawowymi.

Więcej informacji znaleźć można w różnych "narodowych" HOWTOs (German, Danish itd.) oraz w ISO-8859-1 HOWTO ( ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit FAQ-ISO-8859-1).

1.1 Zmiany

1.2 Podziękowania

To HOWTO przygotowano z pomocą całej grupy Linux-il - "Grupa Izraelskich Użytkowników Linuxa", a zwłaszcza:

Grupa Linux-il (Linux-il@hagiga.jct.ac.il)

Vlad Moseanu (vlad@actcom.co.il)

Gili Granot (gil@csc.cs.technion.ac.il)

Harvey J. Stein (hjstein@math.huji.ac.il)

Dovie Adler (dadler@hobbes.jct.ac.il)

Gavrie Philipson (gavrie@shekel.jct.ac.il)

2. Standardy reprezentacji znaków hebrajskich

2.1 ASCII

Żeby wyjaśnić raz na zawsze jedną rzecz: nie ma czegoś takiego jak ośmiobitowe ASCII. ASCII to tylko siedem bitów. Każdy ośmiobitowy kod nie jest ASCII, ale to nie znaczy że nie jest standardem. ISO-8859-8 jest standardem, ale nie [jest równoważne] ASCII. Dziękuję!

2.2 Hebrajski w DOS

Kodowanie znaków hebrajskich zaczyna się od 128 dziesiętnie (alef). Wymaga więc ono ośmiu bitów. Jest to to co ma się na EPROMach kart wideo jako czcionkę sprzętową [w Izraelu - przyp. tłum.] Wszystkie DOSowe edytory hebrajskiego używają tej tabeli (Qtext, HED itd.)

2.3 Hebrajski w ISO

Kodowanie znaków hebrajskich zaczyna się od 224 (alef). Jest to standard internetowy, międzynarodowy i faktyczny standard MS Windows i Macintoshów (Dagesh itd.)

2.4 Stary hebrajski dla PC

Jest to kodowanie ośmiobitowe i wyparte z użytku, ponieważ zajmuje zasadniczo ten sam przedział ASCII co angielskie małe litery. Najlepiej więc jest go unikać. Niemniej kiedy hebrajski w ISO utraci ósmy bit wskutek działania jakiegoś ignoranckiego unixowego mailera (tak że otrzymasz plątaninę angielskich liter dla hebrajskiej części listu zmieszaną z normalnym angielskim, odwróconym lub nie). Jeśli w liście mieszały się hebrajski i angielski, jest to przykra sytuacja, bowiem otrzymasz albo hebrajski z bałaganem, albo angielski z bałaganem...

2.5 Konwersje

Oto kilka prostych komend do konwersji z każdego standardu na inny:

DOS - ISO:      tr '\200-\232' '\340-\372' < {dos_file} > {iso_file}
ISO - DOS:      tr '\340-\372' '\200-\232' < {iso_file} > {dos_file}
OLD - DOS:      tr -z '\200-\232' < {old_Hebrew_file} > {dos_file}

UWAGA: Numery używane przez tr są w kodzie ósemkowym!

3. Wirtualne Konsole (WK)

Każda dystrybucja Slackware dostarczana jest z kbd; pakiet ten zwany jest keytbls w Slackware (dysk a4 w wersji 2.3.0 - kbd 0.90). Joel Hoffman dostarczył hebrajskie czcionki i układy klawiatury ze swojego oryginalnego pliku codepage.tar.Z. Zajrzyj do /usr/lib/kbd/consolefonts i poszukaj plików iso08.* (czcionki w standardzie ISO-8859-9, dostosowany jest do nich układ klawiatury).

Wsadź poniższe linie do /etc/rc.d/rc.local:

-----
#!/bin/sh
#       Wstaw tu swoją lokalną konfigurację
#
INITTY=/dev/tty[1-6]
PATH=/sbin:/etc:/bin:/usr/sbin:/usr/bin
#
#       kbd - Ustaw czcionkę na konsoli i układ klawiatury
#       ustaw NumLock i tryb metabitu na konsolach od /dev/tty1 do 6
for tty in $INITTY
do
#       setleds -D +num < $tty > /dev/null
        setmetamode metabit < $tty > /dev/null
done
#       ISO-8859-8 (klawiatura i konsola)
setfont iso08.f16
mapscrn trivial
loadkeys Hebrew
#       zezwól na odzworowywanie
for tty in $INITTY
do
        echo -n -e "\\033(K" >$tty
done
-----

UWAGA: Jeśli używasz X Windows bądź ostrożny używając setleds, może to spowodować zawieszenie się X-serwera.

Powyższe ustawienia działają bez zarzutu z hebrajską wersją pico i pine, i wyświetlają poprawny hebrajski w ISO-8859-8 (X Windows, MS Windows).

4. Konfiguracja X Windows - XFree86 3.1

4.1 Czcionki hebrajskie

XFree86 3.1 dostarczany jest z dwoma [bitmapowymi] czcionkami hebrajskimi: heb6x13 i heb8x13. Dodatkowe czcionki znaleźć można w sieci:

4.2 Instalacja czcionek

4.3 Zmuszenie aplikacji Xowej do używania czcionek hebrajskich

Krótko mówiąc, musisz ustawić odpowiedni zasób.

Xterm

Wstaw poniższą linię do $HOME/.Xresources:

xterm*font: heb8x13

lub po prostu uruchom xterm poprzez xterm -fn heb8x13. Powyższa czcionka jest o wiele za mała, więc poszukaj lepszej... patrz uwagi co do startu X11.

Netscape

Zwykle użyć możesz czcionek hebrajskich z snunit-project, Zainstaluj je tak jak opisano, a potem wstaw poniższe wartości domyślne do swojego lokalnego .Xdefaults, bądź do app-defaults/Netscape.

----
*documentFonts.latin1.variable.italic*slant:            r
*documentFonts.latin1.variable.boldItalic*slant:        r
*documentFonts.latin1.variable*family:                  web
*documentFonts.latin1.fixed*family:                     webmono
*documentFonts.latin1*registry:                         iso8859
*documentFonts.latin1*encoding:                         8
----

Ogólnie rzecz biorąc, możesz wstawić dowolną czcionkę zamiast powyższych tak długo jak obsługuje ją X11, tak jak opisano.

4.4 Odwzorowywanie klawiatury

Z jakiegoś powodu X-serwer nie dziedziczy układu klawiatury z poprzedniego paragrafu [tj. z konsoli - dop. tłum.], a zresztą i tak wolałbym przezdefiniować lewy Alt, prawy Alt i ScrollLock. Naciśnięcie Alt razem z jakimś klawiszem da znak hebrajski, ScrollLock zaś ustawi tryb hebrajski na stałe.

By tego dokonać użyjemy xmodmap. Poniższe jest plikiem .Xmodmap, który poprawia również błędy dotyczące klawisza NumLock.

-----
! Hebrajski układ klawiatury dla XFree86 (dla klawiatury amerykańskiej)
! Vlad Moseanu
!
keysym Alt_L = Mode_switch
keysym Alt_R = Mode_switch
!clear Mod1
clear Mod2
!add Mod1 = Alt_L
add Mod2 = Mode_switch
!
! Przyporządkuj wartości każdemu klawiszowi
!
keycode   8 =
keycode   9 = Escape
keycode  10 = 1 exclam
keycode  11 = 2 at
keycode  12 = 3 numbersign
keycode  13 = 4 dollar
keycode  14 = 5 percent
keycode  15 = 6 asciicircum
keycode  16 = 7 ampersand
keycode  17 = 8 asterisk
keycode  18 = 9 parenleft
keycode  19 = 0 parenright
keycode  20 = minus underscore
keycode  21 = equal plus
keycode  22 = Delete
keycode  23 = Tab
keycode  24 = q Q slash Q
keycode  25 = w W apostrophe W
keycode  26 = e E 0x00f7 E
keycode  27 = r R 0x00f8 R
keycode  28 = t T 0x00e0 T
keycode  29 = y Y 0x00e8 Y
keycode  30 = u U 0x00e5 U
keycode  31 = i I 0x00ef I
keycode  32 = o O 0x00ed O
keycode  33 = p P 0x00f4 P
keycode  34 = bracketleft braceleft
keycode  35 = bracketright braceright
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = a A 0x00f9 A
keycode  39 = s S 0x00e3 S
keycode  40 = d D 0x00e2 D
keycode  41 = f F 0x00eb F
keycode  42 = g G 0x00f2 G
keycode  43 = h H 0x00e9 H
keycode  44 = j J 0x00e7 J
keycode  45 = k K 0x00ec K
keycode  46 = l L 0x00ea L
keycode  47 = semicolon colon 0x00f3 colon
keycode  48 = apostrophe quotedbl comma quotedbl
keycode  49 = grave asciitilde semicolon asciitilde
keycode  50 = Shift_L
keycode  51 = backslash bar
keycode  52 = z Z 0x00e6 Z
keycode  53 = x X 0x00f1 X
keycode  54 = c C 0x00e1 C
keycode  55 = v V 0x00e4 V
keycode  56 = b B 0x00f0 B
keycode  57 = n N 0x00ee N
keycode  58 = m M 0x00f6 M
keycode  59 = comma less 0x00fa less
keycode  60 = period greater 0x00f5 greater
keycode  61 = slash question period question
keycode  62 = Shift_R
keycode  63 = KP_Multiply
!keycode  64 = Alt_L Meta_L
keycode  65 = space
keycode  66 = Caps_Lock
keycode  67 = F1
keycode  68 = F2
keycode  69 = F3
keycode  70 = F4
keycode  71 = F5
keycode  72 = F6
keycode  73 = F7
keycode  74 = F8
keycode  75 = Escape
keycode  76 = F10
keycode  77 = Num_Lock
keycode  78 = Scroll_Lock
keycode  79 = KP_7
keycode  80 = KP_8
keycode  81 = KP_9
keycode  82 = KP_Subtract
keycode  83 = KP_4
keycode  84 = KP_5
keycode  85 = KP_6
keycode  86 = KP_Add
keycode  87 = KP_1
keycode  88 = KP_2
keycode  89 = KP_3
keycode  90 = KP_0
keycode  91 = KP_Decimal
keycode  92 = Sys_Req
keycode  93 =
keycode  94 =
keycode  95 = F11
keycode  96 = F12
keycode  97 = Home
keycode  98 = Up
keycode  99 = Prior
keycode 100 = Left
keycode 101 = Begin
keycode 102 = Right
keycode 103 = End
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
keycode 107 = Delete
keycode 108 = KP_Enter
keycode 109 = Control_R
keycode 110 = Pause
keycode 111 = Print
keycode 112 = KP_Divide
!keycode 113 = Alt_R Meta_R
keycode 114 = Break
!
! Tego pliku .Xmodmap używać można dla ustawienia prawidłowej klawiatury
! numerycznej przy ustawieniu ServerNumLock w pliku XF86Config. W tym
! wypadku obsługą NumLock zajmuje się X-serwer.
!
!
keycode  136 = KP_7
keycode  137 = KP_8
keycode  138 = KP_9
keycode  139 = KP_4
keycode  140 = KP_5
keycode  141 = KP_6
keycode  142 = KP_1
keycode  143 = KP_2
keycode  144 = KP_3
keycode  145 = KP_0
keycode  146 = KP_Decimal
keycode  147 = Home
keycode  148 = Up
keycode  149 = Prior
keycode  150 = Left
keycode  151 = Begin
keycode  152 = Right
keycode  153 = End
keycode  154 = Down
keycode  155 = Next
keycode  156 = Insert
keycode  157 = Delete
-----

Aby używać powyższego .Xmodmap zdefiniuh "Scroll-Lock Mode-Lock" w XF86Config.

4.5 Składanie powyższych przykładów razem

Jeśli używasz xdm, plik $HOME/.xsession powinien wyglądać jak niżej:

-----
#!/bin/sh
# $XConsortium: Xsession,v 1.9 92/08/29 16:24:57 gildea Exp $
#
# General defs
#
export OPENWINHOME=/usr/openwin
export MANPATH=/usr/local/man:/usr/man/preformat:/usr/man:/usr/X11R6/man
#export HOSTNAME="`cat /etc/HOSTNAME`"
export PATH="/bin: /usr/bin: /usr/X11/bin: /usr/X386/bin: /usr/TeX/bini: /usr/local/bin: /usr/games:."
LESS=-MM
if [ -z $XAPPLRESDIR ]; then
        XAPPLRESDIR=/usr/lib/X11/app-defaults:/usr/local/lib/X11/app-defaults
else
        XAPPLRESDIR=$XAPPLRESDIR:/usr/lib/X11/app-defaults
fi
export XAPPLRESDIR
#
sysresources=/usr/lib/X11/Xresources
sysmodmap=/usr/lib/X11/Xmodmap
resources=$HOME/.Xresources
xmodmap=$HOME/.Xmodmap
if [ -f $sysresources ]; then
        xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
        xmodmap $sysmodmap
fi
if [ -f $resources ]; then
        xrdb -merge $resources
fi
if [ -f $xmodmap ]; then
        xmodmap $xmodmap
fi
#
# Uruchom aplikacje
#
# xterm -ls -sb &
xhost +                 # uważaj !!!
exec fvwm
-----

Jeśli wolisz startx, użyj powyższego jako przykładowego .xinitrc.

5. Konfiguracja powłok

Po więcej szczegółów zajrzyj do ISO 8859-1 HOWTO.

5.1 bash

Stwórz plik $HOME/.inputrc zawierający co następuje:

-----
set meta-flag On
set convert-meta Off
set output-meta On
-----

5.2 csh/tcsh

Zdefiniuj co następuje w pliku $HOME/.login lub /etc/csh.login:

setenv LANG iw_IL.ISO8859-8 (lub iw_IL)

Ponieważ jednak binarna wersja tcsh jest faktycznie skompliowana bez NLS, zmienną LANG można ustawić dowolnie i nadal będzie ona działać (nie ma potrzeby tworzenia /usr/lib/nls...).

6. Aplikacje

6.1 vim

6.2 Hebrajski pine and pico

Pine i towarzyszący mu edytor pico zostały przerobione przez Helen Zommer z CC-huji; adres e-mail do zgłaszania błędów to pineh-bug@horizon.cc.huji.ac.il. Można je ściągnąć z ftp://horizon.cc.huji.ac.il/pub.

6.3 Niektóre hebrajskie wersje emacsa.

6.4 Dosemu

Dla dosemu na WK możesz użyć swojej czcionki hebrajskiej z EPROMu karty graficznej, a jeśli jej nie masz, istnieje cała masa DOSowych czcionek hebrajskich z obsługą od EGA do VGA.

Co do X-Windows, powinieneś zdobyć plik ftp://sunsite.unc.edu/pub/Linux/X11/fonts/hebxfonts-0.1.tgz. Zawiera on kilka czcionek, w tym jedną zwaną vgah.pcf, która powienieneś zainstalować w swoim katalogu z czcionkami jak opisano powyżej

6.5 XHTerm

Istnieje pisane od podstaw przeniesienie zwykłego xterma na użytek z hebrajskimi czcionkami (XHTerm = xterm + obsługa hebrajskiego). Wersja dla Suna udostępniona została z pomocą Danny'ego <tt>danny@cs.huji.ac.il</tt>. Jewgienij ma jakąś łatę do używania tej wersji pod Linuxa. Razem z jego wersją powinieneś znaleźć już skompilowany XHTerm dla X11R5 oraz X11R6. xhterm używać powinieneś z opcją -fn i hebrajską czcionką jak opisano! Wersję Danny'ego (dla Suna) uzyskać można z ftp://ftp.huji.ac.il/pub/local/xhterm, a połatana wersja Jewgienija Stambulczika znajduje się w ftp://plasma-gate.weizmann.ac.il/pub/software/linux. Zdobądź ją stamtąd, a otrzymasz z nią pięć czcionek: [heb10x20.pcf, heb6x13.bdf, heb6x13.pcf, heb8x13.bdf, heb8x13.pcf]

6.6 TeX--XeT - hebrajski Tex.

Największym problemem z TeXem po hebrajsku jest to że znaki powinny biec w tył względem widoku (tj. pico powinien wstawiać znaki od prawej do lewej), tak więc najlepszą rzeczą jest zdobycie XHterm plus zwykły emacs i pisanie hebrajskim od lewej do prawej, a także do tyłu. Nowsze dystrybucje NTeXa na SunSite (v. 1.5) zawierają wszystko, w tym TeX--XeT, skompilowany dla Linuxa. Zdobyć go można z ftp://sunsite.unc.edu.gz/pub/Linux/apps/tex/ntex. Starszą wersję TeX--XeT uzyskać można z ftp://noa.huji.ac.il/tex. Tą starszą wersję trzeba jednak zrekompilować (niepolecane). Te wydania TeXa działają dobrze jeśli używasz LaTeXa 2.09. Jeśli chcesz używać LaTeXa 2e (bieżący standard, de facto), masz problem. Alon Ziv (alonz@csa.cs.technion.ac.il) pracuje obecnie nad obsługą hebrajskiego w LaTeX 2e, z użyciem systemu Babel. Nie znam obecnego stanu prac - zapytaj go!

7. Konfiguracja drukarki

Nie ma co dużo mówić: jeśli masz zwykłą drukarkę igłową ASCII (ktoż dzisiaj ma?) jest spora szansa że w EPROMie są hebrajskie znaki. Jeśli używasz postscriptu, powienieneś załadować czcionki do drukarki (zawsze możesz użyć do tego czcionek sieciowych wspomnianych powyżej. Czcionek tych można także używać z GhostScriptem.

Jeśli masz drukarkę PCL (LaserJet itd.) możesz użyć albo kasetek z czcionkami, albo GhostScriptu.

8. Produkty komercyjne

8.1 El-Mar software.

Obsługa hebrajskiego dla X Windows i Motifa, produkt El-Mar Software, która dodaje funkcjonalność hebrajską do wielu części i warstw X Windows i Motifa, w tym Xlib, wszystkie widgety Motifa, hterm (hebrajski xterm), dema i proste pożyteczne aplikacje (np. dwujęzykowy edytor oparty na Motif), czcionki (w tym skalowalne Type1), menedżera klawiatury uwzględniającego hebrajski oraz push-mode dla aplikacji nie-Motifowych itd. Mimo wprowadzenia wielu nowych cech i wariacji widgetów Motiffa, obsługa ta nie modyfikuje w żaden sposób wewnętrznej struktury danych Motifa, tak więc instniejące aplikacje, skompilowane i złączone w środowisku i bibliotekami niehebrajskimi można przełączyć (bez rekompilacji!) i uruchamiać z hebrajskim (dzielone biblioteki można zastępować, więc nawet przełączenie nie jest potrzebne!) Używając innego naszego narzędzia, Motif/Xplorer, możesz wziąć aplikacje komercyjne (bez źródła) i przetłumaczyć je na hebrajski. Takim sposobem dodano obsługę hebrajskiego do Oracle Forms 4, Kappy i OMW Intellicorpu, CA-Unicenter i wielu innych szeroko używanych narzędzi Unixowych sprzedawanych w Izraelu. Produkt ten zakupiła i zastosowała większość sprzedawców stacji roboczych (dziewięciu z nich, w tym najwięksi: Sun, HP, SGI), i wiele innych firm wytwarzających oprogramowanie. Pliki makefile istnieją na ponad 30 platform i systemów operacyjnych. Wierzymy tylko w "otwarte" oprogramowanie, tak więc wszyscy klienci otrzymują kompletny kod źródłowy. Posiadamy dobre stosunki z przodującymi siłami w tym przemyśle, w tym z działami technicznym X-Consortium oraz COSE.

Eli Marmor
El-Mar Software Ltd.
Tel.: 050-237338
FAX: 09-984279
marmor@sunshine.cs.biu.ac.il

PS. Zapowiedź obsługi arabskiego w X Windows i Motifie spodziewana jest w styczniu [1996]. Angielski, hebrajski i arabski obsługiwane będą ośmioma bitami (!), wliczając w to pełny zestaw znaków arabskich.

9. Hebrajski wokoło sieci

9.1 WWW

9.2 Gopher

9.3 Ftp

#

Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:23