Article available only in Romanian language

Necesitatea perfecționării compatibilității produselor software Microsoft, în privința redării corecte a limbii române

Acest articol se adresează, în principiu, companiei Microsoft România

Notă: discuția vizează nerespectarea până spre sfârșitul anului 2006 de către compania Microsoft a standardelor românești SR 13411:1999 (Tehnologia informației / Set de caractere grafice codate pe un octet pentru limba română) și SR 13392:1998 și ulterior SR 13392:2004 (Tehnologia informației / Dispunerea tastaturii românești pentru sisteme de prelucrare a textului și birotică), în cadrul sistemului de operare Microsoft Windows (toate versiunile Windows anterioare versiunii Windows Vista).
Discuția nu se limitează însă doar la sistemul de operare, ci se poate extinde asupra oricărei aplicații care are legătură cu afișarea, crearea, sau prelucrarea textelor scrise în limba română.


Note:
Lansarea versiunii Vista a sistemului de operare Microsoft Windows a adus unele schimbări majore în termenii acestui articol. Comentariile mele pe această temă pot fi citite aici.
În ultima lună a anului 2006 a fost lansată o actualizare pentru patru fonturi pentru Windows XP și care funcționează și pe Windows 2000, actualizare care se încadrează în termenii discuției de la punctul 1. de mai jos.
Acest articol, scris inițial la începutul anului 2003 și revizuit ulterior în anul 2005 în urma revizuirii standardului de tastatură, va fi păstrat ca atare pentru referință. Trebuie însă ținut cont de faptul că anumite părți din text pot să nu mai fie de actualitate. Sarcina de a discerne ce (mai) este sau nu de actualitate îi revine cititorului.


Introductiv

Compania Microsoft a depus eforturi considerabile pentru suportul limbilor internaționale în cadrul sistemului său de operare. Cu toate acestea, în privința limbii române, se dovedește că suportul este incorect și incomplet.
Standardul intern Microsoft care cuprinde (și) limba română, materializat prin codarea proprietară de pagină CP1250, adresează incorect caracterele Ș/ș și Ț/ț. Incorectitudinea se referă la asocierea cu codurile prevăzute în standardele stabilite de Consorțiul Unicode .

Conform regulilor oficiale stabilite de Academia Română cu privire la ortografia limbii române, reprezentarea grafică a caracterelor Ș/ș și Ț/ț se face prin adăugarea virgulei sub caracterele S/s și T/t respectiv.

Notă: varianta originală a acestui document poate fi consultată la sediul Institutului de Memorie Culturală ; varianta scanată a acestui document poate fi descărcată și vizualizată aici (partea 1; .tif, 1,63MiB) și aici (partea 2; .tif, 4,03MiB) .

Caracterele Unicode ş și ţ cu sedilă
Caracterele cu sedilă sunt incorecte din punctul de vedere al limbii române

În cazul codării proprietare de pagină CP1250 folosită de sistemul de operare Microsoft Windows, în forma ei actuală, caracterele Ş/ş și Ţ/ţ au atribuite codurile Unicode U015E (S cu sedilă), U015F (s cu sedilă), U0162 (T cu sedilă) și U0163 (t cu sedilă). Ele sunt descrise în cadrul subsetului Unicode Latin Extended-A.

Aceste caractere, cu sedilă, sunt specificate și în cadrul standardului internațional ISO/IEC 8859‑2:1998 (Latin2).

Caracterele Unicode ş și ţ cu sedilă
Caracterele cu virgulă sunt cele corecte din punctul de vedere al limbii române

Caracterele corecte din punct de vedere al limbii române sunt însă de fapt cele ale căror coduri Unicode sunt U0218 (S cu virgulă), U0219 (s cu virgulă), U021A (T cu virgulă) și U021B (t cu virgulă). Ele sunt descrise în cadrul subsetului Unicode Latin Extended-B.

Aceste caractere, cu virgulă, sunt specificate atât în cadrul standardului românesc SR 13411:1999, cât și în cadrul standardului internațional ISO/IEC 8859‑16:2001 (Latin10).

La ora actuală*, aplicațiile care rulează pe sistemul de operare Microsoft Windows nu pot nici afișa și nici crea texte care folosesc caracterele Unicode cu virgulă. Anomalia provine în principal de la sistemul de operare.

O problemă este incapacitatea proprie de generare a caracterelor: așa cum este acum*, suportul incorect oferit de sistemul de operare Microsoft Windows unei aplicații de procesare a textului în care textul trebuie introdus, determină ca aceasta să fie incapabilă să scrie corect în limba română.

Totuși, deși incorect din punctul de vedere al limbii române, atât timp cât se rămâne în interiorul platformei Windows, efectul acestei nereguli nu este critic. Textele care folosesc diacritice vor fi generate și afișate greșit în privința detaliilor caracterelor Ș/ș și Ț/ț, dar textele rămân perfect lizibile, iar manipularea datelor care conțin șiruri de caractere conținând diacritice va fi efectuată corect atât timp cât nu se părăsește platforma Windows.

O altă problemă este incapacitatea de adaptare: așa cum este acum*, suportul incomplet oferit de sistemul de operare Microsoft Windows unei aplicații de afișare a textului, sau a unei aplicații de procesare a textului în care textul trebuie (măcar) afișat, duce la imposibilitatea afișării corecte a limbii române, chiar dacă respectivul text a fost scris corect la origine prin alte mijloace.

Dezvoltarea internetului a determinat însă o ciocnire – și pe alocuri o întrepătrundere – a diverselor culturi software. Pentru cazul discutat aici, problema caracterelor Ș/ș și Ț/ț devine importantă datorită creșterii semnificative a schimburilor de informație între aplicații care rulează pe sisteme de operare diferite între ele.

Un caz particular îl reprezintă publicarea din ce în ce mai frecventă a paginilor de internet create cu aplicații care rulează pe sisteme de operare alternative, altele decât Windows.
Unii dintre autorii materialelor create pe acele platforme respectă regulile de scriere ale limbii române. Materialele scrise riguros în limba română sunt afișate însă incorect pe sistemele de operare Windows, mergând până la a fi nelizibile.

Pe termen lung se prefigurează și o altă problemă, mai serioasă decât simpla afișare incorectă a unei pagini pe internet.
Tendința actuală este de a permite efectuarea de operații de natură socială sau financiară prin intermediul internetului. Este posibil ca la un moment dat să apară probleme majore în situația în care aplicația de pe server și aplicația clientului de la distanță au fost create – sau funcționează – pe platforme diferite, fiecare în legea ei în privința suportului limbii române.

Ideea de a solicita crearea unui nou cod de pagină nativ Windows care să satisfacă cerințele limbii române este, probabil, lipsită de realism.

Nu se dorește renunțarea la caracterele Unicode cu sedilă. Deocamdată se dorește doar completarea suportului pentru caracterele Unicode cu virgulă, în așa fel ca trecerea de la scrierea în limba română incorectă la cea corectă să fie posibilă din punct de vedere tehnic.
Deoarece acest lucru implică eforturi complexe în mai multe direcții, perfecționarea compatibilității poate fi divizată pe etape. Ordinea priorităților ar fi:

  • îmbunătățirea compatibilității în privința afișării unui text existent (în principal, a textelor disponibile pe internet)
  • îmbunătățirea compatibilității în privința creării unui text nou sau a modificării unui text existent
  • îmbunătățirea compatibilității în privința manipulării datelor

Una dintre cauzele care a generat și perpetuează situația actuală este dezinteresul sau nepriceperea forurilor responsabile în publicarea și susținerea standardelor existente, sau măcar emiterea unor recomandări oficiale referitoare la detaliile alfabetului limbii române, detalii care să țină cont de realitățile curente și de evoluția tehnologiei.


Detaliat

1. Compatibilitatea cu subsetul Unicode Latin Extended-B la nivel de font

Cel mai ușor de evidențiat este afișarea incorectă a unor pagini de internet sau a unor mesaje de e-mail care cuprind texte ce conțin caracterele Unicode Ș/ș și Ț/ț cu virgulă. Un document deja scris cu aceste caractere va afișa dreptunghiuri goale în locurile respective.

Lipsa caracterelor ș și ț cu virgulă din aproape toate fonturile livrate de Microsoft
Exemplul 1: afișarea unei pagini de internet care conține un text ce folosește caracterele Unicode Ș/ș și Ț/ț cu virgulă.
Codarea paginii este UTF-8, fontul este Verdana.
Exemplu de font care conține caracterele ș și ț cu virgulă
Exemplul 2: afișarea aceleiași pagini de internet, cu singura diferență că aici fontul ales este Palatino Linotype, un font la care caracterele Unicode Ș/ș și Ț/ț cu virgulă sunt prezente.

Anomalia prezentă în imaginea de la exemplul 1 este urmarea faptului că, cu câteva excepții cunoscute, fonturile prezente în pachetele software Microsoft actuale* nu conțin niciunul din caracterele Unicode U0218, U0219, U021A sau U021B (codurile Unicode pentru caracterele Ș/ș și Ț/ț cu virgulă).

Notă: excepțiile se referă la fontul Palatino Linotype produs de Linotype Library GmbH și la fonturile Microsoft Sans Serif și Tahoma produse de Microsoft.

Dacă în privința folosirii caracterelor cu sedilă se poate spune că este tolerabil, posibilitatea ca documentul să apară „găurit” devine inacceptabilă.

Notă: o excepție notabilă de la această regulă o reprezintă browserul Mozilla , care randează artificial caracterele cu virgulă chiar și în lipsa unui font corespunzător, cu mențiunea că, din punct de vedere calitativ, randarea iese doar atât cât textul să devină lizibil.

Necesitate: actualizarea fonturilor oferite de Microsoft împreună cu sistemul de operare Windows și/sau aplicațiile sale. Este nevoie de adăugarea a doar 4 caractere.

Notă: dacă se ajunge la situația actualizării fonturilor, este necesar ca numărul caracterelor completate să fie de fapt 5: în afară de cele 4 deja menționate, limbii române îi mai este necesar caracterul Unicode U2011 (Non-Breaking Hyphen), cu alte cuvinte liniuța de unire. Acest caracter este prezent doar în cadrul fonturilor Arial Unicode MS produs de Agfa Monotype , Lucida Sans Unicode produs de Bigelow & Holmes Inc. și Palatino Linotype produs de Linotype Library GmbH. Unele aplicații îl pot afișa artificial (de exemplu browserele Internet Explorer sau Mozilla), altele îl pot și genera și afișa, tot artificial (de exemplu programul Microsoft Word). Cu toate acestea, lipsa acestui caracter din cadrul sistemului – al fonturilor în special – este resimțită de alte aplicații.

Pentru sistemul de operare Microsoft Windows, locul posibil al acestei actualizări poate fi kitul de instalare al sistemului de operare și/sau kitul de instalare al Internet Explorer și/sau să facă parte din pachetul Windows Romanian Interface Pack for Microsoft Windows XP Professional și/sau să facă parte din pachetul Microsoft Office în limba română.

Probleme: presupunând că sistemul are fonturi cu caracterele cu virgulă prezente, nu toate aplicațiile pot beneficia de ele.
Mai precis:

  • aplicațiile care funcționează intern Unicode UCS-2, sau cele care pot decoda texte create în format Unicode UTF-8, vor afișa corect toate caracterele limbii române
  • aplicațiile care funcționează doar pe baza codurilor de pagină Windows, nu vor putea nici afișa și nici crea caracterele Ș/ș și Ț/ț cu virgulă (ci, ca și în prezent, doar cele cu sedilă)
  • funcțiile actuale de copy și paste folosite în cazul caracterelor Ș/ș și Ț/ț cu virgulă între aplicații incompatibile la nivel de Unicode pot genera confuzie utilizatorilor neavizați
  • driverul actual* de tastatură românească cu care este livrat sistemul de operare Windows nu permite accesarea caracterelor cu virgulă; cu alte cuvinte, un sistem cu fonturile actualizate ar putea afișa corect un text scris cu caractere cu virgulă, dar utilizatorul nu poate crea la rândul lui un astfel de text
    (actualizarea driverului de tastatură românească este luată în discuție mai jos, la punctul 3)


2. Compatibilitatea cu standardul ISO/IEC 8859-16 (Latin 10)

Acest standard, creat după standardul românesc SR 13411:1999, oferă o alternativă de codare corectă minimală în raport și cu limba română și cu necesitățile utilizatorilor de calculatoare de pe teritoriul României.
Standardul ISO/IEC 8859-16:2001 se adresează în principal limbilor Albaneză, Croată, Engleză, Finlandeză, Franceză, Germană, Irlandeză Galică (noua ortografie), Italiană, Latină, Poloneză, Română, Slovenă și Ungară.

Din punctul de vedere al limbii române, îmbunătățirea se referă la existența caracterelor Ș/ș și Ț/ț cu virgulă, al ghilimelelor românești „ și ”, al ghilimelelor alternative « și », al semnului ± și al simbolului monetar € (Euro).
Din punctul de vedere al aplicațiilor, standardul are legătură cu afișarea corectă a paginilor de internet și/sau cu citirea corectă a mesajelor de e-mail. Este de asemenea posibil să aibă legătură cu aplicațiile capabile să importe documente de tip HTML, în situația în care se procedează la importul unei pagini codate ISO/IEC 8859-16.

Necesitate: adăugarea suportului ISO/IEC 8859-16 la cele din seria ISO/IEC 8859 deja existente în sistem.
Este obligatoriu ca actualizarea fonturilor discutată la punctul 1 să fi fost deja efectuată, sau să se efectueze simultan.

Probleme: presupunând că sistemul are suportul pentru standardul ISO/IEC 8859-16 prezent, nu toate aplicațiile pot beneficia de el.
Mai precis:

  • simpla prezență în sistem a suportului pentru acest standard nu este suficientă; structura internă precum și interfețele utilizator ale programelor beneficiare (Internet Explorer, Outlook Express etc.) vor trebui actualizate (de exemplu crearea controalelor (meniurilor) care să permită accesul la noile opțiuni)
  • funcțiile actuale de copy și paste folosite în cazul caracterelor Ș/ș și Ț/ț cu virgulă între aplicații incompatibile la nivel de Unicode pot genera confuzie utilizatorilor neavizați
  • driverul actual* de tastatură românească cu care este livrat sistemul de operare Windows nu permite accesarea caracterelor cu virgulă; cu alte cuvinte, un sistem cu fonturile actualizate poate afișa corect un text scris cu caractere cu virgulă, dar utilizatorul nu poate crea la rândul lui un astfel de text
    (actualizarea driverului de tastatură românească este luată în discuție mai jos, la punctul 3)
  • funcțiile de import de pagini HTML prezente în aplicațiile altor firme (Adobe, Corel etc.) vor trebui la rândul lor să fie actualizate, în sensul interpretării corecte a standardului ISO/IEC 8859-16


3. Compatibilitatea la nivel de tastatură

Standardul românesc SR 13392:1998 și ulterior SR 13392:2004 a stabilit aranjamentul de caractere pe o tastatură românească. În plus, versiunea din 2004 definește explicit toate codurile caracterelor Unicode pe care o tastatură românească trebuie să le genereze.
În prezent*, sistemul de operare Microsoft Windows nu este capabil să respecte acest standard, nici prin aranjamentul de caractere al tastaturii, nici prin generarea de la tastatură a caracterelor românești corecte Ș/ș și Ț/ț.

Necesitate: implementarea standardului SR 13392:2004.
Este obligatoriu ca actualizarea fonturilor discutată la punctul 1 să fi fost deja efectuată, sau să se efectueze simultan.

Configurația veche a tastaturii românești cu care se livrează astăzi sistemul de operare Microsoft Windows, configurație neconformă cu niciun standard, va trebui păstrată (doar) din motive de compatibilitate.
În momentul inițial al selectării tastaturii românești (indiferent dacă la instalarea sistemului de operare, sau prima oară pe parcursul utilizării lui), aranjamentul de caractere 1 definit de standardul SR 13392:2004 trebuie să apară selectat implicit (desigur, cu celelalte opțiuni la îndemâna utilizatorului).

Notă: din cauza codării proprietare de pagină CP1250 folosită de sistemul de operare Microsoft Windows, codare de pagină care în forma ei actuală nu conține caracterele românești ș și ț cu virgulă, implementarea standardului SR 13392:2004 nu poate fi realizată corect în cadrul versiunilor Windows95/98/ME.


4. Compatibilitatea la nivel de aplicații de tip „bază de date”

Aceasta reprezintă cea mai dificilă problemă legată de îmbunătățirea compatibilității aplicațiilor, referitor la redarea corectă a limbii române.

Problema este legată de denumiri sau cuvinte specifice limbii române, denumiri care au în componență caracterele Ș/ș și Ț/ț.
Caracterele Ș/ș și Ț/ț cu sedilă sau cu virgulă, care din punctul de vedere al unui operator uman pot fi percepute la fel, pentru o bază de date vor apărea ca două entități diferite.

Datorită complexității problemei și a cunoștințelor specifice limitate, consider că nu mă pot pronunța în privința posibilelor soluții. Ar trebui ca echipe de specialiști în domeniul bazelor de date să adopte o strategie și să enunțe un set de reguli și recomandări de care să țină cont toate părțile interesate.
Este posibil de asemenea să se poată trage unele concluzii din experiența altor țări, presupunând că și „alții” s-au lovit de-a lungul timpului de probleme similare.


La final

Este posibil ca experiența programatorilor de la Microsoft referitor la alte limbi internaționale să scoată în evidență și alte aspecte necunoscute în prezent.

Caracterul universal al internetului face ca problemele și propunerile discutate să nu poată fi ignorate. Abaterea de la norme și standarde este un lucru periculos și de cele mai multe ori cu două tăișuri. Aparența unor avantaje imediate poate produce neplăcere și haos pe termen lung.

De exemplu, în discuția de până acum s-a trecut cu vederea faptul că, în cadrul unora dintre fonturile livrate împreună cu pachetele software Microsoft, caracterele Unicode U0162 și U0163 (Ţ și ţ cu sedilă) sunt reprezentate grafic, în mod greșit, cu virgulă. Sigur că în aparență acest lucru este avantajos din punctul de vedere al limbii române, dar abaterea (deliberată) de la specificațiile standardului Unicode nu a făcut decât să încurce treburile și să accentueze iritarea celor care vor să pună cap la cap mai multe piese a căror trăsătură comună este: respectarea standardelor.


Un scurt istoric:

  • caracterele cu semne diacritice folosite în limba română sunt ĂÂÎȘȚ/ăâîșț; pentru că acest lucru este considerat „știut” de toată lumea, reprezentarea grafică a acestor caractere nu este descrisă nicăieri în mod explicit (ci este lăsată la latitudinea tipografilor, chiar și în cărțile de referință ale Academiei Române); abia în anul 2003 Institutul de Lingvistică al Academiei Române a făcut o precizare clară cu privire la forma virgulei de sub caracterele Ș/ș și Ț/ț, în urma unei cereri exprese în acest sens, făcută cu ocazia revizuirii standardului de tastatură românească
  • caracterele ĂÂÎ/ăâî și ŞŢ/şţ cu sedilă există în standardul internațional ISO 8859‑2 (Latin 2) din anul 1987; limba română este asociată în mod explicit acestui standard (împreună cu alte 8 limbi)
  • în anul 1997, cu ocazia revizuirii standardului internațional ISO 8859‑2 (Latin 2), ASRO (IRS la vremea respectivă) a protestat la secretariatul ISO împotriva acestei asocieri, deoarece prin acest standard limbii române îi sunt atribuite în mod greșit caracterele Şş/Ţţ cu sedilă și în același timp lipsesc caracterele Șș/Țț cu virgulă
  • în anul 1998 a fost aprobată versiunea revizuită a standardului internațional ISO/IEC 8859‑2 (Latin 2), fără modificări în privința repertoriului de caractere; problema limbii române a fost „soluționată” prin adăugarea acestei note, la subsolul tabelului 1 al standardului:

Note - Subject to the agreement of originator and receiver, in information interchange the letters S and T WITH CEDILLA BELOW may be used to substitute for the letters S and T WITH COMMA BELOW

  • compania Microsoft a preluat standardul internațional ISO 8859‑2 (Latin 2), i-a adus unele modificări, rezultatul fiind materializat prin codarea proprietară de pagină CP1250
  • caracterele ĂÂÎ/ăâî și ŞŢ/şţ cu sedilă sunt prezente în standardul Unicode cel puțin de la versiunea 1.1.5, anul 1995 (versiunea 1.1.5 este cea mai veche în format electronic păstrată în arhiva Unicode)
  • compania Adobe Systems Incorporated a considerat că Unicode a greșit când a inventat caracterul Ţ/ţ cu sedilă, pe motiv că acest caracter nu este folosit nicăieri în lume; drept pentru care în documentul lor de referință pentru fonturi, Adobe Glyph List (AGL) , au decis ca glifele asociate caracterelor Ţ/ţ cu sedilă să fie reprezentate grafic cu virgulă și să se numească Tcommaacent/tcommaaccent
  • în anul 1999 caracterele Ș/ș și Ț/ț cu virgulă au fost introduse în standardul Unicode odată cu lansarea versiunii 3.0
  • în anul 1999 ASRO (IRS la vremea respectivă) a adoptat standardul românesc SR 13411, standard care include caracterele ĂÂÎ/ăâî și ȘȚ/șț cu virgulă; acest standard românesc a stat ulterior la baza propunerii standardului internațional ISO/IEC 8859-16 (Latin 10)
  • încercările de a propune și aproba standardul internațional ISO/IEC 8859-16 (Latin 10) s-au lovit de obstacole halucinante, de genul „noi [olandezii] ne‑am stabilit prin lege sistemul de evidența persoanelor (GBA), sistem care este bazat pe subsetul Teletex al standardului ISO/IEC 6937, de aceea unui român care solicită permisiunea de ședere în țara noastră [și care poartă un nume ce conține unul dintre aceste caractere] i se va spune că numele lui va fi scris cu sedilă și va trebui să fie de acord și să semneze, altfel nu va primi permisiunea de ședere în țară” (Olanda)** sau „nu există dovezi cu privire la necesitatea de marketing a repertoriului ISO 8859, partea 16” (SUA)***
  • Notă: românii au rezolvat problema de-a dreptul: în pașaportul meu, ministerul de interne mi-a falsificat numele și l-a scris fără diacritice; în felul acesta, când/dacă ies din țară, eu nu mai sunt eu.
  • în anul 2001, în ciuda opoziției vehemente a domnului J. W. van Wingen (Olanda), standardul ISO/IEC 8859-16 (Latin 10) a fost aprobat
  • compania Microsoft se face că nu a auzit de existența standardului ISO/IEC 8859-16 (Latin 10)
  • singurii care au făcut ce trebuia (și când trebuia) sunt cei de la Apple : au actualizat codarea proprietară MacOS Romanian și au înlocuit caracterele Ş/ş și Ţ/ţ cu sedilă cu Ș/ș și Ț/ț cu virgulă


* Anul 2005, data primei revizuiri a conținutului acestui articol
** Comunicarea ISO/IEC JTC1/SC2/WG3 N441 din 1998-04-15
*** Comunicarea ISO/IEC JTC1/SC2/WG3 N482 din 1999-07-15

Search

No comments

I did not activated the comments on any article and for the moment I'm not going to do that. If there is really something deserving to be commented, then the discussion forum may be successfully used.
(try posting in „Despre orice altceva” category, which means „Anything else”)

Go to top