Merged a lot of older and newer patches,
adding numerous new input methods:
* Tibetan Sambhota
* Fulfulde Alt
* Lushotseed
* Mongolian Todo, Todo-Ali, Traditional, Tradional-Ali, Phagspa
* Manchu, Manchu Ali
* Burmese mm3
* Piedmontese
* Tarandine
* Xibe
* Venetian
* Wolof
Also, updates for:
* Oriya Transliteration
* Tamil 99
Updating to
b7a96d4737
Change-Id: I092ff1b8aef70f8274829f3794090738826d1a8a
189 lines
8.8 KiB
JavaScript
189 lines
8.8 KiB
JavaScript
( function ( $ ) {
|
|
'use strict';
|
|
|
|
var stackingState, boSAMBHOTA;
|
|
|
|
function changeStackingState( newState ) {
|
|
stackingState = newState;
|
|
}
|
|
|
|
function reinit() {
|
|
changeStackingState( 0 );
|
|
}
|
|
|
|
reinit();
|
|
|
|
// isOneChar is true for composed sanskrit characters (ex གྷ)
|
|
function normalOrSub( normal, sub, alwaysStacked, isOneChar ) {
|
|
switch ( stackingState ) {
|
|
case 0:
|
|
return normal;
|
|
case 1:
|
|
if ( !isOneChar ) {
|
|
changeStackingState( 2 );
|
|
}
|
|
|
|
return normal;
|
|
case 2:
|
|
if ( !isOneChar ) {
|
|
changeStackingState( 3 );
|
|
}
|
|
|
|
return sub;
|
|
default:
|
|
if (alwaysStacked) {
|
|
return sub;
|
|
}
|
|
|
|
changeStackingState( 0 );
|
|
|
|
return normal;
|
|
}
|
|
}
|
|
|
|
function switchStacking() {
|
|
if ( !stackingState ) {
|
|
changeStackingState( 1 );
|
|
} else {
|
|
changeStackingState( 0 );
|
|
}
|
|
}
|
|
|
|
boSAMBHOTA = {
|
|
id: 'bo-sambhota',
|
|
name: 'Tibetan Sambhota',
|
|
description: 'Tibetan Sambhota Input Method.',
|
|
date: '2015-08-04',
|
|
URL: 'https://github.com/tibetan-nlp/ttt/blob/master/source/Sambhota_keymap_one.rtf',
|
|
author: 'Elie Roux <elie.roux@telecom-bretagne.eu>',
|
|
license: 'GPLv3',
|
|
version: '1.0',
|
|
maxKeyLength: 5,
|
|
patterns: [
|
|
[ ' ', function () { reinit(); return '་'; } ],
|
|
[ '\\.', function () { reinit(); return ' '; } ],
|
|
[ ',', function () { reinit(); return '།'; } ],
|
|
[ ';', function () { reinit(); return '༔'; } ],
|
|
[ 'f', function () { switchStacking(); return ''; } ],
|
|
[ 'a', function () { reinit(); return ''; } ],
|
|
[ 'k', function () { return normalOrSub( 'ཀ', 'ྐ' ); } ],
|
|
[ 'K', function () { return normalOrSub( 'ཁ', 'ྑ' ); } ],
|
|
[ 'g', function () { return normalOrSub( 'ག', 'ྒ' ); } ],
|
|
[ 'G', function () { return normalOrSub( 'ང', 'ྔ' ); } ],
|
|
[ 'c', function () { return normalOrSub( 'ཅ', 'ྕ' ); } ],
|
|
[ 'C', function () { return normalOrSub( 'ཆ', 'ྖ' ); } ],
|
|
[ 'j', function () { return normalOrSub( 'ཇ', 'ྗ' ); } ],
|
|
[ 'N', function () { return normalOrSub( 'ཉ', 'ྙ' ); } ],
|
|
[ 'q', function () { return normalOrSub( 'ཊ', 'ྚ' ); } ],
|
|
[ 'Q', function () { return normalOrSub( 'ཋ', 'ྛ' ); } ],
|
|
[ 'v', function () { return normalOrSub( 'ཌ', 'ྜ' ); } ],
|
|
[ 'V', function () { return normalOrSub( 'ཎ', 'ྞ' ); } ],
|
|
[ 't', function () { return normalOrSub( 'ཏ', 'ྟ' ); } ],
|
|
[ 'T', function () { return normalOrSub( 'ཐ', 'ྠ' ); } ],
|
|
[ 'd', function () { return normalOrSub( 'ད', 'ྡ' ); } ],
|
|
[ 'གྷn', function () { return normalOrSub( 'གྷན', 'གྷྣ' ); } ],
|
|
[ 'n', function () { return normalOrSub( 'ན', 'ྣ' ); } ],
|
|
[ 'p', function () { return normalOrSub( 'པ', 'ྤ' ); } ],
|
|
[ 'P', function () { return normalOrSub( 'ཕ', 'ྥ' ); } ],
|
|
[ 'b', function () { return normalOrSub( 'བ', 'ྦ' ); } ],
|
|
[ 'རྨm', function () { return normalOrSub( 'རྨམ', 'རྨྨ', true ); } ],
|
|
[ 'm', function () { return normalOrSub( 'མ', 'ྨ' ); } ],
|
|
[ 'x', function () { return normalOrSub( 'ཙ', 'ྩ' ); } ],
|
|
[ 'X', function () { return normalOrSub( 'ཚ', 'ྪ' ); } ],
|
|
[ 'D', function () { return normalOrSub( 'ཛ', 'ྫ' ); } ],
|
|
[ 'ྭw', function () { return normalOrSub( 'ྭཝ', 'ྭྭ' ); } ],
|
|
[ 'w', function () { return normalOrSub( 'ཝ', 'ྭ', true ); } ],
|
|
[ 'W', function () { return normalOrSub( 'ཝ', 'ྺ' ); } ],
|
|
[ 'Z', function () { return normalOrSub( 'ཞ', 'ྮ' ); } ],
|
|
[ 'z', function () { return normalOrSub( 'ཟ', 'ྯ' ); } ],
|
|
[ 'ཱ\'', function () { return normalOrSub( 'ཱ\'འ', 'ཱཱ' ); } ],
|
|
[ '\'', function () { return normalOrSub( 'འ', 'ཱ', true ); } ],
|
|
[ 'ྱy', function () { return normalOrSub( 'ྱཡ', 'ྱྱ' ); } ],
|
|
[ 'y', function () { return normalOrSub( 'ཡ', 'ྱ', true ); } ],
|
|
[ 'l', function () { return normalOrSub( 'ལ', 'ླ' ); } ],
|
|
[ 'i', function () { reinit(); return 'ི'; } ],
|
|
[ 'u', function () { reinit(); return 'ུ'; } ],
|
|
[ 'e', function () { reinit(); return 'ེ'; } ],
|
|
[ 'o', function () { reinit(); return 'ོ'; } ],
|
|
[ 'ལ([ྐ-ྷ]+)r', function ( _, capture ) { reinit(); return 'ལ' + capture + 'ར'; } ],
|
|
[ 'ྐr', function () { return normalOrSub( 'ྐར', 'ྐྲ', true ); } ],
|
|
[ 'ྒr', function () { return normalOrSub( 'ྒར', 'ྒྲ', true ); } ],
|
|
[ 'ྣr', function () { return normalOrSub( 'ྣར', 'ྣྲ', true ); } ],
|
|
[ 'ྤr', function () { return normalOrSub( 'ྤར', 'ྤྲ', true ); } ],
|
|
[ 'ྦr', function () { return normalOrSub( 'ྦར', 'ྦྲ', true ); } ],
|
|
[ 'ྨr', function () { return normalOrSub( 'ྨར', 'ྨྲ', true ); } ],
|
|
[ 'སྡr', function () { reinit(); return 'སྡར'; } ],
|
|
[ 'ྡr', function () { return normalOrSub( 'ྡར', 'ྡྲ', true ); } ],
|
|
[ 'ྦྷr', function () { return normalOrSub( 'ྦྷར', 'ྦྷྲ', true ); } ],
|
|
[ 'ྡྷr', function () { return normalOrSub( 'ྡྷར', 'ྡྷྲ', true ); } ],
|
|
[ 'ྒྷr', function () { return normalOrSub( 'ྒྷར', 'ྒྷྲ', true ); } ],
|
|
[ 'ྜྷr', function () { return normalOrSub( 'ྜྷར', 'ྜྷྲ', true ); } ],
|
|
[ 'ྟr', function () { return normalOrSub( 'ྟར', 'ྟྲ', true ); } ],
|
|
[ 'r', function () { return normalOrSub( 'ར', 'ྲ' ); } ],
|
|
[ 'S', function () { return normalOrSub( 'ཤ', 'ྴ' ); } ],
|
|
[ 'ཀB', function () { return normalOrSub( 'ཀཥ', 'ཀྵ', true, true ); } ],
|
|
[ 'ྐB', function () { return normalOrSub( 'ྐཥ', 'ྐྵ', true, true ); } ],
|
|
[ 'B', function () { return normalOrSub( 'ཥ', 'ྵ' ); } ],
|
|
[ 's', function () { return normalOrSub( 'ས', 'ྶ' ); } ],
|
|
[ 'གh', function () { return normalOrSub( 'གཧ', 'གྷ', true, true ); } ],
|
|
[ 'ཌh', function () { return normalOrSub( 'ཌཧ', 'ཌྷ', true, true ); } ],
|
|
[ 'དh', function () { return normalOrSub( 'དཧ', 'དྷ', true, true ); } ],
|
|
[ 'བh', function () { return normalOrSub( 'བཧ', 'བྷ', true, true ); } ],
|
|
[ 'ཛh', function () { return normalOrSub( 'ཛཧ', 'ཛྷ', true, true ); } ],
|
|
[ 'ྒh', function () { return normalOrSub( 'ྒཧ', 'ྒྷ', true, true ); } ],
|
|
[ 'ྜh', function () { return normalOrSub( 'ྜཧ', 'ྜྷ', true, true ); } ],
|
|
[ 'ྡh', function () { return normalOrSub( 'ྡཧ', 'ྡྷ', true, true ); } ],
|
|
[ 'ྦh', function () { return normalOrSub( 'ྦཧ', 'ྦྷ', true, true ); } ],
|
|
[ 'ྫh', function () { return normalOrSub( 'ྫཧ', 'ྫྷ', true, true ); } ],
|
|
[ 'ྷh', function () { return normalOrSub( 'ྷཧ', 'ྷྷ' ); } ],
|
|
[ 'h', function () { return normalOrSub( 'ཧ', 'ྷ', true ); } ],
|
|
[ 'A', function () { return normalOrSub( 'ཨ', 'ྸ' ); } ],
|
|
[ 'R', function () { return normalOrSub( 'ཪ', 'ྼ' ); } ],
|
|
[ 'Y', 'ྻ'],
|
|
[ 'ྲI', function () { reinit(); return 'ྲྀ'; } ],
|
|
[ 'ླI', function () { reinit(); return 'ླྀ'; } ],
|
|
[ 'I', function () { reinit(); return 'ྀ'; } ],
|
|
[ 'E', function () { reinit(); return 'ཻ'; } ],
|
|
[ 'O', function () { reinit(); return 'ཽ'; } ],
|
|
[ 'J', function () { reinit(); return 'ིཾ'; } ],
|
|
[ 'U', function () { reinit(); return 'ྀཾ'; } ],
|
|
[ 'F', function () { reinit(); return 'ེཾ'; } ],
|
|
[ 'L', function () { reinit(); return 'ོཾ'; } ],
|
|
[ '`', function () { reinit(); return 'ཽཾ'; } ],
|
|
[ '~', function () { reinit(); return 'ཻཾ'; } ],
|
|
[ '\\^', function () { reinit(); return '྄'; } ],
|
|
[ '\\!', function () { reinit(); return '༄༅༅'; } ],
|
|
[ '\\#', function () { reinit(); return '༁ྃ'; } ],
|
|
[ '\\%', function () { reinit(); return 'ྃ'; } ],
|
|
[ '\\+', function () { reinit(); return 'ྂ'; } ],
|
|
[ '\\&', function () { reinit(); return 'ཾ'; } ],
|
|
[ '\\<', function () { reinit(); return 'ༀ'; } ],
|
|
[ '\\=', function () { reinit(); return 'ཨཱཿ'; } ],
|
|
[ '\\>', function () { reinit(); return 'ཧཱུྃ'; } ],
|
|
[ '\\:', function () { reinit(); return 'ཿ'; } ],
|
|
[ '"', function () { reinit(); return '༄༅'; } ],
|
|
[ '@', function () { reinit(); return '༄'; } ],
|
|
[ '\\$', function () { reinit(); return '༅'; } ],
|
|
[ '\\/', function () { reinit(); return '༴'; } ],
|
|
[ '\\?', function () { reinit(); return '༈'; } ],
|
|
[ '\\|', function () { reinit(); return '྅'; } ],
|
|
[ '-', function () { reinit(); return '༑'; } ],
|
|
[ '\\(', function () { reinit(); return '༼'; } ],
|
|
[ '\\)', function () { reinit(); return '༽'; } ],
|
|
// numbers
|
|
[ '0', function () { reinit(); return '༠'; } ],
|
|
[ '1', function () { reinit(); return '༡'; } ],
|
|
[ '2', function () { reinit(); return '༢'; } ],
|
|
[ '3', function () { reinit(); return '༣'; } ],
|
|
[ '4', function () { reinit(); return '༤'; } ],
|
|
[ '5', function () { reinit(); return '༥'; } ],
|
|
[ '6', function () { reinit(); return '༦'; } ],
|
|
[ '7', function () { reinit(); return '༧'; } ],
|
|
[ '8', function () { reinit(); return '༨'; } ],
|
|
[ '9', function () { reinit(); return '༩'; } ]
|
|
]
|
|
};
|
|
|
|
$.ime.register( boSAMBHOTA );
|
|
}( jQuery ) );
|