-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
65 lines (60 loc) · 2.51 KB
/
index.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
64
65
/**
* Transliterates Syriac
*
* @param {string} input Syriac text to transliterate
* @returns {string} a transliterated string
*/
function transliterateSyriacToHebrew(input) {
// Syriac consonants (letters) and their corresponding Hebrew characters
const syriacToHebrewMap = {
"\u0710": "\u05D0", // Syriac Alaph -> Hebrew Alef
"\u0712": "\u05D1", // Syriac Beth -> Hebrew Bet
"\u0713": "\u05D2", // Syriac Gamal -> Hebrew Gimel
"\u0714": "\u05D2", // Syriac Gamal Garshuni -> Hebrew Gimel
"\u0715": "\u05D3", // Syriac Dalath -> Hebrew Dalath
"\u0716": "\u05D3", // Syriac Dalath Rish -> Hebrew Dalath
"\u0717": "\u05D4", // Syriac He -> Hebrew He
"\u0718": "\u05D5", // Syriac Waw -> Hebrew Vav
"\u0719": "\u05D6", // Syriac Zain -> Hebrew Zayin
"\u071A": "\u05D7", // Syriac Heth -> Hebrew Het Syriac Teth -> Hebrew Tet
"\u071B": "\u05D8", // Syriac Teth -> Hebrew Tet
"\u071C": "\u05D8", // Syriac Teth Garshuni -> Hebrew Tet
"\u071D": "\u05D9", // Syriac Yudh -> Hebrew Yod
"\u071F": "\u05DB", // Syriac Kaph -> Hebrew Kaf
"\u0720": "\u05DC", // Syriac Lamadh -> Hebrew Lamed
"\u0721": "\u05DE", // Syriac Mim -> Hebrew Mem
"\u0722": "\u05E0", // Syriac Nun -> Hebrew Nun
"\u0723": "\u05E1", // Syriac Semkath -> Hebrew Samekh
"\u0724": "\u05E1", // Syriac Semkath -> Hebrew Samekh
"\u0725": "\u05E2", // Syriac E -> Hebrew Final Nun
"\u0726": "\u05E4", // Syriac Pe -> Hebrew Pe
"\u0727": "\u05E4", // Syriac Reversed Pe -> Hebrew Pe
"\u0728": "\u05E6", // Syriac Sadhe -> Hebrew Tsadi
"\u0729": "\u05E7", // Syriac Qaph -> Hebrew Qof
"\u072A": "\u05E8", // Syriac Rish -> Hebrew Resh
"\u072B": "\u05E9", // Syriac Taw -> Hebrew Dalath
"\u072C": "\u05EA", // Syriac Taw -> Hebrew Dalath
};
// split input into words
const words = input.split(" ");
// over each word, remove characters that are not Syriac consonants
const wordsWithoutNonConsonants = words.map((word) => {
return word.replace(/[^A\u0710-\u072C]/g, "");
});
// over each word, replace Syriac consonants with their Hebrew counterparts
const wordsWithHebrewConsonants = wordsWithoutNonConsonants.map((word) => {
return word
.split("")
.map((letter) => {
return syriacToHebrewMap[letter] || letter;
})
.join("");
});
return wordsWithHebrewConsonants.join(" ");
}
const input = document.querySelector("#input");
const output = document.querySelector("#output");
const button = document.querySelector("#btn");
button.addEventListener("click", () => {
output.value = transliterateSyriacToHebrew(input.value);
});