Files
mediawiki-extensions-Univer…/lib/jquery.ime/rules/fonipa/ipa-sil.js
Santhosh Thottingal 8f5be106f5 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
2013-08-19 04:40:08 +00:00

241 lines
6.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

( function ( $ ) {
'use strict';
var ipaSil = {
id: 'ipa-sil',
name: 'International Phonetic Alphabet - SIL',
description: 'International Phonetic Alphabet - SIL',
date: '2012-11-23',
URL: 'http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=UniIPAKeyboard',
author: 'mapping by Martin Hosken and Lorna A. Priest; implementation by Amir E. Aharoni',
license: 'GPLv3',
version: '1.0',
contextLength: 0,
maxKeyLength: 2,
patterns: [
['B=', 'ʙ'],
['f=', 'ɸ'],
['b=', 'β'],
['m>', 'ɱ'],
['v<', 'ⱱ'],
['v=', 'ʋ'],
['t=', 'θ'],
['d=', 'ð'],
['r>', 'ɾ'],
['l=', 'ɬ'],
['l>', 'ɮ'],
['r=', 'ɹ'],
['s=', 'ʃ'],
['z=', 'ʒ'],
['t<', 'ʈ'],
['d<', 'ɖ'],
['n<', 'ɳ'],
['r<', 'ɽ'],
['s<', 'ʂ'],
['z<', 'ʐ'],
['R<', 'ɻ'],
['l<', 'ɭ'],
['j=', 'ɟ'],
['n=', 'ɲ'],
['c=', 'ç'],
['j<', 'ʝ'],
['L<', 'ʎ'],
['g<', 'ɡ'],
['n>', 'ŋ'],
['g=', 'ɣ'],
['w>', 'ɰ'],
['L=', 'ʟ'],
['G=', 'ɢ'],
['N=', 'ɴ'],
['R=', 'ʀ'],
['x=', 'χ'],
['R>', 'ʁ'],
['h>', 'ħ'],
['\\?<', 'ʕ'],
['\\?=', 'ʔ'],
['h<', 'ɦ'],
['p=', 'ʘ'],
['ǃ<', 'ǀ'], // This is not an exclamation mark
['!', 'ǃ'],
['ǃ=', 'ǂ'], // This is not an exclamation mark
['ǃ>', 'ǁ'], // This is not an exclamation mark
['b>', 'ɓ'],
['d>', 'ɗ'],
['j>', 'ʄ'],
['g>', 'ɠ'],
['G>', 'ʛ'],
['w=', 'ʍ'],
['y<', 'ɥ'],
['h=', 'ɥ'],
['H=', 'ʜ'],
['Q<', 'ʢ'],
['Q=', 'ʡ'],
// TODO non-IPA retroflex hooks
['c<', 'ɕ'],
['z>', 'ʑ'],
['L>', 'ɺ'],
['H<', 'ɧ'],
['i=', 'ɪ'],
['e<', 'ɛ'],
['a<', 'æ'],
['y=', 'ʏ'],
['o>', 'ø'],
['E<', 'œ'],
['E>', 'ɶ'],
['I=', 'ɨ'],
['E=', 'ɘ'],
['e=', 'ə'],
['e>', 'ɜ'],
['a>', 'ɐ'],
['U=', 'ʉ'],
['O=', 'ɵ'],
['O<', 'ɞ'],
['u=', 'ɯ'],
['O>', 'ɤ'],
['u>', 'ʌ'],
['a=', 'ɑ'],
['u', 'u'],
['u<', 'ʊ'],
['o<', 'ɔ'],
['o=', 'ɒ'],
['ˈ}', 'ˌ'], // }}
['}', 'ˈ'],
['ː:', 'ˑ'], // ::
['ˑ:', 'ːː'], // ::: // Not IPA sanctioned
[':', 'ː'],
['\\*\\*\\*', '\u0306'], // Combining breve
['\\.<', '|'],
['\\.=', '‖'],
['#=', '‿'],
// Tones
['([˥-˩])4', '$1˥'],
['([˥-˩])3', '$1˦'],
['([˥-˩])2', '$1˧'],
['([˥-˩])1', '$1˨'],
['([˥-˩])0', '$1˩'],
['#4', '˥'],
['#3', '˦'],
['#2', '˧'],
['#1', '˨'],
['#0', '˩'],
['(?:\u0300)3', '\u030C'], // @13 - Combining caron
['(?:\u0301)1', '\u0302'], // @31 - Combining circumflex accent
['(?:\u0304)3', '\u1dc4'], // @23 - Combining macron-acute
['(?:\u0300)2', '\u1dc5'], // @12 - Combining grave-macron
['(?:\u030C)1', '\u1dc8'], // @131 - Combining grave-acute-grave
['(?:\u0304)1', '\u1dc6'], // @21 - Combining macron-grave // Not IPA sanctioned
['(?:\u0301)2', '\u1dc7'], // @32 - Combining acute-macron // Not IPA sanctioned
['(?:\u0302)3', '\u1dc9'], // @313 - Combining acute-grave-acute // Not IPA sanctioned
['(?:\u030a)4', '\u030b'], // Combining double acute accent
['(?:\u030a)3', '\u0301'], // Combining acute accent
['(?:\u030a)2', '\u0304'], // Combining macron
['(?:\u030a)1', '\u0300'], // Combining grave accent
['(?:\u030a)0', '\u030f'], // Combining double grave accent
// Tone numbers (non-IPA)
['\\^0', '⁰'], // Not IPA sanctioned
['\\^1', '¹'], // Not IPA sanctioned
['\\^2', '²'], // Not IPA sanctioned
['\\^3', '³'], // Not IPA sanctioned
['\\^4', '⁴'], // Not IPA sanctioned
['\\^5', '⁵'], // Not IPA sanctioned
['\\^6', '⁶'], // Not IPA sanctioned
['\\^7', '⁷'], // Not IPA sanctioned
['\\^8', '⁸'], // Not IPA sanctioned
['\\^9', '⁹'], // Not IPA sanctioned
// This character is called "Superscript hyphen" in the layout document,
// and "Superscript minus" in Unicode
['\\^-', '⁻'], // Not IPA sanctioned
['ꜛ>', '↗'], // #>>
['ꜜ<', '↘'], // #<<
['#<', 'ꜜ'],
['#>', 'ꜛ'],
// Diacritics and suprasegmentals
['h\\^', 'ʰ'],
['w\\^', 'ʷ'],
['j\\^', 'ʲ'],
['ɣ\\^', 'ˠ'], // g=
['ʕ\\^', 'ˤ'], // ?<
['n\\^', 'ⁿ'],
['l\\^', 'ˡ'],
// TODO non-IPA superscripts
['ʽ\\[', '˞'], // [[[
['\\[\\[', 'ʽ'], // [[ // Not IPA sanctioned
['(?:\u031a)\\]', ''], // ]]]] // Not IPA sanctioned
['ʼ\\]', '\u031a'], // ]]] // Combining left angle above
['\\]\\]', 'ʼ'], // ]]
['(?:\u032f)\\$', '\u0330'], // $$$ // Combining tilde below
['(?:\u0329)\\$', '\u032f'], // $$ // Combining inverted breve below
['\\$', '\u0329'], // $ // Combining vertical line below
// TODO non-IPA retroflex hooks
['(?:\u032c)%', '\u0324'], // %%% // Combining diaeresis below
['(?:\u0325)%', '\u032c'], // %% // Combining caron below
['%', '\u0325'], // % // Combining ring below
// TODO non-IPA palatal hooks
['@', '\u030a'], // Combining ring above
['(?:\u033c)\\{', '\u0323'], // {{{{{ // Combining dot below
['(?:\u033b)\\{', '\u033c'], // {{{{ // Combining seagull below
['(?:\u033a)\\{', '\u033b'], // {{{ // Combining square below
['(?:\u032a)\\{', '\u033a'], // {{ // Combining inverted bridge below
['\\{', '\u032a'], // { // Combining bridge below
['(?:\u0303)~', '\u0334'], // ~~ // Combining tilde overlay
['~', '\u0303'], // ~ // Combining tilde
['(?:\u0306)\\*', '\u0307'], // **** // Combining dot above
['(?:\u033d)\\*', '\u0306'], // *** // Combining breve
['(?:\u0308)\\*', '\u033d'], // ** // Combining x above
['\\*', '\u0308'], // * // Combining diaeresis
// TODO Find out what the m with the five asterisks is.
['#&', '\u0361'], // Combining double inverted breve
['(?:\u030a)&', '\u035c'], // @& // Combining double breve below
['(?:\u0318)\\+', '\u0339'], // ++++ // Combining right half ring below
['(?:\u0319)_', '\u031c'], // ____ // Combining left half ring below
['(?:\u031d)\\+', '\u0318'], // +++ // Combining left tack below
['(?:\u031e)_', '\u0319'], // ___ // Combining right tack below
['(?:\u031f)\\+', '\u031d'], // ++ // Combining up tack below
['(?:\u0320)_', '\u031e'], // __ // Combining down tack below
['\\+', '\u031f'], // + // Combining plus sign below
['_', '\u0320'], // _ // Combining minus sign below
['=>', '→'], // Not IPA sanctioned
['s>', 'σ'], // Not IPA sanctioned
['=<', '\u200d'] // Combining Grapheme Joiner
]
};
$.ime.register( ipaSil );
} ( jQuery ) );