python: ทำโปรแกรมแปลงบาลี

มีงานต้องแปลงบทสวดมนต์จากไทยไปอังกฤษ แต่ยาวมากถึงเกือบ ๓๐๐ บท ทำเสร็จแล้วจึงเขียนโปรแกรมเพื่อตรวจทานและเพื่อกันไม่ให้ลืม ต่อด้วยขยายความสามารถให้แปลได้หลาย ๆ ภาษา คิดว่าคงจะมีโอกาสใช้งานภายหลัง

ใครมีโอกาสใช้งาน รบกวนช่วยทดสอบให้ด้วยครับ

ดาวน์โหลด

ข้อจำกัด

  • ยังใช้ Python 2 อยู่
  • ไฟล์ตั้งต้นได้แค่ภาษาอังกฤษแบบบาลี ไทยบาลี ไทยแบบง่าย และพม่าบาลี เนือ่งจากภาษาเหล่านี้มีตัวอักษรครบ
  • สำหรับการแปลงเป็นไทยแบบง่าย มีหลายมาตรฐาน ตัดสินใจไม่แยกอักษรควบ ทำให้บางครั้งคำดูแปลก เช่น นิโค๎รธะ และ วิรุโฬ๎ห (แทนที่จะเป็น นิค๎โรธะ และ วิรุฬ๎โห) การแปลงกลับไปมาอาจให้ผลไม่เหมือนเดิม
  • โปรแกรมยาวเกินจำเป็น และบั๊กเยอะแน่นอน อาจต้องแก้ผลลัพธ์ด้วยมือภายหลัง (ถ้ามีเวลาจะกลับมาแก้ให้สมบูรณ์ยิ่งขึ้น)

การใช้งาน

ลองใช้งานด้วยคำสั่ง

$ ./pali_convert.py

ได้ผลเป็น

Usage: pali_convert.py -f LANG -t LANG INFILE [OUTFILE]

Options:
    -f, --from: convert from language.
    -t, --to:   convert to language.

Languages:
*  engpali     : Pali English   (asevnā ca bālānaṃ, paṇḍitānañca sevnā ฯ)
   eng         : Simple English (asevna ca balanam, panditananca sevna ฯ)
*  thaipali    : Pali Thai      (อเสวฺนา จ พาลานํ, ปณฺฑิตานญฺจ เสวฺนา ฯ)
*  thai        : Simple Thai    (อะเสว๎นา จะ พาลานัง, ปัณฑิตานัญจะ เสว๎นา ฯ)
   lao         : Simple Lao     (อະເສວນາ ຈະ ພາລານັງ, ປັນດິຕານັຍຈະ ເສວນາ ຯ)
*  burmpali    : Pali Burmese   (အသေဝ္နါ စ ဗာလာနံ, ပဏ္ဍိတာနည္စ သေဝ္နါ ฯ)

(* = Supported input language, eg. convert from)

สมมุติจะแปลงจากไทยแบบง่าย เป็นอังกฤษแบบง่าย ก็สั่งด้วย

$ ./pali_convert.py -f thai -t engpali THAI.txt ENG.txt
Convert from thai (THAI.txt) to eng (ENG.txt) success.

ไฟล์ที่จะแปลง

$ cat THAI.txt
อุปปาตะสันติ

นะโม ตัสสะ ภะคะวะโต อะระหะโต สัมมาสัมพุทธัสสะ.

คันถารัมภะ

(ก) สุทุททะโส อะยัง ธัมโม โลกัตถัง ชินะเทสิโต
มะหาสันติกะโร โลเก สัพพะสัมปัตติทายะโก. 

(ข) สัพพุปปาตูปะสะมะโณ ภูตะยักขะนิวาระโณ
อะกาละมัจจุสะมะโณ โสกะโรคะวินาสะโน. 

(ค) ปะระจักกะปะมัททะโน รัญโญ วิชะยะวัฑฒะโน
สัพพานิฏฐะหะโร สันโต ธัมมัง วักขามิ ภูตะโต. 

(ฆ) วัตถุตตะยัสสะ โย ยัตถะ สังวัณเณติ คุณุตตะเม
ตัสสะ ตัตถะ สุขาโรค๎ยะ- โสตถิโย โหนติ สัพพะทา. 

ได้ผลเป็น

$ cat ENG.txt
uppatasanti

namo tassa bhagavato arahato sammasambuddhassa.

gantharambha

(k) sududdaso ayam dhammo lokattham jinadesito
mahasantikaro loke sabbasampattidayako. 

(kh) sabbuppatupasamano bhutayakkhanivarano
akalamaccusamano sokarogavinasano. 

(g) paracakkapamaddano ranno vijayavaddhano
sabbanitthaharo santo dhammam vakkhami bhutato. 

(gh) vatthuttayassa yo yattha sanvanneti gunuttame
tassa tattha sukharogya- sotthiyo honti sabbada. 
Topic: