Programların Ruslaştırılması, özellikle yabancı dil bilmeyen kullanıcılar için önemli bir konudur. Oldukça sık, Delphi programı kullanıcıları onu nasıl Ruslaştıracaklarını merak ederler.
Talimatlar
Aşama 1
Buradaki nokta, OEM ve ANSI kodlamalarının (Delphi'nin çalıştığı) eşleşmemesidir. Kiril sembollerinin farklı konumlarına sahiptirler. ANSI ayrıca OEM'de olmayan aksanlı karakterlere sahiptir. Ancak ikincisi, çok fazla talep görmese de, tabloları görüntülemek için vazgeçilmez olan sözde grafik sembolleri içerir. Yine de, genel olarak, bu tabloların birbirinin yerine geçebileceğini belirtmekte fayda var - metin bilgilerini görüntülemek için aynı olanaklara sahipler.
Adım 2
Ruslaştırma sorununu çözmenin birkaç yolu vardır. Birincisi OEM editöründe çalışıyor. Başlangıçta, program metninin kod tablosu için kritik olan kısımlarını OEM kodlamasında çalışan bir düzenleyicide hazırlayabilirsiniz. Oldukça basit ama aynı zamanda etkili bir çözüm. Bu, özellikle bilgi çıktısının yine de çok talep edildiği yerel yardımcı programları yazmak için geçerlidir.
Aşama 3
Bu yöntemin eksikliklerine gelince, burada, kodlama, derleme, hata ayıklama gibi, hayatta harika olan zilleri ve ıslıkları ile birçok kişiye aşina olan IDE dışındaki çalışmaları belirleyebilirsiniz. Ve tüm bunlar "tek şişede" söyleniyor. Ayrıca proje büyüdükçe, ANSI kodlaması kullanılarak oluşturulan üçüncü taraf dize kaynakları kullanılmaya başladığında bazı zorluklar kendini göstermeye başlar.
4. Adım
Proje, doğrudan koda dahil edilen (sabit kodlanmış) dizeler içermiyorsa, tüm dize kaynaklarını ayrı modüllere taşıyabilir, ardından bunları gereken kodlamaya göre yerelleştirebilirsiniz. Neyse ki ağ, dosyaların kodlamasını değiştiren yardımcı programlarla dolu.
Adım 5
Şimdi filtreleme prosedürlerinin kullanımı hakkında. Windows API, ANSI ve OEM kodlamalarını birbirine dönüştürmenize yardımcı olacak işlevler içerir. Bunlar OemToChar ve CharToOem'dir. Writeln ('metin') parçalarının değiştirilmesiyle metni görüntülemek için kullanılırlar; aşağıdaki parçalara:
prosedür MyWriteln (const S: string);
var
NewStr: dize;
başlamak
SetLengtn (NewStr, Uzunluk (S));
CharToOem (PChar (S), PChar (NewStr));
Writeln (NewStr);
son;
MyWriteln ('metin');
6. Adım
Bu yöntemin dezavantajlarına gelince, genişletilmiş Yazma sözdizimini kullanmanın ve uygulama metnini bir filtre prosedürü çağrısı ile karmaşık hale getirmenin imkansızlığıdır. Bitmiş bir uygulamayı birden fazla Write çağrısıyla Ruslaştırmanız gerektiğinde, bu ciddi bir sorun haline gelir.
7. Adım
Son olarak, Windows API'sini kullanarak konsol kod sayfasını değiştirin. Bu arada, bu yöntem belgelenmiştir. Tek sorun, özelliğin Windows 95 ve 98'de çalışmamasıdır. Uygulama yalnızca Windows NT üzerinde çalışacak olsa da, bu durumda SetConsoleOutputCP işlevini (866) kullanabilirsiniz.