โครงการอักษรอีสาน

…คนไทยสมัยก่อนรัชกาลที่ ๕ ทั้งคนไทยในประเทศและนอกประเทศที่ใช้อักษรไทยสกุลมอญ (อักษรยวนล้านนา และอักษรตัวธรรมในลาวและอีสาน) มีจำนวนประชากรมากกว่าคนไทยที่ใช้อักษรสกุลลายสือไทยของพ่อขุนรามคำแหง…

—ธวัช ปุณโณทก

โครงการอักษรอีสาน เป็นโครงการพัฒนาการรองรับอักษรอีสานในคอมพิวเตอร์ โดยอ้างอิงตามมาตรฐานยูนิโค้ด ใช้เทคโนโลยีฟอนต์สำหรับอักษรซับซ้อน (complex text) ซึ่งอาจจะเป็น OpenType, AAT หรือ Graphite รวมไปถึงระบบการป้อนข้อความด้วยแป้นพิมพ์

ความเป็นมา

อักษรอีสานตามแบบล้านช้างมีใช้กันมาแต่โบราณ แบ่งเป็นสองชนิด คืออักษรไทน้อยและอักษรธรรม โดยอักษรไทน้อยใช้เขียนเอกสารทั่วไป รวมทั้งเอกสารราชการด้วย ส่วนอักษรธรรมใช้เขียนคัมภีร์และวรรณกรรมทางศาสนา จนกระทั่งมีการปฏิรูปการปกครองในสมัยรัชกาลที่ ๕ และเริ่มมีการใช้อักษรไทยกลางทั่วประเทศ ทำให้อักษรอีสานทั้งสองเริ่มลดความนิยมลง จนกระทั่งเลิกเรียนเลิกสอนกันในที่สุดในสมัยรัชกาลที่ ๖ เมื่อมีหลักสูตรประถมศึกษาจากส่วนกลางเข้ามาแทนที่

ตามประวัติแล้ว อักษรไทน้อยและอักษรธรรมล้านช้างมีการสืบทอดมาจากล้านนา

พื้นที่ภาคอีสานมีหลักฐานเป็นอักษรจารึกค่อนข้างหลากหลาย แรกเริ่มนั้น จารึกที่เก่าแก่ที่สุดที่พบจะใช้อักษรปัลลวะ ซึ่งใช้กันในสมัยทวารวดี ยุคต่อมาก็เป็นอักษรขอม จนกระทั่งขอมเริ่มเสื่อมอำนาจลง จารึกในภาคอีสานก็ขาดช่วงไปเป็นเวลาหลายร้อยปี ก่อนที่จะมีอักษรพญาลิไทปรากฏขึ้น ซึ่งตรงกับหลักฐานทางสุโขทัยว่ามีการเผยแผ่พุทธศาสนาเถรวาทจากสุโขทัยออกไปในรัฐไทยต่าง ๆ รวมทั้งล้านช้างด้วย การขาดช่วงของจารึกเป็นเวลาหลายร้อยปีทำให้สันนิษฐานว่าชนชาติที่ใช้อักษรขอมกับชนชาติไทย-ลาวที่เริ่มใช้อักษรพญาลิไทน่าจะเป็นคนละชนชาติกัน จึงเป็นสาเหตุที่ทำให้คนทั้งภูมิภาคเปลี่ยนมาใช้อักษรใหม่อย่างไม่มีปี่มีขลุ่ย ซึ่งคงเป็นไปได้ยากถ้าประชากรเคยใช้อักษรชนิดหนึ่งอยู่ก่อนแล้ว การเผยแผ่ศาสนาในสมัยพญาลิไทก็ทำให้ชนชาติไทย-ลาวในล้านช้างรับอักษรพญาลิไทมาใช้ตั้งแต่บัดนั้น

ทางภาคเหนือ หริภุญชัยได้รับถ่ายทอดวัฒนธรรมจากชาวมอญที่ลี้ภัยจากการรุกรานของพระเจ้าอนุรุธแห่งพุกามมา และเริ่มมีอักษรมอญใช้ ก่อนที่จะค่อย ๆ พัฒนาเป็นอักษรยวนล้านนา (ตัวเมือง) ต่อมาจนถึงสมัยล้านนาเชียงใหม่

เมื่อทางสุโขทัยมีการใช้ลายสือไทย และแพร่กระจายขึ้นไปทางภาคเหนือพร้อมกับการเผยแผ่พุทธศาสนาในสมัยพญาลิไท ล้านนาก็เริ่มรับเอาอักษรสุโขทัยไปใช้บ้าง (ในเวลาไล่เลี่ยกับที่ล้านช้าง) โดยมีการพัฒนารูปร่างและผสมอักษรยวนเข้ามาเล็กน้อย จนกลายเป็น อักษรฝักขาม ซึ่งจะใช้อักขรวิธีแบบไทยเป็นหลัก คือเขียนตัวสะกด-ควบกล้ำบนเส้นบรรทัดทั้งหมด ไม่ใช่เขียนสังโยคห้อยข้างล่างหรือใช้ตัวเฟื้องตามแบบมอญ

อักษรยวนล้านนาและอักษรฝักขามค่อย ๆ แพร่กระจายเข้าไปในล้านช้างผ่านทางพระล้านช้างที่มาศึกษาศาสนาในล้านนา และแพร่อย่างทวีคูณเมื่อมีความสัมพันธ์ทางการเมืองกันในสมัยพระเจ้าโพธิสาลราชของล้านช้าง ซึ่งได้พระราชธิดาของพระเจ้าเชียงใหม่เป็นมเหสี และเมื่อแผ่นดินเชียงใหม่ว่างลงโดยขาดรัชทายาท พระไชยเชษฐาธิราชซึ่งเป็นพระโอรสจึงได้รับอัญเชิญไปครองเมืองเชียงใหม่ตามสิทธิ์ทางฝ่ายพระมารดา ต่อมาเมื่อพระเจ้าโพธิสาลราชสวรรคต พระไชยเชษฐาธิราชจึงได้เสด็จกลับมาสืบราชสมบัติที่ล้านช้าง โดยได้ย้ายเมืองหลวงจากหลวงพระบางลงมาตั้งที่เวียงจันทน์เพื่อหลบหลีกอิทธิพลของพระเจ้าบุเรงนองแห่งพม่า เอกสารต่าง ๆ ของล้านนาจึงถูกเคลื่อนย้ายเข้าล้านช้างขนานใหญ่ พร้อมกับอักษรยวนล้านนาและอักษรฝักขามด้วย

การเคลื่อนย้ายเอกสารครั้งนี้ถือเป็นการแพร่กระจายภาษาเขียนเข้าสู่ล้านช้างเป็นระลอกที่สอง ชาวล้านช้างรับอักษรฝักขามได้ไม่ยากเพราะเคยใช้อักษรพญาลิไทมาบ้างแล้ว ส่วนอักษรยวนล้านนานั้นก็ใช้กันตามวัดมาก่อนหน้านั้นพอสมควรแล้ว

อักษรฝักขามได้พัฒนาต่อมาเป็นอักษรไทน้อย (ซึ่งในประเทศลาวเรียกว่า อักษรลาวบูฮาน หรืออักษรลาวโบราณ) และอักษรไทน้อยนี้ก็ได้พัฒนาต่อมาจนเป็นอักษรลาวในปัจจุบัน ส่วนอักษรยวนล้านนาก็ได้พัฒนาต่อมาเป็นอักษรธรรมล้านช้าง

ดังนั้น โดยตระกูลภาษาเขียนแล้ว อักษรไทน้อยถือว่าอยู่ในตระกูลอักษรไทย ซึ่งมีรากมาจากอักษรเขมรอีกทอดหนึ่ง ส่วนอักษรธรรมนั้นอยู่ในตระกูลอักษรมอญ

คนในพื้นที่ภาคอีสานของไทยก็ได้ใช้อักษรทั้งสองนี้มาโดยตลอด คนที่เรียนหนังสือก็จะต้องเรียนอักษรทั้งสองนี้ เพราะอักษรไทน้อยใช้ในเอกสารทางราชการ และอักษรธรรมใช้ในทางศาสนา จนกระทั่งเริ่มลดความนิยมลงในสมัย ร.๕ ที่มีระบบการศึกษาจากส่วนกลาง โดยอักษรไทยภาคกลางเข้ามามีบทบาทมากขึ้นเรื่อย ๆ และเลิกใช้อย่างสมบูรณ์ในสมัย ร.๖ เมื่อมี พรบ. ประถมศึกษา พ.ศ. ๒๔๖๔

ทำไมต้องรองรับอักษรอีสาน?

เหตุผลที่ต้องรองรับอักษรอีสานทั้งสองในคอมพิวเตอร์คือ:

สิ่งที่ต้องทำ

สรุปสิ่งที่ต้องทำเป็นอย่างน้อยเพื่อให้ผู้ใช้สามารถใช้อักษรอีสานในคอมพิวเตอร์ได้:

  1. นิยามชุดอักขระ อักขรวิธี และยื่นขอรหัสยูนิโค้ด

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

  2. การแสดงผลข้อความ

    การแสดงผลข้อความอักษรธรรมจะมีความยุ่งยากกว่าอักษรไทน้อย เนื่องจากตามข้อกำหนดยูนิโค้ดนั้น ลำดับการเก็บอักขระอักษรธรรมจะเป็นแบบที่เรียกว่า logical order คือจะเก็บสระหลังพยัญชนะต้นในทุกกรณี รวมถึงกรณีของสระหน้าด้วย ในการแสดงผลจึงต้องสลับลำดับจาก logical order ให้เป็น visual order จากซ้ายไปขวา ส่วนอักษรไทน้อยซึ่งอ้างอิงอักษรลาวปัจจุบันนั้น สามารถเก็บอักขระจากซ้ายไปขวาเหมือนอักษรลาวและไทย จึงไม่มีความซับซ้อนส่วนนี้

    การแก้ปัญหานี้สำหรับอักษรธรรม มีทางเลือกของเทคโนโลยีหลายทางที่เป็นไปได้ คือ:

  3. วิธีการป้อนข้อความ

    การป้อนข้อความจะมีรายละเอียดปลีกย่อยมากกว่าการแสดงผล สิ่งที่จะต้องทำก็คือ:

การดำเนินการ

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

ฟอนต์

ฟอนต์ใช้การได้ในระดับหนึ่ง โดยเลือกวิธีเพิ่มกฎ GSUB ในฟอนต์ OpenType เพื่อสลับลำดับขณะแสดงผล กฎ GSUB ที่ใช้คือ:

  1. สลับลำดับ ไม้อังแล่น (ง สะกดเหนือพยัญชนะ) ในภาษาบาลี (อยู่ระหว่างอภิปราย)
    MAI-KANG-LAI + Cons → Cons + MAI-KANG-LAI
    
  2. เปลี่ยนพยัญชนะเป็นรูปตัวห้อย/ตัวเฟื้องเมื่อตามหลัง SAKOT ในกรณีพิเศษ (ตฺถ ใช้รูป ถ เฟื้องที่เป็นเส้นตวัด ส่วนกรณีอื่นใช้ ถ ย่อส่วน)
    [HIGH-TA] SAKOT + HIGH-THA → HIGH-THA.sub2
    
  3. เปลี่ยนพยัญชนะเป็นรูปตัวห้อย/ตัวเฟื้องเมื่อตามหลัง SAKOT ในกรณีทั่วไป
    SAKOT + Cons → Cons.sub
    
  4. สลับสระอุ/อูที่มาก่อนตัวเฟื้องข้างไปอยู่หลังตัวเฟื้องข้าง (เช่นในคำว่า รูป)
    Vowel-U-UU + Side-subjoin → Side-subjoin + Vowel-U-UU
    
    (ตัวเฟื้องข้าง ได้แก่ตัวเฟื้องของ ฆ ฌ ญ ฒ บ ป ผ ย ล ส และ ละทั้งหลาย)
  5. เปลี่ยนอักขระใต้บรรทัดบางตัวให้สามารถซ้อนใต้ตัวห้อยอื่นได้
    [Sub-char1] + Sub-char2  → Sub-char2.deep
    
    (Sub-char2 ได้แก่ น ห้อย, ว ห้อย, SAKOT, สระอุ, สระอู, สระออล่าง, CRYPTOGRAMMIC DOT)
  6. สลับลำดับสระอำ (สระอา + นิคหิต)
    {VOWEL-AA|VOWEL-TALL_AA} + MAI-KANG → MAI-KANG + {VOWEL-AA|VOWEL-TALL_AA}
    
  7. เปลี่ยนอักขระเหนือบรรทัดบางตัวให้สามารถซ้อนบนอักขระเหนือบรรทัดตัวอื่นได้
    [Above-char1] + Above-char2  → Above-char2.top
    
    (Above-char2 ได้แก่ นิคหิต, ไม้เอก, ไม้โท)
  8. สลับลำดับวรรณยุกต์กับนิคหิต (ในกรณีที่มีวรรณยุกต์มาก่อนสระอำ)
    Tone + MAI-KANG → MAI-KANG + Tone
    
  9. สลับลำดับสระหน้า (เป็นหน้าที่ของ rendering engine)
    Cons + [sub|medial-RA] + LV → LV + Cons + [sub|medial-RA]
    
  10. สลับลำดับ ระวง (เป็นหน้าที่ของ rendering engine)
    Cons + {UV|BV}1 + medial-RA + {UV|BV}2 → medial-RA + {UV|BV}2 + Cons + {UV|BV}1
    Cons + {UV|BV} + medial-RA → medial-RA + Cons + {UV|BV}
    Cons + medial-RA → medial-RA + Cons
    Cons + sub + medial-RA → medial-RA.deep + Cons + sub
    
  11. จัดการรูปย่อ น + า แบบซับซ้อน
    NA + {sub|tone|UV|BV} + AA → NAA + {sub|tone|UV|BV}
    
  12. จัดการรูปย่อทั่วไป
    NA + AA → NAA
    WA + AA → WAA
    

หน้าทดสอบฟอนต์

ผังแป้นพิมพ์

ทดลองสร้างผังแป้นพิมพ์ที่ใช้ผัง มอก. 820-2538 เป็นฐาน แต่มีการเปลี่ยนปุ่มบางปุ่มดังนี้

ปุ่มอักษรไทย มอก. 830-2538ปุ่มอักษรไทย เกษมณีอักษรธรรม
พินทุพินทุสะกด (เปลี่ยนอักษรที่ตามมาเป็นตัวเฟื้อง/ตัวห้อย)
฿ย หยาดน้ำ
+สระอาสูง
//สระออย
__สระออ
ยามักการ฿ไม้อังแล่น
""สฺส
สระอุลอย (บาลี)
สระอำสระอำไม้เกาห่อนึ่ง หรือสระอำ (ลากข้าง + นิคหิต)
ไม้ตรีไม้ตรีสระอิลอย (บาลี)
,,ล ห้อย
ล ระดับ ๓ล ระดับ ๓แล
ไม้ไต่คู้ไม้ไต่คู้ไม้กง
ไม้จัตวาไม้จัตวาสระอีลอย (บาลี)
..ง สะกดบน
((ระวง
))สระเอลอย (บาลี)
??สระอูลอย (บาลี)
โ ระดับ ๓โ ระดับ ๓สระโอลอย (บาลี)
ก ระดับ ๓ก ระดับ ๓ก สะกดจุดคู่
ม ระดับ ๓ม ระดับ ๓ม เฟื้องรูปเต็ม
บ ระดับ ๓บ ระดับ ๓บ เฟื้องรูปเต็ม

หมายเหตุ: ปุ่มระดับ ๓ กด Alt ขวาร่วมกับปุ่มธรรมดา


ผังแป้นพิมพ์

Input Method

หลังจากที่ได้ร่วมกันวิเคราะห์อักขรวิธีอักษรธรรมอีสาน เราได้ร่างข้อกำหนดของ input method ซึ่งจะทั้งสลับลำดับอักขระและตรวจสอบลำดับการพิมพ์ ดังนี้:

ชนิดของอักขระ

  1. LV = สระหน้า
  2. AV = สระบน (อิ, อี, อึ, อื, ไม้กง, ไม้เกาห่อนึ่ง)
  3. AD1 = ตัวสะกดบน (ไม้ซัด, ไม้อังแล่น, ง สะกดบน, พ บน)
  4. AD2 = ตัวสะกดบน/สระบน (นิคหิต)
  5. BV1 = สระล่าง 1 (อุ, อู)
  6. BV2 = สระล่าง 2 (ออล่าง)
  7. FV1 = สระหลัง 1 (อะ)
  8. FV2 = สระหลัง 2 (อา, อาสูง)
  9. FV3 = สระหลัง 3 (ออย)
  10. IV = สระลอย (อิ, อี, อุ, อู, เอ, โอ ลอย, ฤ, ฦ)
  11. C1 = พยัญชนะที่เฟื้องด้วยพินทุได้
  12. C2 = พยัญชนะที่เฟื้องด้วยพินทุไม่ได้ (ฃ ฅ ซ ฝ ฟ หยอหยาดน้ำ ร ล ฬ อ ฮ สอสองห้อง)
  13. PH = พินทุ (SAKOT)
  14. S1 = เฟื้องพิเศษ 1 (ระวง)
  15. S2 = เฟื้องพิเศษ 2 (ล เฟื้องล่าง, ล เฟื้องข้าง)
  16. S3 = เฟื้องพิเศษ 3 (ก สะกดจุดคู่)
  17. S4 = เฟื้องพิเศษ 4 (ตัวเฟื้องย่อส่วนของ ฐ, ม, บ, ส)
  18. T = วรรณยุกต์
  19. LG = ตัวประสม (แล)
  20. CR = ตัวรหัสลับ (cryptogram)
  21. NP = ตัวเลขและเครื่องหมายวรรคตอน

ตารางการกระทำระหว่างสองอักขระ

การกระทำ:

ตารางการกระทำ:

c0,c1 X L
V
A
V
A
D
1
A
D
2
B
V
1
B
V
2
F
V
1
F
V
2
F
V
3
I
V
C
1
C
2
P
H
S
1
S
2
S
3
S
4
T L
G
C
R
N
P
X R P R R R R R R R R A A A R R R R R R A R A
LV R P A A S S S A A S A A A A W A A A A A A A
AV R P R R A R A S A S A A A A R A A A A A A A
AD1 R P R R R R R S S S A A A A R A A A A A A A
AD2 R P R R R R R S A S A A A S R R R R A A R A
BV1 R P S A A R R S S S A A A S A R R R A A R A
BV2 R P R A R R R A R R R A A S R R R R A A R A
FV1 R P R R R R R R R R A A A R R R R R R A R A
FV2 R P R A R R R A R R A A A A R A A A R A A A
FV3 R P R R R R R R R R A A A R R R R R R A R A
IV R P A R R R R R R R R A A R R R R R R A R A
C1 R P A A A A A A A A A A A A A A A A A A A A
C2 R P A A A A A A A A A A A A A A A A A A A A
PH R P R R R R R R R R R A R R R R R R R R R R
S1 R P A A A A A A A A A A A A R R S S A A A A
S2 R P A A A A S A A A A A A A R R S S A A A A
S3 R P R R R R R R R R A A A R R R R R R A R A
S4 R P A A A A S A A A A A A A A S R R A A A A
T R P R R R R R A A A A A A A R R A A R A A A
LG R P R R R R R A R R A A A A R R A A A A A A
CR R P A A A A A A A A A A A S A A R A A A A A
NP R P R R R R R R R R A A A R R R R R R A R A

ตารางการกระทำในโหมด pre-edit:

P X L
V
A
V
A
D
1
A
D
2
B
V
1
B
V
2
F
V
1
F
V
2
F
V
3
I
V
C
1
C
2
P
H
S
1
S
2
S
3
S
4
T L
G
C
R
N
P
LV R R R R R R R R R R R C C R R R R C R R R R

การกระทำ C = commit อักขระใน pre-edit string โดยกลับลำดับจากหลังมาหน้า

พร้อมกันนี้ก็ได้สร้างโครงการล้านช้างเพื่อทำต้นแบบ input method เพื่อทดลองใช้บน GNU/Linux

ดาวน์โหลด

ทรัพยากรเหล่านี้ ยังอยู่ระหว่างพัฒนา และอาจมีการเปลี่ยนแปลงอยู่ตลอดเวลา กรุณาใช้ด้วยความระมัดระวัง

การทดลองปริวรรต

อักษรธรรม

อักษรไทน้อย

ร่างข้อเสนอปรับมาตรฐาน

อักษรธรรม

อักษรไทน้อย

เอกสารประกอบ

อักษรธรรม

อักษรไทน้อย

ฐานข้อมูลใบลาน