Русификацията на програмите е важен въпрос, особено за потребители, които не говорят чужди езици. Доста често потребителите на програмата Delphi се чудят как да я русифицират.
Инструкции
Етап 1
Въпросът е, че кодировките OEM и ANSI (в които работи Delphi) не съвпадат. Те имат различни позиции на кирилични символи. ANSI също има символи с ударение, което OEM не. Но вторият съдържа псевдо-графични символи, които са незаменими за показване на таблици, въпреки че това не е много търсено. И все пак си струва да се отбележи, че като цяло тези таблици са взаимозаменяеми - те имат същите възможности за показване на текстова информация.
Стъпка 2
Има няколко начина за решаване на проблема с русификацията. Първият работи в OEM редактора. Първоначално можете да подготвите части от програмния текст, които са критични за кодовата таблица в редактор, който работи в OEM кодирането. Доста просто, но в същото време ефективно решение. Това важи особено за писането на местни помощни програми, при които изходът на информация, въпреки това, е силно търсен.
Стъпка 3
Що се отнася до недостатъците на този метод, тук можете да обозначите работа извън IDE, която е позната на мнозина, с нейните чудеса в живота, като: кодиране, компилация, отстраняване на грешки. И всичко това се казва, „в една бутилка“. Освен това, с нарастването на проекта, някои трудности започват да се проявяват, когато започват да се използват низови ресурси на трети страни, създадени с помощта на ANSI кодиране.
Стъпка 4
Ако проектът не съдържа низове, директно включени в кода (твърдо кодирани), можете да преместите всички низови ресурси в отделни модули, след което да ги локализирате в кодирането, което е необходимо. За щастие мрежата е пълна с помощни програми, които променят кодирането на файлове.
Стъпка 5
Сега за използването на процедурите за филтриране. API на Windows съдържа функции, които ви помагат да конвертирате ANSI и OEM кодирания едно към друго. Това са OemToChar и CharToOem. Те се използват за показване на текст с подмяна на фрагменти Writeln (‘текст’); в следните фрагменти:
процедура MyWriteln (const S: низ);
вар
NewStr: низ;
започнете
SetLengtn (NewStr, дължина (S));
CharToOem (PChar (S), PChar (NewStr));
Writeln (NewStr);
край;
MyWriteln (‘текст’);
Стъпка 6
Що се отнася до недостатъците на този метод, това е невъзможността за използване на разширения синтаксис на запис и затрупване на текста на приложението с повикване за процедури за филтриране. Когато трябва да русифицирате готово приложение с множество повиквания към Write, това се превръща в сериозен проблем.
Стъпка 7
Не на последно място, променете кодовата страница на конзолата с помощта на Windows API. Между другото този метод е документиран. Единствената уловка е, че функцията не работи в Windows 95 и 98. Въпреки че ако приложението ще работи изключително на Windows NT, в този случай можете да използвате функцията SetConsoleOutputCP (866).