ലിപ്യന്തരണം

ഇംഗ്ലീഷ് അക്ഷരങ്ങളുപയോഗിച്ച് മലയാളവാക്കുകൾ ടൈപ്പ് ചെയ്യുന്നതിനുള്ള ഒരു ലിപ്യന്തരണ ഉപാധി ഉണ്ടാക്കി. പൂർണ്ണമായും ഒരു പുതിയ സൃഷ്ടിയാണിത്, അതായത് ഇതേ കാര്യം സാധിച്ചുതരുന്ന സമാന ഉപകരണങ്ങളിൽ നിന്നുള്ള കോഡ് ശകലങ്ങൾ ഇതിലേക്ക് കടം കൊണ്ടിട്ടില്ല.

വളരെ ലളിതമായതും പ്രശ്നത്തെ വിഭജിച്ച് പരിഹരിക്കുന്ന രീതീയിലുള്ളതുമായ ഒരു അൽഗോരിതമാണ് പ്രവർത്തനത്തിനായി തിരഞ്ഞെടുത്തിരിക്കുന്നത്. പ്രോഗ്രാമിനെ ലിപ്യന്തരണത്തിന് സഹായിക്കുന്നത് തുടക്കത്തിൽ ചേർത്തിരിക്കുന്ന റെഗുലർ എക്സ്പ്രഷൻ നിയമങ്ങളുടെ ഒരു പട്ടികയാണ് (പ്രോഗ്രാമിലെ ഒരു അസോസിയേറ്റീവ് അറേ). ഏതെങ്കിലും ഒരു ഭാഷയുമായി ബന്ധപ്പെട്ടല്ല ഈ പ്രോഗ്രാം പ്രവർത്തിക്കുന്നത്. ടൈപ്പ് ചെയ്യുന്ന അക്ഷരവും ടൈപ്പ് ചെയ്യുന്ന സ്ഥാനത്ത് നിലവിലുള്ള അക്ഷരങ്ങളും ചേർത്ത് എന്ത് നിയമമാണോ പട്ടികയിലുള്ളത് അതിനനുസരിച്ച് ടെക്സ്റ്റ്ബോസ്കിൽ മാറ്റം വരുത്തുകയാണ് ചെയ്യുന്നത്. അതുകൊണ്ട് തന്നെ പട്ടികയിലെ നിയമങ്ങളിൽ മറ്റ് ഭാഷയിലെ ചിഹ്നങ്ങളാണെങ്കിൽ അതിനനുസരിച്ച് ലിപ്യന്തരണം നടന്നുകൊള്ളും. അതായത് മറ്റ് ഭാഷകളിലേക്കും ഇതുവഴി ലിപ്യന്തരണം സാധ്യമാക്കാം, അതിനാവശ്യമായ നിയമങ്ങളുടെ പട്ടിക തയ്യാറാക്കണമെന്ന് മാത്രം (പട്ടിക എങ്ങനെ തയ്യാറാക്കാം എന്നറിയണമെങ്കിൽ ചോദിക്കുക).

നിലവിൽ മലയാളത്തിനുള്ള പട്ടികയാണ് പ്രോഗ്രാമിൽ ചേർത്തിരിക്കുന്നത്, അതുവഴി മലയാളം ടൈപ്പ് ചെയ്യാനാവും. കീമാനിലൊക്കെ ഉപയോഗിച്ചിരിക്കുന്ന മൊഴി സ്കീമനുസരിച്ചുള്ള ലിപ്യന്തരണമാണ് ഉപയോഗിച്ചിരിക്കുന്നത് (സഹായത്തിന് വിക്കിപീഡിയയിലെ ഈ ചിത്രം കാണുക). ഇഷ്ടമുള്ള ഏത് സ്കീമും പട്ടിക മാറ്റിയെഴുതി നടപ്പിൽ വരുത്താം. എളുപ്പത്തിൽ വെബ്സൈറ്റുകളിൽ ചേർക്കാൻ കഴിയണം എന്ന ഉദ്ദേശ്യത്തോടെയാണ് തയ്യാറാക്കിയിരിക്കുന്നത്, എന്നിരുന്നാലും എല്ലായിപ്പോഴും സാധിക്കണമെന്നില്ല. ഉദാഹരണത്തിന് ഈ ബ്ലോഗിന്റെ തന്നെ കമന്റ് ബോക്സിൽ ഇത് ചേർക്കണമെന്നുണ്ടായിരുന്നു, പക്ഷെ ബ്ലോഗർ അവരുടേതായ കോഡ് കമന്റ്ടെക്സ്റ്റ് ബോക്സിനുവേണ്ടി ഉപയോഗിച്ചതിനാൽ അതു സാധ്യമാകുന്നില്ല. ഈ ബ്ലോഗിലെ തിരച്ചിൽ ബോക്സിലും താഴെ ചേർത്തിരിക്കുന്ന ബോക്സിലും ഇതുപയോഗിച്ച് മലയാളത്തിൽ ടൈപ്പ് ചെയ്യാനുള്ള സൗകര്യം ചേർത്തിട്ടുണ്ട്.

നിലവിലെ പട്ടികയിൽ മൊഴി സ്കീമിൽ നിന്നും വ്യത്യസ്തമായി ഇതിലുൾപ്പെടുത്തിയിരിക്കുന്ന ഒരു സവിശേഷത നിലവിലെ പട്ടികയിൽ ഉൾകൊള്ളിച്ചിട്ടുണ്ട്. വ്യജ്ഞനങ്ങൾക്ക് തൊട്ടുശേഷം തന്നെ സ്വരങ്ങൾ ചേർക്കാനുള്ള സൗകര്യമാണത്. ഇതുവഴി പ്രധാനമായും ലക്ഷ്യം വെക്കുന്നത് അന്യഭാഷാപദങ്ങളെയാണ് ഉദാഹരണത്തിന് "ഖുർആൻ" എന്ന അറബി പദമെടുക്കുക കീമാനിൽ ഇതു നമ്മൾ ചേർക്കുക ഇങ്ങനെയാണ് 'khur_An', അതായത് ഖുരാൻ എന്നായിപ്പോകാതിരിക്കാൻ 'ഖുർ' എന്ന് ചേർത്തതിനുശേഷം അണ്ടർസ്കോൾ കീ ഉപയോഗിച്ച് ZWNJ ചേർത്തതിനുശേഷം ‘ആൻ’ എന്ന് ടൈപ്പ് ചെയ്യുന്നു, അപ്പോൾ പദത്തിലുണ്ടാവുക ‘ഖ’, ‘ു‘, ‘ർ’, ZWNJ,’ആ’, ‘ൻ’ എന്നീ ചിഹ്നങ്ങളായിരിക്കും. പക്ഷെ ഇവിടെ ‘ർ’, ‘ആ’ എന്നീ പദങ്ങൾക്കിടയിലുള്ള ZWNJ അനാവശ്യമാണ്. ഈ പ്രോഗ്രാം വഴിയും ‘ഖുർആൻ‘ ടൈപ്പ് ചെയ്യുക ‘khur_An' എന്നുതന്നെയാണ് പക്ഷെ അങ്ങനെ ടൈപ്പ് ചെയ്താലും പദത്തിനിടയിൽ ZWNJ വരില്ല, പ്രോഗ്രാം അതിനെ നീക്കം ചെയ്തുകൊള്ളും. ചുരുക്കിപ്പറഞ്ഞാൽ ZWNJ ന് ശേഷം ഒരു സ്വരമാണ് ടൈപ്പ് ചെയ്യപ്പെടുന്നതെങ്കിൽ ആ ZWNJ നീക്കം ചെയ്യപ്പെടും.

പ്രോഗ്രാമിന്റെ ജാവാസ്ക്രിപ്റ്റ് ഫയൽ ഡൗൺലോഡ് ചെയ്യുവാൻ ഇവിടെ ഞെക്കുക. ഉപയോഗിക്കുന്നതിനായി വെബ് പേജിൽ താഴെ നൽകിയതിനു സമാനമായി ചേർക്കുക.

window.onload = function() {
  // ലിപ്യന്തരണം സാധ്യമാക്കേണ്ട എല്ലാ ടെക്സ്റ്റ്ബോക്സിന്റെയും ID കൾ ഇവിടെ നൽകുക
  transliterate("tb1","tb2");
   // ലിപ്യന്തരണം സജീവമാക്കാനും പ്രവർത്തന രഹിതമാക്കാനും സഹായിക്കുന്ന ചെക്ക്ബോക്സ്
   // ചേർക്കേണ്ടതായ ടെക്സ്ബോക്സുകളുടെ ID കൾ ഇവിടെ നൽകുക
  addTransliterationOption("tb1");
  // ഇതിനു ശേഷം ചേർക്കുന്ന ചെക്ക്ബോക്സുകളെല്ലാം അതാത് ടെക്സ്റ്റ്ബോക്സുകളുടെ
  // മീതെയായിരിക്കും വരിക
  addTransliterationOption("tb2");}
  TO_POSITION = "before";

ഫയർഫോക്സിലാണ് (അപ്ഡേറ്റ് ചെയ്യുന്ന സ്വഭാവമുള്ളതുകൊണ്ട് അവസാന പതിപ്പായിരിക്കും) പ്രധാനമായും ടെസ്റ്റുകൾ നടത്തിയത്. മറ്റ് ബ്രൗസറുകളിൽ അങ്ങനെ പരീക്ഷിച്ചു നോക്കിയില്ല. ഇന്റർനെറ്റ് എക്സ്പ്ലോറർ കുഴപ്പമുണ്ടാക്കും എന്നുറപ്പാണ്. സാധ്യമാകുമെങ്കിൽ താഴെയുള്ള ടെക്സ്റ്റ്ബോക്സിൽ (വ്യത്യസ്ത ബ്രൗസറുകളിൽ) ടൈപ്പ് ചെയ്തുനോക്കി എല്ലാവാക്കുകളും ടൈപ്പ് ചെയ്യാനാവുന്നുണ്ടോയെന്നും, ഇനിയെന്തൊക്കെ ചേർക്കേണ്ടതുണ്ട്/ചേർത്താൽ കൊള്ളാം, എന്തൊക്കെ കുഴപ്പങ്ങളുണ്ട് എന്നൊക്കെ അറിയിക്കുക.

കുറിപ്പ്: ബ്ലോഗിലെ ലിപ്യന്തരണത്തിന് വികസന പതിപ്പ് നേരിട്ടുപയോഗിക്കുകയാണ്, അതിനാൽ തന്നെ ഞാൻ പ്രോഗ്രാമിൽ മാറ്റങ്ങൾ വരുത്തിയാൽ ഇവിടെയും നിലവിൽ വരുന്നതാണ് (ബ്രൗസറിന്റെ കാഷെ ക്ലിയർ ചെയ്യേണ്ടി വരും).