"Delphi: Complete Chinese" เวอร์ชันสุดท้าย (ตีพิมพ์ใน "Home Computer" ฉบับที่ 37 ขออภัยสำหรับขวดใหม่ด้วย!)
ซีอาน เหลียงหมิง
-------------------------------------------------- -------------------------------------------------- ----------------------------------
ก่อนจะเขียนบทความนี้ ฉันมีความคิดสกปรกๆ อยู่ว่า ฉันต้องไม่ "เปิดเผย" เคล็ดลับนี้ให้คนอื่นรู้ทันที แต่มโนธรรมของฉันบอกทันทีว่าฉันต้องไม่มีความคิดแบบนั้น ฉันก็เลยเขียนมันลงไปทันที เป็นส่วนเสริมของบทความที่แล้ว "Delphi: Complete Chinese" และถือเป็นรางวัลสำหรับจิตสำนึกของตัวเอง!
ตอนนี้เรามาถึงประเด็นกัน: ดังที่คุณทราบ เมื่อเราจัดการกับข้อความของ Delphi (ฉันอ้างถึงข้อความทั้งหมดจาก Delphi ในที่นี้ รวมถึงกล่องโต้ตอบของระบบ Delphi ข้อความแจ้งข้อยกเว้น ฯลฯ) แนวทางทั่วไปที่เราดำเนินการคือ "ก้าวไปข้างหน้าของ Delphi" หรือปิดกั้นการทำงานของระบบและใช้วิธีของเราเองในการจัดการกับมันเพื่อให้ผู้ใช้มีภาษาจีนล้วนๆ วัตถุประสงค์ของสภาพแวดล้อม อย่างไรก็ตาม ทั้งหมดนี้สามารถคาดเดาได้จากประสบการณ์ที่มีอยู่ของโปรแกรมเมอร์เท่านั้น เนื่องจากความซับซ้อนของระบบและข้อจำกัดระดับของเราเอง ผลลัพธ์ของสิ่งนี้ย่อมเป็นปัญหาหนึ่งและอีกอย่างหนึ่ง อาจเกิดขึ้นได้ตลอดเวลาอาจไม่ได้รับการแก้ไขเลยแม้แต่น้อย ลองนึกภาพ: หากข้อความแจ้งภาษาอังกฤษปรากฏขึ้นระหว่างการใช้งานของผู้ใช้ "เกรด" ของโปรแกรมของคุณจะลดลงอย่างมากหรือไม่?
ดังนั้นเราจึงต้องหาวิธีการที่เหมาะสมและละเอียดกว่านี้ อย่างน้อยที่สุด เมื่อข้อบกพร่องปรากฏในโปรแกรม ผู้ใช้ทั่วไปก็สามารถเข้าใจข้อความแจ้งได้ (ไม่ได้หมายความว่าคุณสามารถทำอะไรก็ได้ที่คุณต้องการ) มันเป็น ค้นหากลยุทธ์ที่เข้าใจผิดได้อีก โปรดฟังฉันอธิบายด้านล่าง (เฉพาะในกรณีที่ Delphi เวอร์ชันของคุณมีซอร์สโค้ดของ VCL - นั่นคือเวอร์ชันมืออาชีพหรือระดับองค์กร):
0. สำรองซอร์สโค้ด VCL ของ Delphi (โดยทั่วไปไดเร็กทอรีคือ "X:PROgram FilesBorlandDelphi4SourceVcl") แน่นอนว่า คุณสามารถสำรองไฟล์เพียงไม่กี่ไฟล์ที่เราต้องแก้ไขเท่านั้น
1. เปิดไฟล์ BdeConst.pas, Consts.pas, BdeConst.pas, DbConsts.pas, midconst.pas, mxConsts.pas, OleConst.pas, WebConst.pas และไฟล์หน่วยอื่นๆ ในไดเร็กทอรี VCL ในสภาพแวดล้อม Delphi ไฟล์ถูกกำหนดไว้
กำหนดค่าคงที่ที่ใช้โดย Delphi
2. "แปล" ค่าคงที่สตริงที่กำหนดโดย Delphi เป็นภาษาแม่ที่ดีของเรา - จีน;
3. หลังจากงาน "แปล" เสร็จสิ้น ให้บันทึกตามชื่อไฟล์ต้นฉบับ
4. ตอนนี้เรามาลองผลลัพธ์ของเรา สร้างโปรเจ็กต์ใหม่ จงใจเขียนโค้ดที่จะทำให้ระบบแจ้งเตือน และก่อนที่จะคอมไพล์ ให้ไปที่ตัวเลือก Search Path ของหน้า Directories/Conditionals ของกล่องโต้ตอบ Delphi Project Options และเพิ่มการค้นหา เส้นทาง (นั่นคือไดเร็กทอรีที่เราเพิ่งแก้ไขหน่วยคงที่) ยืนยันและออก
5. เพียงแค่ดูระดับการแปลภาษาอังกฤษของคุณ!
สังเกต:
1 หากเวอร์ชันของคุณคือ Delphi 3 ให้เปลี่ยนพาธด้านบนตามลำดับ และไดเร็กทอรี/เงื่อนไขในกล่องโต้ตอบตัวเลือกโครงการคือไดเร็กทอรี
2) การเปลี่ยนแปลงเงื่อนไขการคอมไพล์นี้ใช้ได้กับโปรเจ็กต์นี้เท่านั้น จำเป็นต้องรีเซ็ตหลังจากสร้างโปรเจ็กต์ใหม่ หากคุณต้องการแก้ไขในครั้งเดียว โปรดติดตามฉัน:
เรียกใช้โปรแกรมแก้ไขรีจิสทรีของ Windows Regedit.exe เปิด HKEY_CURRENT_USER->Software->Borland->Delphi->4.0->Library และเพิ่ม "$(DELPHI)SourceVCL".Ok ไปที่หนึ่งในค่าสตริงสำหรับ “เส้นทางการค้นหา” บรรลุเป้าหมายแล้ว!
ต่อไปนี้เป็นข้อความที่ส่งโดยฟังก์ชันหลังจากที่ผู้เขียนแก้ไขค่าคงที่ของฟังก์ชัน MessageDlg ในไฟล์หน่วย Consts.pas คราวนี้สิ่งที่เราเห็นไม่ใช่กล่องข้อความแบบครึ่งภาษาอังกฤษและครึ่งหยางอีกต่อไป , สวยพอไหม?
-
เริ่ม
MessageDlg('คุณรู้สึกอย่างไร?'+#13#10#13#10+
'ที่นี่ฉันแปล "SMsgDlgInformation" เป็น 'ข้อความ';'+#13#10+
'ผลลัพธ์ของการแปล "SOKButton" เป็น 'OK'!',
mtInformation,[mbok],0);
จบ;
-
****ใส่รูปที่ 4 ที่นี่****
การดำเนินการข้างต้นตรงไปตรงมาเกินไปหรือไม่ ที่จริงแล้ว เราสามารถปรับแต่งค่าคงที่เหล่านี้ได้ตามความต้องการของเรา (ตราบใดที่ Inprise เห็นด้วย) เพื่อให้ได้เอฟเฟกต์พิเศษ ตัวอย่างเช่น เราสามารถแปล "SMsgDlgInformation" เป็นชื่อซอฟต์แวร์ของคุณได้ ชื่อสตูดิโอของคุณเอง ฯลฯ ด้วยวิธีนี้บุคลิกที่ไม่ธรรมดาของคุณจะถูกแสดงออกมาอย่างเต็มที่!
นี่คือประสบการณ์และทักษะทั้งหมดที่ฉันตั้งใจจะแนะนำเกี่ยวกับ "ภาษาจีนที่สมบูรณ์" ของ Delphi (ฉันจะใส่ทั้งชุดนี้ไว้ในหน้าแรกส่วนตัวของฉันหลังจากที่ฉันอธิบายทั้งสองโปรแกรมที่ฉันมีแล้ว โปรดไปที่นั่น) แน่นอนเรียกมันว่า "ภาษาจีนโดยสมบูรณ์" ทำให้ฉันหน้าแดง แต่ฉันหวังเป็นอย่างยิ่งว่า Inprise จะยุติยุคของพวกเราที่ "อิจฉา" โปรแกรมเมอร์ VB โดยเร็วที่สุด!
ยังคงมีปัญหาอยู่บ้าง เช่น สภาพแวดล้อม Delphi เป็นภาษาอังกฤษ ข้อความแสดงตัวอย่างรายงานและปุ่มต่างๆ ก็เป็นภาษาอังกฤษด้วย เป็นต้น สำหรับคำถามแรกโดยส่วนตัวแล้วผมคิดว่าไม่จำเป็น เพราะไม่มีโปรแกรมเมอร์คนใดสามารถเข้าใจเมนูได้ หากคุณไม่เข้าใจเป้าหมายของความพยายามของเราคือผู้ใช้ ไม่ควรกล่าวถึงวิธีแก้ปัญหาที่สองที่นี่ แต่ฉันเห็นคนจำนวนมากถามคำถามนี้บนอินเทอร์เน็ต ดังนั้นฉันจะสรุปสั้นๆ ผมจะขอจบหัวข้อนี้ด้วย:
① พัฒนาเนื้อหา QuickRep ตามต้องการ
เลียนแบบโหมดแสดงตัวอย่างของ QuickRep หรือปรับแต่ง QRPreview ด้วยตัวเอง
3.กำหนด QRPrinter ของ QuickRep ให้กับ QRPrinter ของ QRPreview ในเหตุการณ์ OnPreview ของ QuickRep
(ตัวอย่างเช่น QRPreview1.QRPrinter:=Quickrep1.QRPrinter;) QRPreview สามารถแทนที่ QuickRep ได้
โหมดแสดงตัวอย่าง
ผู้ดำเนินรายการ: เหลียงหมิง
วันที่: 1999-03-01
อีเมล์:[email protected]