ş-uri şi ţ-uri

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 codificate 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 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 noii versiuni a sistemului de operare Microsoft Windows Vista 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, actualizare care funcţionează şi pe Windows 2000, 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.

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 virgulă
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 de fapt caracterele 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 corectea 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 exisistente, 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.

 

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

lipsa caracterelor ş şi ţ cu virgulă din aproape toate fonturile livrate de Microsoft

 

exemplul 2:
afişarea aceleiaşi pagini de internet, cu singura diferenţă că aici fontul ales este Palatino Linotype, un font la care caracterle Unicode Ș/ș şi Ț/ț cu virgulă sunt prezente

exemplu de font care conţine caracterele ş şi ţ cu virgulă

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 nici unul 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).
    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 codurior 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, creeat după standardul românesc SR 13411:1999, oferă o alternativă de codificare 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 Ț/ț (unde „prezent” = anul 2005).

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 nici un 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 (fireşte, 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 caracterlele româneşti cu virgulă, implementarea stadardului 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ă dedesubt
  • î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), s-a 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ă dedesubt 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ă dedesubt; 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 „nu există dovezi cu privire la necesitatea de marketing a repertoriului ISO 8859, partea 16” (SUA), sau „noi ne-am pus la punct un sistem de evidenţa emigraţiei bazat pe standardul ISO/IEC 6937, de aceea unui român [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 putea intra în ţară” (Olanda)
    • 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ă

[Sus de tot]
 

[Home] [RO] [Gallery] [ZX Zone] [Links] [Who, Me ?]

Last updated 11.01.2009 (What’s new ?)
© 1999-2009 Cristian Secară