České znaky v linuxové verzi NWN – řešení
Moderátoři: Dungeon Servant, World Builder, Dungeon Master
České znaky v linuxové verzi NWN – řešení
Napsal jsem knihovnu pro použití české klávesnice v NWN v Linuxu.
Stačí knihovnu nakopírovat do adresáře NWN a nwmain spouštět takto:
LD_PRELOAD="./libNWNcp1250.so" nwmain "$@"
Ke stažení na nwvault: libNWNcp1250.tar.gz
EDIT: Je potřeba mít funkční českou klávesnici libovolného rozložení. Nefungují znaky Ó, É, Ň (jen verzálky). Místo znaku Č (který taky klient NWN nebere) je generován znak Ç, který se ovšem zobrazuje českým fontem jako Č (týká se také jen verzálky).
Pro kompilaci je třeba mít instalovanou knihovnu SDL (Simple Directmedia Layer) včetně hlavičkových souborů (balíček libsdl1.2-dev).
Mnou zkompilovaná knihovna v archivu použila SDL verze 1.2.13, ale neměla by být závislá na konkrétní verzi SDL (já ji spouštím proti verzi 1.2.11). Využívá se volání existující knihovny SDL, kterou nwmain (i moje knihovna) očekává v podadresáři lib (tedy nevyužívá se systémová knihovna, ale lokální). Pokud jste odstranili z proměnné LD_LIBRARY_PATH adresář ./lib, měla by se využívat systémová knihovna.
Stačí knihovnu nakopírovat do adresáře NWN a nwmain spouštět takto:
LD_PRELOAD="./libNWNcp1250.so" nwmain "$@"
Ke stažení na nwvault: libNWNcp1250.tar.gz
EDIT: Je potřeba mít funkční českou klávesnici libovolného rozložení. Nefungují znaky Ó, É, Ň (jen verzálky). Místo znaku Č (který taky klient NWN nebere) je generován znak Ç, který se ovšem zobrazuje českým fontem jako Č (týká se také jen verzálky).
Pro kompilaci je třeba mít instalovanou knihovnu SDL (Simple Directmedia Layer) včetně hlavičkových souborů (balíček libsdl1.2-dev).
Mnou zkompilovaná knihovna v archivu použila SDL verze 1.2.13, ale neměla by být závislá na konkrétní verzi SDL (já ji spouštím proti verzi 1.2.11). Využívá se volání existující knihovny SDL, kterou nwmain (i moje knihovna) očekává v podadresáři lib (tedy nevyužívá se systémová knihovna, ale lokální). Pokud jste odstranili z proměnné LD_LIBRARY_PATH adresář ./lib, měla by se využívat systémová knihovna.
Naposledy upravil(a) Anade dne 8. 10. 2009 16.35, celkem upraveno 14 x.
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
We do what we must because we can.
O papoušcích…
Ale stálo mě to spoustu zjišťování. Původně jsem chtěl přeplácnout XNextEvent nebo XLookupString, ale to NWN nepoužívá, až později mě napadlo přeplácnout SDL. No a pak mě ještě stál čas zjistit, jak volat nejlíp původní verzi funkce. Naštěstí jsem našel projekt liboverride a inspiroval se jím.merlik píše:Koukal jsem do kódu - jednoduchost sama :) = krása. Tohle vědět, tak se k tom odvážím taky ;)
Celkově jsem na tom začal dělat včera odpoledne, když mě nebavilo hrát EQ.
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
We do what we must because we can.
O papoušcích…
Díky. Takže to funguje správně?merlik píše: Super práce. To by stálo za to to někde uveřejnit.
Poslal jsem to už Adamovi, aby to dal sem: http://adam.pohadkovychlum.cz/cestiny/nwn
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
We do what we must because we can.
O papoušcích…
Tak Adam už dal odkaz na své stránky s češtinou pro NWN.
http://adam.pohadkovychlum.cz/cestiny/nwn
http://adam.pohadkovychlum.cz/cestiny/nwn
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
We do what we must because we can.
O papoušcích…
Re: České znaky v linuxové verzi NWN – řešení
Tak po letech jsem něco (to něco jsem zatím neidentifikoval, mezi stavem funguje a nefunguje uběhlo víc času a docela dost balíčků bylo upradnuto) upgradnul a nemůžu naloudovat knihovnu s chybou
Zkusil jsem knihovnu přeložit znova, ale to samé, jen s 64 :) Strace mi taky zatím moc neporadil.
Zatím mi uniká, kudy se vydat k řešení. Uměl by mě prosím někdo postrčit?
Kód: Vybrat vše
ERROR: ld.so: object './libNWNcp1250.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Kód: Vybrat vše
en/nwmain: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, stripped, too many notes (256)
/lib32/ld-2.22.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
libNWNcp1250.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
account: Tuxik
Elorfin Hanar
Elorfin Hanar
Re: České znaky v linuxové verzi NWN – řešení
Hádal bych absenci nějakých 32b knihoven v 64b systému. Podívej se po multilib nebo něčem podobném, alternativa je ještě instalace kompletního 32b subsystému...
Pokud by bylo potřeba doplnit ztracené knihy do knihovny, dejte vědět do PM.
Aktivní: Alariel Erna
Bejvávalo: Te'lyn (by Balrog) (by Niam - NSFW) | Ulrika | Ignatz
Ostatní: Ukládání logů a konverze screenshotů | Jak vyrobit portrét | Knihovna v Amfiberai
Aktivní: Alariel Erna
Bejvávalo: Te'lyn (by Balrog) (by Niam - NSFW) | Ulrika | Ignatz
Ostatní: Ukládání logů a konverze screenshotů | Jak vyrobit portrét | Knihovna v Amfiberai
Re: České znaky v linuxové verzi NWN – řešení
Používáš současně s tím optirun? Mně to taky hlásí tento problém s optirun, ale vstup češtiny mi funguje. Knihovna se odmítne načíst při přípravě prostředí pro nVidii, ale pro nwmain pak funguje.
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
We do what we must because we can.
O papoušcích…
Re: České znaky v linuxové verzi NWN – řešení
Díky.Anade píše:Používáš současně s tím optirun? Mně to taky hlásí tento problém s optirun, ale vstup češtiny mi funguje. Knihovna se odmítne načíst při přípravě prostředí pro nVidii, ale pro nwmain pak funguje.
Ne, optirun nepoužívám (nebo o tom nevím). Nastuduju. Jinak nVidii mám (a drivery se teď updatovaly).
account: Tuxik
Elorfin Hanar
Elorfin Hanar
Re: České znaky v linuxové verzi NWN – řešení
Kromě té hlášky o chybné architektuře, funguje jinak vstup češtiny?
Anade Be'lein – rozporuplná, (pro některé) nevypočitatelná, nedůvěřivá elfka za půl druhé platinky
We do what we must because we can.
O papoušcích…
We do what we must because we can.
O papoušcích…
Re: České znaky v linuxové verzi NWN – řešení
Nefunguje, jen ýá. Zbytek nic nenapíše. Ale zatím jsem nic dalšího nehledal, nezkoumal (ještě se mi to taky nekamarádí s Plasmou, ale to má jednoduché řešení :) ). Jen už vím, co je optirun a to nemám.
account: Tuxik
Elorfin Hanar
Elorfin Hanar
Re: České znaky v linuxové verzi NWN – řešení
Tak jsem to … obešel. Problém jsem našel v tom, že některé klávesy při české klávesnici posílají kódy "0". Tak jsem si přemapoval anglickou.
account: Tuxik
Elorfin Hanar
Elorfin Hanar