Update jquery.ime library

upstream: http://github.com/wikimedia/jquery.ime

changes:
* Support for contenteditable, like the VisualEditor surfaces. This
  support is very minimal now. Because of VE bugs on IME support, many
  things are broken. But one-one keyboard mappings should work with less
  issues. The UI of jquery.ime is not integrated with VE toolbar
* More input methods
	- IPA-X-SAMPA by Amir
	- Armenian keymaps by  Aleksey Chalabyan
	- Kurdish keymaps by Ghybu
	- Кыргыз keymap by Amir
	- Central Kurdish keyboards by Çalak
* A lot of input method bug fixes multiple contributors
* Minor UX fixes

Introduces Rangy library.
A module named rangy is defined in VisualEditor extension with more features of rangy.
Here we need only the core library. This module is loaded dynamically from
client when rangy is undefined. If VE is present rangy will be defined, the module
defined in VE will be used. ie, This get loaded only when VE is not present and
user trying to type in a contenteditable.

Bug: 49569
Bug: 50849
Bug: 50220

Change-Id: Iadad5a4e5972fbd1359847526d28e9dbbe00a7c4
This commit is contained in:
Santhosh Thottingal
2013-08-19 09:54:55 +05:30
committed by Santhosh
parent e13a4e2cb0
commit 8f5be106f5
127 changed files with 5454 additions and 643 deletions

View File

@@ -15,7 +15,7 @@
text-align: left;
font-family: sans-serif;
white-space: nowrap;
z-index: 9999;
z-index: 1000;
}
.imeselector:hover {

View File

@@ -1,9 +1,12 @@
/*! jquery.ime - v0.1.0+20130722
/*! jquery.ime - v0.1.0+20130819
* https://github.com/wikimedia/jquery.ime
* Copyright (c) 2013 Santhosh Thottingal; Licensed GPL, MIT */
( function ( $ ) {
'use strict';
// rangy is defined in the rangy library
/*global rangy */
/**
* IME Class
* @param {Function} [options.helpHandler] Called for each input method row in the selector
@@ -139,7 +142,8 @@
this.$element.val() || this.$element.text(),
startPos,
this.inputmethod.maxKeyLength
) + c;
);
input += c;
replacement = this.transliterate( input, this.context, altGr );
@@ -169,6 +173,7 @@
replaceText( this.$element, replacement, startPos - input.length + 1, endPos );
e.stopPropagation();
return false;
},
@@ -267,10 +272,17 @@
}
dependency = $.ime.sources[inputmethodId].depends;
if ( dependency ) {
return $.when( this.load( dependency ), this.load( inputmethodId ) );
if ( dependency && !$.ime.inputmethods[dependency] ) {
ime.load( dependency ).done( function () {
ime.load( inputmethodId ).done( function () {
deferred.resolve();
} );
} );
return deferred;
}
debug( 'Loading ' + inputmethodId );
deferred = $.getScript(
ime.options.imePath + $.ime.sources[inputmethodId].source
).done( function () {
@@ -291,6 +303,17 @@
return getCaretPosition( $element );
},
/**
* Set the caret position in the div.
* @param {jQuery} element The content editable div element
* @param {Object} position An object with start and end properties.
* @return {Array} If the cursor could not be placed at given position, how
* many characters had to go back to place the cursor
*/
setCaretPosition: function ( $element, position ) {
return setCaretPosition( $element, position );
},
/**
* Find the point at which a and b diverge, i.e. the first position
* at which they don't have matching characters.
@@ -394,6 +417,10 @@
newLines,
endRange;
if ( $element.is( '[contenteditable]' ) ) {
return getDivCaretPosition( el );
}
if ( typeof el.selectionStart === 'number' && typeof el.selectionEnd === 'number' ) {
start = el.selectionStart;
end = el.selectionEnd;
@@ -434,40 +461,75 @@
}
}
return [ start, end ];
return [start, end];
}
/**
* Helper function to get an IE TextRange object for an element
*/
function rangeForElementIE( e ) {
if ( e.nodeName.toLowerCase() === 'input' ) {
return e.createTextRange();
} else {
var sel = document.body.createTextRange();
function rangeForElementIE( element ) {
var selection;
sel.moveToElementText( e );
return sel;
if ( element.nodeName.toLowerCase() === 'input' ) {
selection = element.createTextRange();
} else {
selection = document.body.createTextRange();
selection.moveToElementText( element );
}
return selection;
}
function replaceText( $element, replacement, start, end ) {
var element = $element.get( 0 ),
selection,
var selection,
length,
newLines,
scrollTop;
scrollTop,
range,
correction,
textNode,
element = $element.get( 0 );
if ( $element.is( '[contenteditable]' ) ) {
correction = setCaretPosition( $element, {
start: start,
end: end
} );
selection = rangy.getSelection();
range = selection.getRangeAt( 0 );
if ( correction[0] > 0 ) {
replacement = selection.toString().substring( 0, correction[0] ) + replacement;
}
textNode = document.createTextNode( replacement );
range.deleteContents();
range.insertNode( textNode );
range.commonAncestorContainer.normalize();
start = end = start + replacement.length - correction[0];
setCaretPosition( $element, {
start: start,
end: end
} );
return;
}
if ( typeof element.selectionStart === 'number' && typeof element.selectionEnd === 'number' ) {
// IE9+ and all other browsers
scrollTop = element.scrollTop;
// Replace the whole text of the text area:
// text before + replacement + text after.
// This could be made better if range selection worked on browsers.
// But for complex scripts, browsers place cursor in unexpected places
// and it's not possible to fix cursor programmatically.
// Ref Bug https://bugs.webkit.org/show_bug.cgi?id=66630
element.value = element.value.substring( 0, start ) + replacement
+ element.value.substring( end, element.value.length );
element.value = element.value.substring( 0, start ) +
replacement +
element.value.substring( end, element.value.length );
// restore scroll
element.scrollTop = scrollTop;
// set selection
@@ -492,6 +554,127 @@
}
}
function getDivCaretPosition( element ) {
var charIndex = 0,
start = 0,
end = 0,
foundStart = false,
foundEnd = false,
sel = rangy.getSelection();
function traverseTextNodes( node, range ) {
var i, childNodesCount;
if ( node.nodeType === Node.TEXT_NODE ) {
if ( !foundStart && node === range.startContainer ) {
start = charIndex + range.startOffset;
foundStart = true;
}
if ( foundStart && node === range.endContainer ) {
end = charIndex + range.endOffset;
foundEnd = true;
}
charIndex += node.length;
} else {
childNodesCount = node.childNodes.length;
for ( i = 0; i < childNodesCount; ++i ) {
traverseTextNodes( node.childNodes[i], range );
if ( foundEnd ) {
break;
}
}
}
}
if ( sel.rangeCount ) {
traverseTextNodes( element, sel.getRangeAt( 0 ) );
}
return [ start, end ];
}
function setCaretPosition( $element, position ) {
var currentPosition,
startCorrection = 0,
endCorrection = 0,
element = $element[0];
setDivCaretPosition( element, position );
currentPosition = getDivCaretPosition( element );
// see Bug https://bugs.webkit.org/show_bug.cgi?id=66630
while ( position.start !== currentPosition[0] ) {
position.start -= 1; // go back one more position.
if ( position.start < 0 ) {
// never go beyond 0
break;
}
setDivCaretPosition( element, position );
currentPosition = getDivCaretPosition( element );
startCorrection += 1;
}
while ( position.end !== currentPosition[1] ) {
position.end += 1; // go forward one more position.
setDivCaretPosition( element, position );
currentPosition = getDivCaretPosition( element );
endCorrection += 1;
if ( endCorrection > 10 ) {
// XXX avoid rare case of infinite loop here.
break;
}
}
return [startCorrection, endCorrection];
}
/**
* Set the caret position in the div.
* @param {Element} element The content editable div element
*/
function setDivCaretPosition( element, position ) {
var nextCharIndex,
charIndex = 0,
range = rangy.createRange(),
foundStart = false,
foundEnd = false;
range.collapseToPoint( element, 0 );
function traverseTextNodes( node ) {
var i, len;
if ( node.nodeType === 3 ) {
nextCharIndex = charIndex + node.length;
if ( !foundStart && position.start >= charIndex && position.start <= nextCharIndex ) {
range.setStart( node, position.start - charIndex );
foundStart = true;
}
if ( foundStart && position.end >= charIndex && position.end <= nextCharIndex ) {
range.setEnd( node, position.end - charIndex );
foundEnd = true;
}
charIndex = nextCharIndex;
} else {
for ( i = 0, len = node.childNodes.length; i < len; ++i ) {
traverseTextNodes( node.childNodes[i] );
if ( foundEnd ) {
rangy.getSelection().setSingleRange( range );
break;
}
}
}
}
traverseTextNodes( element );
}
/**
* Find the point at which a and b diverge, i.e. the first position
* at which they don't have matching characters.
@@ -533,12 +716,10 @@
}
}
function arrayKeys( obj ) {
var rv = [];
$.each( obj, function ( key ) {
rv.push( key );
function arrayKeys ( obj ) {
return $.map( obj, function( element, index ) {
return index;
} );
return rv;
}
}( jQuery ) );
@@ -674,6 +855,14 @@
}
} );
// Hide the menu when clicked outside
$( 'html' ).click( $.proxy( this.hide, this ) );
// ... but when clicked on window do not propagate it.
this.$menu.on( 'click', function ( event ) {
event.stopPropagation();
} );
imeselector.$imeSetting.mouseenter( function () {
// We don't want the selector to disappear
// while the user is trying to click it
@@ -1296,11 +1485,11 @@
source: 'rules/as/as-bornona.js'
},
'as-inscript': {
name: 'ইন্‌স্ক্ৰিপ্',
name: 'ইনস্ক্ৰিপ্',
source: 'rules/as/as-inscript.js'
},
'as-inscript2': {
name: 'ইন্‌স্ক্ৰিপ্ ২',
name: 'ইনস্ক্ৰিপ্ ২',
source: 'rules/as/as-inscript2.js'
},
'as-phonetic': {
@@ -1332,11 +1521,11 @@
source: 'rules/bn/bn-avro.js'
},
'bn-inscript': {
name: 'ইন্‌স্ক্ৰিপ্',
name: 'ইনস্ক্ৰিপ্',
source: 'rules/bn/bn-inscript.js'
},
'bn-inscript2': {
name: 'ইন্‌স্ক্ৰিপ্ ২',
name: 'ইনস্ক্ৰিপ্ ২',
source: 'rules/bn/bn-inscript2.js'
},
'bn-nkb': {
@@ -1355,6 +1544,18 @@
name: 'इनस्क्रिप्ट २',
source: 'rules/brx/brx-inscript2.js'
},
'ckb-transliteration-arkbd': {
name: 'باشووری',
source: 'rules/ckb/ckb-transliteration-arkbd.js'
},
'ckb-transliteration-fakbd': {
name: 'ڕۆژھەڵاتی',
source: 'rules/ckb/ckb-transliteration-fakbd.js'
},
'ckb-transliteration-lakbd': {
name: 'لاتینی',
source: 'rules/ckb/ckb-transliteration-lakbd.js'
},
'cv-cyr-altgr': {
name: 'Чăвашла (AltGr)',
source: 'rules/cv/cv-cyr-altgr.js'
@@ -1517,9 +1718,25 @@
name: 'Croatian kbd',
source: 'rules/hr/hr-kbd.js'
},
'hy-kbd': {
name: 'Ստանդարտ ստեղնաշար',
source: 'rules/hy/hy-kbd.js'
'hy-ephonetic': {
name: 'Հնչյունային դասավորություն',
source: 'rules/hy/hy-ephonetic.js'
},
'hy-typewriter': {
name: 'Գրամեքենայի դասավորություն',
source: 'rules/hy/hy-typewriter.js'
},
'hy-ephoneticalt': {
name: 'Հնչյունային նոր (R→Ր, F→Թ)',
source: 'rules/hy/hy-ephoneticalt.js'
},
'hy-emslegacy': {
name: 'Մայքրոսոֆթի հին արևելահայերեն',
source: 'rules/hy/hy-emslegacy.js'
},
'hy-wmslegacy': {
name: 'Մայքրոսոֆթի հին արևմտահայերեն',
source: 'rules/hy/hy-wmslegacy.js'
},
'gu-inscript': {
name: 'ઇનસ્ક્રિપ્ટ',
@@ -1558,7 +1775,7 @@
source: 'rules/kn/kn-inscript.js'
},
'kn-inscript2': {
name: 'ಇನ್ಸ್ಕ್ರಿಪ್ಟ್ ೨',
name: 'ಇನ್\u200cಸ್ಕ್ರಿಪ್ಟ್ ೨',
source: 'rules/kn/kn-inscript2.js'
},
'kn-transliteration': {
@@ -1569,6 +1786,10 @@
name: 'KGP/Nudi/KP Rao',
source: 'rules/kn/kn-kgp.js'
},
'ky-cyrl-alt': {
name: 'Кыргыз Alt',
source: 'rules/ky/ky-cyrl-alt.js'
},
'gom-inscript2': {
name: 'इनस्क्रिप्ट २',
source: 'rules/gom/gom-inscript2.js'
@@ -1581,6 +1802,14 @@
name: 'Kashmiri Arabic',
source: 'rules/ks/ks-kbd.js'
},
'ku-h': {
name: 'Ku h',
source: 'rules/ku/ku-h.js'
},
'ku-tr': {
name: 'Ku tr',
source: 'rules/ku/ku-tr.js'
},
'lo-kbd': {
name: 'າຶກ',
source: 'rules/lo/lo-kbd.js'
@@ -1594,7 +1823,7 @@
source: 'rules/mn/mn-cyrl.js'
},
'mni-inscript2': {
name: 'ইন্‌স্ক্ৰিপ্ ২',
name: 'ইনস্ক্ৰিপ্ ২',
source: 'rules/mni/mni-inscript2.js'
},
'mr-inscript': {
@@ -1613,10 +1842,6 @@
name: 'फोनेटिक',
source: 'rules/mr/mr-phonetic.js'
},
'my-kbd': {
name: 'မြန်မာဘာသာ kbd',
source: 'rules/my/my-kbd.js'
},
'my-xkb': {
name: 'မြန်မာဘာသာ xkb',
source: 'rules/my/my-xkb.js'
@@ -1641,16 +1866,20 @@
name: 'Traditional',
source: 'rules/ne/ne-trad.js'
},
'no-normforms': {
'nb-normforms': {
name: 'Normal transliterasjon',
source: 'rules/no/no-normforms.js'
source: 'rules/nb/nb-normforms.js'
},
'no-tildeforms': {
'nb-tildeforms': {
name: 'Tildemerket transliterasjon',
source: 'rules/no/no-tildeforms.js'
source: 'rules/nb/nb-tildeforms.js'
},
'nn-tildeforms': {
name: 'Tildemerkt transliterasjon',
source: 'rules/nb/nb-tildeforms.js'
},
'or-transliteration': {
name: 'ଟ୍ରାନ୍ସଲି ଟରେସନ',
name: 'ଟ୍ରାନ୍ସଲିଟରେସନ',
source: 'rules/or/or-transliteration.js'
},
'or-inscript': {
@@ -1686,11 +1915,11 @@
source: 'rules/sr/sr-kbd.js'
},
'te-inscript': {
name: 'ఇన్స్క్రిప్ట్',
name: 'ఇన్\u200dస్క్రిప్ట్',
source: 'rules/te/te-inscript.js'
},
'te-inscript2': {
name: 'ఇన్స్క్రిప్ట్ 2',
name: 'ఇన్\u200dస్క్రిప్ట్ 2',
source: 'rules/te/te-inscript2.js'
},
'te-transliteration': {
@@ -1777,6 +2006,10 @@
name: 'International Phonetic Alphabet - SIL',
source: 'rules/fonipa/ipa-sil.js'
},
'ipa-x-sampa': {
name: 'International Phonetic Alphabet - X-SAMPA',
source: 'rules/fonipa/ipa-x-sampa.js'
},
'udm-alt': {
name: 'Удмурт ALT',
source: 'rules/udm/udm-alt.js'
@@ -1844,6 +2077,10 @@
autonym: 'बोड़ो',
inputmethods: [ 'brx-inscript', 'brx-inscript2' ]
},
'ckb': {
autonym: 'کوردی',
inputmethods: [ 'ckb-transliteration-arkbd', 'ckb-transliteration-fakbd', 'ckb-transliteration-lakbd' ]
},
'ce': {
autonym: 'нохчийн',
inputmethods: [ 'cyrl-palochka' ]
@@ -1860,13 +2097,17 @@
autonym: 'Deutsch',
inputmethods: [ 'de-transliteration' ]
},
'diq': {
autonym: 'Kirdkî',
inputmethods: [ 'ku-h', 'ku-tr' ]
},
'doi': {
autonym: 'डोगरी',
inputmethods: [ 'doi-inscript2' ]
},
'en': {
autonym: 'English',
inputmethods: [ 'ipa-sil' ]
inputmethods: [ 'ipa-sil', 'ipa-x-sampa' ]
},
'el': {
autonym: 'Ελληνικά',
@@ -1905,8 +2146,8 @@
inputmethods: [ 'hr-kbd' ]
},
'hy': {
autonym: 'Հայերեն',
inputmethods: [ 'hy-kbd' ]
autonym: 'հայերեն',
inputmethods: [ 'hy-ephonetic', 'hy-typewriter', 'hy-ephoneticalt', 'hy-emslegacy', 'hy-wmslegacy' ]
},
'hne': {
autonym: 'छत्तीसगढ़ी',
@@ -1918,7 +2159,7 @@
},
'fonipa': {
autonym: 'International Phonetic Alphabet',
inputmethods: [ 'ipa-sil' ]
inputmethods: [ 'ipa-sil', 'ipa-x-sampa' ]
},
'jv': {
autonym: 'ꦧꦱꦗꦮ',
@@ -1944,10 +2185,18 @@
autonym: 'कॉशुर / کٲشُر',
inputmethods: [ 'ks-inscript', 'ks-kbd' ]
},
'ky': {
autonym: 'Кыргыз',
inputmethods: [ 'ky-cyrl-alt' ]
},
'kab': {
autonym: 'ⵜⴰⵇⴱⴰⵢⵍⵉⵜ',
inputmethods: [ 'ber-tfng' ]
},
'ku': {
autonym: 'Kurdî',
inputmethods: [ 'ku-h', 'ku-tr' ]
},
'lbe': {
autonym: 'лакку',
inputmethods: [ 'cyrl-palochka' ]
@@ -1986,7 +2235,7 @@
},
'my': {
autonym: 'မြန်မာ',
inputmethods: [ 'my-kbd', 'my-xkb' ]
inputmethods: [ 'my-xkb' ]
},
'ne': {
autonym: 'नेपाली',
@@ -1996,17 +2245,13 @@
autonym: 'नेपाल भाषा',
inputmethods: [ 'hi-transliteration', 'hi-inscript' ]
},
'no': {
autonym: 'Norsk',
inputmethods: [ 'no-normforms', 'no-tildeforms' ]
},
'nb': {
autonym: 'Norsk (bokmål)',
inputmethods: [ 'no-normforms', 'no-tildeforms' ]
inputmethods: [ 'nb-normforms', 'nb-tildeforms' ]
},
'nn': {
autonym: 'Norsk (nynorsk)',
inputmethods: [ 'no-normforms', 'no-tildeforms' ]
inputmethods: [ 'nb-normforms', 'nn-tildeforms' ]
},
'or': {
autonym: 'ଓଡ଼ିଆ',

View File

@@ -429,5 +429,4 @@
};
$.ime.register( amTransliteration );
}( jQuery ) );

View File

@@ -102,15 +102,14 @@
['\\.', '<'],
['\\[', ']'],
['\\]', '['],
['J', ''],
['L', ''],
['N', ''],
['R', ''],
['J', '\u200d'],
['L', '\u200e'],
['N', '\u200c'],
['R', '\u200f'],
['\\{', '}'],
['\\}', '{']
]
};
$.ime.register( arKbd );
}( jQuery ) );

View File

@@ -163,6 +163,6 @@
['ঃ`', ':'],
['`', '']]
};
$.ime.register( asAvro );
$.ime.register( asAvro );
}( jQuery ) );

View File

@@ -79,6 +79,6 @@
['9', '৯'],
['\\`', '\u200C']]
};
$.ime.register( asBornona );
$.ime.register( asBornona );
}( jQuery ) );

View File

@@ -3,7 +3,7 @@
var asInScript = {
id: 'as-inscript',
name: 'ইন্‌স্ক্ৰিপ্',
name: 'ইনস্ক্ৰিপ্',
description: 'InScript input method for Assamese according to CDAC\'s Enhanced InScript Keyboard Layout 5.2',
date: '2012-10-10',
URL: 'http://github.com/wikimedia/jquery.ime',
@@ -119,6 +119,6 @@
['4', '₹']]
};
$.ime.register( asInScript );
$.ime.register( asInScript );
}( jQuery ) );

View File

@@ -3,7 +3,7 @@
var asInScript2 = {
id: 'as-inscript2',
name: 'ইন্‌স্ক্ৰিপ্ ২',
name: 'ইনস্ক্ৰিপ্ ২',
description: 'Enhanced InScript keyboard for Assamese language',
date: '2013-02-09',
URL: 'http://github.com/wikimedia/jquery.ime',
@@ -98,9 +98,9 @@
],
patterns_x: [
['\\!', '৴'],
['1', ''],
['1', '\u200d'],
['\\@', '৵'],
['2', ''],
['2', '\u200c'],
['\\#', '৶'],
['\\$', '৷'],
['4', '₹'],

View File

@@ -83,8 +83,8 @@
['\'', '\''],
['\\|', '৺'],
['\\\\', 'ৱ'],
['\\~', ''],
['\\`', ''],
['\\~', '\u200c'],
['\\`', '\u200d'],
['Z', 'য'],
['z', 'য়'],
['X', 'ঢ়'],
@@ -109,5 +109,4 @@
};
$.ime.register( asPhonetic );
}( jQuery ) );

View File

@@ -109,6 +109,6 @@
['(\u200C)*_', '\u200C'],
['(\u200D)*`', '\u200D']]
};
$.ime.register( asTransliteration );
$.ime.register( asTransliteration );
}( jQuery ) );

View File

@@ -35,5 +35,4 @@
};
$.ime.register( beLatin );
}( jQuery ) );

View File

@@ -81,7 +81,6 @@
['\\.', 'ю'],
['/', '.'],
['@', '"'], // 2
['#', '№'], // 3
['\\$', ';'], // 4
@@ -90,6 +89,6 @@
['&', '?']] // 7
// '*', '(' and ')' are the same // 8, 9, 0
};
$.ime.register( beTransliteration );
$.ime.register( beTransliteration );
}( jQuery ) );

View File

@@ -189,6 +189,6 @@
['ঃ`', ':'],
['`', '']]
};
$.ime.register( bnAvro );
$.ime.register( bnAvro );
}( jQuery ) );

View File

@@ -3,7 +3,7 @@
var bnInScript = {
id: 'bn-inscript',
name: 'ইনসক্িপ্ট',
name: 'ইনসক্িপ্ট',
description: 'Bengali InScript input method',
date: '2012-10-10',
URL: 'http://github.com/wikimedia/jquery.ime',
@@ -118,6 +118,6 @@
['\\?', '৻'],
['4', '₹']]
};
$.ime.register( bnInScript );
$.ime.register( bnInScript );
}( jQuery ) );

View File

@@ -3,7 +3,7 @@
var bnInScript2 = {
id: 'bn-inscript2',
name: 'ইন্‌স্ক্ৰিপ্ ২',
name: 'ইনস্ক্ৰিপ্ ২',
description: 'Enhanced InScript keyboard for Bengali language',
date: '2013-02-09',
URL: 'http://github.com/wikimedia/jquery.ime',
@@ -97,9 +97,9 @@
],
patterns_x: [
['\\!', '৴'],
['1', ''],
['1', '\u200d'],
['\\@', '৵'],
['2', ''],
['2', '\u200c'],
['\\#', '৶'],
['\\$', '৷'],
['4', '₹'],

View File

@@ -128,6 +128,6 @@
['X', 'ঔ'],
['C', 'ঐ']]
};
$.ime.register( bnNkb );
$.ime.register( bnNkb );
}( jQuery ) );

View File

@@ -97,6 +97,6 @@
['>', 'ঁ'],
['\\\\', '\u200C']]
};
$.ime.register( bnProbhat );
$.ime.register( bnProbhat );
}( jQuery ) );

View File

@@ -107,6 +107,6 @@
[',', '\u0970'],
['\\$', '\u20B9']]
};
$.ime.register( brxInscript );
$.ime.register( brxInscript );
}( jQuery ) );

View File

@@ -112,6 +112,6 @@
['\\>', 'ऽ'],
['\\.', '॥']]
};
$.ime.register( brxInScript2 );
$.ime.register( brxInScript2 );
}( jQuery ) );

View File

@@ -0,0 +1,103 @@
( function ( $ ) {
'use strict';
var ckbTransliterationArkbd = {
id: 'ckb-transliteration-arkbd',
name: 'باشووری',
description: 'Central Kurdish keyboard based on Arabic keyboard',
date: '2013-07-06',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Çalak',
license: 'GPLv3',
version: '1.0',
patterns: [
['`', 'ژ'],
['1', '١'],
['2', '٢'],
['3', '٣'],
['4', '٤'],
['5', '٥'],
['6', '٦'],
['7', '٧'],
['8', '٨'],
['9', '٩'],
['0', '٠'],
['q', 'چ'],
['w', 'ص'],
['e', 'پ'],
['r', 'ق'],
['t', 'ف'],
['y', 'غ'],
['u', 'ع'],
['i', 'ھ'],
['o', 'خ'],
['p', 'ح'],
['\\[', 'ج'],
['\\]', 'د'],
['a', 'ش'],
['s', 'س'],
['d', 'ی'],
['f', 'ب'],
['g', 'ل'],
['h', 'ا'],
['j', 'ت'],
['k', 'ن'],
['l', 'م'],
['\\;', 'ک'],
['\'', 'گ'],
['z', 'ئ'],
['x', 'ء'],
['c', 'ۆ'],
['v', 'ر'],
['b', 'لا'],
['n', 'ى'],
['m', 'ە'],
['\\,', 'و'],
['\\.', 'ز'],
['\\%', '٪'],
['\\(', ')'],
['\\)', '('],
['Q', 'ض'],
['W', '}'],
['E', 'ث'],
['R', '{'],
['T', 'ڤ'],
['Y', 'إ'],
['U', 'ۊ'],
['I', '\''],
['O', '\"'],
['P', '؛'],
['\\{', '>'],
['\\}', '<'],
['A', '['],
['S', ']'],
['D', 'ێ'],
['F', ''],
['G', 'ڵ'],
['H', 'أ'],
['J', 'ـ'],
['K', '،'],
['L', '\\'],
['\"', 'ط'],
['Z', 'ڎ'],
['X', 'وو'],
['C', 'ؤ'],
['V', 'ڕ'],
['B', 'ڵا'],
['N', 'آ'],
['M', 'ة'],
['\\<', '٫'],
['\\>', '.'],
['\\?', '؟']
]
};
$.ime.register( ckbTransliterationArkbd );
}( jQuery ) );

View File

@@ -0,0 +1,104 @@
( function ( $ ) {
'use strict';
var ckbTransliterationFakbd = {
id: 'ckb-transliteration-fakbd',
name: 'ڕۆژھەڵاتی',
description: 'Central Kurdish keyboard based on Persian keyboard',
date: '2013-07-06',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Çalak',
license: 'GPLv3',
version: '1.0',
patterns: [
['`', 'پ'],
['1', '١'],
['2', '٢'],
['3', '٣'],
['4', '٤'],
['5', '٥'],
['6', '٦'],
['7', '٧'],
['8', '٨'],
['9', '٩'],
['0', '٠'],
['q', 'ڵ'],
['w', 'ۆ'],
['e', 'ێ'],
['r', 'ق'],
['t', 'ف'],
['y', 'غ'],
['u', 'ع'],
['i', 'ە'],
['o', 'خ'],
['p', 'ح'],
['\\[', 'ج'],
['\\]', 'چ'],
['\\\\', 'ژ'],
['a', 'ش'],
['s', 'س'],
['d', 'ی'],
['f', 'ب'],
['g', 'ل'],
['h', 'ا'],
['j', 'ت'],
['k', 'ن'],
['l', 'م'],
['\\;', 'ک'],
['\'', 'گ'],
['z', 'ڤ'],
['x', 'ھ'],
['c', 'ز'],
['v', 'ر'],
['b', 'ڕ'],
['n', 'د'],
['m', 'ئ'],
['\\,', 'و'],
['\\.', '.'],
['/', '/'],
['\\%', '٪'],
['\\(', ')'],
['\\)', '('],
['Q', 'ض'],
['W', 'ص'],
['E', 'ث'],
['R', 'ك'],
['T', '،'],
['Y', '؛'],
['U', '\\'],
['I', ']'],
['O', '['],
['P', '\''],
['\\{', '}'],
['\\}', '{'],
['A', 'ڎ'],
['S', 'إ'],
['D', 'ي'],
['F', 'ة'],
['G', 'ۀ'],
['H', 'آ'],
['J', 'ـ'],
['K', '»'],
['L', '«'],
['Z', 'ظ'],
['X', 'ط'],
['C', 'ژ'],
['V', 'ؤ'],
['B', 'ذ'],
['N', '\u200cأ'],
['M', 'ء'],
['\\<', '>'],
['\\>', '<'],
['\\?', '؟']
]
};
$.ime.register( ckbTransliterationFakbd );
}( jQuery ) );

View File

@@ -0,0 +1,100 @@
( function ( $ ) {
'use strict';
var ckbTransliterationLakbd = {
id: 'ckb-transliteration-lakbd',
name: 'لاتینی',
description: 'Central Kurdish keyboard based on Latin keyboard',
date: '2013-07-06',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Çalak',
license: 'GPLv3',
version: '1.0',
patterns: [
['1', '١'],
['2', '٢'],
['3', '٣'],
['4', '٤'],
['5', '٥'],
['6', '٦'],
['7', '٧'],
['8', '٨'],
['9', '٩'],
['0', '٠'],
['q', 'ق'],
['w', 'و'],
['e', 'ە'],
['r', 'ر'],
['t', 'ت'],
['y', 'ی'],
['u', 'ئ'],
['i', 'ح'],
['o', 'ۆ'],
['p', 'پ'],
['\\[', ']'],
['\\]', '['],
['a', 'ا'],
['s', 'س'],
['d', 'د'],
['f', 'ف'],
['g', 'گ'],
['h', 'ھ'],
['j', 'ژ'],
['k', 'ک'],
['l', 'ل'],
['\\;', '؛'],
['z', 'ز'],
['x', 'خ'],
['c', 'ج'],
['v', 'ڤ'],
['b', 'ب'],
['n', 'ن'],
['m', 'م'],
['\\,', '،'],
['\\.', '.'],
['\\%', '٪'],
['\\(', ')'],
['\\)', '('],
['Q', 'ڎ'],
['W', 'وو'],
['E', 'ێ'],
['R', 'ڕ'],
['T', 'ط'],
['Y', 'ي'],
['U', 'ء'],
['I', 'ع'],
['O', 'ؤ'],
['P', 'ث'],
['\\{', '}'],
['\\}', '{'],
['A', 'آ'],
['S', 'ش'],
['D', 'ذ'],
['F', 'إ'],
['G', 'غ'],
['H', 'ه'],
['J', 'أ'],
['K', 'ك'],
['L', 'ڵ'],
['Z', 'ض'],
['X', 'ص'],
['C', 'چ'],
['V', 'ظ'],
['B', 'ى'],
['N', 'ة'],
['M', 'ـ'],
['\\<', '>'],
['\\>', '<'],
['\\?', '؟']
]
};
$.ime.register( ckbTransliterationLakbd );
}( jQuery ) );

View File

@@ -109,5 +109,4 @@
};
$.ime.register( cv );
}( jQuery ) );

View File

@@ -30,5 +30,4 @@
};
$.ime.register( cv );
}( jQuery ) );

View File

@@ -18,7 +18,6 @@
// so it's better to give them names to avoid confusion.
var cyrlPalochka;
cyrlPalochka = {
id: 'cyrl-palochka',
name: 'Cyrillic Palochka',

View File

@@ -46,5 +46,4 @@
};
$.ime.register( defs );
}( jQuery ) );
}( jQuery ) );

View File

@@ -24,5 +24,4 @@
};
$.ime.register( de );
}( jQuery ) );

View File

@@ -114,6 +114,6 @@
['\\>', 'ऽ'],
['\\.', '॥']]
};
$.ime.register( doiInScript2 );
}( jQuery ) );

View File

@@ -92,5 +92,4 @@
};
$.ime.register( elKbd );
}( jQuery ) );

View File

@@ -56,5 +56,4 @@
};
$.ime.register( eoHF );
}( jQuery ) );

View File

@@ -51,5 +51,4 @@
};
$.ime.register( eoH );
}( jQuery ) );

View File

@@ -52,5 +52,4 @@
};
$.ime.register( eoQ);
}( jQuery ) );

View File

@@ -2,7 +2,7 @@
'use strict';
function prepareRules () {
var rules= [], chars;
var rules = [], chars;
chars = {
C: 'Ĉ',

View File

@@ -62,5 +62,4 @@
};
$.ime.register( eoVi );
}( jQuery ) );

View File

@@ -50,5 +50,4 @@
};
$.ime.register( eoX );
}( jQuery ) );

View File

@@ -27,6 +27,6 @@
['e', '€']
]
};
$.ime.register( fiTransliteration );
$.ime.register( fiTransliteration );
}( jQuery ) );

View File

@@ -62,5 +62,4 @@
};
$.ime.register( defs );
}( jQuery ) );

View File

@@ -185,8 +185,8 @@
['ʽ\\[', '˞'], // [[[
['\\[\\[', 'ʽ'], // [[ // Not IPA sanctioned
['(?:\u031a)\\]', ''], // ]]]] // Not IPA sanctioned
['\\]', '\u031a'], // ]]] // Combining left angle above
['\\]\\]', ''], // ]]
['ʼ\\]', '\u031a'], // ]]] // Combining left angle above
['\\]\\]', 'ʼ'], // ]]
['(?:\u032f)\\$', '\u0330'], // $$$ // Combining tilde below
['(?:\u0329)\\$', '\u032f'], // $$ // Combining inverted breve below
@@ -206,7 +206,7 @@
['(?:\u033b)\\{', '\u033c'], // {{{{ // Combining seagull below
['(?:\u033a)\\{', '\u033b'], // {{{ // Combining square below
['(?:\u032a)\\{', '\u033a'], // {{ // Combining inverted bridge below
['\\{', '\u032a'], // { // Combining bridge below
['\\{', '\u032a'], // { // Combining bridge below
['(?:\u0303)~', '\u0334'], // ~~ // Combining tilde overlay
['~', '\u0303'], // ~ // Combining tilde
@@ -235,6 +235,6 @@
['=<', '\u200d'] // Combining Grapheme Joiner
]
};
$.ime.register( ipaSil );
$.ime.register( ipaSil );
} ( jQuery ) );

View File

@@ -0,0 +1,189 @@
( function ( $ ) {
'use strict';
var ipaSil = {
id: 'ipa-x-sampa',
name: 'International Phonetic Alphabet - X-SAMPA',
description: 'International Phonetic Alphabet - X-SAMPA',
date: '2012-11-26',
URL: 'http://www.phon.ucl.ac.uk/home/sampa/x-sampa.htm',
author: 'mapping by John C. Wells; implementation by Amir E. Aharoni',
license: 'GPLv3',
version: '1.0',
contextLength: 0,
maxKeyLength: 4,
patterns: [
// Tones
['_/', '\u030C'], // Combining caron
['_\\\\', '\u0302'], // Combining circumflex accent
['_ɥ_T', '\u1dc4'], // _H_T - Combining macron-acute
['_β_L', '\u1dc5'], // _B_L - Combining grave-macron
['_ʁ_F', '\u1dc8'], // _R_F - Combining grave-acute-grave
['β\\\\', 'ʙ'],
['p\\\\', 'ɸ'],
['B', 'β'],
['F', 'ɱ'],
// ⱱ is not in X-SAMPA
['P', 'ʋ'],
['v\\\\', 'ʋ'],
['T', 'θ'],
['D', 'ð'],
['4', 'ɾ'],
['K', 'ɬ'],
['ɬ\\\\', 'ɮ'],
['r\\\\', 'ɹ'],
['S', 'ʃ'],
['Z', 'ʒ'],
['t`', 'ʈ'],
['d`', 'ɖ'],
['n`', 'ɳ'],
['r`', 'ɽ'],
['s`', 'ʂ'],
['z`', 'ʐ'],
['ɹ`', 'ɻ'],
['l`', 'ɭ'],
['ɲ\\\\', 'ɟ'],
['J', 'ɲ'],
['C', 'ç'],
['j\\\\', 'ʝ'],
['L', 'ʎ'],
['g', 'ɡ'],
['_N', '\u033c'], // Combining seagull below
['N', 'ŋ'],
['_G', 'ˠ'],
['G', 'ɣ'],
['ɯ\\\\', 'ɰ'],
['ʎ\\\\', 'ʟ'],
['ɣ\\\\', 'ɢ'],
['ŋ\\\\', 'ɴ'],
['ʁ\\\\', 'ʀ'],
['_X', '\u0306'], // Combining breve
['X', 'χ'],
['R', 'ʁ'],
['χ\\\\', 'ħ'],
['_ʔ\\\\', 'ˤ'],
['ʔ\\\\', 'ʕ'],
['\\?', 'ʔ'],
['h\\\\', 'ɦ'],
['ɔ\\\\', 'ʘ'],
['ǀ\\|\\\\', 'ǁ'],
['\\|\\\\', 'ǀ'],
['ꜜ\\\\', 'ǃ'], // !\ -> Retroflex (postalveolar) click
['_?=', '\u0329'], // Combining vertical line below
['\u0329\\\\', 'ǂ'],
['b_<', 'ɓ'],
['d_<', 'ɗ'],
['ɟ_<', 'ʄ'],
['ɡ_<', 'ɠ'],
['ɢ_<', 'ʛ'],
['W', 'ʍ'],
['H', 'ɥ'],
['ɥ\\\\', 'ʜ'],
['<\\\\', 'ʢ'],
['>\\\\', 'ʡ'],
['s\\\\', 'ɕ'],
['z\\\\', 'ʑ'],
['l\\\\', 'ɺ'],
['x\\\\', 'ɧ'],
['I', 'ɪ'],
['E', 'ɛ'],
['\\{', 'æ'],
['Y', 'ʏ'],
['2', 'ø'],
['9', 'œ'],
['&', 'ɶ'],
['1', 'ɨ'],
['ə\\\\', 'ɘ'],
['@', 'ə'],
['ɜ\\\\', 'ɞ'],
['3', 'ɜ'],
['6', 'ɐ'],
['_\\}', '\u031a'],
['\\}', 'ʉ'],
['8', 'ɵ'],
['M', 'ɯ'],
['7', 'ɤ'],
['V', 'ʌ'],
['_A', '\u0318'], // Combining right tack below
['A', 'ɑ'],
['U', 'ʊ'],
['_O', '\u0339'], // ++++ // Combining right half ring below
['O', 'ɔ'],
['Q', 'ɒ'],
['%', 'ˌ'],
['_"', '\u0308'], // Combining diaeresis
['"', 'ˈ'],
['ː\\\\', 'ˑ'],
[':', 'ː'],
['\\.<', '|'],
['\\|\\|', '‖'],
['-\\\\', '‿'],
['<ʁ>', '↗'], // <R>
['<ɱ>', '↘'], // <F>
['!', 'ꜜ'],
['_\\^', '\u032f'], // Combining inverted breve below
['\\^', 'ꜛ'],
// Diacritics and suprasegmentals
['_h', 'ʰ'],
['_w', 'ʷ'],
['_j', 'ʲ'],
// see above for ˠ
// see above for ˤ
['_n', 'ⁿ'],
['_l', 'ˡ'],
['`', '˞'],
['_>', 'ʼ'],
// See above for No audible release
// See above for Syllabic
// See above for Non-syllabic
['_k', '\u0330'], // Combining tilde below
['([ɱɮɳɖʐɻɽɭɲɟʝjŋɡɣɰ])_0', '$1\u030a'], // Combining ring above
['(.)_0', '$1\u0325'], // Combining ring below
['_v', '\u032c'], // Combining caron below
['_t', '\u0324'], // Combining diaeresis below
['_d', '\u032a'], // Combining bridge below
['_a', '\u033a'], // Combining inverted bridge below
['_m', '\u033b'], // Combining square below
// See above for linguolabial
['_?~', '\u0303'], // Combining tilde
['_e', '\u0334'], // Combining tilde overlay
// See above for centralised
['_x', '\u033d'], // Combining x above
// See above for extra short
['_\\+', '\u031f'], // Combining plus sign below
['_-', '\u0320'], // Combining minus sign below
['_r', '\u031d'], // Combining up tack below
['_o', '\u031e'], // Combining down tack below
// See above for advanced tongue root
['_q', '\u0319'], // Combining left tack below
// See above for more rounded
['_c', '\u031c']
]
};
$.ime.register( ipaSil );
} ( jQuery ) );

View File

@@ -108,6 +108,6 @@
['$', '\u20B9'] ]
};
$.ime.register( guInscript );
$.ime.register( guInscript );
}( jQuery ) );

View File

@@ -16,7 +16,7 @@
['2', '૨'],
['\\#', '્ર'],
['3', '૩'],
['$', 'ર્'],
['\\$', 'ર્'],
['4', '૪'],
['5', '૫'],
['6', '૬'],
@@ -73,7 +73,7 @@
['l', 'ત'],
[':', 'છ'],
[';', 'ચ'],
['"', 'ઠ'],
['\"', 'ઠ'],
['\\\'', 'ટ'],
['\\|', 'ઑ'],
['\\', 'ૉ'],
@@ -98,8 +98,8 @@
['\\*', 'શ્ર']
],
patterns_x: [
['1', ''],
['2', ''],
['1', '\u200d'],
['2', '\u200c'],
['4', '₹'],
['\\+', 'ૠ'],
['\\=', 'ૄ'],
@@ -113,6 +113,6 @@
['\\.', 'ઽ']
]
};
$.ime.register( guInScript2 );
$.ime.register( guInScript2 );
}( jQuery ) );

View File

@@ -80,7 +80,7 @@
['"', 'ઊ'],
['\\\'', 'ઉ'],
['\\|', 'ઑ'],
['\\', 'ૉ'],
['\\\\', 'ૉ'],
['Z', 'ઁ'],
['z', 'ઙ'],
['x', 'ષ'],
@@ -105,6 +105,6 @@
['\\^', 'ત્ર'],
['\\*', 'શ્ર']]
};
$.ime.register( guPhonetic );
$.ime.register( guPhonetic );
}( jQuery ) );

View File

@@ -151,7 +151,6 @@
['J', '઼'], // Nukta
['(\u200C)*`', '\u200C']] // ZWNJ
};
$.ime.register( guTransliteration );
}( jQuery ) );

View File

@@ -63,5 +63,4 @@
};
$.ime.register( heStandardExtOnly );
}( jQuery ) );

View File

@@ -105,5 +105,4 @@
};
$.ime.register( hiBolNagri );
}( jQuery ) );

View File

@@ -117,6 +117,6 @@
[ '\\$', '\u20B9' ] ]
};
$.ime.register( hiInScript );
$.ime.register( hiInScript );
}( jQuery ) );

View File

@@ -122,6 +122,6 @@
['\\.', '॥']
]
};
$.ime.register( hiInScript2 );
$.ime.register( hiInScript2 );
}( jQuery ) );

View File

@@ -10,6 +10,7 @@
license: 'GPLv3',
version: '1.0',
patterns: [
['्f', '्\u200c'],
['\\~', 'ऎ'],
['\\`","ॆ'],
['\\!', 'ऍ'],
@@ -102,10 +103,9 @@
['/', 'ए'],
['\\^', 'ज्ञ'],
['X', 'क्ष'],
['\\*', 'श्र'],
['ff', '्‌']
['\\*', 'श्र']
]
};
$.ime.register( hiPhonetic );
$.ime.register( hiPhonetic );
}( jQuery ) );

View File

@@ -193,6 +193,6 @@
[ '([क-ह]़?)्(.)', '\\~', '$1्$2' ],
[ '([क-ह]़?)्(.)', '$1$2' ] ]
};
$.ime.register( hiTransliteration );
$.ime.register( hiTransliteration );
}( jQuery ) );

View File

@@ -57,5 +57,4 @@
};
$.ime.register( hrKbd );
}( jQuery ) );

View File

@@ -0,0 +1,169 @@
/**
* Eastern Armenian phonetic layout introduced by Microsoft in Windows 2000 and depreceated in Windows 8.
* Original layout was created in late 90-ies based on Unicode 3, and was never updated since release,
* causing it to be incompatible with Unicode.
*
* This layout version complies with Unicode 6.1, including all valid Armenian punctuation signs,
* mijaket (outside of main Armenian Unicode range) and Dram (AMD) sign under USD sign (Shift + 4).
* Please, double-check with Unicode before making any changes here.
*
* Layout supports extended keys, with AltGr (Alt or Alt+Ctrl on some systems) + key,
* producing digits and punctuation marks from standard US keyboard layout.
*/
( function ( $ ) {
'use strict';
var hyEmslegacy = {
id: 'hy-emslegacy',
name: 'ՄՍ Արևելահայերեն (հնացած)',
description: 'Legacy keyboard layout for Eastern Armenian by Microsoft',
date: '2013-02-11',
URL: 'http://www.microsoft.com/resources/msdn/goglobal/keyboards/kbdarme.html',
author: 'Parag Nemade, Aleksey Chalabyan',
license: 'GPLv3',
version: '1.1',
patterns: [
['1', '։'],
['\\!', '1'],
['2', 'ձ'],
['\\@', 'Ձ'],
['3', 'յ'],
['\\#', 'Յ'],
['4', '՛'],
['\\$', '֏'],
['5', ','],
['\\%', '4'],
['6', '-'],
['\\^', '9'],
['7', ''],
['\\&', 'և'],
['8', '«'],
['\\*', '('],
['9', '»'],
['\\(', ')'],
['0', 'օ'],
['\\)', 'Օ'],
['\\-', 'ռ'],
['\\_', 'Ռ'],
['\\=', 'ժ'],
['\\+', 'Ժ'],
['\\`', '՝'],
['\\~', '՜'],
['q', 'խ'],
['Q', 'Խ'],
['w', 'ւ'],
['W', 'Ւ'],
['e', 'է'],
['E', 'Է'],
['r', 'ր'],
['R', 'Ր'],
['t', 'տ'],
['T', 'Տ'],
['y', 'ե'],
['Y', 'Ե'],
['u', 'ը'],
['U', 'Ը'],
['i', 'ի'],
['I', 'Ի'],
['o', 'ո'],
['O', 'Ո'],
['p', 'պ'],
['P', 'Պ'],
['\\[', 'չ'],
['\\{', 'Չ'],
['\\]', 'ջ'],
['\\}', 'Ջ'],
['\\\\', '\''],
['\\|', '՞'],
['a', 'ա'],
['A', 'Ա'],
['s', 'ս'],
['S', 'Ս'],
['d', 'դ'],
['D', 'Դ'],
['f', 'ֆ'],
['F', 'Ֆ'],
['g', 'ք'],
['G', 'Ք'],
['h', 'հ'],
['H', 'Հ'],
['j', 'ճ'],
['J', 'Ճ'],
['k', 'կ'],
['K', 'Կ'],
['l', 'լ'],
['L', 'Լ'],
[';', 'թ'],
[':', 'Թ'],
['\'', 'փ'],
['\"', 'Փ'],
['z', 'զ'],
['Z', 'Զ'],
['x', 'ց'],
['X', 'Ց'],
['c', 'գ'],
['C', 'Գ'],
['v', 'վ'],
['V', 'Վ'],
['b', 'բ'],
['B', 'Բ'],
['n', 'ն'],
['N', 'Ն'],
['m', 'մ'],
['M', 'Մ'],
[',', 'շ'],
['\\<', 'Շ'],
['\\.', 'ղ'],
['\\>', 'Ղ'],
['/', 'ծ'],
['\\?', 'Ծ']
],
patterns_x: [
['1', '1'],
['\\!', '!'],
['2', '2'],
['\\@', '@'],
['3', '3'],
['\\#', '#'],
['4', '4'],
['\\$', '$'],
['5', '5'],
['\\%', '%'],
['6', '6'],
['\\^', '^'],
['7', '7'],
['\\&', '&'],
['8', '8'],
['\\*', '*'],
['9', '9'],
['\\(', '('],
['0', '0'],
['\\)', ')'],
['\\-', '-'],
['\\_', '_'],
['\\=', '='],
['\\+', '+'],
['\\`', '`'],
['\\~', '~'],
['\\[', '['],
['\\{', '{'],
['\\]', ']'],
['\\}', '}'],
['\\\\', '\\'],
['\\|', '|'],
[';', ';'],
['\\:', ':'],
['\'', '\''],
['\"', '\"'],
['\\<', '<'],
['\\.', '.'],
['\\>', '>'],
['/', '/'],
['\\?', '?']
]
};
$.ime.register( hyEmslegacy );
}( jQuery ) );

View File

@@ -0,0 +1,172 @@
/**
* This is a phonetic layout for the Armenian language (hy, arm, hye).
* The layout comes from DOS times, and was later popularised by KDWin and WinKeys keyboard "drivers".
* While not as efficient and well-thought as the official typewriter layout, it is very popular as
* it uses similary sounding Latin letters, which is very handy, as keyboards in Armenia
* don't come engraved with Armenian letters.
*
* This layout complies with Unicode 6.1, including all valid Armenian punctuation signs,
* mijaket (outside of main Armenian Unicode range) and Dram (AMD) sign.
* Please, double-check with Unicode before making any changes here.
*
* Layout supports extended keys, with AltGr (Alt or Alt+Ctrl on some systems) + key,
* producing digits and punctuation marks from standard US keyboard layout.
*/
( function ( $ ) {
'use strict';
var hyEphonetic = {
id: 'hy-ephonetic',
name: 'Հայերեն Հնչյունային',
description: 'Armenian phonetic (Eastern) keyboard layout',
date: '2013-07-06',
URL: 'http://hy.am',
author: 'Aleksey Chalabyan Ալեքսեյ Չալաբյան a.k.a Xelgen',
license: 'GPLv3',
version: '1.0',
contextLength: 0,
maxKeyLength: 0,
patterns: [
['1', 'է'],
['\\!', 'Է'],
['2', 'թ'],
['\\@', 'Թ'],
['3', 'փ'],
['\\#', 'Փ'],
['4', 'ձ'],
['\\$', 'Ձ'],
['5', 'ջ'],
['\\%', 'Ջ'],
['6', '֏'],
['\\^', '('],
['7', 'և'],
['\\&', ')'],
['8', 'ր'],
['\\*', 'Ր'],
['9', 'չ'],
['\\(', 'Չ'],
['0', 'ճ'],
['\\)', 'Ճ'],
['\\-', ''],
['\\_', '—'],
['\\=', 'ժ'],
['\\+', 'Ժ'],
['\\`', '՝'],
['\\~', '՜'],
['q', 'ք'],
['Q', 'Ք'],
['w', 'ո'],
['W', 'Ո'],
['e', 'ե'],
['E', 'Ե'],
['r', 'ռ'],
['R', 'Ռ'],
['t', 'տ'],
['T', 'Տ'],
['y', 'ը'],
['Y', 'Ը'],
['u', 'ւ'],
['U', 'Ւ'],
['i', 'ի'],
['I', 'Ի'],
['o', 'օ'],
['O', 'Օ'],
['p', 'պ'],
['P', 'Պ'],
['\\[', 'խ'],
['\\{', 'Խ'],
['\\]', 'ծ'],
['\\}', 'Ծ'],
['\\\\', 'շ'],
['\\|', 'Շ'],
['a', 'ա'],
['A', 'Ա'],
['s', 'ս'],
['S', 'Ս'],
['d', 'դ'],
['D', 'Դ'],
['f', 'ֆ'],
['F', 'Ֆ'],
['g', 'գ'],
['G', 'Գ'],
['h', 'հ'],
['H', 'Հ'],
['j', 'յ'],
['J', 'Յ'],
['k', 'կ'],
['K', 'Կ'],
['l', 'լ'],
['L', 'Լ'],
[';', ';'],
[':', '։'],
['\'', '՛'],
['\"', '"'],
['z', 'զ'],
['Z', 'Զ'],
['x', 'ղ'],
['X', 'Ղ'],
['c', 'ց'],
['C', 'Ց'],
['v', 'վ'],
['V', 'Վ'],
['b', 'բ'],
['B', 'Բ'],
['n', 'ն'],
['N', 'Ն'],
['m', 'մ'],
['M', 'Մ'],
[',', ','],
['\\<', '«'],
['\\.', ''],
['\\>', '»'],
['/', '…'],
['\\?', '՞']
],
patterns_x: [
['1', '1'],
['\\!', '!'],
['2', '2'],
['\\@', '@'],
['3', '3'],
['\\#', '#'],
['4', '4'],
['\\$', '$'],
['5', '5'],
['\\%', '%'],
['6', '6'],
['\\^', '^'],
['7', '7'],
['\\&', '&'],
['8', '8'],
['\\*', '*'],
['9', '9'],
['\\(', '('],
['0', '0'],
['\\)', ')'],
['\\-', '-'],
['\\_', '_'],
['\\=', '='],
['\\+', '+'],
['\\`', '`'],
['\\~', '~'],
['\\[', '['],
['\\{', '{'],
['\\]', ']'],
['\\}', '}'],
['\\\\', '\\'],
['\\|', '|'],
[';', ';'],
['\\:', ':'],
['\'', '\''],
['\"', '\"'],
['\\<', '<'],
['\\.', '.'],
['\\>', '>'],
['/', '/'],
['\\?', '?']
]
};
$.ime.register( hyEphonetic );
}( jQuery ) );

View File

@@ -0,0 +1,172 @@
/**
* This is alternative phonetic layout for Armenian language (hy, arm, hye).
* Based on Armenian phonetic layout, it improves few things, by placing ր under latin r,
* as ր is much more frequent in Armenian. ռ goes under 8, where ր is in standart phonetic.
* Another change, which is not yet in xkb, ( as of July 2013), is swapping ֆ and թ: Ֆ is
* placed under F, where left index finger is, but is the least used letter in Armenian,
* so much more used թ takes it place, comming down from 2.
*
* This layout complies with Unicode 6.1, including all valid Armenian punctuation signs,
* mijaket (outside of main Armenian Unicode range) and Dram (AMD) sign.
* Please, double-check with Unicode before making any changes here.
*
* Layout supports extended keys, with AltGr (Alt or Alt+Ctrl on some systems) + key,
* producing digits and punctuation marks from standard US keyboard layout.
*/
( function ( $ ) {
'use strict';
var hyEphonetic = {
id: 'hy-ephoneticalt',
name: 'Հայերեն Հնչյունային (R->Ր, F->Թ)',
description: 'Eastern Armenian alternative phonetic keyboard layout',
date: '2013-07-08',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Aleksey Chalabyan Ալեքսեյ Չալաբյան a.k.a Xelgen',
license: 'GPLv3',
version: '1.0',
patterns: [
['1', 'է'],
['\\!', 'Է'],
['2', 'ֆ'],
['\\@', 'Ֆ'],
['3', 'փ'],
['\\#', 'Փ'],
['4', 'ձ'],
['\\$', 'Ձ'],
['5', 'ջ'],
['\\%', 'Ջ'],
['6', '֏'],
['\\^', '('],
['7', 'և'],
['\\&', ')'],
['8', 'ռ'],
['\\*', 'Ռ'],
['9', 'չ'],
['\\(', 'Չ'],
['0', 'ճ'],
['\\)', 'Ճ'],
['\\-', ''],
['\\_', '—'],
['\\=', 'ժ'],
['\\+', 'Ժ'],
['\\`', '՝'],
['\\~', '՜'],
['q', 'ք'],
['Q', 'Ք'],
['w', 'ո'],
['W', 'Ո'],
['e', 'ե'],
['E', 'Ե'],
['r', 'ր'],
['R', 'Ր'],
['t', 'տ'],
['T', 'Տ'],
['y', 'ը'],
['Y', 'Ը'],
['u', 'ւ'],
['U', 'Ւ'],
['i', 'ի'],
['I', 'Ի'],
['o', 'օ'],
['O', 'Օ'],
['p', 'պ'],
['P', 'Պ'],
['\\[', 'խ'],
['\\{', 'Խ'],
['\\]', 'ծ'],
['\\}', 'Ծ'],
['\\\\', 'շ'],
['\\|', 'Շ'],
['a', 'ա'],
['A', 'Ա'],
['s', 'ս'],
['S', 'Ս'],
['d', 'դ'],
['D', 'Դ'],
['f', 'թ'],
['F', 'Թ'],
['g', 'գ'],
['G', 'Գ'],
['h', 'հ'],
['H', 'Հ'],
['j', 'յ'],
['J', 'Յ'],
['k', 'կ'],
['K', 'Կ'],
['l', 'լ'],
['L', 'Լ'],
[';', ';'],
[':', '։'],
['\'', '՛'],
['\"', '"'],
['z', 'զ'],
['Z', 'Զ'],
['x', 'ղ'],
['X', 'Ղ'],
['c', 'ց'],
['C', 'Ց'],
['v', 'վ'],
['V', 'Վ'],
['b', 'բ'],
['B', 'Բ'],
['n', 'ն'],
['N', 'Ն'],
['m', 'մ'],
['M', 'Մ'],
[',', ','],
['\\<', '«'],
['\\.', ''],
['\\>', '»'],
['/', '…'],
['\\?', '՞']
],
patterns_x: [
['1', '1'],
['\\!', '!'],
['2', '2'],
['\\@', '@'],
['3', '3'],
['\\#', '#'],
['4', '4'],
['\\$', '$'],
['5', '5'],
['\\%', '%'],
['6', '6'],
['\\^', '^'],
['7', '7'],
['\\&', '&'],
['8', '8'],
['\\*', '*'],
['9', '9'],
['\\(', '('],
['0', '0'],
['\\)', ')'],
['\\-', '-'],
['\\_', '_'],
['\\=', '='],
['\\+', '+'],
['\\`', '`'],
['\\~', '~'],
['\\[', '['],
['\\{', '{'],
['\\]', ']'],
['\\}', '}'],
['\\\\', '\\'],
['\\|', '|'],
[';', ';'],
['\\:', ':'],
['\'', '\''],
['\"', '\"'],
['\\<', '<'],
['\\.', '.'],
['\\>', '>'],
['/', '/'],
['\\?', '?']
]
};
$.ime.register( hyEphonetic );
}( jQuery ) );

View File

@@ -1,113 +0,0 @@
( function ( $ ) {
'use strict';
var hyKbd = {
id: 'hy-kbd',
name: 'kbd',
description: 'Eastern Armenian keyboard layout',
date: '2013-02-11',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Parag Nemade',
license: 'GPLv3',
version: '1.0',
patterns: [
['1', ':'],
['\\!', '1'],
['2', 'ձ'],
['\\@', 'Ձ'],
['3', 'յ'],
['\\#', 'Յ'],
['4', '՛'],
['\\$', '3'],
['5', ','],
['\\%', '4'],
['6', '-'],
['\\^', '9'],
['7', '.'],
['\\&', 'և'],
['8', '«'],
['\\*', '('],
['9', '»'],
['\\(', ')'],
['0', 'օ'],
['\\)', 'Օ'],
['\\-', 'ռ'],
['\\_', 'Ռ'],
['\\=', 'ժ'],
['\\+', 'Ժ'],
['\\`', '՝'],
['\\~', '՜'],
['q', 'խ'],
['Q', 'Խ'],
['w', 'ւ'],
['W', 'Ւ'],
['e', 'է'],
['E', 'Է'],
['r', 'ր'],
['R', 'Ր'],
['t', 'տ'],
['T', 'Տ'],
['y', 'ե'],
['Y', 'Ե'],
['u', 'ը'],
['U', 'Ը'],
['i', 'ի'],
['I', 'Ի'],
['o', 'ո'],
['O', 'Ո'],
['p', 'պ'],
['P', 'Պ'],
['\\[', 'չ'],
['\\{', 'Չ'],
['\\]', 'ջ'],
['\\}', 'Ջ'],
['\\', '\''],
['\\|', '՞'],
['a', 'ա'],
['A', 'Ա'],
['s', 'ս'],
['S', 'Ս'],
['d', 'դ'],
['D', 'Դ'],
['f', 'ֆ'],
['F', 'Ֆ'],
['g', 'ք'],
['G', 'Ք'],
['h', 'հ'],
['H', 'Հ'],
['j', 'ճ'],
['J', 'Ճ'],
['k', 'կ'],
['K', 'Կ'],
['l', 'լ'],
['L', 'Լ'],
[';', 'թ'],
[':', 'Թ'],
['\'', 'փ'],
['\"', 'Փ'],
['z', 'զ'],
['Z', 'Զ'],
['x', 'ց'],
['X', 'Ց'],
['c', 'գ'],
['C', 'Գ'],
['v', 'վ'],
['V', 'Վ'],
['b', 'բ'],
['B', 'Բ'],
['n', 'ն'],
['N', 'Ն'],
['m', 'մ'],
['M', 'Մ'],
[',', 'շ'],
['\\<', 'Շ'],
['.', 'ղ'],
['\\>', 'Ղ'],
['/', 'ծ'],
['\\?', 'Ծ']
]
};
$.ime.register( hyKbd );
}( jQuery ) );

View File

@@ -0,0 +1,168 @@
/**
* Armenian typewriter layout
* Based on themonly official state standard for Armenian keyboard layout:
* http://www.sarm.am/en/standarts/view/5741
*
* This layout complies with Unicode 6.1, including all valid Armenian punctuation signs,
* mijaket (outside of main Armenian Unicode range) and Dram (AMD) sign.
* Please, double-check with Unicode before making any changes here.
*
* Layout supports extended keys, with AltGr (Alt or Alt+Ctrl on some systems) + key,
* producing digits and punctuation marks from standard US keyboard layout.
*/
( function ( $ ) {
'use strict';
var hyTypewriter = {
id: 'hy-typewriter',
name: 'Հայերեն Գրամեքենա',
description: 'Armenian typewriter keyboard layout',
date: '2013-07-08',
URL: 'http://www.sarm.am/en/standarts/view/5741',
author: 'Aleksey Chalabyan Ալեքսեյ Չալաբյան a.k.a Xelgen',
license: 'GPLv3',
version: '1.0',
patterns: [
['1', 'ֆ'],
['\\!', 'Ֆ'],
['2', 'ձ'],
['\\@', 'Ձ'],
['3', '-'],
['\\#', ''],
['4', ','],
['\\$', '֏'],
['5', '։'],
['\\%', '֊'],
['6', '՞'],
['\\^', '—'],
['7', ''],
['\\&', 'և'],
['8', '՛'],
['\\*', '՚'],
['9', ')'],
['\\(', '('],
['0', 'օ'],
['\\)', 'Օ'],
['\\-', 'է'],
['\\_', 'Է'],
['\\=', 'ղ'],
['\\+', 'Ղ'],
['\\`', '՝'],
['\\~', '՜'],
['q', 'ճ'],
['Q', 'Ճ'],
['w', 'փ'],
['W', 'Փ'],
['e', 'բ'],
['E', 'Բ'],
['r', 'ս'],
['R', 'Ս'],
['t', 'մ'],
['T', 'Մ'],
['y', 'ո'],
['Y', 'Ո'],
['u', 'ւ'],
['U', 'Ւ'],
['i', 'կ'],
['I', 'Կ'],
['o', 'ը'],
['O', 'Ը'],
['p', 'թ'],
['P', 'Թ'],
['\\[', 'ծ'],
['\\{', 'Ծ'],
['\\]', 'ց'],
['\\}', 'Ց'],
['\\\\', '»'],
['\\|', '«'],
['a', 'ջ'],
['A', 'Ջ'],
['s', 'վ'],
['S', 'Վ'],
['d', 'գ'],
['D', 'Գ'],
['f', 'ե'],
['F', 'Ե'],
['g', 'ա'],
['G', 'Ա'],
['h', 'ն'],
['H', 'Ն'],
['j', 'ի'],
['J', 'Ի'],
['k', 'տ'],
['K', 'Տ'],
['l', 'հ'],
['L', 'Հ'],
[';', 'պ'],
[':', 'Պ'],
['\'', 'ր'],
['\"', 'Ր'],
['z', 'ժ'],
['Z', 'Ժ'],
['x', 'դ'],
['X', 'Դ'],
['c', 'չ'],
['C', 'Չ'],
['v', 'յ'],
['V', 'Յ'],
['b', 'զ'],
['B', 'Զ'],
['n', 'լ'],
['N', 'Լ'],
['m', 'ք'],
['M', 'Ք'],
[',', 'խ'],
['\\<', 'Խ'],
['\\.', 'շ'],
['\\>', 'Շ'],
['/', 'ռ'],
['\\?', 'Ռ']
],
patterns_x: [
['1', '1'],
['\\!', '!'],
['2', '2'],
['\\@', '@'],
['3', '3'],
['\\#', '#'],
['4', '4'],
['\\$', '$'],
['5', '5'],
['\\%', '%'],
['6', '6'],
['\\^', '^'],
['7', '7'],
['\\&', '&'],
['8', '8'],
['\\*', '*'],
['9', '9'],
['\\(', '('],
['0', '0'],
['\\)', ')'],
['\\-', '-'],
['\\_', '_'],
['\\=', '='],
['\\+', '+'],
['\\`', '`'],
['\\~', '~'],
['\\[', '['],
['\\{', '{'],
['\\]', ']'],
['\\}', '}'],
['\\\\', '\\'],
['\\|', '|'],
[';', ';'],
['\\:', ':'],
['\'', '\''],
['\"', '\"'],
['\\<', '<'],
['\\.', '.'],
['\\>', '>'],
['/', '/'],
['\\?', '?']
]
};
$.ime.register( hyTypewriter );
}( jQuery ) );

View File

@@ -0,0 +1,169 @@
/**
* Western Armenian phonetic layout introduced by Microsoft in Windows 2000 and depreceated in Windows 8.
* Original layout was created in late 90-ies based on Unicode 3, and was never updated since release,
* causing it to be incompatible with Unicode.
*
* This layout version complies with Unicode 6.1, including all valid Armenian punctuation signs,
* mijaket (outside of main Armenian Unicode range) and Dram (AMD) sign under USD sign (Shift + 4).
* Please, double-check with Unicode before making any changes here.
*
* Layout supports extended keys, with AltGr (Alt or Alt+Ctrl on some systems) + key,
* producing digits and punctuation marks from standard US keyboard layout.
*/
( function ( $ ) {
'use strict';
var hyWmslegacy = {
id: 'hy-wmslegacy',
name: 'ՄՍ Արևմտահայերեն (հնացած)',
description: 'Legacy keyboard layout for Western Armenian by Microsoft',
date: '2013-07-08',
URL: 'http://www.microsoft.com/resources/msdn/goglobal/keyboards/kbdarmw.html',
author: 'Aleksey Chalabyan Ալեքսեյ Չալաբյան a.k.a Xelgen',
license: 'GPLv3',
version: '1.0',
patterns: [
['1', '։'],
['\\!', '1'],
['2', 'ձ'],
['\\@', 'Ձ'],
['3', 'յ'],
['\\#', 'Յ'],
['4', '՛'],
['\\$', '֏'],
['5', ','],
['\\%', '4'],
['6', '-'],
['\\^', '9'],
['7', ''],
['\\&', 'և'],
['8', '«'],
['\\*', '('],
['9', '»'],
['\\(', ')'],
['0', 'օ'],
['\\)', 'Օ'],
['\\-', 'ռ'],
['\\_', 'Ռ'],
['\\=', 'ժ'],
['\\+', 'Ժ'],
['\\`', '՝'],
['\\~', '՜'],
['q', 'խ'],
['Q', 'Խ'],
['w', 'վ'],
['W', 'Վ'],
['e', 'է'],
['E', 'Է'],
['r', 'ր'],
['R', 'Ր'],
['t', 'դ'],
['T', 'Դ'],
['y', 'ե'],
['Y', 'Ե'],
['u', 'ը'],
['U', 'Ը'],
['i', 'ի'],
['I', 'Ի'],
['o', 'ո'],
['O', 'Ո'],
['p', 'բ'],
['P', 'Բ'],
['\\[', 'չ'],
['\\{', 'Չ'],
['\\]', 'ջ'],
['\\}', 'Ջ'],
['\\\\', '\''],
['\\|', '՞'],
['a', 'ա'],
['A', 'Ա'],
['s', 'ս'],
['S', 'Ս'],
['d', 'տ'],
['D', 'Տ'],
['f', 'ֆ'],
['F', 'Ֆ'],
['g', 'կ'],
['G', 'Կ'],
['h', 'հ'],
['H', 'Հ'],
['j', 'ճ'],
['J', 'Ճ'],
['k', 'ք'],
['K', 'Ք'],
['l', 'լ'],
['L', 'Լ'],
[';', 'թ'],
[':', 'Թ'],
['\'', 'փ'],
['\"', 'Փ'],
['z', 'զ'],
['Z', 'Զ'],
['x', 'ց'],
['X', 'Ց'],
['c', 'գ'],
['C', 'Գ'],
['v', 'ւ'],
['V', 'Ւ'],
['b', 'պ'],
['B', 'Պ'],
['n', 'ն'],
['N', 'Ն'],
['m', 'մ'],
['M', 'Մ'],
[',', 'շ'],
['\\<', 'Շ'],
['\\.', 'ղ'],
['\\>', 'Ղ'],
['/', 'ծ'],
['\\?', 'Ծ']
],
patterns_x: [
['1', '1'],
['\\!', '!'],
['2', '2'],
['\\@', '@'],
['3', '3'],
['\\#', '#'],
['4', '4'],
['\\$', '$'],
['5', '5'],
['\\%', '%'],
['6', '6'],
['\\^', '^'],
['7', '7'],
['\\&', '&'],
['8', '8'],
['\\*', '*'],
['9', '9'],
['\\(', '('],
['0', '0'],
['\\)', ')'],
['\\-', '-'],
['\\_', '_'],
['\\=', '='],
['\\+', '+'],
['\\`', '`'],
['\\~', '~'],
['\\[', '['],
['\\{', '{'],
['\\]', ']'],
['\\}', '}'],
['\\\\', '\\'],
['\\|', '|'],
[';', ';'],
['\\:', ':'],
['\'', '\''],
['\"', '\"'],
['\\<', '<'],
['\\.', '.'],
['\\>', '>'],
['/', '/'],
['\\?', '?']
]
};
$.ime.register( hyWmslegacy );
}( jQuery ) );

View File

@@ -5,213 +5,269 @@
id: 'jv-transliteration',
name: 'Javanese',
description: 'Javanese transliteration',
date: '2012-09-01',
date: '2013-08-10',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Bennylin',
license: 'GPLv3',
version: '1.0',
version: '1.1',
contextLength: 1,
maxKeyLength: 2,
patterns: [
[ '\\\\([A-Za-z\\>_~\\.0-9])', '\\\\', '$1' ],
['ꦝ꧀q', '','ꦞ꧀'], // Dha murda
['ꦚ꧀q', '','ꦘ꧀'], // Nya murda
['ꦧ꧀q', '','ꦨ꧀'], // Ba murda
['ꦕ꧀q', '','ꦖ꧀'], // Ca murda(?)
['ꦒ꧀q', '','ꦓ꧀'], // Ga murda
['ꦗ꧀q', '','ꦙ꧀'], // Ja Mahaprana
['ꦏ꧀q', '','ꦑ꧀'], // Ka murda
['ꦤ꧀q', '','ꦟ꧀'], // Na murda
['ꦥ꧀q', '','ꦦ꧀'], // Pa murda
['ꦱ꧀q', '','ꦯ꧀'], // Sa murda
['ꦠ꧀q', '','ꦡ꧀'], // Ta murda
[ '꧀ꦃa', '', '꧀​ꦲ' ], // pangkon and start with h
[ '꧀ꦃe', '', '꧀​ꦲꦺ' ], // pangkon and start with h
[ '꧀ꦃi', '', '꧀​ꦲꦶ' ], // pangkon and start with h
[ '꧀ꦃo', '', '꧀​ꦲꦺꦴ' ], // pangkon and start with h
[ '꧀ꦃu', '', '꧀​ꦲꦸ' ], // pangkon and start with h
// VII. Vocal ended with special pasangan followed by vocal = back to normal
['ꦃa', '',''], // vocal ended with -h followed by a
['ꦃe', '','ꦲꦺ'], // vocal ended with -h followed by e
['ꦃi', '','ꦲꦶ'], // vocal ended with -h followed by i
['ꦃo', '','ꦲꦺꦴ'], // vocal ended with -h followed by o
['ꦃu', '','ꦲꦸ'], // vocal ended with -h followed by u
[ 'ꦂa', '', '꧀​ꦫ' ], // pangkon and start with r
[ 'ꦂe', '', '꧀​ꦫꦺ' ], // pangkon and start with r
[ 'ꦂi', '', '꧀​ꦫꦶ' ], // pangkon and start with r
[ 'ꦂo', '', '꧀​ꦫꦺꦴ' ], // pangkon and start with r
[ 'ꦂu', '', '꧀​ꦫꦸ' ], // pangkon and start with r
['ꦂa', '','ꦫ'], // vocal ended with -r followed by a
['ꦂe', '','ꦫꦺ'], // vocal ended with -r followed by e
['ꦂi', '','ꦫꦶ'], // vocal ended with -r followed by i
['ꦂo', '','ꦫꦺꦴ'], // vocal ended with -r followed by o
['ꦂu', '','ꦫꦸ'], // vocal ended with -r followed by u
['ꦂy', '','ꦫꦾ'], // vocal ended with -r followed by y (Special)
[ 'ꦁa', '', '꧀​ꦔ' ], // pangkon and start with ng
[ 'ꦁe', '', '꧀​ꦔꦺ' ], // pangkon and start with ng
[ 'ꦁi', '', '꧀​ꦔꦶ' ], // pangkon and start with ng
[ 'ꦁo', '', '꧀​ꦔꦺꦴ' ], // pangkon and start with ng
[ 'ꦁu', '', '꧀​ꦔꦸ' ], // pangkon and start with ng
['ꦁa', '','ꦔ'], // vocal ended with -ng followed by a
['ꦁe', '','ꦔꦺ'], // vocal ended with -ng followed by e
['ꦁi', '','ꦔꦶ'], // vocal ended with -ng followed by i
['ꦁo', '','ꦔꦺꦴ'], // vocal ended with -ng followed by o
['ꦁu', '','ꦔꦸ'], // vocal ended with -ng followed by u
[ 'ꦃa', '', 'ꦲ​' ], // vocal ended with -h followed by a
[ 'ꦃe', '', 'ꦲꦺ' ], // vocal ended with -h followed by e
[ 'ꦃi', '', 'ꦲꦶ' ], // vocal ended with -h followed by i
[ 'ꦃo', '', 'ꦲꦺꦴ' ], // vocal ended with -h followed by o
[ 'ꦃu', '', 'ꦲꦸ' ], // vocal ended with -h followed by u
// VI. Vocal (lowercase, uppercase, extended) ended with h/r/ng = special pasangan (-h, -r, -ng)
['h', '','꧀ꦲ꧀'],
// vocal a ended with h/r/ng
['(ꦲ|ꦤ|ꦕ|ꦫ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦪ|ꦚ|ꦩ|ꦒ|ꦧ|ꦛ|ꦔ|ꦘ|ꦿ|ꦾ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ|꦳)(h|H)', '','$1ꦃ'], // hanacaraka + h = -h
['(ꦲ|ꦤ|ꦕ|ꦫ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦪ|ꦚ|ꦩ|ꦒ|ꦧ|ꦛ|ꦔ|ꦘ|ꦿ|ꦾ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ|꦳)(r|R)', '','$1ꦂ'], // hanacaraka + r = -r
['(ꦲ|ꦤ|ꦕ|ꦫ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦪ|ꦚ|ꦩ|ꦒ|ꦧ|ꦛ|ꦔ|ꦘ|ꦿ|ꦾ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ|꦳)(ꦤ|ꦟ)꧀(g|G)', '','$1ꦁ'], // hanacaraka + ng = -ng
// other vocals ended with h/r/ng
['(ꦴ|ꦻ|ꦍ|ꦺ|ꦼ|ꦶ|ꦷ|ꦸ|ꦹ|ꦄ|ꦌ|ꦆ|ꦎ|ꦈ)(h|H)', '','$1ꦃ'], // other vocal ended with -h
['(ꦴ|ꦻ|ꦍ|ꦺ|ꦼ|ꦶ|ꦷ|ꦸ|ꦹ|ꦄ|ꦌ|ꦆ|ꦎ|ꦈ)(r|R)', '','$1ꦂ'], // other vocal ended with -r
['(ꦴ|ꦻ|ꦍ|ꦺ|ꦼ|ꦶ|ꦷ|ꦸ|ꦹ|ꦄ|ꦌ|ꦆ|ꦎ|ꦈ)(ꦤ|ꦟ)꧀(g|G)', '','$1ꦁ'], // other vocal ended with -ng
[ 'ꦂa', '', 'ꦫ​' ], // vocal ended with -r followed by a
[ 'ꦂe', '', 'ꦫꦺ' ], // vocal ended with -r followed by e
[ 'ꦂi', '', 'ꦫꦶ' ], // vocal ended with -r followed by i
[ 'ꦂo', '', 'ꦫꦺꦴ' ], // vocal ended with -r followed by o
[ 'ꦂu', '', 'ꦫꦸ' ], // vocal ended with -r followed by u
[ 'ꦂy', '', 'ꦫꦾ' ], // vocal ended with -r followed by y
// V. Lower case consonant followed by lower case consonant: Basic
// Note: not all of these combination are valid in Javanese language, for example -hn-,
// so they are here only for logical reason, practically they should never be used.
// Obvious removal are noted (such as -yy-). th, dh, ny, ng, c, h, r, w, y are special cases:
[ 'ꦁa', '', 'ꦔ​' ], // vocal ended with -ng followed by a
[ 'ꦁe', '', 'ꦔꦺ' ], // vocal ended with -ng followed by e
[ 'ꦁi', '', 'ꦔꦶ' ], // vocal ended with -ng followed by i
[ 'ꦁo', '', 'ꦔꦺꦴ' ], // vocal ended with -ng followed by o
[ 'ꦁu', '', 'ꦔꦸ' ], // vocal ended with -ng followed by u
// pasangan 'ha'(ꦲ/ꦃ) is considered final, exception: about 60 words can be found of "ha" followed by consonant y/r/l/w
// pasangan 'ra'(ꦫ/ꦂ) is considered final, exception: 5 words can be found of "ra" followed by consonant y/w
// pasangan bigraf nga(ꦔ/ꦁ) is considered final, exception: "nga" can only be found followed by consonant y/r/l/w
// (some problem may occur - see http://jv.wikipedia.org/wiki/Dhiskusi_Panganggo:Bennylin/Narayam#Ng)
// pasangan bigraf nya can only be found followed by consonant r/l/w, and
// although not found in Latin, it also found in Javanese script representation of nasal sounds ñ (see nyc and nyj)
// pasangan bigraf dha can only be found followed by consonant y/r/ w
// pasangan bigraf tha can only be found followed by consonant r
// the letter 'w' can only be found followed by consonant y/r/l/w (nasal for 'u')
// the letter 'c' can only be found followed by consonant r/l, and ch
// the letter 'y' can only be found followed by consonant w (nasal for 'i')
[ '()h', '', '' ], // vocal a ended with -h
[ '()r', '', '' ], // vocal a ended with -r
[ '()ꦤg', '', '' ], // vocal a ended with -ng
[ '(ꦴ|ꦍ|ꦺ|ꦼ|ꦶ|ꦷ|ꦸ|ꦹ)h', '', '$1' ], // other vocal ended with -h
[ '(ꦴ|ꦍ|ꦺ|ꦼ|ꦶ|ꦷ|ꦸ|ꦹ)r', '', '$1ꦂ' ], // other vocal ended with -r
[ '(ꦴ|ꦍ|ꦺ|ꦼ|ꦶ|ꦷ|ꦸ|ꦹ)ꦤg', '', '$1ꦁ' ], // other vocal ended with -ng
// consonant followed by consonant, basic
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)ꦢh', '', '$1꧀' ], // dh
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)ꦤy', '', '$1꧀' ], // ny
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)ꦠh', '', '$1꧀ꦛ' ], // th
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)ꦤg', '', '$1꧀ꦔ' ], // ng
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)b', '', '$1꧀' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)c', '', '$1꧀' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)d', '', '$1꧀' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)(f|v)', '', '$1꧀ꦥ꦳' ],
[ '(ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)g', '', '$1꧀ꦒ' ], // can't be started with n, reserved for bigraf ng
[ '(ꦤ|ꦕ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦧ)h', '', '$1꧀ꦲ' ], // can't be started with k/d/t/g, reserved for bigraf kh/dh/th/gh
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)j', '', '$1꧀ꦗ' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)k', '', '$1꧀ꦏ' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)l', '', '$1꧀' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)m', '', '$1꧀' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)n', '', '$1꧀' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ||ꦩ|ꦒ|ꦧ)p', '', '$1꧀' ],
// ['(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)q', '',''],
[ 'ꦿꦺ`', '', '' ], // special biconsonant -rê
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)r', '', '$1ꦿ' ], // special biconsonant -ra
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)s', '', '$1꧀ꦱ' ],
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)t', '', '$1꧀ꦠ' ],
['꧀a', '',''], // default vowel is a, so, remove the pangkon
['꧀A', '',''], // A
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀b', '','$1꧀ꦧ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀B', '','$1꧀ꦨ꧀'], // pasangan Ba murda
['ꦤ꧀​(c|C)', '','ꦚ꧀ꦕ꧀'], // n+zero-width-space+c
['ꦤ꧀(c|C)', '','ꦚ꧀ꦕ꧀'], // n followed by c became nasalized (nasal sound 'ny' + c)(REF:nyc)
['(ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀c', '','$1꧀ꦕ꧀'],
['(ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀C', '','$1꧀ꦖ꧀'], // pasangan Ca murda(?)
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀d', '','$1꧀ꦢ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀D', '','$1꧀ꦣ꧀'],
['꧀e', '',''], // é|è
['꧀E', '',''], // É|È
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀(f|v|F|V)', '','$1꧀ꦥ꦳꧀'],
['(ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀g', '','$1꧀ꦒ꧀'], // can't be started with n, reserved for bigraf ng
['(ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀G', '','$1꧀ꦓ꧀'], // pasangan Ga murda (can't be started with n - see II. 2.)
['(ꦤ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀(h|H)', '','$1꧀ꦲ꧀'], // can't be started with k/d/t/g, reserved for bigraf kh/dh/th/gh
['꧀i', '',''], // i
['꧀I', '',''], // I
['ꦤ꧀​(j|J)', '','꧀ꦗ'], // n+zero-width-space+j
['ꦤ꧀(j|J)', '','ꦚ꧀ꦗ꧀'], // n followed by j became nasalized (nasal sound 'ny' + j)(REF:nyj)
['(ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀(j|J)', '','$1꧀ꦗ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀k', '','$1꧀ꦏ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀K', '','$1꧀ꦑ꧀'], // pasangan Ka murda
['(ꦲ|ꦃ|ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ||ꦩ|ꦒ|ꦧ|ꦔ|ꦁ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀(l|L)', '','$1꧀ꦭ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀(m|M)', '','$1꧀ꦩ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀n', '','$1꧀ꦤ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀N', '','$1꧀ꦟ꧀'], // pasangan Na murda
['꧀o', '','ꦺꦴ'], // o
['꧀O', '',''], // O
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀p', '','$1꧀ꦥ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀P', '','$1꧀ꦦ꧀'], // pasangan Pa murda
// q
['(ꦲ|ꦃ|ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦚ|ꦩ|ꦒ|ꦧ|ꦛ|ꦔ|ꦁ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀r', '','$1꧀ꦫ꧀'], // consonant+zero-width-space+(r|R) doesn't make special biconsonant -ra
['(ꦲ|ꦃ|ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦚ|ꦩ|ꦒ|ꦧ|ꦛ|ꦔ|ꦁ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀R', '','$1꧀ꦬ꧀'], // consonant+zero-width-space+(r|R) doesn't make special biconsonant -ra
['(ꦲ|ꦃ|ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦚ|ꦩ|ꦒ|ꦧ|ꦛ|ꦔ|ꦁ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀(r|R)', '','$1ꦿ'], // special biconsonant -ra
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀s', '','$1꧀ꦱ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀S', '','$1꧀ꦯ꧀'], // pasangan Sa murda
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀t', '','$1꧀ꦠ꧀'],
['(ꦤ|ꦏ|ꦢ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀T', '','$1꧀ꦡ꧀'], // pasangan Ta murda
['꧀u', '','ꦸ'], // u
['꧀U', '','ꦈ'], // U
// v = f
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)w', '', '$1꧀ꦮ' ],
// ['(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)x', '',''],
[ '(ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ)y', '', '$1ꦾ' ], // special biconsonant -ya, can't be started
// with n or y, reserved for bigraf ny
[ '(ꦤ|ꦕ|ꦏ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)z', '', '$1ꦾꦗ꦳' ], // can't be started with d, reserved for bigraf dz
['(ꦲ|ꦃ|ꦤ|ꦫ|ꦂ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦪ|ꦚ|ꦩ|ꦒ|ꦧ|ꦔ|ꦁ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀(w|W)꧀', '','$1꧀ꦮ'],
['(ꦲ|ꦃ|ꦫ|ꦂ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦩ|ꦒ|ꦧ|ꦔ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀​(y|Y)', '','$1꧀ꦪ꧀'], // consonant+zero-width-space+(y|Y) doesn't make special biconsonant -ya
// consonant followed by consonant, extended
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)ꦤ(y|Y)', '', '$1꧀ꦘ' ], // Nya murda
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)B', '', '$1꧀' ], // Ba murda
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)C', '', '$1꧀ꦖ' ], // Ca murda(?)
[ '(ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)G', '', '$1꧀ꦓ' ], // Ga murda //can't be started with n, reserved for bigraf nG (Ng)
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)K', '', '$1꧀ꦑ' ], // Ka murda
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)N', '', '$1꧀ꦟ' ], // Na murda
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)P', '', '$1꧀ꦦ' ], // Pa murda
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)S', '', '$1꧀ꦯ' ], // Sa murda
[ '(ꦤ|ꦕ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦗ|ꦪ|ꦩ|ꦒ|ꦧ)T', '', '$1꧀ꦡ' ], // Ta murda
['(ꦲ|ꦃ|ꦫ|ꦂ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦩ|ꦒ|ꦧ|ꦔ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦦ|ꦯ|ꦡ)꧀(y|Y)', '','$1ꦾ'], // special biconsonant -ya,
// can't be started with n or y, reserved for bigraf ny (REF:-yy-)
['(ꦤ|ꦏ|ꦠ|ꦱ|ꦭ|ꦥ|ꦗ|ꦩ|ꦒ|ꦧ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ)꧀(z|Z)', '','$1ꦾꦗ꦳꧀'], // can't be started with d, reserved for bigraf dz
// extended vowel
[ 'a', '', '' ], // long a (aa)
[ 'i', '', '' ], // (ai)
[ 'ꦶi', '', '' ], // long i (ii)
[ 'ꦸu', '', '' ], // long u (uu)
// IV. 1. Special consonant
['(ꦾ|ꦿ)a', '','$1'],
['ꦿx', '',''], // special biconsonant -rê
['ꦊq', '',''], // special character lê Raswadi
['ꦭ꧀x', '',''], // special character lê
['ꦫ꧀x', '','ꦉ'], // special character rê
['ꦌx', '','ꦄꦼ'], // Ê
['꧀x', '','ꦼ'], // x is another way to write ê
['꧀X', '','ꦄꦼ'], // X is another way to write Ê
// extended consonant
[ 'ꦏh', '', 'ꦏ꦳' ], // kh
[ 'ꦒh', '', 'ꦒ꦳' ], // gh
[ 'ꦢz', '', 'ꦢ꦳' ], // dz
[ 'ꦗ`', '', '' ], // Ja mahaprana
// IV. 3. Extended vowel
// long a (aa) - see II.
['(ꦲ|ꦤ|ꦕ|ꦫ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦪ|ꦚ|ꦩ|ꦒ|ꦧ|ꦛ|ꦔ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ|꦳)i', '','$1ꦻ'], // hanacaraka + i = -ai
['(ꦲ|ꦤ|ꦕ|ꦫ|ꦏ|ꦢ|ꦠ|ꦱ|ꦮ|ꦭ|ꦥ|ꦝ|ꦗ|ꦪ|ꦚ|ꦩ|ꦒ|ꦧ|ꦛ|ꦔ|ꦘ|ꦨ|ꦖ|ꦓ|ꦑ|ꦟ|ꦦ|ꦯ|ꦡ|꦳)u', '','$1ꦻꦴ'], // hanacaraka + u = -au
['ꦄi', '',''], // Ai
['ꦄu', '','ꦎꦴ'], // Au
['ꦶi', '','ꦷ'], // long i (ii)
['ꦆi', '','ꦇ'], // long i (Ii)
['ꦸu', '','ꦹ'], // long u (uu)
['ꦈu', '','ꦈꦴ'], // long u (Uu)
['ꦺꦴo', '','ꦵ'], // Sundanese -o
// special consonant
[ 'ꦭꦺ`', '', '' ], // special character lê
[ 'ꦫꦺ`', '', '' ], // special character rê
// IV. 2. Extended consonant
['ꦱ꧀​(s|h)', '','ꦰ꧀'], // s_s (with zero-width-space)
['ꦏ꧀h', '','ꦏ꧀ꦲ꧀'], // k_h (with zero-width-space)
['ꦒ꧀h', '','ꦒ꧀ꦲ꧀'], // g_h (with zero-width-space)
['ꦢ꧀z', '','ꦢ꧀ꦗ꦳꧀'], // d_z (with zero-width-space)
['ꦗ꧀h', '','ꦙ'], // j_h (with zero-width-space)
['ꦱ꧀(s|h)', '','ꦰ꧀'], // ss/sh
['ꦏ꧀h', '','ꦏ꦳'], // kh
['ꦒ꧀h', '','ꦒ꦳'], // gh
['ꦢ꧀z', '','ꦢ꦳'], // dz
['ꦗ꧀h', '','ꦙ'], // jh/Ja mahaprana
// non words
[ ' ', '', '' ], // zero-width-space, since javanese have no space
[ 'q`', '', '' ], // pengkal - to cut off the default -a vowel
[ 'x`', '', '' ], // cecak telu
[ '꦳`', '', '' ], // panyangga
[ 'ꦀ`', '', '̈' ], // combining-diaresis
[ '̈`', '', '͜' ], // double-breve
// III. Non-words
// q and Q are special characters for choosing less used characters by pressing q/Q multiple times (rotating back)
[' ', '',''], // zero-width-space, since javanese have no space
['꧅q', '',''], // rêrênggan kiwa
['꧄q', '',''], // pada luhur
['꧃q', '',''], // pada madya
['꧂q', '', ''],// pada andhap
['꧁q', '','꧂'], // rêrênggan têngên
['Q', '','꧁'], // rêrênggan kiwa
['꧟[Q|q]', '','꧀'], // pangkon
['꧞[Q|q]', '','꧟'], // pada isen-isen
['꧆[Q|q]', '','꧞'], // pada tirta tumetes
['ꦀ[Q|q]', '', '꧆'],// pada windu
['꦳[Q|q]', '','ꦀ'], // panyangga
['꧀[Q|q]', '','꦳'], // cecak telu
['q', '','꧀'], // pangkon - to cut off the default -a vowel
[ 'ꦫ`', '', 'ꦿ' ], // another way to write -ra
[ 'ꦪ`', '', 'ꦾ' ], // another way to write -ya
['ꦫq', '','ꦿ'], // another way to write -ra
['ꦪq', '','ꦾ'], // another way to write -ya
// basic ha-na-ca-ra-ka
[ 'h', '', '' ], // dh
[ 'h', '', '' ], // th
[ 'ꦤy', '', 'ꦚ' ], // ny
[ 'ꦤg', '', 'ꦔ' ], // ng
[ 'ꦺ`', '', '' ], // ê
[ 'a', '', '' ], // default vowel is a, by default using zero-width-non-joiner
[ 'b', '', '' ],
[ 'c', '', '' ],
[ 'd', '', '' ],
[ 'e', '', '' ], // é|è
[ '(f|v)', '', 'ꦥ꦳' ],
[ 'g', '', '' ],
[ 'h', '', 'ꦲ' ],
[ 'i', '', '' ],
[ 'j', '', '' ],
[ 'k', '', '' ],
[ 'l', '', '' ],
[ 'm', '', '' ],
[ 'n', '', '' ],
[ 'o', '', 'ꦺꦴ' ],
[ 'p', '', '' ],
// ['q', '',''],
[ 'r', '', '' ],
[ 's', '', '' ],
[ 't', '', 'ꦠ' ],
[ 'u', '', '' ],
// II. 1. Alphabetical ha-na-ca-ra-ka
['ꦠ꧀​h', '','ꦠ꧀ꦲ꧀'], // t_h (with zero-width-space)
['ꦢ꧀​h', '','ꦢ꧀ꦲ꧀'], // d_h (with zero-width-space)
['ꦤ꧀​y', '','ꦚ꧀ꦪ꧀'], // n_y (with zero-width-space)
['ꦤ꧀​g', '','ꦔ꧀ꦒ꧀'], // n_g (with zero-width-space)
['ꦠ꧀h', '','ꦛ꧀'], // th
['ꦢ꧀h', '','ꦝ꧀'], // dh
['ꦤ꧀y', '','ꦚ꧀'], // ny
['ꦤ꧀g', '',''], // ng
['a', '',''],
['b', '','ꦧ꧀'],
['c', '','ꦕ꧀'],
['d', '','ꦢ꧀'],
['e', '','ꦲ'], // é|è
['(f|v)', '','ꦥ꦳꧀'],
['g', '','ꦒ꧀'],
['h', '','ꦲ꧀'],
['i', '','ꦲꦶ'],
['j', '','ꦗ꧀'],
['k', '','ꦏ꧀'],
['l', '','ꦭ꧀'],
['m', '','ꦩ꧀'],
['n', '','ꦤ꧀'],
['o', '','ꦲꦺꦴ'],
['p', '','ꦥ꧀'],
// q = special letters, see III.
['r', '','ꦫ꧀'],
['s', '','ꦱ꧀'],
['t', '','ꦠ꧀'],
['u', '','ꦲꦸ'],
// v = f
[ 'w', '', 'ꦮ' ],
// ['x', '',''],
[ 'y', '', 'ꦪ' ],
[ 'z', '', 'ꦗ꦳' ],
['w', '','ꦮ'],
['x', '','ꦲꦼ'], // ê
['y', '','ꦪ'],
['z', '','ꦗ꦳'],
// capital Ha-Na-Ca-Ra-Ka
[ 'ꦢ(h|H)', '', 'ꦝ' ],
[ 'ꦤ(y|Y)', '', '' ], // Nya murda
[ 'ꦠ(h|H)', '', '' ],
[ 'ꦤ(g|G)', '', '' ],
[ 'ꦌ`', '', 'ꦄꦼ' ], // Ê
[ 'A', '', '' ], // A
[ 'B', '', '' ], // Ba murda
[ 'C', '', '' ], // Ca murda(?)
[ 'D', '', '' ],
[ 'E', '', '' ], // É|È
[ '(F|V)', '', 'ꦥ꦳' ],
[ 'G', '', '' ], // Ga murda
[ 'H', '', '' ],
[ 'I', '', '' ], // I
[ 'J', '', '' ],
[ 'K', '', '' ], // Ka murda
[ 'L', '', '' ],
[ 'M', '', '' ],
[ 'N', '', '' ], //Na murda
[ 'O', '', '' ], //O
[ 'P', '', '' ], //Pa murda
[ 'Q', '', '' ],
[ 'R', '', '' ],
[ 'S', '', 'ꦯ' ], //Sa murda
[ 'T', '', '' ], //Ta murda
[ 'U', '', '' ], //U
//v = f
[ 'W', '', '' ],
[ 'X', '', '' ],
[ 'Y', '', '' ],
[ 'Z', '', 'ꦗ꦳' ],
// II. Basic Letters:
// II. 2. Capital Ha-Na-Ca-Ra-Ka (Aksara Murda)
['(ꦠ|ꦡ)꧀(h|H)', '','ꦛ꧀'],
['ꦣ꧀h', '','ꦞ꧀'], // Dha murda
['(ꦢ|ꦣ)꧀H', '','ꦞ꧀'], // Dha murda
['ꦟ꧀y', '','ꦘ꧀'], // Nya murda
['(ꦤ|ꦟ)꧀Y', '','ꦘ꧀'], // NYA murda
['(ꦤ|ꦟ)꧀(g|G)', '','ꦔ꧀'],// nga
['A', '',''], // A
['B', '','ꦨ꧀'], // Ba murda
['C', '','ꦖ꧀'], // Ca murda(?)
['D', '','ꦣ꧀'],
['E', '',''], // É|È
['(F|V)', '','ꦥ꦳꧀'],
['G', '','ꦓ꧀'], // Ga murda
['H', '','ꦲ꧀'],
['I', '',''], // I
['J', '','ꦙ꧀'],// Ja Mahaprana
['K', '','ꦑ꧀'], // Ka murda
['L', '','ꦭ꧀'],
['M', '','ꦩ꧀'],
['N', '','ꦟ꧀'], // Na murda
['O', '',''], // O
['P', '','ꦦ꧀'], // Pa murda
// Q = special letters, see III.
['R', '','ꦬ꧀'],
['S', '','ꦯ꧀'], // Sa murda
['T', '','ꦡ꧀'], // Ta murda
['U', '',''], // U
// V = F
['W', '','ꦮ꧀'],
['X', '','ꦄꦼ'], // X is another way to write Ê
['Y', '','ꦪ꧀'],
['Z', '','ꦗ꦳꧀'],
[ '0', '', '꧐' ],
[ '1', '', '' ],
[ '2', '', '' ],
[ '3', '', '' ],
[ '4', '', '' ],
[ '5', '', '' ],
[ '6', '', '' ],
[ '7', '', '' ],
[ '8', '', '' ],
[ '9', '', '' ],
[ ',', '', '' ],
[ '\\.', '', '' ],
[ '꧊\\|', '', '' ], // '||'
[ '\\|', '', '' ], // '|'
[ '\\(', '', '' ], // '('
[ '\\)', '', '' ], // ')'
[ '(\u200C)*_', '', '\u200c' ]
// I. Number
['0', '',''],
['1', '',''],
['2', '',''],
['3', '',''],
['4', '',''],
['5', '',''],
['6', '',''],
['7', '',''],
['8', '',''],
['9', '',''],
[':', '',''], // 'enclose Javanese numbers, e.g. ":1:"'
[',', '',''], // 'comma'
['\\.', '',''], // 'period'
['\\|', '',''], // 'opening paragraph character'
['\\|', '',''], // 'poem character'
['\\(', '',''], // 'Javanese opening bracket'
['\\)', '','꧍'] // 'Javanese closing bracket'
]
};
$.ime.register( jvTransliteration );
}( jQuery ) );
}( jQuery ) );

View File

@@ -51,7 +51,6 @@
['w', 'ჳ'],
['f', 'ჶ']]
};
$.ime.register( kaKbd );
}( jQuery ) );

View File

@@ -53,8 +53,6 @@
['Z', 'ძ'],
['C', 'ჩ']]
};
$.ime.register( kaTransliteration );
}( jQuery ) );

View File

@@ -57,7 +57,6 @@
['\\}', '{']
]
};
$.ime.register( kkArabic );
}( jQuery ) );

View File

@@ -103,7 +103,6 @@
['/', '№']
]
};
$.ime.register( kkKbd );
}( jQuery ) );

View File

@@ -3,7 +3,7 @@
var knInscript = {
id: 'kn-inscript',
name: 'ಇನ್ಸ್ಕ್ರಿಪ್ಟ್',
name: 'ಇನ್\u200cಸ್ಕ್ರಿಪ್ಟ್',
description: 'Inscript keyboard for Kannada script',
date: '2012-10-14',
author: 'Junaid P V',
@@ -106,6 +106,6 @@
['j', '\u0CF2'],
['\\$', '\u20B9']]
};
$.ime.register( knInscript );
$.ime.register( knInscript );
}( jQuery ) );

View File

@@ -3,7 +3,7 @@
var knInscript2 = {
id: 'kn-inscript2',
name: 'ಇನ್ಸ್ಕ್ರಿಪ್ಟ್ ೨',
name: 'ಇನ್\u200cಸ್ಕ್ರಿಪ್ಟ್ ೨',
description: 'Enhanced InScript keyboard for Kannada script',
date: '2013-01-16',
author: 'Parag Nemade',
@@ -98,8 +98,8 @@
['\\*', 'ಶ್ರ']
],
patterns_x: [
['1', ''],
['2', ''],
['1', '\u200d'],
['2', '\u200c'],
['4', '₹'],
['\\+', 'ೠ'],
['\\=', 'ೄ'],
@@ -116,5 +116,4 @@
};
$.ime.register( knInscript2 );
}( jQuery ) );

View File

@@ -1,103 +1,104 @@
( function ( $ ) {
'use strict';
'use strict';
var knKGP = {
id: 'kn-kgp',
name: 'ಕಗಪ/ನುಡಿ',
description: 'Kannada kgp/nudi/KP Rao layout',
date: '2012-11-09',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Aravinda VK<mail@aravindavk.in>',
license: 'GPLv3,MIT',
version: '1.0',
contextLength: 4,
maxKeyLength: 2,
patterns: [
['([ಕ-ಹೞ]಼?)f', '$1್'],
['([ಕ-ಹೞ]಼?್)f', '$1'],
['\\\\([A-Za-z\\>_~\\.0-9])','\\\\','$1'],
['([ಕ-ಹೞ]಼?)A', '$1ಾ'],
['([ಕ-ಹೞ]಼?)i', '$1ಿ'],
['([ಕ-ಹೞ]಼?)I', '$1ೀ'],
['([ಕ-ಹೞ]಼?)u', '$1ು'],
['([ಕ-ಹೞ]಼?)U', '$1ೂ'],
['([ಕ-ಹೞ]಼?)R', '$1ೃ'],
['([ಕ-ಹೞ]಼?)ೃX', '$1ೄ'],
['([ಕ-ಹೞ]಼?)e', '$1ೆ'],
['([ಕ-ಹೞ]಼?)E', '$1ೇ'],
['([ಕ-ಹೞ]಼?)Y', '$1ೈ'],
['([ಕ-ಹೞ]಼?)o', '$1ೊ'],
['([ಕ-ಹೞ]಼?)O', '$1ೋ'],
['([ಕ-ಹೞ]಼?)V', '$1ೌ'],
['ಸX', 'ಽ'],
['([ಕ-ಹೞ]಼?\u200D)f', '$1್'],
['(\u200D)F', '\u200C'], // 0x200C Zero width non-joiner
['F', '\u200D'], // 0x200D Zero width joiner
['k', 'ಕ'],
['K', 'ಖ'],
['g', 'ಗ'],
['G', 'ಘ'],
['Z', 'ಙ'],
['c', 'ಚ'],
['C', 'ಛ'],
['j', 'ಜ'],
['ಜX', 'ಜ಼'],
['J', 'ಝ'],
['z', 'ಞ'],
['q', 'ಟ'],
['Q', 'ಠ'],
['w', 'ಡ'],
['W', 'ಢ'],
['N', 'ಣ'],
['t', 'ತ'],
['T', 'ಥ'],
['d', 'ದ'],
['D', 'ಧ'],
['n', 'ನ'],
['p', 'ಪ'],
['P', 'ಫ'],
['ಫX', 'ಫ಼'],
['b', 'ಬ'],
['B', 'ಭ'],
['m', 'ಮ'],
['y', 'ಯ'],
['r', 'ರ'],
['ರX', 'ಱ'],
['l', 'ಲ'],
['v', 'ವ'],
['S', 'ಶ'],
['x', 'ಷ'],
['s', 'ಸ'],
['h', 'ಹ'],
['L', 'ಳ'],
['ಳX', 'ೞ'],
['a', 'ಅ'],
['A', 'ಆ'],
['i', 'ಇ'],
['I', 'ಈ'],
['u', 'ಉ'],
['U', 'ಊ'],
['R', 'ಋ'],
['ಋX', 'ೠ'],
['e', 'ಎ'],
['E', 'ಏ'],
['Y', 'ಐ'],
['o', 'ಒ'],
['O', 'ಓ'],
['V', 'ಔ'],
['M', ''],
['H', 'ಃ'],
['0', ''],
['1', '೧'],
['2', '೨'],
['3', '೩'],
['4', '೪'],
['5', '೫'],
['6', '೬'],
['7', '೭'],
['8', '೮'],
['9', '೯']]
};
$.ime.register( knKGP );
var knKGP = {
id: 'kn-kgp',
name: 'ಕಗಪ/ನುಡಿ',
description: 'Kannada kgp/nudi/KP Rao layout',
date: '2012-11-09',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Aravinda VK<mail@aravindavk.in>',
license: 'GPLv3,MIT',
version: '1.0',
contextLength: 4,
maxKeyLength: 2,
patterns: [
['([ಕ-ಹೞ]಼?)f', '$1್'],
['([ಕ-ಹೞ]಼?್)f', '$1'],
['\\\\([A-Za-z\\>_~\\.0-9])', '\\\\', '$1'],
['([ಕ-ಹೞ]಼?)A', '$1ಾ'],
['([ಕ-ಹೞ]಼?)i', '$1ಿ'],
['([ಕ-ಹೞ]಼?)I', '$1ೀ'],
['([ಕ-ಹೞ]಼?)u', '$1ು'],
['([ಕ-ಹೞ]಼?)U', '$1ೂ'],
['([ಕ-ಹೞ]಼?)R', '$1ೃ'],
['([ಕ-ಹೞ]಼?)ೃX', '$1ೄ'],
['([ಕ-ಹೞ]಼?)e', '$1ೆ'],
['([ಕ-ಹೞ]಼?)E', '$1ೇ'],
['([ಕ-ಹೞ]಼?)Y', '$1ೈ'],
['([ಕ-ಹೞ]಼?)o', '$1ೊ'],
['([ಕ-ಹೞ]಼?)O', '$1ೋ'],
['([ಕ-ಹೞ]಼?)V', '$1ೌ'],
['ಸX', 'ಽ'],
['([ಕ-ಹೞ]಼?\u200D)f', '$1್'],
['(\u200D)F', '\u200C'], // 0x200C Zero width non-joiner
['F', '\u200D'], // 0x200D Zero width joiner
['k', 'ಕ'],
['K', 'ಖ'],
['g', 'ಗ'],
['G', 'ಘ'],
['Z', 'ಙ'],
['c', 'ಚ'],
['C', 'ಛ'],
['j', 'ಜ'],
['ಜX', 'ಜ಼'],
['J', 'ಝ'],
['z', 'ಞ'],
['q', 'ಟ'],
['Q', 'ಠ'],
['w', 'ಡ'],
['W', 'ಢ'],
['N', 'ಣ'],
['t', 'ತ'],
['T', 'ಥ'],
['d', 'ದ'],
['D', 'ಧ'],
['n', 'ನ'],
['p', 'ಪ'],
['P', 'ಫ'],
['ಫX', 'ಫ಼'],
['b', 'ಬ'],
['B', 'ಭ'],
['m', 'ಮ'],
['y', 'ಯ'],
['r', 'ರ'],
['ರX', 'ಱ'],
['l', 'ಲ'],
['v', 'ವ'],
['S', 'ಶ'],
['x', 'ಷ'],
['s', 'ಸ'],
['h', 'ಹ'],
['L', 'ಳ'],
['ಳX', 'ೞ'],
['a', 'ಅ'],
['A', 'ಆ'],
['i', 'ಇ'],
['I', 'ಈ'],
['u', 'ಉ'],
['U', 'ಊ'],
['R', 'ಋ'],
['ಋX', 'ೠ'],
['e', 'ಎ'],
['E', 'ಏ'],
['Y', 'ಐ'],
['o', 'ಒ'],
['O', 'ಓ'],
['V', 'ಔ'],
['M', ''],
['H', 'ಃ'],
['0', ''],
['1', '೧'],
['2', '೨'],
['3', '೩'],
['4', '೪'],
['5', '೫'],
['6', '೬'],
['7', '೭'],
['8', '೮'],
['9', '೯']
]
};
}( jQuery ) );
$.ime.register( knKGP );
}( jQuery ) );

View File

@@ -66,7 +66,6 @@
['ಸ್h', 'ಶ್'],
['ಶ್h', 'ಷ್'],
['ಋa', 'ರ'],
['ಋA', 'ರಾ'],
['ಋi', 'ರಿ'],
@@ -150,8 +149,6 @@
['9', '೯'],
['//', 'ಽ']]
};
$.ime.register( knTransliteration );
}( jQuery ) );

View File

@@ -12,7 +12,7 @@
contextLength: 1,
maxKeyLength: 3,
patterns: [
['्d', '्'],
['्d', '्\u200c'],
['ग_', 'ॻ'],
['ज_', 'ॼ'],
['ड_', 'ॾ'],
@@ -126,5 +126,4 @@
};
$.ime.register( ksInScript );
}( jQuery ) );

View File

@@ -41,7 +41,7 @@
['r', 'ر'],
['T', 'ٹ'],
['t', 'ت'],
['Y', '؁'],
['Y', '\u0601'],
['y', 'ے'],
['U', '،'],
['u', 'ء'],
@@ -109,5 +109,4 @@
};
$.ime.register( ksKbd );
}( jQuery ) );

View File

@@ -0,0 +1,48 @@
( function ( $ ) {
'use strict';
var kuH = {
id: 'ku-h',
name: 'Ku h',
description: 'writing Kurdish-letters adding h\'s',
date: '2013-06-26',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Ghybu',
license: 'GPLv3',
version: '1.0',
contextLength: 1,
patterns: [
['çh', 'h', 'ch'],
['şh', 'h', 'sh'],
['ḧh', 'h', 'hh'],
['ẍh', 'h', 'xh'],
['êe', 'e', 'ee'],
['îi', 'i', 'ii'],
['ûu', 'u', 'uu'],
['Ç(H|h)', '(H|h)', 'C$1'],
['Ş(H|h)', '(H|h)', 'S$1'],
['Ḧ(H|h)', '(H|h)', 'H$1'],
['Ẍ(H|h)', '(H|h)', 'X$1'],
['Ê(E|e)', '(E|e)', 'E$1'],
['Î(I|i)', '(I|i)', 'I$1'],
['Û(U|u)', '(U|u)', 'U$1'],
['ch', 'ç'],
['sh', 'ş'],
['hh', 'ḧ'],
['xh', 'ẍ'],
['ee', 'ê'],
['ii', 'î'],
['uu', 'û'],
['C(H|h)', 'Ç'],
['S(H|h)', 'Ş'],
['H(H|h)', 'Ḧ'],
['X(H|h)', 'Ẍ'],
['E(E|e)', 'Ê'],
['I(I|i)', 'Î'],
['U(U|u)', 'Û']]
};
$.ime.register( kuH );
}( jQuery ) );

View File

@@ -0,0 +1,33 @@
( function ( $ ) {
'use strict';
var kuTr = {
id: 'ku-tr',
name: 'Ku tr',
description: 'writing Kurdish-letters using the TR keyboard',
date: '2013-06-26',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Ghybu',
license: 'GPLv3',
version: '1.0',
contextLength: 1,
patterns: [
['ḧh', 'h', 'hh'],
['Ḧ(H|h)', '(H|h)', 'H$1'],
['ğ', 'ẍ'],
['ı', 'i'],
['i', 'î'],
['ö', 'ê'],
['ü', 'û'],
['hh', 'ḧ'],
['Ğ', 'Ẍ'],
['İ', 'Î'],
['Ö', 'Ê'],
['Ü', 'Û'],
['H(H|h)', 'Ḧ']]
};
$.ime.register( kuTr );
}( jQuery ) );

View File

@@ -0,0 +1,25 @@
( function ( $ ) {
'use strict';
var kyCyrlAlt = {
id: 'ky-cyrl-alt',
name: 'Кыргыз Alt',
description: 'Кыргыз Alt',
date: '2013-08-10',
URL: 'http://github.com/wikimedia/jquery.ime',
author: 'Amir (Алексей) Aharoni',
license: 'GPLv3',
version: '1.0',
patterns: [],
patterns_x: [
['н', 'ң'],
['Н', 'Ң'],
['о', 'ө'],
['О', 'Ө'],
['у', 'ү'],
['У', 'Ү']
]
};
$.ime.register( kyCyrlAlt );
}( jQuery ) );

View File

@@ -120,4 +120,3 @@
$.ime.register( loKbd );
}( jQuery ) );

View File

@@ -19,5 +19,4 @@
};
$.ime.register( maithiliInScript );
}( jQuery ) );

View File

@@ -22,5 +22,4 @@
};
$.ime.register( maithiliInScript2 );
}( jQuery ) );

View File

@@ -40,5 +40,4 @@
};
$.ime.register( mh );
}( jQuery ) );

View File

@@ -87,5 +87,4 @@
};
$.ime.register( inscript );
}( jQuery ) );

View File

@@ -101,9 +101,9 @@
['/', 'യ']
],
patterns_x: [
['1', ''],
['1', '\u200d'],
['\\!', '൰'],
['2', ''],
['2', '\u200c'],
['\\@', '൱'],
['\\#', '൲'],
['\\$', '൳'],

View File

@@ -1,5 +1,6 @@
( function ( $ ) {
'use strict';
var mltransliteration = {
id: 'ml-transliteration',
name: 'ലിപ്യന്തരണം',
@@ -334,5 +335,4 @@
};
$.ime.register( mltransliteration );
}( jQuery ) );

View File

@@ -115,5 +115,4 @@
};
$.ime.register( mncyrl );
}( jQuery ) );

View File

@@ -3,7 +3,7 @@
var mniInScript2 = {
id: 'mni-inscript2',
name: 'ইন্‌স্ক্ৰিপ্ ২',
name: 'ইনস্ক্ৰিপ্ ২',
description: 'Enhanced InScript keyboard for Manipuri language using Bengali script',
date: '2013-02-13',
URL: 'http://github.com/wikimedia/jquery.ime',
@@ -96,9 +96,9 @@
],
patterns_x: [
['\\!', '৴'],
['1', ''],
['1', '\u200d'],
['\\@', '৵'],
['2', ''],
['2', '\u200c'],
['\\#', '৶'],
['\\$', '৷'],
['4', '₹'],
@@ -122,5 +122,4 @@
};
$.ime.register( mniInScript2 );
}( jQuery ) );

View File

@@ -110,6 +110,6 @@
[',', '\u0970'],
['\\$', '\u20B9']]
};
$.ime.register( mrInScript );
$.ime.register( mrInScript );
}( jQuery ) );

View File

@@ -116,6 +116,6 @@
['\\.', '॥']
]
};
$.ime.register( mrInScript2 );
$.ime.register( mrInScript2 );
}( jQuery ) );

View File

@@ -4,12 +4,13 @@
var mrPhonetic = {
id: 'mr-phonetic',
name: 'phonetic',
description: 'Phonetic keyboard for Marathi langauge',
description: 'Phonetic keyboard for Marathi language',
date: '2013-02-09',
author: 'Parag Nemade',
license: 'GPLv3',
version: '1.0',
patterns: [
['्f', '्\u200c'],
['~', 'ऎ'],
['`', 'ॆ'],
['!', 'ऍ'],
@@ -101,10 +102,9 @@
['/', 'ए'],
['\\^', 'ज्ञ'],
['X', 'क्ष'],
['\\*', 'श्र'],
['ff', '्‌']
['\\*', 'श्र']
]
};
$.ime.register( mrPhonetic );
$.ime.register( mrPhonetic );
}( jQuery ) );

View File

@@ -142,7 +142,6 @@
['\\`', '़'],
['(\u200C)*_', '\u200c']]
};
$.ime.register( mrTransliteration );
}( jQuery ) );

View File

@@ -204,6 +204,6 @@
['\\\\', '\\'],
['\\|', '|']]
};
$.ime.register( myXkb );
$.ime.register( myXkb );
}( jQuery ) );

View File

@@ -2,8 +2,8 @@
'use strict';
var defs = {
id: 'no-normforms',
name: 'Norsk',
id: 'nb-normforms',
name: 'Norsk normal transliterasjon',
description: 'Norwegian input method with most common form transliterated',
date: '2012-12-04',
URL: 'http://www.evertype.com/alphabets/bokmaal-norwegian.pdf',
@@ -47,5 +47,4 @@
};
$.ime.register( defs );
}( jQuery ) );

View File

@@ -2,8 +2,8 @@
'use strict';
var defs = {
id: 'no-tildeforms',
name: 'Norsk',
id: 'nb-tildeforms',
name: 'Norsk tildemerket transliterasjon',
description: 'Norwegian input method with initial tilde triggering transliteration',
date: '2012-12-04',
URL: 'http://www.evertype.com/alphabets/bokmaal-norwegian.pdf',
@@ -32,5 +32,4 @@
};
$.ime.register( defs );
}( jQuery ) );

View File

@@ -108,6 +108,6 @@
['\\@', '','ॅ'],
['4', '₹']]
};
$.ime.register( neInScript );
$.ime.register( neInScript );
}( jQuery ) );

View File

@@ -111,6 +111,6 @@
['\\>', 'ऽ'],
['\\.', '॥']]
};
$.ime.register( neInScript2 );
$.ime.register( neInScript2 );
}( jQuery ) );

View File

@@ -103,5 +103,4 @@
};
$.ime.register( neRom );
}( jQuery ) );

View File

@@ -101,6 +101,6 @@
['\\[', 'र्'],
['q', 'त्र']]
};
$.ime.register( neTrad );
$.ime.register( neTrad );
}( jQuery ) );

View File

@@ -160,7 +160,6 @@
['//','ऽ'],
['\\`','्']]
};
$.ime.register( neTransliteration );
}( jQuery ) );

View File

@@ -103,5 +103,4 @@
};
$.ime.register( orInScript );
}( jQuery ) );

View File

@@ -95,8 +95,8 @@
['\\*', 'ଶ୍ର']
],
patterns_x: [
['1', ''],
['2', ''],
['1', '\u200d'],
['2', '\u200c'],
['4', '₹'],
['\\+', 'ୠ'],
['\\=', 'ୄ'],
@@ -113,5 +113,4 @@
};
$.ime.register( orInScript2 );
}( jQuery ) );

View File

@@ -94,10 +94,8 @@
['ତt', 'ତ୍ତ'], // tt
['ଲl', 'ଲ୍ଲ'], // ll
['ପp', 'ପ୍ପ'], //pp
[ '\\[', '\u200c' ],
[ '_', '\u200c' ],
['ଆ\\\\', '\u0B3E'], // aa sign
['ଇ\\\\', '\u0B3F'], // i sign
['ଈ\\\\', '\u0B40'],// I sign

View File

@@ -107,5 +107,4 @@
};
$.ime.register( orPhonetic );
}( jQuery ) );

View File

@@ -3,7 +3,8 @@
var orTransliteration = {
id: 'or-transliteration',
name: 'ଟ୍ରାନ୍ସଲିଟରେସନ',
name: 'ଟ୍ରାନ୍ସଲିଟରେସନ',
description: 'Odia Transliteration',
date: '2012-10-14',
URL: 'http://github.com/wikimedia/jquery.ime',
@@ -143,5 +144,4 @@
};
$.ime.register( orTransliteration );
}( jQuery ) );

View File

@@ -92,6 +92,6 @@
['/', 'ਯ']]
};
$.ime.register( paInScript );
$.ime.register( paInScript );
}( jQuery ) );

View File

@@ -87,8 +87,8 @@
['/', 'ਯ']
],
patterns_x: [
['1', ''],
['2', ''],
['1', '\u200d'],
['2', '\u200c'],
['4', '₹'],
['i', 'ਗ਼'],
['p', 'ਜ਼'],
@@ -106,6 +106,6 @@
['/', 'ੵ']
]
};
$.ime.register( paInScript2 );
$.ime.register( paInScript2 );
}( jQuery ) );

View File

@@ -94,7 +94,6 @@
['H', '੍ਹ'],
['W', 'ਾਂ']]
};
$.ime.register( paPhonetic );
}( jQuery ) );

View File

@@ -114,7 +114,6 @@
['।\\.', '॥'], // Double danda, must be before single danda
['\\.', '।']] // Danda
};
$.ime.register( paTransliteration );
}( jQuery ) );

Some files were not shown because too many files have changed in this diff Show More