Nowe posty

Autor Wątek: Czcionka Cyrylica w Linuksie.  (Przeczytany 7373 razy)

micza

  • Gość
Czcionka Cyrylica w Linuksie.
« dnia: 2009-03-20, 21:58:56 »
No właśnie jak to jest z cyrylicą w Linuksie. Używam dwóch języków z tym abecadłem to jest bułgarskiego i rosyjskiego w WIN XP, stosując b. dobry program KLAWA (bezpłatny). Eksperymentowałem z Linuksem i zdaje się nawet w podstawowym schemacie języków nie posiada on cyrylicy ? Co robić i jakie przeróbki SOFTWARE zastosować ?

arctgx

  • Gość
Czcionka Cyrylica w Linuksie.
« Odpowiedź #1 dnia: 2009-03-20, 23:02:18 »
W Ubuntu najprawdopodobniej masz na miejscu czcionkę unikodową. Zawierać powinna również cyrylicę. Wystarczy wtedy polecenie
setxkbmap ru
dla przemapowania klawiszy.

Ale żebyś nie panikował, odpal w terminalu najpierw setkxbmap pl, a potem z ru, byś mógł kursorem do góry się cofnąć do poprzedniego polecenia. Możesz też przypisać jakiemuś klawiszowi włączenie polskiego mapowania lub skorzystać z któregoś gotowego apletu do przełączania mapowań.

micza

  • Gość
Czcionka Cyrylica w Linuksie.
« Odpowiedź #2 dnia: 2009-03-21, 07:23:17 »
To nie wiele daje. Być może mapowanie jest jakimś rozwiązaniem.
Odpowiem dlaczego. W Win XP działa program cyrylickich liter KLAWA na takiej zasadzie że poszczególnym polskim klawiszom przyporządkowane są ich rosyjskie odpowiedniki i tak np. g to będzie ros.g, m to bedzie ros.m, j to będzie ros.j no i kilka klawiszy dodatkowych z ju, ja ,je. To b. prosty sposób lecz z punktu widzenia filologa czy tłumacza skuteczny. Bo nie ma czegoś takiego że przepisując tekst szukamy odpowiednich liter na klawiaturze.
A właśnie takie zjawisko się pojawia po wpisaniu setxbmap ru. Nic nie daje też systemowe zmienienie języka, gdyż mamy zjawisko nie spotykane w Win - poszczególne ekranowe klawisze systemowe są opisane po rosyjsku a gdy piszemy w edytorze to mamy nadal łacińskie litery !
Poszukam tych mapowań klawiszy.
Dziękuje za podpowiedź.

arctgx

  • Gość
Czcionka Cyrylica w Linuksie.
« Odpowiedź #3 dnia: 2009-03-21, 13:12:59 »
Setkxbmap jest pewnym gotowcem - bardziej elementarnym poleceniem pozwalającym mapować z dokładnością do klawisza jest xmodmap. Tworzysz sobie plik z mapą klawiszy, ładujesz go tym poleceniem, a w razie potrzeby wracasz do polskiego mapowania za pomocą setxkbmap. Spróbuję podsunąć Ci linijkę dla pojedynczego znaku, byś załapał jak to robić, a resztę zrobisz po swojemu.

Nawiasem, dla zrozumienia rzeczy tłumaczyłem kiedyś kawałek na Wikipedii o mapowaniu klawiszy w serwerze Xorg i wg tego tekstu, niektóre programy (czyli tzw. klienty Xorg) mogą używać własnego mapowania, niezależnie od mapowania domyślnego w Xorg. Z jednej strony, być może doświadczyłeś tego sam, kiedy edytor mapował na łacińskie znaki, zaś reszta mapowała na inne. Z drugiej, ten sam sposób byłby praktyczną rzeczą, tylko z innym układem: mapowanie w całym Xorg polskie, w edytorze - własne i to z możliwością łatwego przełączania. O konkretach nie mam pojęcia, dlatego na razie możesz zadowolić się globalnym mapowaniem przez xmodmap.

rysban

  • Gość
Czcionka Cyrylica w Linuksie.
« Odpowiedź #4 dnia: 2009-03-21, 13:37:36 »
Witam .
Można w Ubuntu doinstalować nawet koreańskie czy Chińskie krzaki razem z mapami klawiatur . Zalogować można się w dowolnym języku wybierając go jako język sesji dokładnie tak samo jak sesję Gnome czy Kde .
Pozdrawiam Ryszard

jk33

  • Gość
Czcionka Cyrylica w Linuksie.
« Odpowiedź #5 dnia: 2009-03-21, 13:53:57 »
W programach środowiska GNOME (np. Gedit, Abiword) zazwyczaj można ustawić metodę wejścia klikając trzecim (prawym) przyciskiem myszy w polu do wprowadzania tekstu i wybierając odpowiednią metodę wejścia. Powinna być taka opcja jak cyrylica transliterowana. Trochę inne rozwiązanie, niż to co masz na windowsie, ale być może będzie Ci odpowiadać.

pozdrawiam, Janek

arctgx

  • Gość
Czcionka Cyrylica w Linuksie.
« Odpowiedź #6 dnia: 2009-03-21, 14:22:49 »
To, o czym piszesz, rysban, micza już zrobił za pomocą setxkbmap ru, zadanie jest w mapowaniu na rosyjskie znaki według jego upodobania.

Tymczasem tłumaczę sposób mapowania po swojemu klawisza z na rosyjskie ze:
  * szukam kodu klawisza z: w tym celu mogę odpalić xev, wcisnąć klawisz z i odczytać kod:
KeyRelease event, serial 34, synthetic NO, window 0x2400001,
    root 0x85, subw 0x0, time 7883953, (126,130), root:(549,419),
    state 0x0, [b]keycode 52[/b] (keysym 0x7a, z), same_screen YES,
    XLookupString gives 1 bytes: (7a) "z"
    XFilterEvent returns: False
kod zetki to 52.
  * szukam jak zwie się symbol rosyjskiego ze: znalazłem plik /usr/share/X11/xkb/symbols/ru, jeśli nie masz to wklejam go tu: http://pastebin.pl/6288, można domyślić się też nazw stąd: http://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap
symbole ze to Cyrillic_ze Cyrillic_ZE
  * teraz czas stworzyć mapowanie: keycode 52 = Cyrillic_ze Cyrillic_ZE
  * używamy go na dwa sposoby: albo wklejamy to mapowanie jako linijkę do pliku, np. ~/.cyrylica i wtedy klepiemy po prostu
xmodmap ~/.cyrylica
, albo testujemy je w linii poleceń:
xmodmap -e 'keycode 52 = Cyrillic_ze Cyrillic_ZE'
Powinieneś już widzieć rosyjskie ze, a w xev po wciśnięciu zetki powinno być mniej więcej
KeyPress event, serial 34, synthetic NO, window 0x2400001,
    root 0x85, subw 0x0, time 8778369, (37,266), root:(460,555),
    state 0x0, [b]keycode 52 (keysym 0x6da, Cyrillic_ze)[/b], same_screen YES,
    XLookupString gives 2 bytes: (d0 b7) "з"
    XmbLookupString gives 2 bytes: (d0 b7) "з"
    XFilterEvent returns: False
Jeszcze uzupełnienie na temat mapowania z modyfikatorami. Przypuśćmy, że chcemy dać ze jak wyżej, ale prócz tego pod prawym altem plus z ma pojawić się że. Wtedy po prostu poszerzamy mapowanie o dodatkowe wpisy:
keycode 52 = Cyrillic_ze Cyrillic_ZE Cyrillic_zhe Cyrillic_ZHE
Zrobiłem tak w przekonaniu, że kolejne z tych liter będą wyświetlały się po wciśnięciu z,Z,PrawyAlt-z,PrawyAlt-Z. Jednak u mnie niczego to nie dało z prawym altem. Okazuje się, że mapowanie przewiduje 8 miejsc, więc może prawy Alt kryje się nie na trzecim i czwartym miejscu, ale na dalszym. U mnie wyszło, że na piątym i szóstym:
keycode 52 = Cyrillic_ze Cyrillic_ZE z Z Cyrillic_zhe Cyrillic_ZHE
Na trzecie i czwarte miejsce wkleiłem byle co (z Z).

I tak reszta znaków, linijka pod linijką :)

Jest prostszy sposób mapowania pozwalający uniknąć zabawy z xev i operujący na dotychczasowo mapowanych symbolach:
[b]keysym z[/b] = Cyrillic_ze Cyrillic_ZE z Z Cyrillic_zhe Cyrillic_ZHE