සිංහල යුනිකෝඩ් පිළිබඳ පැහැදිලි අවබෝධයක් ලබාදීම පිණිස ලියවෙන අන්තර්ජාල අත්පොත. මෙය තව දුරටත් සංස්කරණය වෙමින් පවතී.
පරිගණකය හා අනෙකුත් විද්යුත් උපාංග කිසිවක් කිසිදු මානව භාෂාවක් නොදනී. ඒවාට මානව භාෂාවන් භාවිතයට සිදු වනුයේ ඒවා භාවිතා කරනුයේ මිනිසුන් විසින් නිසා වෙනි. ඒවා ක්රියා කරනුයේ විදුලිය ඇත හෝ නැත යන සංකල්පය යටතේ ය. එය තවදුරටත් පැහැදිලි කරන්නේ නම් තාර්කික හා ගණිතමය හැකියාවන් පමණක් පරිගණක විද්යුත් උපාංග වලට ඇති බවය. විද්යුත් උපාංග අක්ෂර මතක තබා ගනුයේ අංකයක් ලෙස ය. යුනිකේත සම්මතයට අනුව විවිද භාෂාවන්හී අක්ෂර සඳහා අනන්ය වූ අංකයක් ලබාදීම සිදු කරයි.
නූතන පරිගණකයේ ආරම්භයට පෙර සිටම ඉලෙක්ට්රොනිකව අක්ෂර හුවමාරු කර ගැනීම සඳහා විවිධ ක්රම අනුගමනය කළද ඒවා එකිනෙක අතර බොහෝ වෙනස්කම් තිබීම හේතුවෙන් නියමාකාරයෙන් ඉලෙක්ට්රොනික දත්ත හුවමාරු කර ගැනීමට සම්මතයක අවශ්යතාව ඒ සමග ම පැන නැගින. ASCII (American Standard Code for Information Interchange-1960), EBCDIC (Extended Binary Coded Decimal Interchange Code-1963) ආදී විවිධ සම්මත ඒ අනුව ගොඩනැගින. ASCII - 7 Bit සම්මතය තුල අක්ෂර 128කට ඉඩ තිබුන ද මුද්රණය කළ හැකි අක්ෂර 94ක් පමණක් ඊට ඇතුලත් විය. ASCII - 8 Bit සංස්කරණය තුල අක්ෂර 256 කට ඉඩ සලසා ඇත.
පැරණි ක්රම ඉංග්රීසි භාෂාව හා ඒ ආශ්රිතව ගොඩ නැගුනු ඒවා වීම නිසා වෙනත් භාෂාවන්හි අක්ෂර සඳහා එම සම්මතයන් භාවිතා කිරීමේදී ගැටළු රාශියක් පැනනැගුනි. ASCII සම්මතය තුල වූ සීමිත ඉඩ තුල විරාම ලකුණු ආදිය සමග වෙනත් භාෂාවන් හි අක්ෂර සියල්ල ඇතුළත් කිරීමට විවිධ ආයතන විවිධ පැලැස්තර ක්රම හඳුන්වා දීම නිසා තව තවත් මෙම ගැටළුව සංකීර්ණ එකක් විය.
සිරොක්ස් ආයතනයේ ජෝ බෙකර්(Joe Becker) සහ ඇපල් ආයතනයේ ලී කොලින්ස් (Lee Collins) සහ මාර්ක් ඩේවිස් (Mark Davis) එක්ව කරන ලද පරීක්ෂණයකින් පසුව සියළුම භාෂාවන් හී අක්ෂර ඇතුලත් කළ හැකි අක්ෂර 65,536 කට ඉඩ ඇති (බිටු 16යේ) යුනිකෝඩ් ක්රමය හඳුන්වා දෙන ලදී. මේ වන විට යුනිකේත සම්බන්ධ සියළු සම්මතයන් පවත්වගෙනු යනු ලබන්නේ යුනිකොඩ් එක්තැන්සමිය (Unicode Consortium) මගිනි. දැනට යුනිකේත සම්මතය තුල ඒකීය අක්ෂර නිරූපණ 1114112 කට ඉඩ ලබා දී තිබේ. (U+0000 සිට U+10FFFF)
යුනිකේත අක්ෂර පරිගණකය තුල නිරූපණය කිරීමට විවිධ තාක්ෂණ ක්රම භාවිතා කෙරේ. වෙනත් අක්ෂර ක්රම (ASCII, EBCDIC) වලින් යුනිකේත වෙන්කර දැක්වීම සඳහා විවධ නිරූපන ක්රමවේද ක්රම භාවිතා කරයි.
පැරණි ASCII සම්මතයට සැකසුණු ගොනු සමග යුනිකේත(backwards compatible) භාවිතා කළ හැකි අයුරින් සකස් කරන ලද Encoding ක්රමවේදයක්. UTF-8 ක්රමයේ දී ASCII ක්රමය තුල ඇති අකුරක් නිරූපණය කිරිමට බිටු 8 ක් ද වෙනත් අක්ෂර දැක්වීමේ දී බිටු 16 ක් හෝ 24 ක් හෝ 32 ක් හෝ මගින් අක්ෂර නිරූපණය කිරීම එහි ඇති විශේෂත්ව යයි. UTF-16 සඳහා අවම වශයෙන් බිටු 16ක් ද අවශ්ය විටක දී 24 ක් හෝ 32 ක් හෝ භාවිතා කරයි.
නූතන සිංහල වර්ණමාලාවට ස්වර (පණකුරු) 16ක් ද ගතකුරු 41ක් ද අනුපණකුරු 2ක් ද ඇතුලත් වේ. ඒ අනුව මුළු අක්ෂර ගණන 59ක් වේ. භාවිතයෙන් ඉවත් වෙමින් පවතින ඏ ඐ ස්වර දෙකත් සමග අක්ෂර ගණන 61 කි.
පණකුරු(ස්වර)
අ ආ ඇ ඈ ඉ ඊ උ ඌ ඍ ඎ එ ඒ ඓ ඔ ඕ ඖ
සහ භාවිතයෙන් මෑත්වෙමින් පවතින ඏ ඐ ස්වර දෙක.
ගතකුරු (ව්යංජනාක්ෂර)
ක ඛ ග ඝ ඞ ඟ ච ඡ ජ ඣ ඤ ඥ ඦ ට ඨ ඩ ඪ ණ ඬ ත ථ ද ධ න ඳ ප ඵ බ භ ම ඹ ය ර ල ව ශ ෂ ස හ ළ ෆ
අනු පණකුරු
ං(අං) සහ ඃ (අඃ)
සිංහල යුනිකේත වර්ණමාලාව සඳහා නූතන හෝඩියේ අක්ෂර වලට අමතරව පහත සඳහන් අක්ෂර/සංකේත ද ඇතුලත්ව ඇත.
හල් කිරීම
් - ගත කුරක් හා එකට යෙදීමෙන් මූලික ගතකුරක් සකසා ගත හැක. (මූලික ගතකුරක් යනු ස්වරයක් සමග සම්බන්ද නොවූ ගතකුරයි. මූලික ගතකුරක් තනිව උච්චාරණය කළ නොහැකි නිසා නිරායාසයෙන්ම අ ස්වරය සෑම ගතකුරකට ඇතුලත් වී ඇත. සියලුම හල් අක්ෂර මූලික ගතකුරු වේ.)
ස්වර වෙනුවට ගතකුරක් සමග යෙදෙන පිලි හා සංකේත /ස්වර-සංකේත
ා ැ ෑ ි ී ු ූ ෘ ෙ ේ ෛ ො ෝ ෞ ෟ ෲ ෳ
ව්යාංජන අක්ෂර සමග උදාහරණ
ක් කා කැ කෑ කි කී කු කූ කෘ කෙ කේ කෛ කො කෝ කෞ කෟ කෲ කෟ
වෙනත් අක්ෂර හා සංඥා
෴ (කුන්ඩලිය) - සෙල් ලිපි වල නැවතීමේ ලකුණ ආකාරයට භාවිතා කරන ලද සලකුණක්.
සිංහල යුනිකේත යනුවෙන් අපි හඳුන්වනුයේ යුනිකොඩ් සම්මතය මගින් සිංහල අක්ෂර සඳහා වෙන්කර ඇති ඉඩ ප්රමාණය සහ ඒ හා සබැඳි යුනිකේතයේ භාවිතාව යි. සිංහල, යුනිකේතයට ගෙන ඒමේ දී වර්තමානයේ හා අනාගතයේදී සිංහල අක්ෂර විද්යුත් මාධ්ය මගින් නිරූපණය කිරීමේදී ඇතිවන/ඇතිවිය හැකි ගැටළු අවම වන ආකරයට නිර්මාණය කෙරින. ඒ සඳහා නූතන සිංහල හෝඩිය, සිංහල අකාරාදිය අනුපිළිවෙල ආදී නොයෙක් කාරනා සැලකිල්ලට ගෙන දැනට පවතින SLS 1134: 2011 තෙවන සංස්කරණය (2011) සකස්කර ඇත. සිංහල යුනිකේතයේ දී භාවිතා කරන ලද සිංහල අක්ෂර/සංඥා හා එහි භාවිතය පිළිබඳ ඉදිරියේදී විස්තර වනු ඇත.
සිංහල සඳහා u+0D80 (3456) සිට u+0DFF (3583) දක්වා අක්ෂර 128 වෙන්ව ඇතත් සිංහල අකාරාදියේ අක්ෂර 61ද විවිද සංකේත හා අක්ෂර සමග සිංහල යුනිකේත වර්ණමාලාව සඳහා දැනට(SLS 1134 දෙවන සංස්කරනයට අනුව) අක්ෂර හා සංකේත 80ක් භාවිතා වේ෴
සිංහල යුනිකේත හෝඩියේ නැති (යුනිකේත හෝඩියේ ඇති) එහෙත් සිංහල ලිවීමට අත්යාවශ්ය යුනිකේත අක්ෂරයක්. මෙය මුද්රණය නොවන අකුරකි. එය යාබද අක්ෂර දෙකක් එකිනෙක හා බැඳම සඳහා මුලිකව භාවිතා කරයි. (බැඳි අකුරු සඳහා සහ විශේෂ අක්ෂරාංග සඳහා භාවිතාවේ. උදා, යංශය, රේපය, රකාරාංශය)
සිංහලේ (දෙමළ, හින්දි ආදී අක්ෂරවල පවා) පණකුරක් නොමැතිව ගතකුරු උච්චාරණය කළ නොහැකි නිසා ගත කුරුවල "අ" ස්වරය නිරායාසෙන්ම ඇතුලත්ව ඇත.
ක = ක් + අ
නමුත් යුනිකේතයේ දී පණකුරු රහිත මූලික ගතකුර සාදා ගැනීමට අක්ෂර දෙකක් යොදාගැනීමට සිදුවේ.
ක +් = ක්
0D9A 0DCA
එනම් ' ක් ' යනු එක් අක්ෂරයක් නොව අක්ෂර දෙකකි. මෙසේ සියළුම ගතකුරු කොම්බුව හා සියළුම පිලි සමග සංයෝගවී සිංහල අක්ෂරයක් සාදාගත හැක.
සිංහල (දෙමළ, හින්දි…) යුනිකේත හෝඩියේ දී සියළුම ගතකුරු ස්වර-සංකේත සමග සංයොජනය මගින් නව අක්ෂරය ලබාගත හැකි. ඒ අනුව සිංහල යුනිකේතයේ දී යම් අක්ෂරයක් සාදාගැනීමට යුනිකේත අක්ෂර එකක් හෝ කීපයක් එකතු කර ගත යුතුවේ. උදාහරණයක් ලෙස. මා, මැ, මෑ, මු, මූ, මෙ, මේ, මො, මෝ යන අක්ෂර සෑදීම සඳහා ම අක්ෂරයට පසුව පිලිවෙලින් ා, ැ, ෑ, ු, ූ, ෙ, ේ, ො, ෝ යන අක්ෂර එක් කළ යුතුය.
සෑම විටම ස්වර සංකේතයක් යෙදෙන විට ගතකුර සඳහා නිරායාසයෙන් අන්තර්ගතව තිබුනු අ ස්වරය ලොප් වෙන අතර එම ස්වර-සංකේතය මගින්යෙදන ස්වරය එකතු වේ.
ක + ා = කා
මෙසේ සංයෝග වන අක්ෂර නිවැරදිව දැක්වීම සඳහා පද්ධතිය මගින් පහසුකම් සැලසිය යුතුය. සමහ පැරණි පද්ධති සහ පරිගණක භාෂාවන් යුනිකේත අක්ෂර නිවැරදිව නොදක්වනුයේ හෝ සහය නොදක්වනු යේ මේ හේතුව නිසා ය. වින්ඩෝස් පද්ධතිය සඳහා Uniscriber නැමැති විශේෂ යෙදුමද ලිනක්ස් පද්ධති සඳහා Pango, QT, ICU ආදී විශේෂ යෙදුම්ද ඇපල් මැක් පද්ධති සඳහා ඕපන්ටයිප් සහ ඒඒටී නිරූපිතය ද (Opentype specification/ AAT) මේ සඳහා භාවිතා වේ.
සිංහලයේ දී කිසිම විටක කොම්බුව හා පිලි තනිව නොයෙදේ. කිසියම් ගතකුරුක් හා එක්ව නව අක්ෂරයක් සෑදීම සඳහා භාවිතා කරයි. යුනිකේතයේ දී පිලි හා කොම්බුව සඳහා යෙදන හැඩයට නොව එය යෙදෙන ස්වරයට සකසා ඇත. උදාහරණයක් ලෙස සිංහලයේ කෙටි පාපිල්ල ආකාර දෙකකට යෙදේ. 'පු' 'මු' ආදී අක්ෂර සඳහා එක ක්රමයකටද 'කු' 'තු' 'ගු' ආදී අක්ෂර සඳහා තවත් ආකරයක කෙටි පාපිල්ලක් ද භාවිතාවේ. නමුත් සිංහල යුනිකේතයේ අඩංගු වනුයේ එක පාපිල්ලකි. කෙසේ වුවත් යුනිකේත දර්ශකය මගින් එය නිවැරදිව පෙන්වන කරන නිසා ගැටළුවක් ඇති නොවේ.
භාෂාවක් සෑම විටම විද්යානුකූල නොවේ. සමහර අවස්ථාවල සම්මතයෙන් ඔබ්බට යන අවස්ථා නැතහොත් ව්යතිරේක (exception) ඇත. තාක්ෂණ ක්රමවේද ද ඒවා සමග ගලපාගන්නට සිදු වේ. මේ සිංහල යුනිකේතයේ ඇති. එවන් අවස්ථා කිපයක්.
සාමානයෙන් අප 'ළු' (මූර්ධජ ළුයන්න)එක අක්ෂරයක් ලෙස සිතුවද එය 'ළ්' සහ 'උ' යන අක්ෂර දෙක(මූලික ගතකුර සහ ස්වරය) එක්ව සෑදී ඇත. 'ඒ' ආකාරයටම 'ළූ' යන අක්ෂර සඳහා 'ළ්' සහ 'ඌ' යන අක්ෂර දෙක එක් වී සෑදෙයි. නමුත් සාමාන්යෙන් අපි අක්ෂර සංයෝගයේදී ස්වර අක්ෂරය වෙනුවට ස්වර සංකේතය යොදාගන්නා නිසා 'උ' ස්වරය සඳහා ු ස්වර සංකේතය ද 'ඌ' ස්වරය සඳහා ූ ස්වර සංකේතය ද යොදාගනී. ඒ අනුව;
ළ + ු = ළු
ළ + ූ = ළූ
'රු' අක්ෂරය 'ර්' සහ 'උ' යන සංයෝගයෙන් ද 'රූ' අක්ෂරය 'ර්' සහ 'ඌ' යන සංයෝගයෙන් ද දක්වන මුත් සිංහලෙයේ ලිවීමේදී කෙටි ඇදය(ැ) හා දීර්ඝ ඇදය(ෑ) මෙහිදී භාවිතා වනුයේ 'උ' සහ 'ඌ' ස්වරය වෙනුවටය. නමුත් සාමානයෙන් කෙටි ඇදය(ැ) සහ දීර්ඝ ඇදය(ෑ) බාවිතා වනුයේ පිලිවෙලින් 'ඇ' සහ 'ඈ' ස්වර දෙක වෙනුවටය. යුනිකේතයේ දී බෙදා වෙන්කර(sort) දැක්වී මේ පහසුව සඳහා 'රු' සහ 'රූ' අක්ෂර දෙක ලිවීම සඳහා කෙටි පාපිල්ල(ු) සහ දීර්ඝ පාපිල්ල(ූ) භාවිතා කරයි. කෙසේවුව ද යුනිකේත දර්ෂකය මගින් මෙය නිවැරදිව දක්වයි.
ර + ු = රු
ර + ූ = රූ
මේ ආකරයට 'රැ' සහ 'රෑ' අක්ෂර දෙක සඳහා යුනිකේතයේ දී 'රැ' සඳහා 'ර' සහ ඇල පිල්ල(ැ) ද 'රෑ' සඳහා 'ර' සහ දීර්ඝ ඇද පිල්ල(ෑ) ද භාවිතා කරයි.
ර + ැ = රැ
ර + ෑ = රෑ
සිංහලයේ කොම්බුව(ෙ) යෙදෙනුයේ 'එ' ස්වරය වෙනුවටයි. අනෙකුත් සියලුම පිලි අකුරට පසුව හෝ උඩින් හෝ යටින් හෝ යෙදෙන මුත් කොම්බුව යෙදෙනුයේ ගතකුරට පෙරයි. නමුත් යුනිකේතයේ කොම්බුවද යෙදෙනෙ අදාල ගතකුරට පසුවයි. එය එසේ සිදුකරනුයේ බෙදා වෙන්කර (sort) දැක්වීමේ පහසුවටයි. කෙසේ වුවත් අප අකුරකට පසුව යොදන කොම්බුව යුනිකේත දර්ෂකය මගින් නිවැරදිව දක්වයි.
ෙ + ම → ම + ෙ = මෙ
තල්පත් වල හල් අක්ෂරය ලිවීම අපහසු වීම නිසා හල් කිරීම වෙනුවට බැඳි අකුරු ලීවීම ඇරඹුනු බවට විශ්වාස කෙරේ. කක්ෂය යන්න කක්ෂය ලෙසද ලිවිය හැක වෙනසකට ඇත්තේ ක්ෂ යන අක්ෂර දෙක ක්ෂ ලෙස බැඳිව ලියා තිබීමයි.(ඔබගේ පද්ධතියේ නිවැරදිව යුනිකේත දර්ෂනය නොවේ නම් කක්ෂය හා කක්ෂය වචන දෙකම එකම ආකාරයට දිස්විය හැක.) යුනිකේතයේදී අක්ෂර දෙකක් බැඳිම සඳහා මූලික ගතකුරට(ගතකුර සහ හල් කිරීම) පසුව ZWJ නම් විශේෂ අක්ෂරය ද ඉන් පසුව බැඳ ලිවිය යුතු ගතකුරද ලිවිය යුතුය.
උදාහරණ:
ක + ් + ෂ = ක්ෂ
0D9A 0DCA 0DC2
ක + ් + ZWJ + ෂ = ක්ෂ
0D9A 0DCA 200D 0DC2
යංසය යනු හල් අකුරකට පසුව යෙදන 'ය' අක්ෂරය වෙනුවට යෙදදෙන අක්ෂරයකි. යංසය ලිවීම සඳහා මූලික ගතකුරකට(ගතකුර සමග හල්කිරීම) පසුව ZWJ ද 'ය' අක්ෂරයද යෙදිය යුතුය.
ක + ් + zwj + ය = ක්ය
0D9A 0DCA 200D 0DBA
මූලික ගතකුරකට(ගතකුර සමග හල්කිරීම) ZWJ අක්ෂරය සමග ර ගතකුර එකතු කළ විට රකාරාංශය ලැබෙයි.
ක + ් + zwj + ර = ක්ර
0D9A 0DCA 200D 0DBB