තවත් පොඩි ප්රශ්නයක්..
ඇබ්ස්ට්රෑක්ට් අවුල නම් ලිහාගතිමි... උදව් කල සැමට ස්තූතියි...
දැන් තියෙන ප්රශ්නෙ කොහොමද ට්රාන්ස්ලිටරේශන් සොෆ්ට්වෙයා එකක් වැඩ කරන්නෙ ? සරල SendKeys.Send("texthere"); කියන මෙතඩ් එක ගමු...
අපිට ඕනෙ a ගැහුවොත් "අ" යන්න සහ දෙපාරක් "aa" ගැහුවොත් "ආ" යන්න සෙන්ඩ් කරන්න..
මට දැනෙන තේරෙන තරමින් ඕක කරගන්න පුළුවන් මෙහෙම.. ටයිප් කරන ඔක්කොම ඇල්ෆබටිකල් කීස් ටික ඩිටෙක්ට් කරගෙන ඒව ස්ට්රින්ග් එකකට ඇඩ් කරනව... ඒ ස්ට්රින්ග් එක string original; කියල ගමු... ඊට පස්සෙ string sinhala; කියල එකක් හදාගෙන...
sinhala = sinhala.Replace("aa", "ආ");
sinhala = sinhala.Replace("a", "අ");
වගේ කීස් වැඩි ප්රමාණයක් ඕනෙ වෙන අකුරු ඉස්සෙල්ල ටයිප් කල්ල, අඩුවෙන් ඕනෙ වෙන ඒව අන්තිමට කොටනව.. ඊට පස්සෙ
SendKeys.Send(sinhala);
හරි මොකක් හරි ටෙක්ස්ට් එකක් සිමියුලේට් කරන්න පුළුවන් මෙතඩ් එකක් පාවිච්චි කල්ල සෙන්ඩ් කරනව..
ඒත් මේ ක්රමේදි සිඞ්හල අකුරු ටික සෙන්ඩ් කරන්න වෙන්නෙ අන්තිමට ඔක්කොම ටයිප් කල්ල ඉවර වුනාම.. ටයිප් කරන ගමං රියල් ටයිම් ඩිස්ප්ලේ වෙන්න හදන්න බෑ...
ඒත් එහෙම රියල් ටයිම් සෙන්ඩ් වෙන ඇප්ලිකේශන්ස් තියෙනව..
ඒ ඇප්ලිකේශන්ස් වලිං එහෙම පුළුවන් වෙන්න හදල තියෙන්නෙ කොහොමද ?
යංතං කන්සෙප්ට් එක ගැන අදහසක් දියංකො...
Realtime translitarate වෙන්න නම් Text Field එකේ KeyChange event එකේදි Translitaration එක කරලා Result එක පෙන්නන Field එකට සෙට් කරා නම් හරි මෙතන තියනවා ucsc real time unicode converter එකේ කෝඩ් එක ඒක බැලුවනම් කරන විදිය තේරුම් ගන්න පුලුවන් හැබැයි මේ කෝඩ් එක තව ඔප්ටිමයිස් කරන්න පුලුවන් මේකේ තියන ලොකුම අවුල තමයි ටයිප් කරගෙන යද්දි කලින් Translitarate කරපු ටිකත් ආපහු Translitarate කරනවා ඒක ගොඩක් performance බහින වැඩක් මොබයිල් වල එහෙම රියල් ටයිම් වැඩ කරන්නෙ නැහැ ටෙක්ස්ට් එක දිග වුනාම ලොකු Delay එකක් එනවා ඒක හදන්න පුලුවන්
<!-- Begin
var text;
var nVowels;
var consonants= new Array()
var consonantsUni= new Array()
var vowels= new Array()
var vowelsUni= new Array()
var vowelModifiersUni= new Array()
var specialConsonants= new Array()
var specialConsonantsUni= new Array()
var specialCharUni= new Array()
var specialChar= new Array()
vowelsUni[0]='ඌ'; vowels[0]='oo'; vowelModifiersUni[0]='ූ';
vowelsUni[1]='ඕ'; vowels[1]='o\\)'; vowelModifiersUni[1]='ෝ';
vowelsUni[2]='ඕ'; vowels[2]='oe'; vowelModifiersUni[2]='ෝ';
vowelsUni[3]='ආ'; vowels[3]='aa'; vowelModifiersUni[3]='ා';
vowelsUni[4]='ආ'; vowels[4]='a\\)'; vowelModifiersUni[4]='ා';
vowelsUni[5]='ඈ'; vowels[5]='Aa'; vowelModifiersUni[5]='ෑ';
vowelsUni[6]='ඈ'; vowels[6]='A\\)'; vowelModifiersUni[6]='ෑ';
vowelsUni[7]='ඈ'; vowels[7]='ae'; vowelModifiersUni[7]='ෑ';
vowelsUni[8]='ඊ'; vowels[8]='ii'; vowelModifiersUni[8]='ී';
vowelsUni[9]='ඊ'; vowels[9]='i\\)'; vowelModifiersUni[9]='ී';
vowelsUni[10]='ඊ'; vowels[10]='ie'; vowelModifiersUni[10]='ී';
vowelsUni[11]='ඊ'; vowels[11]='ee'; vowelModifiersUni[11]='ී';
vowelsUni[12]='ඒ'; vowels[12]='ea'; vowelModifiersUni[12]='ේ';
vowelsUni[13]='ඒ'; vowels[13]='e\\)'; vowelModifiersUni[13]='ේ';
vowelsUni[14]='ඒ'; vowels[14]='ei'; vowelModifiersUni[14]='ේ';
vowelsUni[15]='ඌ'; vowels[15]='uu'; vowelModifiersUni[15]='ූ';
vowelsUni[16]='ඌ'; vowels[16]='u\\)'; vowelModifiersUni[16]='ූ';
vowelsUni[17]='ඖ'; vowels[17]='au'; vowelModifiersUni[17]='ෞ';
vowelsUni[18]='ඇ'; vowels[18]='/\a'; vowelModifiersUni[18]='ැ';
vowelsUni[19]='අ'; vowels[19]='a'; vowelModifiersUni[19]='';
vowelsUni[20]='ඇ'; vowels[20]='A'; vowelModifiersUni[20]='ැ';
vowelsUni[21]='ඉ'; vowels[21]='i'; vowelModifiersUni[21]='ි';
vowelsUni[22]='එ'; vowels[22]='e'; vowelModifiersUni[22]='ෙ';
vowelsUni[23]='උ'; vowels[23]='u'; vowelModifiersUni[23]='ු';
vowelsUni[24]='ඔ'; vowels[24]='o'; vowelModifiersUni[24]='ො';
vowelsUni[25]='ඓ'; vowels[25]='I'; vowelModifiersUni[25]='ෛ';
nVowels=26;
specialConsonantsUni[0]='ං'; specialConsonants[0]=/\\n/g;
specialConsonantsUni[1]='ඃ'; specialConsonants[1]=/\\h/g;
specialConsonantsUni[2]='ඞ'; specialConsonants[2]=/\\N/g;
specialConsonantsUni[3]='ඍ'; specialConsonants[3]=/\\R/g;
//special characher Repaya
specialConsonantsUni[4]='ර්'+'\u200D'; specialConsonants[4]=/R/g;
specialConsonantsUni[5]='ර්'+'\u200D'; specialConsonants[5]=/\\r/g;
consonantsUni[0]='ඬ'; consonants[0]='nnd';
consonantsUni[1]='ඳ'; consonants[1]='nndh';
consonantsUni[2]='ඟ'; consonants[2]='nng';
consonantsUni[3]='ථ'; consonants[3]='Th';
consonantsUni[4]='ධ'; consonants[4]='Dh';
consonantsUni[5]='ඝ'; consonants[5]='gh';
consonantsUni[6]='ඡ'; consonants[6]='Ch';
consonantsUni[7]='ඵ'; consonants[7]='ph';
consonantsUni[8]='භ'; consonants[8]='bh';
consonantsUni[9]='ශ'; consonants[9]='sh';
consonantsUni[10]='ෂ'; consonants[10]='Sh';
consonantsUni[11]='ඥ'; consonants[11]='GN';
consonantsUni[12]='ඤ'; consonants[12]='KN';
consonantsUni[13]='ළු'; consonants[13]='Lu';
consonantsUni[14]='ද'; consonants[14]='dh';
consonantsUni[15]='ච'; consonants[15]='ch';
consonantsUni[16]='ඛ'; consonants[16]='kh';
consonantsUni[17]='ත'; consonants[17]='th';
consonantsUni[18]='ට'; consonants[18]='t';
consonantsUni[19]='ක'; consonants[19]='k';
consonantsUni[20]='ඩ'; consonants[20]='d';
consonantsUni[21]='න'; consonants[21]='n';
consonantsUni[22]='ප'; consonants[22]='p';
consonantsUni[23]='බ'; consonants[23]='b';
consonantsUni[24]='ම'; consonants[24]='m';
consonantsUni[25]='ය'; consonants[25]='\\u005C' + 'y';
consonantsUni[26]='ය'; consonants[26]='Y';
consonantsUni[27]='ය'; consonants[27]='y';
consonantsUni[28]='ජ'; consonants[28]='j';
consonantsUni[29]='ල'; consonants[29]='l';
consonantsUni[30]='ව'; consonants[30]='v';
consonantsUni[31]='ව'; consonants[31]='w';
consonantsUni[32]='ස'; consonants[32]='s';
consonantsUni[33]='හ'; consonants[33]='h';
consonantsUni[34]='ණ'; consonants[34]='N';
consonantsUni[35]='ළ'; consonants[35]='L';
consonantsUni[36]='ඛ'; consonants[36]='K';
consonantsUni[37]='ඝ'; consonants[37]='G';
consonantsUni[38]='ඨ'; consonants[38]='T';
consonantsUni[39]='ඪ'; consonants[39]='D';
consonantsUni[40]='ඵ'; consonants[40]='P';
consonantsUni[41]='ඹ'; consonants[41]='B';
consonantsUni[42]='ෆ'; consonants[42]='f';
consonantsUni[43]='ඣ'; consonants[43]='q';
consonantsUni[44]='ග'; consonants[44]='g';
//last because we need to ommit this in dealing with Rakaransha
consonantsUni[45]='ර'; consonants[45]='r';
specialCharUni[0]='ෲ'; specialChar[0]='ruu';
specialCharUni[1]='ෘ'; specialChar[1]='ru';
//specialCharUni[2]='්ර'; specialChar[2]='ra';
function startText() {
var s,r,v;
text = document.txtBox.box1.value;
//special consonents
for (var i=0; i<specialConsonants.length; i++){
text = text.replace(specialConsonants
, specialConsonantsUni);
}
//consonents + special Chars
for (var i=0; i<specialCharUni.length; i++){
for (var j=0;j<consonants.length;j++){
s = consonants[j] + specialChar;
v = consonantsUni[j] + specialCharUni;
r = new RegExp(s, "g");
text = text.replace(r, v);
}
}
//consonants + Rakaransha + vowel modifiers
for (var j=0;j<consonants.length;j++){
for (var i=0;i<vowels.length;i++){
s = consonants[j] + "r" + vowels;
v = consonantsUni[j] + "්ර" + vowelModifiersUni;
r = new RegExp(s, "g");
text = text.replace(r, v);
}
s = consonants[j] + "r";
v = consonantsUni[j] + "්ර";
r = new RegExp(s, "g");
text = text.replace(r, v);
}
//consonents + vowel modifiers
for (var i=0;i<consonants.length;i++){
for (var j=0;j<nVowels;j++){
s = consonants+vowels[j];
v = consonantsUni + vowelModifiersUni[j];
r = new RegExp(s, "g");
text = text.replace(r, v);
}
}
//consonents + HAL
for (var i=0; i<consonants.length; i++){
r = new RegExp(consonants, "g");
text = text.replace(r, consonantsUni+"්");
}
//vowels
for (var i=0; i<vowels.length; i++){
r = new RegExp(vowels, "g");
text = text.replace(r, vowelsUni);
}
document.txtBox.box2.value=text;
}
// End -->
document.txtBox.box2.value=text
වෙනුවට text කියන එක return කරා නම් ඔයගෙ return ප්රශ්නේ හරියාවි කියලා හිතනවා මේක javascript වලින් තියෙන්නෙ ඒ වුනාට වෙන language එකකට පෝට් කරන එක හරිම ලේසියි මම මේක බලාගෙන Objective C වලට Convert කරා පැය දෙකක් වගේ ගියේ සේරම optimization වලටත් එක්ක