Last active
March 29, 2018 18:20
-
-
Save junaidpv/867882 to your computer and use it in GitHub Desktop.
Mozhi Malayalam rules for Keymagic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| @NAME = "Malayalam Mozhi" | |
| @DESCRIPTION = "Wikipedia a Mozhi" | |
| @TRACK_CAPSLOCK = "TRUE" | |
| @EAT_ALL_UNUSED_KEYS = "FALSE" | |
| @US_LAYOUT_BASED = "TRUE" | |
| */ | |
| // author: Junaid (http://junaid.site) | |
| // version: 1.1 | |
| // License: GPLv3, CC-SA-BY 3.0 | |
| $consonants = 'കഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരലവശഷസഹളഴറ' | |
| $vowels = 'അആഇഈഉഊഋൠഌൡഎഏഐഒഓഔ' | |
| $vowelsigns = 'ാിീുൂൃൄൢൣെേൈൊോൗ' | |
| // special for m | |
| $consonants[*] + 'm' => $1 + 'ം' | |
| $vowels[*] + 'm' => $1 + 'ം' | |
| $consonants[*] + $vowelsigns[*] + 'm' => $1 + $2 + 'ം' | |
| $chills = 'ൺൻർൽൾൿം' | |
| $chillSource = 'NnrlLcm' | |
| $chillBases = 'ണനരലളകമ' | |
| // produce chill | |
| $chillSource[*] => $chills[$1] | |
| $chills[*] + U200C + $chillSource[*] => $1 + $chills[$3] | |
| // chill breakers | |
| $chills[*] + '~' => $chillBases[$1] + '്' | |
| $chills[*] + 'a' => $chillBases[$1] | |
| $chills[*] + 'A' => $chillBases[$1] + 'ാ' | |
| $chills[*] + 'i' => $chillBases[$1] + 'ി' | |
| $chills[*] + 'I' => $chillBases[$1] + 'ീ' | |
| $chills[*] + 'u' => $chillBases[$1] + 'ു' | |
| $chills[*] + 'U' => $chillBases[$1] + 'ൂ' | |
| $chills[*] + 'R' => $chillBases[$1] + 'ൃ' | |
| $chills[*] + 'e' => $chillBases[$1] + 'െ' | |
| $chills[*] + 'E' => $chillBases[$1] + 'േ' | |
| $chills[*] + 'E' => $chillBases[$1] + 'േ' | |
| $chills[*] + 'o' => $chillBases[$1] + 'ൊ' | |
| $chills[*] + 'O' => $chillBases[$1] + 'ോ' | |
| $chills[*] + 'y' + 'R' => $chillBases[$1] + '്യ്' | |
| $chills[*] + '\\' + '\\' => $chillBases[$1] + '്' + U200D | |
| // produce vowels | |
| $vDirectSmallValues = 'അഎഇഒഉ' | |
| $vDirectSmallKeys = 'aeiou' | |
| $vDirectCapsValues = 'ആഏഐഓഋഊ' | |
| $vDirectCapsKeys = 'AEIORU' | |
| $vDirectSmallKeys[*] => $vDirectSmallValues[$1] | |
| $chills[*] + U200C + $vDirectSmallKeys[*] => $1 + $vDirectSmallValues[$3] | |
| $vDirectCapsKeys[*] => $vDirectCapsValues[$1] | |
| $chills[*] + U200C + $vDirectCapsKeys[*] => $1 + $vDirectCapsValues[$3] | |
| 'അ' + 'a' => 'ആ' | |
| 'അ' + 'i' => 'ഐ' | |
| 'അ' + 'u' => 'ഔ' | |
| 'ഇ' + 'i' => 'ഈ' | |
| 'ഉ' + 'u' => 'ഊ' | |
| 'ഊ' + 'o' => 'ഊഊ' | |
| 'ഋ' + 'R' => 'ൠ' | |
| 'ഋ' + 'a' => 'റ' | |
| 'ഋ' + 'A' => 'റാ' | |
| 'ഋ' + 'i' => 'റി' | |
| 'ഋ' + 'I' => 'റീ' | |
| 'ഋ' + 'u' => 'റു' | |
| 'ഋ' + 'U' => 'റൂ' | |
| 'ഋ' + 'e' => 'റെ' | |
| 'ഋ' + 'E' => 'റേ' | |
| 'ഋ' + 'o' => 'റൊ' | |
| 'ഋ' + 'O' => 'റോ' | |
| 'ഋ' + '~' => 'റ്' | |
| 'ഌ' + 'l' => 'ൡ' | |
| 'എ' + 'e' => 'ഈ' | |
| 'ഒ' + 'o' => 'ഊ' | |
| 'ാ' + 'a' => 'ാാ' | |
| 'ീ' + 'i' => 'ീീ' | |
| 'ൂ' + 'u' => 'ൂൂ' | |
| 'ൂ' + 'o' => 'ൂൂ' | |
| 'ൄ' + 'R' => 'ൄൄ' | |
| 'േ' + 'E' => 'േേ' | |
| 'ോ' + 'O' => 'ോോ' | |
| 'ൗ' + 'u' => 'ൗൗ' | |
| // vowel signs | |
| 'മ്' + '\\' => 'ം' | |
| 'ആ' + '\\' => 'ാ' | |
| 'ഇ' + '\\' => 'ി' | |
| 'ഈ' + '\\' => 'ീ' | |
| 'ഉ' + '\\' => 'ു' | |
| 'ഊ' + '\\' => 'ൂ' | |
| 'ഋ' + '\\' => 'ൃ' | |
| 'ൠ' + '\\' => 'ൄ' | |
| 'എ' + '\\' => 'െ' | |
| 'ഏ' + '\\' => 'േ' | |
| 'ഐ' + '\\' => 'ൈ' | |
| 'ഒ' + '\\' => 'ൊ' | |
| 'ഓ' + '\\' => 'ോ' | |
| 'ഔ' + '\\' => 'ൗ' | |
| 'ൗ' + '\\' => 'ൌ' | |
| 'ഌ' + '\\' => 'ൢ' | |
| 'ൡ' + '\\' => 'ൣ' | |
| // produce consonants | |
| $thinConsonants = 'കഗചജടഡതദപബസശ' | |
| $thickConsonants = 'ഖഘഛഝഠഢഥധഫഭഷഴ' | |
| $cDirectSmallValues = 'ബദഫഗഹജകമപസവവയശ' | |
| $cDirectSmallKeys = 'bdfghjkmpsvwyz' | |
| $cDirectCapsValues = 'ഡശട' | |
| $cDirectCapsKeys = 'DST' | |
| $thinConsonants[*] + '്' + 'h' => $thickConsonants[$1] + '്' | |
| $consonants[*] + '്' + 'a' => $1 | |
| $consonants[*] + '്' + 'A' => $1 + 'ാ' | |
| $consonants[*] + 'a' => $1 + 'ാ' | |
| $consonants[*] + '്' + 'i' => $1 + 'ി' | |
| $consonants[*] + 'ി' + 'i' => $1 + 'ീ' | |
| $consonants[*] + '്' + 'I' => $1 + 'ീ' | |
| $consonants[*] + 'െ' + 'e' => $1 + 'ീ' | |
| $consonants[*] + '്' + 'u' => $1 + 'ു' | |
| $consonants[*] + 'ൊ' + 'o' => $1 + 'ൂ' | |
| $consonants[*] + 'ു' + 'u' => $1 + 'ൂ' | |
| $consonants[*] + '്' + 'U' => $1 + 'ൂ' | |
| $consonants[*] + '്' + 'R' => $1 + 'ൃ' | |
| $consonants[*] + 'ൃ' + 'R' => $1 + 'ൄ' | |
| $consonants[*] + '്' + 'e' => $1 + 'െ' | |
| $consonants[*] + '്' + 'E' => $1 + 'േ' | |
| $consonants[*] + 'i' => $1 + 'ൈ' | |
| $consonants[*] + '്' + 'o' => $1 + 'ൊ' | |
| $consonants[*] + '്' + 'O' => $1 + 'ോ' | |
| $consonants[*] + 'u' => $1 + 'ൗ' | |
| $cDirectSmallKeys[*] => $cDirectSmallValues[$1] + '്' | |
| $chills[*] + U200C + $cDirectSmallKeys[*] => $1 + $cDirectSmallValues[$3] + '്' | |
| $cDirectCapsKeys[*] => $cDirectCapsValues[$1] + '്' | |
| $chills[*] + U200C + $cDirectCapsKeys[*] => $1 + $cDirectCapsValues[$3] + '്' | |
| $nonSa = 'കഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരലവശഷഹളഴറ' | |
| 'ൻ' + 'g' => 'ങ്' | |
| 'ൿ' + 'h' => 'ച്' | |
| 'ം' + 'm' => 'മ്മ്' | |
| $nonSa[*] + 'ം' + 'r' => $1 + 'മ്ര്' | |
| 'ം' + 'p' => 'മ്പ്' | |
| $nonSa[*] + 'ം' + 'l' => $1 + 'മ്ല്' | |
| $nonSa[*] + 'ം' + 'L' => $1 + 'മ്ല്' + ('capl') | |
| $nonSa[*] + 'ം' + 'n' => $1 + 'മ്ന്' | |
| $nonSa[*] + 'ം' + 'y' => $1 + 'മ്യ്' | |
| $vowelsigns[*] + 'ം' + 'y' => $1 + 'മ്യ്' | |
| // ['ൻൿh','nc','ഞ്ച്'], | |
| 'ൻൿ' + 'h' => 'ഞ്ച്' | |
| // ['ൿh','c', 'ച്'], | |
| // ['ക്ക്h','cc', 'ച്ച്'], | |
| 'ക്ക്' + 'h' + ('doublec') => 'ച്ച്' | |
| // ['ല്പ്p','lp','ൽപ്പ്'], | |
| 'ല്പ്' + 'p' => 'ൽപ്പ്' | |
| // ['([ക-ഹ])്ല്l', 'L', '$2\u0d62'], | |
| $consonants[*] + '്ല്' + 'l' + ('capl') => $1 + U0D62 | |
| $escapable = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\>_~' | |
| $escapable + '\\' => $1 | |
| 'ന്ന്' + 'j' => 'ഞ്ഞ്' | |
| 'ന്ന്' + 'g' => 'ങ്ങ്' | |
| 'റ്റ്' + 'h' => 'ത്' | |
| 'റ്റ്' + 't' => 'ട്ട്' | |
| 'ന്റ്' + 'h' => 'ന്ത്' | |
| $consonants[*] + U0D62 + 'l' => $1 + U0D63 | |
| // ['([അ-ഊഌഎ-ഐഒ-ഹ])([ഽ-ൂെ-ൌൗ])+R', '', '$2$3റ്'], | |
| $consonants[*] + 'ൃ' + 'a' => $1 + '്ര' | |
| $consonants[*] + 'ൃ' + 'A' => $1 + '്രാ' | |
| $consonants[*] + 'ൃ' + 'i' => $1 + '്രി' | |
| $consonants[*] + 'ൃ' + 'I' => $1 + '്രീ' | |
| $consonants[*] + 'ൃ' + 'u' => $1 + '്രു' | |
| $consonants[*] + 'ൃ' + 'U' => $1 + '്രൂ' | |
| $consonants[*] + 'ൃ' + 'e' => $1 + '്രെ' | |
| $consonants[*] + 'ൃ' + 'E' => $1 + '്രേ' | |
| $consonants[*] + 'ൃ' + 'o' => $1 + '്രൊ' | |
| $consonants[*] + 'ൃ' + 'O' => $1 + '്രോ' | |
| $consonants[*] + '്' + 'l' => $1 + '്ല്' + ('capl') | |
| $consonants[*] + '്' + 'L' => $1 + '്ല്' + ('capl') | |
| 'ൺ' + 'N' => 'ണ്ണ്' | |
| 'ൺ' + 'T' => 'ണ്ട്' | |
| 'ൺ' + 'D' => 'ണ്ഡ്' | |
| 'ൺ' + 'v' => 'ണ്വ്' | |
| 'ൺ' + 'm' => 'ണ്മ്' | |
| 'ൻ' + 'r' => 'ന്ര്' | |
| 'ൻ' + 'k' => 'ങ്ക്' | |
| 'ൻ' + 'j' => 'ഞ്' | |
| 'ൻ' + 'n' => 'ന്ന്' | |
| 'ൻ' + 'd' => 'ന്ദ്' | |
| 'ൻ' + 't' => 'ന്റ്' | |
| 'ൻ' + 'm' => 'ന്മ്' | |
| 'ൻ' + 'L' => 'ന്ല്' + ('capl') | |
| 'ൻ' + 'v' => 'ന്വ്' | |
| 'ർ' + 'r' => 'റ്' | |
| 'ർ' + 'y' => 'ര്യ്' | |
| 'ൽ' + 'l' => 'ല്ല്' | |
| 'ൽ' + 'L' => 'ല്ല്' + ('capl') | |
| 'ൽ' + 'p' => 'ല്പ്' | |
| 'ൽ' + 'v' => 'ല്വ്' | |
| 'ൾ' + 'L' => 'ള്ള്' + ('capl') | |
| 'ൾ' + 'l' => 'ഌ' | |
| 'ൿ' + 'l' => 'ക്ല്' | |
| 'ൿ' + 'L' => 'ക്ല്' + ('capl') | |
| 'ൿ' + 'v' => 'ക്വ്' | |
| 'ൿ' + 'k' => 'ക്ക്' | |
| 'ൿ' + 'c' => 'ക്ക്' + ('doublec') | |
| // digits | |
| '\\' + '0' => '൦' | |
| '\\' + '1' => '൧' | |
| '\\' + '2' => '൨' | |
| '\\' + '3' => '൩' | |
| '\\' + '4' => '൪' | |
| '\\' + '5' => '൫' | |
| '\\' + '6' => '൬' | |
| '\\' + '7' => '൭' | |
| '\\' + '8' => '൮' | |
| '\\' + '9' => '൯' | |
| 'B' => 'ബ്ബ്' | |
| $chills[*] + U200C + 'B' => $1 + 'ബ്ബ്' | |
| 'C' => 'ച്ച്' | |
| $chills[*] + U200C + 'C' => $1 + 'ച്ച്' | |
| 'G' => 'ഗ്ഗ്' | |
| $chills[*] + U200C + 'G' => $1 + 'ഗ്ഗ്' | |
| 'H' => 'ഃ' | |
| $chills[*] + U200C + 'H' => $1 + 'ഃ' | |
| 'J' => 'ജ്ജ്' | |
| $chills[*] + U200C + 'J' => $1 + 'ജ്ജ്' | |
| 'K' => 'ക്ക്' | |
| $chills[*] + U200C + 'K' => $1 + 'ക്ക്' | |
| 'M' => 'മ്മ്' | |
| $chills[*] + U200C + 'M' => $1 + 'മ്മ്' | |
| 'P' => 'പ്പ്' | |
| $chills[*] + U200C + 'P' => $1 + 'പ്പ്' | |
| 'Q' => 'ക്യ്' | |
| $chills[*] + U200C + 'Q' => $1 + 'ക്യ്' | |
| 'V' => 'വ്വ്' | |
| $chills[*] + U200C + 'V' => $1 + 'വ്വ്' | |
| 'W' => 'വ്വ്' | |
| $chills[*] + U200C + 'W' => $1 + 'വ്വ്' | |
| 'X' => 'ക്ഷ്' | |
| $chills[*] + U200C + 'X' => $1 + 'ക്ഷ്' | |
| 'Y' => 'യ്യ്' | |
| $chills[*] + U200C + 'Y' => $1 + 'യ്യ്' | |
| 'Z' => 'ശ്ശ്' | |
| $chills[*] + U200C + 'Z' => $1 + 'ശ്ശ്' | |
| 'q' => 'ക്ക്' | |
| $chills[*] + U200C + 'q' => $1 + 'ക്ക്' | |
| 't' => 'റ്റ്' | |
| $chills[*] + U200C + 't' => $1 + 'റ്റ്' | |
| 'x' => 'ക്ഷ്' | |
| $chills[*] + U200C + 'x' => $1 + 'ക്ഷ്' | |
| '~' => '്' | |
| $chills[*] + U200C + '~' => $1 + '്' | |
| U200C + '_' => U200C | |
| '_' => U200C | |
| '/' + '/' => 'ऽ' | |
| '1/4' + '\\' => '൳' | |
| '1/2' + '\\' => '൴' | |
| '3/4' + '\\' => '൵' | |
| '10' + '\\' => U0D70 | |
| '100' + '\\' => U0D71 | |
| '1000' + '\\' => U0D72 | |
| // em dash | |
| '---' + '\\' => '—' | |
| // en dash | |
| '--' + '\\' => '–' | |
| '\\' + '-' => '−' | |
| '\\' + '*' => '×' | |
| '\\' + '/' => '÷' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment