Rusificarea programelor este o chestiune importantă, în special pentru utilizatorii care nu vorbesc limbi străine. Destul de des, utilizatorii programului Delphi se întreabă cum să-l rusifice.
Instrucțiuni
Pasul 1
Ideea este că codurile OEM și ANSI (în care funcționează Delphi) nu se potrivesc. Au poziții diferite ale simbolurilor chirilice. ANSI are, de asemenea, caractere accentuate, ceea ce OEM nu are. Al doilea conține simboluri pseudo-grafice, care sunt indispensabile pentru afișarea tabelelor, deși acest lucru nu este foarte solicitat. Și totuși, este de remarcat faptul că, în general, aceste tabele sunt interschimbabile - au aceleași posibilități de afișare a informațiilor text.
Pasul 2
Există mai multe moduri de a rezolva problema rusificării. Primul lucrează în editorul OEM. Puteți pregăti inițial părți din textul programului care sunt critice pentru tabelul de coduri într-un editor care funcționează în codificarea OEM. O soluție destul de simplă, dar în același timp eficientă. Acest lucru este valabil mai ales pentru scrierea utilităților locale, în care producția de informații este totuși foarte solicitată.
Pasul 3
În ceea ce privește neajunsurile acestei metode, aici puteți desemna lucrări în afara IDE, care este familiar pentru mulți, cu clopotele și fluierele sale grozave în viață, cum ar fi: codificare, compilare, depanare. Și toate acestea se spun, „într-o sticlă”. În plus, pe măsură ce proiectul crește, anumite dificultăți încep să se manifeste atunci când încep să fie utilizate resurse de șir terțe create folosind codificarea ANSI.
Pasul 4
Dacă proiectul nu conține șiruri direct incluse în cod (hard-coded), puteți muta toate resursele șirului în module separate, apoi localizându-le la codificarea necesară. Din fericire, rețeaua este plină de utilități care schimbă codarea fișierelor.
Pasul 5
Acum despre utilizarea procedurilor de filtrare. API-ul Windows conține funcții care vă ajută să convertiți codificările ANSI și OEM una la alta. Acestea sunt OemToChar și CharToOem. Sunt folosite pentru a afișa textul cu înlocuirea fragmentelor Writeln („text”); în următoarele fragmente:
procedura MyWriteln (const S: șir);
var
NewStr: șir;
începe
SetLengtn (NewStr, Lungime (S));
CharToOem (PChar (S), PChar (NewStr));
Writeln (NewStr);
Sfârșit;
MyWriteln („text”);
Pasul 6
În ceea ce privește dezavantajele acestei metode, este imposibilitatea de a utiliza sintaxa de scriere extinsă și de a aglomera textul aplicației cu un apel pentru a filtra procedurile. Când trebuie să rusificați o aplicație terminată cu mai multe apeluri la Scriere, aceasta devine o problemă serioasă.
Pasul 7
Nu în ultimul rând, modificați pagina de cod a consolei utilizând API-ul Windows. Apropo, această metodă este documentată. Singura problemă este că funcția nu funcționează în Windows 95 și 98. Deși dacă aplicația va rula exclusiv pe Windows NT, în acest caz, puteți utiliza funcția SetConsoleOutputCP (866).