-
Notifications
You must be signed in to change notification settings - Fork 3
/
conv.js
63 lines (54 loc) · 3.71 KB
/
conv.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
var xsIn = ['_R_F', 'J\\_<', '_H_T', 'G\\_<', '_B_L', '\|\\\|\\', 'r\\`', '<R>', 'g_<', '<F>', 'd_<', 'b_<', '_\?\\', 'z\\', 'z`', 'X\\', 'x\\', '_x', '_X', '_w', 'v\\', '_v', 'U\\', 't`', '_t', '_T', 's\\', 's`', 'r\\', 'r`', '_r', 'R\\', '_R', '_q', 'p\\', '_o', 'O\\', '_O', 'n`', '_n', 'N\\', '_N', '_m', 'M\\', '_M', 'l\\', 'l`', '_l', 'L\\', '_L', '_k', 'K\\', 'j\\', '_j', 'J\\', 'I\\', 'h\\', '_h', 'H\\', '_H', 'G\\', '_G', '_F', '_e', 'd`', '_d', '_c', 'B\\', '_B', '_a', '_A', '3\\', '_0', '@\\', '\?\\', '\!\\', ':\\', '\-\\', '_\+', '_\\', '_\}', '_"', '_/', '_\-', '_>', '_=', '_~', '_\^', '\|\\', '\|\|', '>\\', '=\\', '<\\', 'Z', 'z', 'y', 'Y', 'X', 'x', 'w', 'W', 'v', 'V', 'u', 'U', 'T', 't', 's', 'S', 'r', 'R', 'q', 'Q', 'p', 'P', 'O', 'o', 'N', 'n', 'm', 'M', 'l', 'L', 'k', 'K', 'j', 'J', 'i', 'I', 'h', 'H', 'g', 'G', 'f', 'F', 'E', 'e', '@', 'D', 'd', 'C', 'c', 'B', 'b', '{', 'a', 'A', '9', '8', '7', '6', '5', '4', '3', '2', '1', '%', '&', '\}', '"', '\'', '\.', '\?', '\!', ':', '\|', '=', '~', '\^', '`'];
var ipaOut = [' ᷈', 'ʄ', ' ᷄', 'ʛ', ' ᷅', 'ǁ', 'ɻ', '↗', 'ɠ', '↘', 'ɗ', 'ɓ', 'ˤ', 'ʑ', 'ʐ', 'ħ', 'ɧ', ' ̽', ' ̆', 'ʷ', 'ʋ', ' ̬', 'ᵿ', 'ʈ', ' ̤', ' ̋', 'ɕ', 'ʂ', 'ɹ', 'ɽ', ' ̝', 'ʀ', ' ̌', ' ̙', 'ɸ', ' ̞', 'ʘ', ' ̹', 'ɳ', 'ⁿ', 'ɴ', ' ̼', ' ̻', 'ɰ', ' ̄', 'ɺ', 'ɭ', 'ˡ', 'ʟ', ' ̀', ' ̰', 'ɮ', 'ʝ', 'ʲ', 'ɟ', 'ᵻ', 'ɦ', 'ʰ', 'ʜ', ' ́', 'ɢ', 'ˠ', ' ̂', ' ̴', 'ɖ', ' ̪', ' ̜', 'ʙ', ' ̏', ' ̺', ' ̘', 'ɞ', ' ̥', 'ɘ', 'ʕ', 'ǃ', 'ˑ', '‿', ' ̟', '̂', ' ̚', ' ̈', '̌', ' ̠', 'ʼ', ' ̩', '̃', ' ̯', 'ǀ', '‖', 'ʡ', 'ǂ', 'ʢ', 'ʒ', 'z', 'y', 'ʏ', 'χ', 'x', 'w', 'ʍ', 'v', 'ʌ', 'u', 'ʊ', 'θ', 't', 's', 'ʃ', 'r', 'ʁ', 'q', 'ɒ', 'p', 'ʋ', 'ɔ', 'o', 'ŋ', 'n', 'm', 'ɯ', 'l', 'ʎ', 'k', 'ɬ', 'j', 'ɲ', 'i', 'ɪ', 'h', 'ɥ', 'ɡ', 'ɣ', 'f', 'ɱ', 'ɛ', 'e', 'ə', 'ð', 'd', 'ç', 'c', 'β', 'b', 'æ', 'a', 'ɑ', 'œ', 'ɵ', 'ɤ', 'ɐ', 'ɫ', 'ɾ', 'ɜ', 'ø', 'ɨ', 'ˌ', 'ɶ', 'ʉ', '\ˈ', 'ʲ', '.', 'ʔ', 'ꜜ', 'ː', '|', '̩', '̃', 'ꜛ', '˞'];
function ipa() {
RegExp.escape = function(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};
var output = document.getElementById("outbox");
var input = document.getElementById("textbox");
output.value = input.value;
for (t in xsIn) {
var re = new RegExp(RegExp.escape(xsIn[t]), "g");
output.value = output.value.replace(re, ipaOut[t]);
}
htmlOut();
}
function geturl() {
var url = location.href;
if (/\?/.test(url) == true) {
var args = /\?(.*)/.exec(url)[1];
args=/\+/.test(args) ? args.replace(/\+/g,' ') : args;
var input = document.getElementById("textbox");
input.value = decodeURIComponent(args);
}
}
function htmlOut() {
var htmlout = document.getElementById("htmlout");
var input = document.getElementById("outbox");
htmlout.innerHTML = input.value.replace(/\n/g, "<br>");
}
function toggleLegend() {
legendBox = document.getElementsByClassName("legend-box")[0];
state = legendBox.style.display;
if (state == "") {
genLegend();
legendBox.style.display = "inline";
} else if (state == "none") {
legendBox.style.display = "inline";
} else {
legendBox.style.display = "none";
}
}
function genLegend() {
xsort = xsIn.slice(0).sort();
ltext = document.getElementById("ltext");
txt = "<table><tr><th>X-Sampa</th><th>IPA</th></tr>";
ltext.innerHTML = "";
for (t in xsort) {
i = xsIn.indexOf(xsort[t]);
xsEsc = xsIn[i].replace(/</, "<").replace(/>/, ">");
txt = txt + "<tr><td class='gr'>" + xsEsc + "</td><td class='pr'>" + ipaOut[i] + "</td></tr>";
}
var output = document.getElementById("outbox");
ltext.innerHTML = txt + "</table>";
}