วิธีการ Russify Delphi

สารบัญ:

วิธีการ Russify Delphi
วิธีการ Russify Delphi

วีดีโอ: วิธีการ Russify Delphi

วีดีโอ: วิธีการ Russify Delphi
วีดีโอ: หัดเขียนโปรแกรมด้วย Delphi EP.040 [ Android App ] 2024, ธันวาคม
Anonim

Russification ของโปรแกรมเป็นเรื่องสำคัญ โดยเฉพาะอย่างยิ่งสำหรับผู้ใช้ที่ไม่พูดภาษาต่างประเทศ บ่อยครั้งที่ผู้ใช้โปรแกรม Delphi สงสัยว่าจะ Russify ได้อย่างไร

วิธีการ russify delphi
วิธีการ russify delphi

คำแนะนำ

ขั้นตอนที่ 1

ประเด็นคือการเข้ารหัส OEM และ ANSI (ซึ่ง Delphi ทำงาน) ไม่ตรงกัน พวกเขามีตำแหน่งต่าง ๆ ของสัญลักษณ์ซีริลลิก ANSI ยังมีอักขระเน้นเสียง ซึ่ง OEM ไม่มี แต่ส่วนที่สองมีสัญลักษณ์กราฟิกหลอกซึ่งจำเป็นสำหรับการแสดงตารางแม้ว่าจะไม่ต้องการมากนัก และยังเป็นที่น่าสังเกตว่า โดยทั่วไปแล้ว ตารางเหล่านี้สามารถใช้แทนกันได้ - มีความเป็นไปได้เหมือนกันในการแสดงข้อมูลข้อความ

ขั้นตอนที่ 2

มีหลายวิธีในการแก้ปัญหา Russification อย่างแรกคือทำงานในโปรแกรมแก้ไข OEM ในขั้นต้น คุณสามารถเตรียมส่วนต่าง ๆ ของข้อความโปรแกรมที่มีความสำคัญต่อตารางรหัสในตัวแก้ไขที่ทำงานในการเข้ารหัส OEM ค่อนข้างง่าย แต่ในขณะเดียวกัน โซลูชันที่มีประสิทธิภาพ โดยเฉพาะอย่างยิ่งสำหรับการเขียนโปรแกรมอรรถประโยชน์ในพื้นที่ซึ่งมีความต้องการอย่างมากในการส่งออกข้อมูล

ขั้นตอนที่ 3

สำหรับข้อบกพร่องของวิธีนี้ คุณสามารถกำหนดการทำงานนอก IDE ซึ่งหลายคนคุ้นเคยได้ที่นี่ โดยมีเสียงระฆังและเสียงนกหวีดที่ยอดเยี่ยมในชีวิต เช่น การเขียนโค้ด การคอมไพล์ การดีบัก และทั้งหมดนี้บอกว่า "ในขวดเดียว" นอกจากนี้ เมื่อโปรเจ็กต์เติบโตขึ้น ปัญหาบางอย่างก็เริ่มปรากฏขึ้นเมื่อเริ่มใช้ทรัพยากรสตริงของบุคคลที่สามที่สร้างโดยใช้การเข้ารหัส ANSI

ขั้นตอนที่ 4

หากโปรเจ็กต์ไม่มีสตริงที่รวมอยู่ในโค้ดโดยตรง (ฮาร์ดโค้ด) คุณสามารถย้ายทรัพยากรสตริงทั้งหมดไปยังโมดูลที่แยกจากกัน จากนั้นให้โลคัลไลซ์ไปยังการเข้ารหัสที่จำเป็น โชคดีที่เครือข่ายเต็มไปด้วยยูทิลิตี้ที่เปลี่ยนการเข้ารหัสไฟล์

ขั้นตอนที่ 5

ตอนนี้เกี่ยวกับการใช้ขั้นตอนการกรอง Windows API มีฟังก์ชันที่จะช่วยคุณแปลงการเข้ารหัส ANSI และ OEM เป็นอีกอันหนึ่ง เหล่านี้คือ OemToChar และ CharToOem ใช้เพื่อแสดงข้อความโดยแทนที่ส่วนย่อยของ Writeln ('text '); ออกเป็นชิ้นๆ ดังนี้

ขั้นตอน MyWriteln (const S: string);

var

NewStr: สตริง;

เริ่ม

SetLengtn (NewStr, ความยาว (S));

CharToOem (PChar (S), PChar (NewStr));

Writeln (NewStr);

จบ;

MyWriteln ('ข้อความ');

ขั้นตอนที่ 6

สำหรับข้อเสียของวิธีนี้ มันเป็นไปไม่ได้ที่จะใช้ไวยากรณ์การเขียนแบบขยายและทำให้ข้อความของแอปพลิเคชันยุ่งเหยิงด้วยขั้นตอนการเรียกเพื่อกรอง เมื่อคุณต้องการ Russify แอปพลิเคชันที่เสร็จสิ้นแล้วด้วยการเรียกใช้ Write หลายครั้ง สิ่งนี้จะกลายเป็นปัญหาร้ายแรง

ขั้นตอนที่ 7

สุดท้ายแต่ไม่ท้ายสุด ให้เปลี่ยนหน้าโค้ดคอนโซลโดยใช้ Windows API วิธีนี้ได้รับการบันทึกไว้โดยวิธีการ สิ่งเดียวที่จับได้คือคุณลักษณะนี้ใช้ไม่ได้ใน Windows 95 และ 98 แม้ว่าแอปพลิเคชันจะทำงานบน Windows NT โดยเฉพาะ แต่ในกรณีนี้ คุณสามารถใช้ฟังก์ชัน SetConsoleOutputCP (866) ได้

แนะนำ: