27 July, 2009

Cu sau fără diacritice - terminale

În urma unei „flame” pe lista RLUG am primit o sugestie de la Petru Rațiu, și anume să documentez cum trebuie configurat un sistem Linux pentru a avea suport corect pentru limba română. În consecință am instalat din nou toate terminalele din Debian și le-am testat pe rând cu mutt (1.5.20) și mc (4.6.2). Am folosit mc nu atât pentru suportul de diacritice ci pentru că am observat fenomene „ciudate” când variabila LANG este setată pe ceva UTF-8. Testele au fost făcute cu configurația implicită, cu excepția lui pterm care la primul test a fost foarte aproape de suportul fără probleme. Știu că versiunile programelor sunt relativ noi (doar folosesc Debian unstable), dar nu mă aștept la surprize mari nici cu variante mai vechi. În general avem două categorii mari:
  1. Fără probleme:
    • evilvte (0.4.4.1)
    • gnome-terminal (2.22.3)
    • konsole (4.2.4)
    • lxterminal (0.1.6)
    • mlterm (2.9.4)
    • roxterm (1.15.2)
    • urxvt/rxvt-unicode (9.06)
    • xfce4-terminal (0.4.0)
    • xterm (243)
  2. Fără suport (în mc și mutt apăreau caractere ciudate în locul caracterelor cu diacritice dar și în locul caracterelor de linii):
    • aterm (1.0.1)
    • eterm (0.9.5)
    • mrxvt (0.5.4)
    • multi-aterm (0.2.1)
    • rxvt (2.6.4)
    • wterm (6.2.9)
    • xvt (6.2.9)
Excepții: kterm (6.2.0): - mc: nu are linii și pe alocuri afișează caractere asiatice - mutt: unele caractere nu apar de loc, altele (exemplu „î”) sunt înlocuite cu caractere asiatice powershell (0.9): la prima vedere pară să „înghită” anumite diacritice (nu le afișează de loc, în special „ș”) și afișează niște linii orizontale ciudate. Prima impresie e că suportul UTF-8 e cam prost (inexistent?). Probabil că nu e de mirare ținând cont că folosește gtk 1.2 ... pterm (0.60): - mc: ok - mutt: ok, dar diacriticele erau înlocuite cu un punct până când l-am pornit cu „-fn Terminus-20” Concluzie: din păcate aproape toată gama de terminale „ușoare” au probleme dacă locala este UTF-8. Deocamdată nu am găsit decât patru emulatoare de terminal clasice care să suporte UTF-8: xterm, urxvt/rxvt-unicode, mlterm și pterm. pterm e posibil să aibă un mic defect (bug) deoarece n-a detectat că fontul implicit suportă UTF-8 (și automat n-a comutat modul UTF-8). După cum era de așteptat toate terminalele pe bază de GTK/GNOME și QT/KDE au suport corect. Singurul cu probleme, powershell, ar trebui evitat oricum deoarece încă mai folosește vechea bibliotecă gtk 1.2 Dacă mai știți și alte emulatoare de terminal (cu sau fără suport UTF-8) vă rog să scrieți un comentariu.

5 comments:

  1. Pare cam complicat, nu ajunge să alegi limba română la instalare ? În Fedora am insistat să fie așa și acum e, în consolă ai tastatură românească cu alt dreapta, font care suportă ș/ț, în X.org treaba e rezolvată, acum dacă vorbim de programe, astea trebuie rezolvate în parte.

    ReplyDelete
  2. Ok, dar cum rămâne cu cei care se încăpățânează să NU aleagă limba română la instalare :-/

    ReplyDelete
  3. În Fedora, GNOME, te duci în Sistem->Administrare->Limba și alegi Română, asta setează limba interfeței, fontul potrivit pentru consolă și maparea de tastatură. Odată setate astea, ecranul de autentificare ține cont de ele și oferă opțiunile implicite pentru Română, maparea pentru programatori.

    ReplyDelete
  4. Mersi de initiativa, m-am aberat si eu adineauri 'la punct fix' intr-un post, feel free sa corectezi sau sa folosesti ceva de pe acolo.

    Alex: ai fi surprins sa afli ca exista oameni pe lumea asta care folosesc desktopuri *nix instalate acum mai bine de 7 ani, asa ca 'iti alegi la instalare' nu e neaparat o solutie universala (si in nici un caz corecta, pentru ca nu ajuta la intelegerea fenomenului). In plus, cel putin noi astia mai batrani preferam interfata in engleza si evitam localizarea oricat de mult putem, pentru ca afecteaza productivitatea, asa ca nici 'alegi sa fie totul in romana' nu e o solutie confortabila.

    ReplyDelete
  5. @rpetre: eu mai tinerel, cu 9 ani de Linux în spate, nu mai țin cont în ce limbă e interfața, mi-ar fi la fel și în chineză, deja este mașinism ceea ce fac zilnic.

    Deci să înțeleg că în Debian nu este implicit UTF-8 în consolă ci ISO-8859-1 ?!

    Dacă este UTF-8, atunci Româna e suportată și afișată corect de programele ce țin cont de treaba asta. Probabil mai trebuie totuși setat fontul terminus, dar din câte-mi amintesc ăla e implicit în Debian.

    ReplyDelete