Module:IPA/data/symbols: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 4: Line 4:
are just the comments that were used in [[Module:IPA]].
are just the comments that were used in [[Module:IPA]].
The "link" fields should be checked (those that start with an uppercase letter are checked). ]=]
The "link" fields should be checked (those that start with an uppercase letter are checked). ]=]
--[=[
local phones = {}


local U = mw.ustring.char
-- Vowels.
phones["i"] = {
close = true,
front = true,
unrounded = true,
vowel = true,
}
 
phones["e"] = {
["close-mid"] = true,
front = true,
unrounded = true,
vowel = true,
}
 
phones["ɛ"] = {
["open-mid"] = true,
front = true,
unrounded = true,
vowel = true,
}
 
phones["æ"] = {
["near-open"] = true,
front = true,
unrounded = true,
vowel = true,
}
 
phones["a"] = {
open = true,
front = true,
unrounded = true,
vowel = true,
}
 
phones["y"] = {
close = true,
front = true,
rounded = true,
vowel = true,
}
 
phones["ø"] = {
["close-mid"] = true,
front = true,
rounded = true,
vowel = true,
}
 
phones["œ"] = {
["open-mid"] = true,
front = true,
rounded = true,
vowel = true,
}
 
phones["ɶ"] = {
open = true,
front = true,
rounded = true,
vowel = true,
}
 
phones["ɪ"] = {
["near-close"] = true,
["near-front"] = true,
unrounded = true,
vowel = true,
}
 
phones["ʏ"] = {
["near-close"] = true,
["near-front"] = true,
rounded = true,
vowel = true,
}
 
phones["ɨ"] = {
close = true,
central = true,
unrounded = true,
vowel = true,
}
 
phones["ᵻ"] = {
["near-close"] = true,
central = true,
unrounded = true,
vowel = true,
}
 
phones["ɘ"] = {
["close-mid"] = true,
central = true,
unrounded = true,
vowel = true,
}
 
phones["ɜ"] = {
["open-mid"] = true,
central = true,
unrounded = true,
vowel = true,
}
 
phones["ɝ"] = {
rhotic = true,
["open-mid"] = true,
central = true,
unrounded = true,
vowel = true,
}
 
phones["ə"] = {
mid = true,
central = true,
vowel = true,
}
 
phones["ɚ"] = {
rhotic = true,
mid = true,
central = true,
vowel = true,
}
 
phones["ɐ"] = {
["near-open"] = true,
central = true,
vowel = true,
}
 
phones["ʉ"] = {
close = true,
central = true,
rounded = true,
vowel = true,
}
 
phones["ᵿ"] = {
["near-close"] = true,
central = true,
rounded = true,
vowel = true,
}
 
phones["ɵ"] = {
["close-mid"] = true,
central = true,
rounded = true,
vowel = true,
}
 
phones["ɞ"] = {
["open-mid"] = true,
central = true,
rounded = true,
vowel = true,
}
 
phones["ʊ"] = {
["near-close"] = true,
["near-back"] = true,
rounded = true,
vowel = true,
}
 
phones["ɯ"] = {
close = true,
back = true,
unrounded = true,
vowel = true,
}
 
phones["ɤ"] = {
["close-mid"] = true,
back = true,
unrounded = true,
vowel = true,
}
 
phones["ʌ"] = {
["open-mid"] = true,
back = true,
unrounded = true,
vowel = true,
}
 
phones["ɑ"] = {
open = true,
back = true,
unrounded = true,
vowel = true,
}
 
phones["u"] = {
close = true,
back = true,
rounded = true,
vowel = true,
}
 
phones["o"] = {
["close-mid"] = true,
back = true,
rounded = true,
vowel = true,
}
 
phones["ɔ"] = {
["open-mid"] = true,
back = true,
rounded = true,
vowel = true,
}
 
phones["ɒ"] = {
open = true,
back = true,
rounded = true,
vowel = true,
}
 
-- Nasals.
phones["m"] = {
voiced = true,
bilabial = true,
nasal = true,
}
 
phones["ɱ"] = {
voiced = true,
labiodental = true,
nasal = true,
}
 
phones["n"] = {
voiced = true,
alveolar = true,
nasal = true,
}
 
phones["ɳ"] = {
voiced = true,
retroflex = true,
nasal = true,
}
 
phones["ɲ"] = {
voiced = true,
palatal = true,
nasal = true,
}
 
phones["ŋ"] = {
voiced = true,
velar = true,
nasal = true,
}
 
phones["𝼇"] = {
voiced = true,
velodorsal = true,
nasal = true,
}
 
phones["ɴ"] = {
voiced = true,
uvular = true,
nasal = true,
}
 
-- Plosives.
phones["p"] = {
voiceless = true,
bilabial = true,
plosive = true,
}
 
phones["b"] = {
voiced = true,
bilabial = true,
plosive = true,
}
 
phones["t"] = {
voiceless = true,
alveolar = true,
plosive = true,
}
 
phones["d"] = {
voiced = true,
alveolar = true,
plosive = true,
}
 
phones["ʈ"] = {
voiceless = true,
retroflex = true,
plosive = true,
}
 
phones["ɖ"] = {
voiced = true,
retroflex = true,
plosive = true,
}
 
phones["c"] = {
voiceless = true,
palatal = true,
plosive = true,
}
 
phones["ɟ"] = {
voiced = true,
palatal = true,
plosive = true,
}
 
phones["k"] = {
voiceless = true,
velar = true,
plosive = true,
}
 
phones["ɡ"] = {
voiced = true,
velar = true,
plosive = true,
}
 
phones["𝼃"] = {
voiceless = true,
velodorsal = true,
plosive = true,
}
 
phones["𝼁"] = {
voiced = true,
velodorsal = true,
plosive = true,
}
 
phones["q"] = {
voiceless = true,
uvular = true,
plosive = true,
}
 
phones["ɢ"] = {
voiced = true,
uvular = true,
plosive = true,
}
 
phones["ꞯ"] = {
voiceless = true,
["upper-pharyngeal"] = true,
plosive = true,
}
 
phones["𝼂"] = {
voiced = true,
["upper-pharyngeal"] = true,
plosive = true,
}
 
phones["ʡ"] = {
epiglottal = true,
plosive = true,
}
 
phones["ʔ"] = {
glottal = true,
plosive = true,
}
 
-- Fricatives.
phones["ɸ"] = {
voiceless = true,
bilabial = true,
fricative = true,
}
 
phones["β"] = {
voiced = true,
bilabial = true,
fricative = true,
}
 
phones["ʍ"] = {
voiceless = true,
["labial-velar"] = true,
fricative = true,
}
 
phones["f"] = {
voiceless = true,
labiodental = true,
fricative = true,
}
 
phones["v"] = {
voiced = true,
labiodental = true,
fricative = true,
}
 
phones["θ"] = {
voiceless = true,
dental = true,
["non-sibilant"] = true,
fricative = true,
}
 
phones["ð"] = {
voiced = true,
dental = true,
["non-sibilant"] = true,
fricative = true,
}
 
phones["s"] = {
voiceless = true,
alveolar = true,
sibilant = true,
fricative = true,
}
 
phones["z"] = {
voiced = true,
alveolar = true,
sibilant = true,
fricative = true,
}
 
phones["ɬ"] = {
voiceless = true,
alveolar = true,
lateral = true,
fricative = true,
}
 
phones["ɮ"] = {
voiced = true,
alveolar = true,
lateral = true,
fricative = true,
}
 
phones["ʃ"] = {
voiceless = true,
postalveolar = true,
sibilant = true,
fricative = true,
}
 
phones["ʒ"] = {
voiced = true,
postalveolar = true,
sibilant = true,
fricative = true,
}
 
phones["ʂ"] = {
voiceless = true,
retroflex = true,
sibilant = true,
fricative = true,
}
 
phones["ʐ"] = {
voiced = true,
retroflex = true,
sibilant = true,
fricative = true,
}
 
phones["ꞎ"] = {
voiceless = true,
retroflex = true,
lateral = true,
fricative = true,
}
 
phones["𝼅"] = {
voiced = true,
retroflex = true,
lateral = true,
fricative = true,
}
 
phones["ɕ"] = {
voiceless = true,
["alveolo-palatal"] = true,
sibilant = true,
fricative = true,
}
 
phones["ʑ"] = {
voiced = true,
["alveolo-palatal"] = true,
sibilant = true,
fricative = true,
}
 
phones["ç"] = {
voiceless = true,
palatal = true,
fricative = true,
}
 
phones["ʝ"] = {
voiced = true,
palatal = true,
fricative = true,
}
 
phones["𝼆"] = {
voiceless = true,
palatal = true,
lateral = true,
fricative = true,
}
 
phones["ɧ"] = {
voiceless = true,
["palatal-velar"] = true,
fricative = true,
}
 
phones["x"] = {
voiceless = true,
velar = true,
fricative = true,
}
 
phones["ɣ"] = {
voiced = true,
velar = true,
fricative = true,
}
 
phones["𝼄"] = {
voiceless = true,
velar = true,
lateral = true,
fricative = true,
}
 
phones["ʩ"] = {
voiceless = true,
velopharyngeal = true,
fricative = true,
}
 
phones["χ"] = {
voiceless = true,
uvular = true,
fricative = true,
}
 
phones["ʁ"] = {
voiced = true,
uvular = true,
fricative = true,
}
 
phones["ħ"] = {
voiceless = true,
pharyngeal = true,
fricative = true,
}
 
phones["ʕ"] = {
voiced = true,
pharyngeal = true,
fricative = true,
}
 
phones["ʜ"] = {
voiceless = true,
epiglottal = true,
fricative = true,
}
 
phones["ʢ"] = {
voiced = true,
epiglottal = true,
fricative = true,
}
 
phones["h"] = {
voiceless = true,
glottal = true,
fricative = true,
}
 
phones["ɦ"] = {
voiced = true,
glottal = true,
fricative = true,
}
 
-- Approximants.
phones["ʋ"] = {
voiced = true,
labiodental = true,
approximant = true,
}
 
phones["ɥ"] = {
voiced = true,
["labial–palatal"] = true,
approximant = true,
}
 
phones["w"] = {
voiced = true,
["labial–velar"] = true,
approximant = true,
}
 
phones["ɹ"] = {
voiced = true,
alveolar = true,
approximant = true,
}
 
phones["ꭨ"] = {
["velarized or pharyngealized"] = true,
voiced = true,
alveolar = true,
approximant = true,
}
 
phones["l"] = {
voiced = true,
alveolar = true,
lateral = true,
approximant = true,
}
 
phones["ɫ"] = {
["velarized or pharyngealized"] = true,
voiced = true,
alveolar = true,
lateral = true,
approximant = true,
}
 
phones["ɻ"] = {
voiced = true,
retroflex = true,
approximant = true,
}
 
phones["ɭ"] = {
voiced = true,
retroflex = true,
lateral = true,
approximant = true,
}
 
phones["j"] = {
voiced = true,
palatal = true,
approximant = true,
}
 
phones["ʎ"] = {
voiced = true,
palatal = true,
lateral = true,
approximant = true,
}
 
phones["ɰ"] = {
voiced = true,
velar = true,
approximant = true,
}
 
phones["ʟ"] = {
voiced = true,
velar = true,
lateral = true,
approximant = true,
}
 
-- Flaps.
phones["ⱱ"] = {
voiced = true,
labiodental = true,
flap = true,
}
 
phones["ɾ"] = {
voiced = true,
alveolar = true,
flap = true,
}
 
phones["ɺ"] = {
voiced = true,
alveolar = true,
lateral = true,
flap = true,
}
 
phones["ɽ"] = {
voiced = true,
retroflex = true,
flap = true,
}
 
phones["𝼈"] = {
voiced = true,
retroflex = true,
lateral = true,
flap = true,
}
 
-- Trills.
phones["ʙ"] = {
voiced = true,
bilabial = true,
trill = true,
}
 
phones["r"] = {
voiced = true,
alveolar = true,
trill = true,
}
 
phones["𝼀"] = {
voiceless = true,
velopharyngeal = true,
trill = true,
}
 
phones["ʀ"] = {
voiced = true,
uvular = true,
trill = true,
}
 
phones["ᴙ"] = {
voiced = true,
pharyngeal = true,
trill = true,
}
 
-- Clicks.
phones["ʘ"] = {
bilabial = true,
click = true,
}
 
phones["ǀ"] = {
dental = true,
click = true,
}
 
phones["ǃ"] = {
alveolar = true,
click = true,
}
 
phones["𝼊"] = {
retroflex = true,
click = true,
}
 
phones["ǂ"] = {
palatal = true,
click = true,
}
 
phones["ʞ"] = {
velar = true,
click = true,
}
 
phones["ǁ"] = {
lateral = true,
click = true,
}
 
-- Implosives.
phones["ɓ"] = {
voiced = true,
bilabial = true,
implosive = true,
}
 
phones["ɗ"] = {
voiced = true,
alveolar = true,
implosive = true,
}
 
phones["ᶑ"] = {
voiced = true,
retroflex = true,
implosive = true,
}
 
phones["ʄ"] = {
voiced = true,
palatal = true,
implosive = true,
}
 
phones["ɠ"] = {
voiced = true,
velar = true,
implosive = true,
}
 
phones["ʛ"] = {
voiced = true,
uvular = true,
implosive = true,
}
 
-- Percussives.
phones["ʬ"] = {
bilabial = true,
percussive = true,
}
 
phones["ʭ"] = {
bidental = true,
percussive = true,
}
 
phones["¡"] = {
sublaminal = true,
["lower-alveolar"] = true,
percussive = true,
}
]=]
local u = require("Module:string/char")


data[1] = {
data[1] = {
Line 317: Line 1,166:
link = "w:Alveolar clicks",
link = "w:Alveolar clicks",
},
},
[""] = {
["𝼊"] = {
title = "subapical retroflex",
title = "subapical retroflex",
link = "w:Retroflex clicks",
link = "w:Retroflex clicks",
Line 810: Line 1,659:
["̽"] = {
["̽"] = {
title = "mid-centralized",
title = "mid-centralized",
link = "Relative articulation#Mid-centralized_vowel",
link = "w:Relative articulation#Mid-centralized_vowel",
},
},
["̞"] = {
["̞"] = {
Line 893: Line 1,742:
link = "w:Length (phonetics)",
link = "w:Length (phonetics)",
},
},
 
["r̥"] = {title = "voiceless alveolar trill", link = "w:Voiceless alveolar trill"},
["r̥"] = {title = "voiceless alveolar trill", link = "w:Voiceless alveolar trill"},
["ɬ’"] = {title = "alveolar lateral ejective fricative", link = "w:Alveolar lateral ejective fricative"},
["ɬ’"] = {title = "alveolar lateral ejective fricative", link = "w:Alveolar lateral ejective fricative"},
Line 924: Line 1,773:
["k͡ʟ̝̊ʼ"] = {title = "velar lateral ejective affricate", link = "w:Velar lateral ejective affricate"},
["k͡ʟ̝̊ʼ"] = {title = "velar lateral ejective affricate", link = "w:Velar lateral ejective affricate"},
["ᶢʘ͡kxʼ"] = {title = "voiced labial linguo-glottalic affricate", link = "w:Ejective-contour clicks"},
["ᶢʘ͡kxʼ"] = {title = "voiced labial linguo-glottalic affricate", link = "w:Ejective-contour clicks"},
}
data.separator_escapes = {
["⁽"] = "(", ["⁾"] = ")",
["₍"] = "(", ["₎"] = ")",
["ˈ"] = "\1", ["ˌ"] = "\2",
["ː"] = ":", ["ˑ"] = ";",
}
}


-- acute and grave tone marks
-- acute and grave tone marks
data["diacritics"] =
local diacritics = u(
-- grave, acute, circumflex, tilde, macron, breve
-- grave, acute, circumflex, tilde, macron, breve
U(0x300) .. U(0x301) .. U(0x302) .. U(0x303) .. U(0x304) .. U(0x306)
0x300, 0x301, 0x302, 0x303, 0x304, 0x306,
-- diaeresis, ring above, double acute, caron, vertical line above, double grave, left tack
-- diaeresis, ring above, double acute, caron, vertical line above, double grave, left tack
.. U(0x308) .. U(0x30A) .. U(0x30B) .. U(0x30C) .. U(0x30D) .. U(0x30F) .. U(0x318)
0x308, 0x30A, 0x30B, 0x30C, 0x30D, 0x30F, 0x318,
-- right tack, left angle, left half ring below, up tack below, down tack below, plus sign below
-- right tack, left angle, left half ring below, up tack below, down tack below, plus sign below
.. U(0x319) .. U(0x31A) .. U(0x31C) .. U(0x31D) .. U(0x31E) .. U(0x31F)
0x319, 0x31A, 0x31C, 0x31D, 0x31E, 0x31F,
-- minus sign below, rhotic hook below, dot below, diaeresis below, ring below, vertical line below, bridge below
-- minus sign below, rhotic hook below, dot below, diaeresis below, ring below, vertical line below, bridge below
.. U(0x320) .. U(0x322) .. U(0x323) .. U(0x324) .. U(0x325) .. U(0x329) .. U(0x32A)
0x320, 0x322, 0x323, 0x324, 0x325, 0x329, 0x32A,
-- caron below, inverted breve below
-- caron below, inverted breve below
.. U(0x32C) .. U(0x32F)
0x32C, 0x32F,
-- tilde below, right half ring below, inverted bridge below, square below, seagull below, x above
-- tilde below, combining tilde overlay, right half ring below, inverted bridge below, square below, seagull below, x above
.. U(0x330) .. U(0x339) .. U(0x33A) .. U(0x33B) .. U(0x33C) .. U(0x33D)
0x330, 0x334, 0x339, 0x33A, 0x33B, 0x33C, 0x33D,
-- grave tone mark, acute tone mark, bridge above, equals sign below, double vertical line below
-- grave tone mark, acute tone mark, bridge above, equals sign below, double vertical line below
.. U(0x340) .. U(0x341) .. U(0x346) .. U(0x347) .. U(0x348)
0x340, 0x341, 0x346, 0x347, 0x348,
-- left angle below, not tilde above, homothetic above, almost equal above, left right arrow below
-- left angle below, not tilde above, homothetic above, almost equal above, left right arrow below
.. U(0x349) .. U(0x34A) .. U(0x34B) .. U(0x34C) .. U(0x34D)
0x349, 0x34A, 0x34B, 0x34C, 0x34D,
-- upwards arrow below, left arrowhead below, right arrowhead below
-- upwards arrow below, left arrowhead below, right arrowhead below
.. U(0x34E) .. U(0x354) .. U(0x355)
0x34E, 0x354, 0x355,
-- double rightwards arrow below, combining Latin small letter a
-- double rightwards arrow below, combining Latin small letter a
.. U(0x362) .. U(0x361)
0x362, 0x361,
-- macron–acute, grave–macron, macron–grave, acute–macron, grave–acute–grave, acute–grave–acute
-- macron–acute, grave–macron, macron–grave, acute–macron, grave–acute–grave, acute–grave–acute
.. U(0x1DC4) .. U(0x1DC5) .. U(0x1DC6) .. U(0x1DC7) .. U(0x1DC8) .. U(0x1DC9)
0x1DC4, 0x1DC5, 0x1DC6, 0x1DC7, 0x1DC8, 0x1DC9)
data.diacritics = diacritics
data["tones"] = '˥˦˧˨˩꜒꜓꜔꜕꜖꜈꜉꜊꜋꜌꜍꜎꜏꜐꜑¹²³⁴⁵⁶⁷⁸⁹⁰'
 
data["vowels"] = 'iyɨʉɯuɪʏʊeøɘɵɤoəɚɛœɜɝɞʌɔæɐaɶɑɒäëïöüÿ'
data.vowels = "iyɨʉɯuɪᵻʏʊᵿeøɘɵɤoəɚɛœɜɝɞʌɔæɐaɶɑɒäëïöüÿ"
data["superscripts"] = '¹²³⁴⁵⁶⁷⁸⁹⁰ᵝʰʱʲʳʴʵʶʷʸ˞ˠˡˢꟹᶣᶬᶮᶯᶰᶹˀˤⁿᵇᵈᶢ'
 
data["valid"] =
local tones = "˥˦˧˨˩꜒꜓꜔꜕꜖꜈꜉꜊꜋꜌꜍꜎꜏꜐꜑¹²³⁴⁵⁶⁷⁸⁹⁰"
U(0xA0) .. ' %(%)%%{%|%}%-~⁓.◌abcdefhijklmnopqrstuvwxyz¡àáâãāăēäæçèéêëĕěħìíîïĩīĭĺḿǹńňðòóôõöōŏőœøŕùúûüũūŭűýÿŷŋ'
data.tones = tones
.. 'ǀǁǂǃǎǐǒǔřǖǘǚǜǟǣǽǿȁȅȉȍȕȫȭȳɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɪɫɬɭɮɯɰɱɲɳɴɵɶɸɹɺɻɽɾʀʁʂʃʄʈʉʊʋṽʌʍʎʏʐʑʒʔʕʘʙʛʜʝʟʡʢʬʭ⁻'
 
.. 'ʼˈˌːˑˣ˔˕ˬ͗˭ˇ˖β͜θχᴙᵄᵊᵏᵐᵑᶑ᷽ḁḛḭḯṍṏṳṵṹṻạẹẽịọụỳỵỹ‖․‥…‼‿↑↓↗↘ⱱꜛꜜꟸ𝆏𝆑˗'
local superscripts = u(0xA0) .. " ⁰¹²³⁴⁵⁶⁷⁸⁹ᵃ𐞃ᵄᵅᶛᵇ𐞄𐞅ᶜᶝᵈᶞ𐞋𐞌𐞍ᵉᵊᵋ𐞎ᶟᵌ𐞏𐞑ᶠᶢ𐞒𐞓𐞔ˠʰ𐞕𐞖ʱ𐞗ⁱᶦᶤʲᶨᶡ𐞘ᵏˡᶫꭞ𐞛ᶩ𐞞𐞠𐞡ᵐᶬⁿᶰᶮᶯᵑᵒ𐞢ꟹ𐞣ᵓᶱᵖᶲ𐞥ʳ𐞪ʴ𐞦𐞧ʵ𐞨𐞩ʶˢᶳᶴᵗ𐞯ᵘᶶᶣᵚᶭᶷᵛᶹ𐞰ᶺʷꭩˣʸ𐞲ᶻᶼᶽᶾˀˤ𐞳𐞴𐞶𐞷𐞸𐞹𐞵ᵝᶿᵡ˞⁻𐞁𐞂"
.. data.diacritics .. data.tones .. data.superscripts
data.superscripts = superscripts
 
-- An array of patterns of valid character sequences.
data.valid = {
"⁽[" .. superscripts .. "]+⁾",
"[ %(%)%%<>{|}%-~⁓%.◌abcdefhijklmnopqrstuvwxyz¡àáâãāăēäæçèéêëĕěħìíîïĩīĭĺḿǹńňðòóôõöōŏőœøŕùúûüũūŭűýÿŷŋ"
.. "ǀǁǂǃǎǐǒǔřǖǘǚǜǟǣǽǿȁȅȉȍȕȫȭȳɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɪᵻɫɬɭɮɯɰɱɲɳɴɵɶɸɹɺ𝼈ɻɽɾʀʁʂʃʄʈʉʊᵿʋṽʌʍʎ𝼆ʏʐʑʒʔʕʘʞʙʛʜʝʟʡʢ𝼊ʬʭ"
.. "ʼˈˌːˑˣ˔˕ˬ͗˭ˇ˖β͜θχᴙᶑ᷽ḁḛḭḯṍṏṳṵṹṻạẹẽịọụỳỵỹ‖․‥…‿↑↓↗↘ⱱꜛꜜꟸ𝆏𝆑˗ˋˊ–⸨⸩⁽⁾" .. diacritics .. tones .. superscripts .. "]+"
}
 
-- Character sequences which are valid only in a particular language.
-- These can be either a single pattern (as a string), or an array of patterns (as a table).
data.per_lang_valid = {
["egy"] = "V+", -- V for uncertain vowel
["okm"] = "[LHR!WT]+", -- irregular verb morphophonemes
}


-- Characters to add VARIATION SELECTOR-15 (U+FE0E) after.
-- Characters to add VARIATION SELECTOR-15 (U+FE0E) after.
-- These are characters with emoji variants that are used by default by some clients.
-- These are characters with emoji variants that are used by default by some clients.
-- Adding VS15 after them instructs them to draw the characters as text instead.
-- Adding VS15 after them instructs them to draw the characters as text instead.
data["add_vs15"] = "‼↗↘"
data.add_vs15 = "↗↘"


data["suggestions"] = {
data.invalid = {
["g"] = "ɡ",
["!"] = "ǃ",
["ꜝ"] = "ꜜ",
["ꜞ"] = "ꜛ",
[""] = "",
["'"] = "ˈ",
["'"] = "ˈ",
[""] = "",
[""] = "ʼ",
[":"] = "ː",
[":"] = "ː",
-- Confusable Latin letters
["B"] = "ʙ",
["g"] = "ɡ",
["G"] = "ɢ",
["Ɠ"] = "ʛ",
["H"] = "ʜ",
["ı"] = "ɪ",
["I"] = "ɪ",
["L"] = "ʟ",
["N"] = "ɴ",
["Œ"] = "ɶ",
["Q"] = "ꞯ",
["R"] = "ʀ",
["∫"] = "ʃ",
["⨎"] = "ǂ", -- due to confusion with obsolete 𝼋 below
["ß"] = "β",
["ẞ"] = "β",
["Y"] = "ʏ",
["Ə"] = "ə",
["ǝ"] = "ə",
["Ɂ"] = "ʔ",
["ɂ"] = "ʔ",
["ˁ"] = "ˤ",
["ˁ"] = "ˤ",
["ǝ"] = "ə",
-- Confusable Greek letters
    ["ә"] = "ə",
["α"] = "ɑ",
["γ"] = "ɣ",
["δ"] = "ð",
["ε"] = "ɛ",
["Η"] = "ʜ",
["η"] = "ŋ",
["ι"] = "ɪ",
["λ"] = "ʎ",
["υ"] = "ʋ",
["Ψ"] = "𝼊",
["ψ"] = "𝼊",
["Φ"] = "ɸ",
["ϕ"] = "ɸ",
["ꭓ"] = "χ", -- Actually Latin, since IPA uses the Greek letter(!)
-- Confusable Cyrillic letters
["ӕ"] = "æ",
["Ә"] = "ə",
["ә"] = "ə",
["В"] = "ʙ",
["в"] = "ʙ",
["е"] = "e",
["З"] = "ɜ",
["з"] = "ɜ",
["Ѕ"] = "s",
["ѕ"] = "s",
["і"] = "i",
["ј"] = "j",
["Н"] = "ʜ",
["н"] = "ʜ",
["О"] = "o",
["о"] = "o",
["р"] = "p",
["с"] = "c",
["у"] = "y",
["Ү"] = "ʏ",
["ү"] = "ʏ",
["Ф"] = "ɸ",
["ф"] = "ɸ",
["х"] = "x",
["Һ"] = "h",
["һ"] = "h",
["Я"] = "ᴙ",
["я"] = "ᴙ",
["Ѱ"] = "𝼊",
["ѱ"] = "𝼊",
["Ѵ"] = "ⱱ",
["ѵ"] = "ⱱ",
["Ҁ"] = "ʕ",
["ҁ"] = "ʕ",
-- Palatalization
["ᶀ"] = "bʲ",
["ꞔ"] = "cʲ",
["ᶁ"] = "dʲ",
["ȡ"] = "d̠ʲ",
["d̂"] = "d̠ʲ",
["ᶂ"] = "fʲ",
["ᶃ"] = "ɡʲ",
["ꞕ"] = "hʲ",
["ᶄ"] = "kʲ",
["ᶅ"] = "lʲ",
["ȴ"] = "l̠ʲ",
["l̂"] = "l̠ʲ",
["𝼓"] = "ɬʲ",
["ᶆ"] = "mʲ",
["ᶇ"] = "nʲ",
["ȵ"] = "n̠ʲ",
["n̂"] = "n̠ʲ",
["𝼔"] = "ŋʲ",
["ᶈ"] = "pʲ",
["ᶉ"] = "rʲ",
["𝼕"] = "ɹʲ",
["𝼖"] = "ɾʲ",
["ᶊ"] = "sʲ",
["𝼞"] = "ɕ",
["𐞺"] = "ᶝ",
["ᶋ"] = "ʃʲ",
["ʆ"] = "ʃʲ",
["ƫ"] = "tʲ",
["ȶ"] = "t̠ʲ",
["t̂"] = "t̠ʲ",
["ᶌ"] = "vʲ",
["ᶍ"] = "xʲ",
["ᶎ"] = "zʲ",
["𝼘"] = "ʒʲ",
["ʓ"] = "ʒʲ",
-- Retroflex
["𝼝"] = "ʈ͡ʂ",
["𝼥"] = "ɖ",
["𝼦"] = "ɭ",
["𝼧"] = "ɳ",
["𝼨"] = "ɽ",
["𝼩"] = "ʂ",
["𝼪"] = "ʈ",
-- Rhotic vowels
["ᶏ"] = "a˞",
["ᶐ"] = "ɑ˞",
["ᶒ"] = "e˞",
["ə˞"] = "ɚ",
["ᶕ"] = "ɚ",
["ᶓ"] = "ɛ˞",
["ɜ˞"] = "ɝ",
["ᶔ"] = "ɝ",
["ᶖ"] = "i˞",
["𝼚"] = "ɨ˞",
["𝼛"] = "o˞",
["ᶗ"] = "ɔ˞",
["ᶙ"] = "u˞",
-- Syllabic fricatives
-- Syllabic fricatives
["ɿ"] = "z̩",
["ɿ"] = "z̩",
Line 978: Line 1,980:
["ʮ"] = "z̩ʷ",
["ʮ"] = "z̩ʷ",
["ʯ"] = "ʐ̩ʷ",
["ʯ"] = "ʐ̩ʷ",
["Ɂ"] = "ʔ",
-- Clicks
-- Deprecated symbols
["ʗ"] = "ǃ",
    ["ɩ"] = "ɪ",
["𝼋"] = "ǂ",
    ["ɷ"] = "ʊ",
["ʇ"] = "ǀ",
    [""] = "ʊ",
["ʖ"] = "ǁ",
[""] = "𝼊",
-- Voiceless implosives
["ƈ"] = "ʄ̊",
["ƙ"] = "ɠ̊",
["ƥ"] = "ɓ̥",
["ʠ"] = "ʛ̥",
["ƭ"] = "ɗ̥",
["𝼉"] = "ᶑ̥",
-- Monographs
["ꜰ"] = "ɸ",
["ɩ"] = "ɪ",
["ɼ"] = "r̝",
["ᴜ"] = "ʊ",
["ɷ"] = "ʊ",
["𐞤"] = "ᶷ",
["ƛ"] = "t͡ɬ",
["ƻ"] = "d͡z",
["ƾ"] = "t͡s",
-- Digraphs
["ȸ"] = "",
["ʣ"] = "d͡z",
["ʣ"] = "d͡z",
["ʥ"] = "d͡ʑ",
["ꭦ"] = "ɖ͡ʐ",
["ʤ"] = "d͡ʒ",
["ʤ"] = "d͡ʒ",
["ʥ"] = "d͡ʑ",
["𝼒"] = "d͡ʒʲ",
["𝼙"] = "d͡ᶚ",
["ʪ"] = "ɬ͡s",
["ʫ"] = "ɮ͡z",
["ȹ"] = "p̪",
["ʦ"] = "t͡s",
["ʦ"] = "t͡s",
["ʨ"] = "t͡ɕ",
["ꭧ"] = "ʈ͡ʂ",
["ʧ"] = "t͡ʃ",
["ʧ"] = "t͡ʃ",
["ʨ"] = "t͡ɕ",
["𝼗"] = "t͡ʃʲ",
["ʪ"] = "ɬ͡s",
["𝼜"] = "t͡ᶘ",
["ʫ"] = "ɮ͡z",
-- Deprecated or confusable diacritics
-- Greek letters
["̫"] = "ʷ",
    ["α"] = "ɑ",
["͂"] = "̃",
    ["γ"] = "ɣ",
["᫇"] = "ʷ",
    ["δ"] = "ð",
["⸋"] = "̚",
    ["ε"] = "ɛ",
["̱"] = "̠", -- COMBINING MACRON BELOW (U+0331) -> COMBINING MINUS SIGN BELOW (U+0320)
    ["η"] = "ŋ",
-- Precomposed characters with deprecated or confusable diacritics; the left is a precomposed
    ["ι"] = "ɪ",
-- version of a lowercase letter with COMBINING MACRON BELOW and the right is the equivalent
    ["λ"] = "ʎ",
-- using COMBINING MINUS SIGN BELOW
    ["υ"] = "ʋ",
[""] = "",
    ["ϕ"] = "ɸ",  
[""] = "",
[""] = "",
[""] = "",
[""] = "",
[""] = "",
[""] = "",
[""] = "",
[""] = "",
}
}


return data
return data

Navigation menu