Navrh vseobecneho lokalizatoru pre Linux
Stanislav Meduna
stano@trillian.eunet.sk
Sat, 15 May 1999 16:35:41 +0200
On Sat, May 15, 1999 at 02:19:19PM +0000, Miroslav Vasko wrote:
> > Daj pokoj s pythonom :-) a aj ten perl by som nerad videl.
> :) ja mam python rad!
> ale mozeme sa dohodnut na bash, textutils a gawk?
Aj ten gawk by som vypustil. bash a textutils su jasne,
ale su ludia, co awk neinstaluju.
> > Mam nejaku predstavu o XKB klavesniciach, ale netlacte
> > na mna - este to potrebuje dozriet.
> dobre, takze zatial ostava dobrovolnik Juraj :-))) staci, ked spracujes
> Xy a nejake to pekne Xove rozhranie - ciste Xy, nic viac.
Narychlo som zosmolil som nejake idey - precitajte,
skritizujte, navrhnite lepsie, ...
Nastavovanie XKB klavesnic - draft
1. Ciele
- odstranit nutnost zmien suborov patriacich do X distribucie
v pripade definicie novych klavesnic
- poskytnut rovnake rozhranie pre vyber klavesnice
bez ohladu na to, ci sa nachadza v X distribucii,
alebo bola doplnena inak
- definovat priradenie doplnujucich informacii
k XKB klavesniciam, ako je komentar, pixmapa a.p.
- umoznit ovladanie prostrednictvom:
- command line
- skriptu spusteneho z .Xclients
- skriptu spusteneho prostrednictvom window managera
(menu, hotkey, ...)
- grafickeho rozhrania
- umoznit automaticky vyber podla aktualneho locale
- umoznit systemove defaulty a pouzivatelske nastavenie
2. Definicia klavesnic
Systemovy konfiguracny adresar balika ma rovnaku
strukturu ako /usr/X11R6/lib/X11/xkb s podadresarmi
compat, geometry, keycodes, keymap, ...
xkbcomp umoznuje jednoduche pouzitie takejto "dualnej"
struktury bez problemov (aktualny adresar ma prednost
pred systemovym). Az v xkbcomp opravia bug, bude mozne
definovat adresarov viac a umoznit tak napr. predefinovanie
aj na pouzivatelskej urovni (uzitocne, pokial pouzivatel
nema moznost zapisovat do systemovych adresarov).
V prvej verzii to bud nepojde, alebo bude existovat
moznost prehodit cely adresar aplikacie do svojho
stromu.
Pozadovana mapa klavesnice je definovana relativnou
cestou k suboru v adresari keymap a nazvom keymapy,
ktora sa v tomto subore vyskytuje.
Syntax zdrojoveho suboru pre xkbcomp bude rozsirena
o prikazy prostrednictvom specialnej formy komentaru.
Tak sa bude dat priradit ku konkretnej klavesnici
- kratke meno
- dlhe meno
- pixmapa
ktore budu pouzitelne pre programy pre vyber klavesnice.
Toto priradenie bude mozne aj pre klavesnice z povodnej
X distribucie.
Pre urychlenie pristupu bude zavedeny caching - klavesnica,
ktora uz raz bola pozadovana, sa predkompiluje do .xkm
formatu. Tato cache bude niekde vo /var/lib, pripadne
(pokial pribudne aj predefinovanie pouzivatelom)
v pouzivatelskom adresari.
3. Vyber klavesnic
Vzdy je mozne vybrat klavesnicu specifikaciou jej
plneho mena (relativna cesta + nazov mapy) prostrednictvom
command line toolu. Systemovy administrator vsak ma
moznost zadefinovat skrateny zoznam, ktory bude
pouzivatelovi ponuknuty pri vybere prostrednictvom GUI.
Pouzivatel ma moznost tento zoznam predefinovat
alebo doplnit.
V tomto konfiguracnom subore ide ciste o priradenie
identifikator -> specifikacia klavesnice, urcenie
systemoveho defaultu a defaultu podla nastaveneho
locale. Co sa zobrazi v grafickom rozhrani, je zadane
v definicii klavesnice.
4. Priklad
Adresar XKB: /usr/X11R6/lib/X11/xkb
Adresar balika: /usr/lib/xkbsel
/usr/lib/xkbsel/symbols/ obsahuje subor czsk
/usr/lib/xkbsel/compat/ obsahuje group_led
/usr/lib/xkbsel/keymap/czsk obsahuje nieco ako
xkb_keymap "cz" {
xkb_keycodes { include "xfree86" };
xkb_types { include "default" };
xkb_compatibility { include "group_led" };
xkb_symbols { include "czsk(cz)" };
xkb_geometry { include "pc" };
//%xkbsel% short "CZ"
//%xkbsel% long "Ceska standardna klavesnica"
//%xkbsel% pixmap "cz.xpm"
};
xkb_keymap "sk" {
xkb_keycodes { include "xfree86" };
xkb_types { include "default" };
xkb_compatibility { include "group_led" };
xkb_symbols { include "czsk(sk)" };
xkb_geometry { include "pc" };
//%xkbsel% short "SK"
//%xkbsel% long "Slovenska standardna klavesnica"
//%xkbsel% pixmap "sk.xpm"
};
A radi by sme doplnili aj nieco pre americku klavesnicu
(subor sa nemoze volat keymap/xfree86, lebo potom by xkbcomp
nenasiel ten spravny xfree86).
/usr/lib/xkbsel/redefs/xfree86:
//%xkbsel% us short "US"
//%xkbsel% us long "US keyboard layout"
//%xkbsel% us pixmap "us.xpm"
Systemovy konfiguracny subor bude:
[XKeyboard]
map[us] = xfree86/us
map[cz] = czsk/cz
map[sk] = czsk/sk
default = xfree86/us
locale[cz] = czsk/cz
locale[sk] = czsk/sk
Pouzivatelia budu mat v .Xclients nieco ako:
xkbsel ... default
xkbsel sk ... natvrdo slovenska klavesnica
xkbsel czsk/sk ... natvrdo slovenska klavesnica (plna cesta)
xkbsel xfree86/de ... nemecka (identifikator nemame)
xkbsel --locale ... zvoli podla locale
Zdravi
--
Stano