despre diacritice sau cum sa nu agravam problema
Dupa cum stiti majoritatea, saptamana trecuta a fost un mega-flame pe liste despre diacritice, rolul lor si diverse destinatii (de vacanta
) pentru cine le foloseste sau nu le foloseste. Mi-am exprimat oarecum parerea in threadul ala, dar am remarcat ca nu prea e documentata procedura de a suporta caractere utf-8 in consola (multi dintre cei porniti impotriva diacriticelor folosesc clienti de irc si mail de consola si au probleme).
Nu ma consider un expert in privinta asta (mie imi merge si gata), asa ca l-am inghiontit pe Andrei Popescu (care nici el nu se considera un expert, dar face advocacy) sa documenteze putin situatia. A pornit el ceva la el pe blog, probabil dupa ce apar ceva concluzii or sa apara si in pagina intretinuta de el pe wiki-ul Debian despre subiectul asta, si sper ca in viitorul apropiat sa avem un document cat mai distro-independent pe wiki.lug.ro unde sa poata fi indreptati cei cu probleme.
Intre timp, cateva lucruri pe care le-am mai priceput eu despre cum functioneaza cititul si compusul de mail cu diacritice in consola (o sa exemplific cu mutt si vim pentru ca astea le folosesc).
- mutt deschide un mail care contine o componenta de tip text/plain cu encoding utf-8 (scuzati barbarismele, nu-s foarte la curent cu terminologia MIME, accept corecturi)
- din cauza ca variabila de mediu LANG este setata pe ceva cu utf-8 ('en_US.UTF-8' in cazul meu), mutt devine utf-8 aware si interpreteaza caracterele multi-byte ca atare si semnalizeaza terminalului sa le afiseze ca un simbol anume
- terminalul este la randul lui utf-8 aware (multi-gnome-terminal in cazul meu) si pricepe despre ce e vorba, transmite mai departe X-ului sa afiseze caracterul care trebuie
- X foloseste un font care contine simbolul dorit (eu am Dejavu Sans Mono Book) si apare litera care trebuie in loc de o bazdaganie.
- la compunerea mailului, mutt ruleaza vim care deschide textul utf-8 si interpreteaza caracterele extinse din el ca atare (si aceasta operatie depinde de variabila LANG setata corect), asa ca daca dai reply nu strica textul citat
- daca vrei sa introduci caractere utf-8, trebuie sa ai tastatura mapata corespunzator (am in Gnome un applet din care pot schimba in tastatura en_ro, adica asa zisa 'programmer', identica cu en_us cu adaugirea de combinatii cu altgr)
- la fel, terminalul trebuie sa fie in stare sa transmita caracterele 'late' la aplicatie, care la randul ei le afiseaza cum am descris mai sus
- la salvarea si trimiterea mailului mutt se foloseste din nou de suportul utf-8 pentru a detecta prezenta caracterelor non-ascii si de a seta encoding pe 8 bit.
Nu stiu cat de corecta e analiza de mai sus, dar empiric m-am cam prins ca iti trebuie suport de utf-8 in: MUA, editor, terminal, font, environment (pentru acesta din urma trebuie sa ai si fisierele de localizare instalate). Ca sa si scrii cu diacritice iti trebuie in plus mapare de tastatura.
Inca cateva chestii:
- just say no to latin-1, iso-8859-2 si iso-8859-16, suportul de utf-8 e din ce in ce mai raspandit;
- oamenii de la Microsoft inca nu s-au prins (sau s-au prins relativ recent) ca in romana ț si ș sunt cu virgula, nu cu sedila ca atare majoritatea internetului e relativ in urma si scrie cu variantele gresite. Situatia se imbunatateste pe zi ce trece, dar mai dureaza.
Ca o deviatie de la obiceiul locului, accept comentarii la postul asta cu scopul de-a-l imbunatati si da mai departe, asa ca feel free to comment.