…คนไทยสมัยก่อนรัชกาลที่ ๕ ทั้งคนไทยในประเทศและนอกประเทศที่ใช้อักษรไทยสกุลมอญ (อักษรยวนล้านนา และอักษรตัวธรรมในลาวและอีสาน) มีจำนวนประชากรมากกว่าคนไทยที่ใช้อักษรสกุลลายสือไทยของพ่อขุนรามคำแหง…
—ธวัช ปุณโณทก
โครงการอักษรอีสาน เป็นโครงการพัฒนาการรองรับอักษรอีสานในคอมพิวเตอร์ โดยอ้างอิงตามมาตรฐานยูนิโค้ด ใช้เทคโนโลยีฟอนต์สำหรับอักษรซับซ้อน (complex text) ซึ่งอาจจะเป็น OpenType, AAT หรือ Graphite รวมไปถึงระบบการป้อนข้อความด้วยแป้นพิมพ์
อักษรอีสานตามแบบล้านช้างมีใช้กันมาแต่โบราณ แบ่งเป็นสองชนิด คืออักษรไทน้อยและอักษรธรรม โดยอักษรไทน้อยใช้เขียนเอกสารทั่วไป รวมทั้งเอกสารราชการด้วย ส่วนอักษรธรรมใช้เขียนคัมภีร์และวรรณกรรมทางศาสนา จนกระทั่งมีการปฏิรูปการปกครองในสมัยรัชกาลที่ ๕ และเริ่มมีการใช้อักษรไทยกลางทั่วประเทศ ทำให้อักษรอีสานทั้งสองเริ่มลดความนิยมลง จนกระทั่งเลิกเรียนเลิกสอนกันในที่สุดในสมัยรัชกาลที่ ๖ เมื่อมีหลักสูตรประถมศึกษาจากส่วนกลางเข้ามาแทนที่
ตามประวัติแล้ว อักษรไทน้อยและอักษรธรรมล้านช้างมีการสืบทอดมาจากล้านนา
พื้นที่ภาคอีสานมีหลักฐานเป็นอักษรจารึกค่อนข้างหลากหลาย แรกเริ่มนั้น จารึกที่เก่าแก่ที่สุดที่พบจะใช้อักษรปัลลวะ ซึ่งใช้กันในสมัยทวารวดี ยุคต่อมาก็เป็นอักษรขอม จนกระทั่งขอมเริ่มเสื่อมอำนาจลง จารึกในภาคอีสานก็ขาดช่วงไปเป็นเวลาหลายร้อยปี ก่อนที่จะมีอักษรพญาลิไทปรากฏขึ้น ซึ่งตรงกับหลักฐานทางสุโขทัยว่ามีการเผยแผ่พุทธศาสนาเถรวาทจากสุโขทัยออกไปในรัฐไทยต่าง ๆ รวมทั้งล้านช้างด้วย การขาดช่วงของจารึกเป็นเวลาหลายร้อยปีทำให้สันนิษฐานว่าชนชาติที่ใช้อักษรขอมกับชนชาติไทย-ลาวที่เริ่มใช้อักษรพญาลิไทน่าจะเป็นคนละชนชาติกัน จึงเป็นสาเหตุที่ทำให้คนทั้งภูมิภาคเปลี่ยนมาใช้อักษรใหม่อย่างไม่มีปี่มีขลุ่ย ซึ่งคงเป็นไปได้ยากถ้าประชากรเคยใช้อักษรชนิดหนึ่งอยู่ก่อนแล้ว การเผยแผ่ศาสนาในสมัยพญาลิไทก็ทำให้ชนชาติไทย-ลาวในล้านช้างรับอักษรพญาลิไทมาใช้ตั้งแต่บัดนั้น
ทางภาคเหนือ หริภุญชัยได้รับถ่ายทอดวัฒนธรรมจากชาวมอญที่ลี้ภัยจากการรุกรานของพระเจ้าอนุรุธแห่งพุกามมา และเริ่มมีอักษรมอญใช้ ก่อนที่จะค่อย ๆ พัฒนาเป็นอักษรยวนล้านนา (ตัวเมือง) ต่อมาจนถึงสมัยล้านนาเชียงใหม่
เมื่อทางสุโขทัยมีการใช้ลายสือไทย และแพร่กระจายขึ้นไปทางภาคเหนือพร้อมกับการเผยแผ่พุทธศาสนาในสมัยพญาลิไท ล้านนาก็เริ่มรับเอาอักษรสุโขทัยไปใช้บ้าง (ในเวลาไล่เลี่ยกับที่ล้านช้าง) โดยมีการพัฒนารูปร่างและผสมอักษรยวนเข้ามาเล็กน้อย จนกลายเป็น อักษรฝักขาม ซึ่งจะใช้อักขรวิธีแบบไทยเป็นหลัก คือเขียนตัวสะกด-ควบกล้ำบนเส้นบรรทัดทั้งหมด ไม่ใช่เขียนสังโยคห้อยข้างล่างหรือใช้ตัวเฟื้องตามแบบมอญ
อักษรยวนล้านนาและอักษรฝักขามค่อย ๆ แพร่กระจายเข้าไปในล้านช้างผ่านทางพระล้านช้างที่มาศึกษาศาสนาในล้านนา และแพร่อย่างทวีคูณเมื่อมีความสัมพันธ์ทางการเมืองกันในสมัยพระเจ้าโพธิสาลราชของล้านช้าง ซึ่งได้พระราชธิดาของพระเจ้าเชียงใหม่เป็นมเหสี และเมื่อแผ่นดินเชียงใหม่ว่างลงโดยขาดรัชทายาท พระไชยเชษฐาธิราชซึ่งเป็นพระโอรสจึงได้รับอัญเชิญไปครองเมืองเชียงใหม่ตามสิทธิ์ทางฝ่ายพระมารดา ต่อมาเมื่อพระเจ้าโพธิสาลราชสวรรคต พระไชยเชษฐาธิราชจึงได้เสด็จกลับมาสืบราชสมบัติที่ล้านช้าง โดยได้ย้ายเมืองหลวงจากหลวงพระบางลงมาตั้งที่เวียงจันทน์เพื่อหลบหลีกอิทธิพลของพระเจ้าบุเรงนองแห่งพม่า เอกสารต่าง ๆ ของล้านนาจึงถูกเคลื่อนย้ายเข้าล้านช้างขนานใหญ่ พร้อมกับอักษรยวนล้านนาและอักษรฝักขามด้วย
การเคลื่อนย้ายเอกสารครั้งนี้ถือเป็นการแพร่กระจายภาษาเขียนเข้าสู่ล้านช้างเป็นระลอกที่สอง ชาวล้านช้างรับอักษรฝักขามได้ไม่ยากเพราะเคยใช้อักษรพญาลิไทมาบ้างแล้ว ส่วนอักษรยวนล้านนานั้นก็ใช้กันตามวัดมาก่อนหน้านั้นพอสมควรแล้ว
อักษรฝักขามได้พัฒนาต่อมาเป็นอักษรไทน้อย (ซึ่งในประเทศลาวเรียกว่า อักษรลาวบูฮาน หรืออักษรลาวโบราณ) และอักษรไทน้อยนี้ก็ได้พัฒนาต่อมาจนเป็นอักษรลาวในปัจจุบัน ส่วนอักษรยวนล้านนาก็ได้พัฒนาต่อมาเป็นอักษรธรรมล้านช้าง
ดังนั้น โดยตระกูลภาษาเขียนแล้ว อักษรไทน้อยถือว่าอยู่ในตระกูลอักษรไทย ซึ่งมีรากมาจากอักษรเขมรอีกทอดหนึ่ง ส่วนอักษรธรรมนั้นอยู่ในตระกูลอักษรมอญ
คนในพื้นที่ภาคอีสานของไทยก็ได้ใช้อักษรทั้งสองนี้มาโดยตลอด คนที่เรียนหนังสือก็จะต้องเรียนอักษรทั้งสองนี้ เพราะอักษรไทน้อยใช้ในเอกสารทางราชการ และอักษรธรรมใช้ในทางศาสนา จนกระทั่งเริ่มลดความนิยมลงในสมัย ร.๕ ที่มีระบบการศึกษาจากส่วนกลาง โดยอักษรไทยภาคกลางเข้ามามีบทบาทมากขึ้นเรื่อย ๆ และเลิกใช้อย่างสมบูรณ์ในสมัย ร.๖ เมื่อมี พรบ. ประถมศึกษา พ.ศ. ๒๔๖๔
เหตุผลที่ต้องรองรับอักษรอีสานทั้งสองในคอมพิวเตอร์คือ:
สรุปสิ่งที่ต้องทำเป็นอย่างน้อยเพื่อให้ผู้ใช้สามารถใช้อักษรอีสานในคอมพิวเตอร์ได้:
ศึกษาตัวอักษร กำหนดชุดอักขระ ซึ่งประกอบด้วยพยัญชนะ สระ วรรณยุกต์ เครื่องหมายกำกับเสียง ตัวเลข เครื่องหมายวรรคตอน และอื่น ๆ ทั้งหมดที่มีใช้ในเอกสารภาษานั้น ๆ พร้อมอักขรวิธี วิเคราะห์โครงสร้างของข้อความเพื่อกำหนดวิธีการแทนข้อความด้วยลำดับอักขระ สรุปเป็นเอกสารเพื่อยื่นขอเพิ่มรหัสยูนิโค้ด
การแสดงผลข้อความอักษรธรรมจะมีความยุ่งยากกว่าอักษรไทน้อย เนื่องจากตามข้อกำหนดยูนิโค้ดนั้น ลำดับการเก็บอักขระอักษรธรรมจะเป็นแบบที่เรียกว่า logical order
คือจะเก็บสระหลังพยัญชนะต้นในทุกกรณี รวมถึงกรณีของสระหน้าด้วย ในการแสดงผลจึงต้องสลับลำดับจาก logical order
ให้เป็น visual order
จากซ้ายไปขวา ส่วนอักษรไทน้อยซึ่งอ้างอิงอักษรลาวปัจจุบันนั้น สามารถเก็บอักขระจากซ้ายไปขวาเหมือนอักษรลาวและไทย จึงไม่มีความซับซ้อนส่วนนี้
การแก้ปัญหานี้สำหรับอักษรธรรม มีทางเลือกของเทคโนโลยีหลายทางที่เป็นไปได้ คือ:
การป้อนข้อความจะมีรายละเอียดปลีกย่อยมากกว่าการแสดงผล สิ่งที่จะต้องทำก็คือ:
logical orderดังที่กล่าวไปแล้ว แต่ผู้ใช้จะคุ้นเคยกับการเขียนและป้อนจากซ้ายไปขวา ระบบป้อนข้อความจึงควรสลับลำดับก่อนเก็บข้อมูลด้วย ส่วนอักษรไทน้อยซึ่งอ้างอิงอักษรลาวนั้น สามารถเก็บอักขระจากซ้ายไปขวาเหมือนอักษรลาวและไทยได้ จึงไม่มีความจำเป็นต้องสลับลำดับ แต่อาจจะมีการตรวจแก้ลำดับเหมือนระบบการป้อนข้อความภาษาไทย-ลาว
ขณะนี้ ได้เปิดโครงการโคตรบูรเพื่อสร้างฟอนต์อักษรธรรมล้านช้างและอักษรไทน้อย โดยเริ่มจากอักษรธรรมก่อน เนื่องจากได้ผ่านขั้นตอนข้อกำหนดยูนิโค้ดมาแล้ว ในขั้นแรกจะวาด glyph ของอักขระพื้นฐานให้ครบทุกตัวเสียก่อน (โดยอาศัยฟอนต์ของ อ.สานิตย์ โภคาพันธ์ เป็นจุดเริ่มต้น) จากนั้นจึงหาทางเพิ่มกฎเพื่อการแสดงผลที่สมบูรณ์ต่อไป
ฟอนต์ใช้การได้ในระดับหนึ่ง โดยเลือกวิธีเพิ่มกฎ GSUB ในฟอนต์ OpenType เพื่อสลับลำดับขณะแสดงผล กฎ GSUB ที่ใช้คือ:
MAI-KANG-LAI + Cons → Cons + MAI-KANG-LAI
SAKOT
ในกรณีพิเศษ
(ตฺถ ใช้รูป ถ เฟื้องที่เป็นเส้นตวัด ส่วนกรณีอื่นใช้ ถ ย่อส่วน)
[HIGH-TA] SAKOT + HIGH-THA → HIGH-THA.sub2
SAKOT
ในกรณีทั่วไป
SAKOT + Cons → Cons.sub
รูป)
Vowel-U-UU + Side-subjoin → Side-subjoin + Vowel-U-UU(ตัวเฟื้องข้าง ได้แก่ตัวเฟื้องของ ฆ ฌ ญ ฒ บ ป ผ ย ล ส และ ละทั้งหลาย)
[Sub-char1] + Sub-char2 → Sub-char2.deep(
Sub-char2
ได้แก่ น ห้อย, ว ห้อย, SAKOT
, สระอุ, สระอู, สระออล่าง, CRYPTOGRAMMIC DOT
)
{VOWEL-AA|VOWEL-TALL_AA} + MAI-KANG → MAI-KANG + {VOWEL-AA|VOWEL-TALL_AA}
[Above-char1] + Above-char2 → Above-char2.top(
Above-char2
ได้แก่ นิคหิต, ไม้เอก, ไม้โท)
Tone + MAI-KANG → MAI-KANG + Tone
Cons + [sub|medial-RA] + LV → LV + Cons + [sub|medial-RA]
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
NA + {sub|tone|UV|BV} + AA → NAA + {sub|tone|UV|BV}
NA + AA → NAA WA + AA → WAA
ทดลองสร้างผังแป้นพิมพ์ที่ใช้ผัง มอก. 820-2538 เป็นฐาน แต่มีการเปลี่ยนปุ่มบางปุ่มดังนี้
ปุ่มอักษรไทย มอก. 830-2538 | ปุ่มอักษรไทย เกษมณี | อักษรธรรม |
---|---|---|
พินทุ | พินทุ | สะกด (เปลี่ยนอักษรที่ตามมาเป็นตัวเฟื้อง/ตัวห้อย) |
฿ | ๅ | ย หยาดน้ำ |
ๅ | + | สระอาสูง |
/ | / | สระออย |
_ | _ | สระออ |
ยามักการ | ฿ | ไม้อังแล่น |
" | " | สฺส |
ฎ | ฎ | สระอุลอย (บาลี) |
สระอำ | สระอำ | ไม้เกาห่อนึ่ง หรือสระอำ (ลากข้าง + นิคหิต) |
ไม้ตรี | ไม้ตรี | สระอิลอย (บาลี) |
, | , | ล ห้อย |
ล ระดับ ๓ | ล ระดับ ๓ | แล |
ไม้ไต่คู้ | ไม้ไต่คู้ | ไม้กง |
ไม้จัตวา | ไม้จัตวา | สระอีลอย (บาลี) |
. | . | ง สะกดบน |
( | ( | ระวง |
) | ) | สระเอลอย (บาลี) |
? | ? | สระอูลอย (บาลี) |
โ ระดับ ๓ | โ ระดับ ๓ | สระโอลอย (บาลี) |
ก ระดับ ๓ | ก ระดับ ๓ | ก สะกดจุดคู่ |
ม ระดับ ๓ | ม ระดับ ๓ | ม เฟื้องรูปเต็ม |
บ ระดับ ๓ | บ ระดับ ๓ | บ เฟื้องรูปเต็ม |
หมายเหตุ: ปุ่มระดับ ๓ กด Alt ขวาร่วมกับปุ่มธรรมดา
หลังจากที่ได้ร่วมกันวิเคราะห์อักขรวิธีอักษรธรรมอีสาน เราได้ร่างข้อกำหนดของ input method ซึ่งจะทั้งสลับลำดับอักขระและตรวจสอบลำดับการพิมพ์ ดังนี้:
การกระทำ:
ตารางการกระทำ:
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
ทรัพยากรเหล่านี้ ยังอยู่ระหว่างพัฒนา และอาจมีการเปลี่ยนแปลงอยู่ตลอดเวลา กรุณาใช้ด้วยความระมัดระวัง
# cp lana.xkb /usr/share/X11/xkb/symbols/lana
$ setxkbmap us,th,lanaจะได้แป้นพิมพ์ ๓ ผัง อังกฤษ, ไทย, อักษรธรรม
วิธีป้อนข้อความ > ไม่มีหรือ
Input Method > None
คำเตือน: ต้องป้อนตัวอักษรตามลำดับ logical order ของยูนิโค้ดเท่านั้น เช่น
แดงป้อนเป็น
ด + แ + (พินทุ) + ง
เมืองป้อนเป็น
ม + เ + อื + ออ(ล่าง) + ง
แล้วตัวฟอนต์จะสลับลำดับการแสดงให้ถูกต้องเอง