General Overview:
Need for phonetic editing has its roots in different keyboard layouts developed and used by different users and multiple fonts which in combination failed to produce unique easy to use compatible typing/editing solution. The problem is more in the area of software solutions being developed for different Indic Languages. Web based Direct editing or phonetic editing is an implementation which allows user to type in the context using phonetic key patterns across different keyboards, browsers and different Indic scripts.
What is gamabhana?
gamabhana is an open source implementation that uses purely client side java script to enable phonetics in editable html tags such as div (not editable in mozilla firefox) , iframe, input, textarea, document so that you can type in the context phonetically in the selected Indic script with transliteration capabilities that support unicode fonts with the help of pre-designed gamabhana maps.
With gamabhana library and gamabhana phonetic maps you can:
- Attach phonetics to editable html tags such as iframe and/or input (single line) and/or textarea and/or document.
- Design your own transliteration maps for any language/script.
- Achieve Unicode support across browsers, applications, platforms.
- Type in the context phonetically ( direct input method) in IE ( V 5 above) and Firefox Mozilla.
How does gamabhan work?
gamabhana - High Level Design:
+======================+
| Transliteration Map |
+======================+
key- ^ unicode
sequence v sequence
+-------------------------------------------+
| gamabhana phonetic parser |
+-------------------------------------------+
key ^ v result-key
+----------------------------------------------------------------------------+ unicode phonem ___________________
| customizable Special Editing Engine |------------------------------------------------------------------------->| E |
+----------------------------------------------------------------------------+ | d |
keyboard event ^ v [return-event] | i |
+=================================+ phonems that require no parsing | t |
| gamabhana keyboard handler | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >| b |
+=================================+ | l |
keyboard event ^ v [return-event] | e |
+=================================+ event handling | |
| gamabhana event listener |<========================================= | t |
+=================================+ object binding: gamabhanaPhoneticHandler | a |
| g |
gamabhana is easy to customize if you are aware of keyboard event handling capabilities of each browser.
Currently it supports Internet Explorer ( V. 5 onwards) and mozilla Firefox.
The new version uses hybrid approach that leads to object oriented paradigm with prototyping.
New prototype facilitates developer to use, extend and expand JavaScript class to suit different variations.
Release notes, bug reports on versions prior to 07.10.14 are available here.
Create object for gamabhana phonetic handler. It attaches phonetics to input editable html element along with specified primary, secondary languages and keyboard layout. 07.10.14 SetLayOut(GivLayOut) usage: SwapLanguage() usage: GphMasterSwapLang() usage: How do I enhance gamabhana for new languages/scripts? For More Details:
Function
purpose
Version
gamabhanaPhoneticHandler
( GivEleId, GivLang, GivSecLang, GivLayout )
usage:
gphObj= new gamabhanaPhoneticHandler('wysiwygtextarea1','__devanagari__','__roman__','#gamabhana#');
This function accepts four parameters (all are mandatory)
GivEleId: id of the editable html tag
GivLang: Valid value for primary script/language
GivSecLang: Valid value for secondary script/language
GivLayout: valid value for Keyboard layout
MapMyLayOut( gphObj,GivLayOutName,GivMapPtr)
usage:
gphObj.MapMyLayOut(gphObj,'#myLayOut#',__MYL00);Relates User defined keyboard layout for specific gphObject to array by name (userdefined transliteration-map)
07.10.14
gphObj.SetLayOut('#gamabhana#');Sets keyboard Layout for use
07.10.14
SetSecLanguage(GivLang)
usage:
gphObj.SetSecLanguage('__telugu__');Sets secondary language
07.10.14
SetPriLanguage(GivLang)
usage:
gphObj.SetPriLanguage('__gujarati__');Sets primary language
07.10.14
gphObj.SwapLanguage();Swaps through primary and secondary language
07.10.14
GphRegisterForMasterUpdates(gphObj)
usage:
GphRegisterForMasterUpdates(gphObj1);
GphRegisterForMasterUpdates(gphObj2);Register the gphObject for master updates ( These are the updates on primary, seondary languages, language swapping, keyboard layout, refreshing states for registered objects)
07.10.14
GphUnRegisterForMasterUpdates(gphObj)
usage:
GphUnRegisterForMasterUpdates(gphObj1);
GphUnRegisterForMasterUpdates(gphObj2);Unregisters the gphObject that was earlier registered for master updates
07.10.14
GphMasterStateRefresh()
usage:
GphMasterStateRefresh();Refreshes states for registered gphObjects
07.10.14
GphMasterPriLangUpdate(GivLang)
usage:
GphMasterPriLangUpdate('__urdu__');Sets primary language provided in input for all registered objects for master update services
07.10.14
GphMasterSecLangUpdate(GivLang)
usage:
GphMaterSecLangUpdate('__bengoli__');Sets secondary language provided in input for all registered objects for master update services
07.10.14
GphMasterLayoutUpdate(GivLayOut)
usage:
GphMasterLayoutUpdate('#fontfreedom#');Sets keyboard layout provided in input for all registered objects for master update services
07.10.14
GphMasterSwapLang();Swaps through primary and secondary languages for all registered objects for master update services
07.10.14
UpdateAjaxSpellCheck(GivMode)
usage:
UpdateAjaxSpellCheck(true);
This service enables/disables ajax based spell check feature available under shabdasampada
For more details please view demo and its source code.
Developers would need to include 3 javascripts from shabdasampada and then call ajaxed javascript function with mouse even as input.Enable/Disable ajax based spell check for marathi
07.12.16
Technical Upgrade
Fixed table creation issue for firefox, enhanced GUI
08.02.20
gamabhana Pro and Lite updates
technical upgrades for gamabhana Lite and Pro
08.11.29
How can I use gamabhana in my web based applications?
<script language="JavaScript" type="text/javascript" src="./gamabhana_js/GA1000.js"></script>
<script language="JavaScript" type="text/javascript" src="./gamabhana_js/GA0010.js"></script>
<script language="JavaScript" type="text/javascript" src="./gamabhana_js/gamabhanaLib.js"></script>
gphObj1 = new gamabhanaPhoneticHandler (Id of editable html tag, primaryLanguageString, secondaryLanguageString, KBLayOutString);
'__devanagari__'
'__bengoli__'
'__gurumukhi__'
'__gujarati__'
'__kannada__'
'__malayalam__'
'__telugu__'
'__urdu__'
'__roman__'
'#gamabhana#'
e.g.
var GgaNepaliMap=new Array();
// phonetic Nepali equivalents
GgaNepaliMap['k'] = "\uhexunicode";
GgaNepaliMap['ka'] = "\uhexunicode\uhexunicode";
e.t.c. an so on...
josh9383@gmail.com
or contact : 09869184o6o

