diff --git a/index.html b/index.html index 1ce3878..86fd612 100644 --- a/index.html +++ b/index.html @@ -1,34 +1,44 @@ + + Soli + + + - - Soli - - - - - -
-

Soli

-

- Soli is a tool to convert a text from Hangul to Latin alphabet. -

-
-
- - - -
-
- - - -
-
-
- - - + +
+

Soli

+

Soli is a tool to convert a text from Hangul to Latin alphabet.

+
+
+ + + +
+
+ + + +
+
+
+ + diff --git a/js/soli.js b/js/soli.js index 0e6efd4..7643df4 100644 --- a/js/soli.js +++ b/js/soli.js @@ -1,75 +1,150 @@ //@date 2022 const dict = { - "ㄱ": "g", - "ㄴ": "n", - "ㄷ": "d", - "ㄹ": "l", - "ㅁ": "m", - "ㅂ": "b", - "ㅅ": "s", - "ㅇ": "ng", - "ㅈ": "j", - "ㅊ": "ch", - "ㅋ": "k", - "ㅌ": "t", - "ㅍ": "p", - "ㅎ": "h", - "ㄲ": "k", - "ㄸ": "tt", - "ㅃ": "pp", - "ㅆ": "s", - "ㅉ": "jj", - "ㄳ": "gs", - "ㄵ": "nj", - "ㄶ": "nh", - "ㄺ": "lg", - "ㄻ": "lm", - "ㄼ": "lb", - "ㄽ": "ls", - "ㄾ": "lt", - "ㄿ": "lp", - "ㅀ": "lh", - "ㅄ": "bs", - "ㅏ": "a", - "ㅑ": "ya", - "ㅓ": "o", - "ㅕ": "yo", - "ㅗ": "o", - "ㅛ": "yo", - "ㅜ": "u", - "ㅠ": "yu", - "ㅡ": "u", - "ㅣ": "i", - "ㅐ": "e", - "ㅔ": "e", - "ㅒ": "ye", - "ㅖ": "ye", - "ㅘ": "wa", - "ㅙ": "oe", - "ㅚ": "oe", - "ㅞ": "oe", - "ㅝ": "wo", - "ㅟ": "wi", - "ㅢ": "ui" + ㄱ: "g", + ㄴ: "n", + ㄷ: "d", + ㄹ: "l", + ㅁ: "m", + ㅂ: "b", + ㅅ: "s", + ㅇ: "ng", + ㅈ: "j", + ㅊ: "ch", + ㅋ: "k", + ㅌ: "t", + ㅍ: "p", + ㅎ: "h", + ㄲ: "k", + ㄸ: "t", + ㅃ: "p", + ㅆ: "s", + ㅉ: "j", + ㄳ: "gs", + ㄵ: "nj", + ㄶ: "nh", + ㄺ: "lg", + ㄻ: "lm", + ㄼ: "lb", + ㄽ: "ls", + ㄾ: "lt", + ㄿ: "lp", + ㅀ: "lh", + ㅄ: "bs", + ㅏ: "a", + ㅑ: "ya", + ㅓ: "o", + ㅕ: "yo", + ㅗ: "o", + ㅛ: "yo", + ㅜ: "u", + ㅠ: "yu", + ㅡ: "u", + ㅣ: "i", + ㅐ: "e", + ㅔ: "e", + ㅒ: "ye", + ㅖ: "ye", + ㅘ: "oa", + ㅙ: "oe", + ㅚ: "oe", + ㅞ: "oe", + ㅝ: "uo", + ㅟ: "ui", + ㅢ: "ui", }; -const hangul_f = ['ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ']; -const hangul_m = ['ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ']; -const hangul_e = ['', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ']; +const hangul_f = [ + "ㄱ", + "ㄲ", + "ㄴ", + "ㄷ", + "ㄸ", + "ㄹ", + "ㅁ", + "ㅂ", + "ㅃ", + "ㅅ", + "ㅆ", + "ㅇ", + "ㅈ", + "ㅉ", + "ㅊ", + "ㅋ", + "ㅌ", + "ㅍ", + "ㅎ", +]; +const hangul_m = [ + "ㅏ", + "ㅐ", + "ㅑ", + "ㅒ", + "ㅓ", + "ㅔ", + "ㅕ", + "ㅖ", + "ㅗ", + "ㅘ", + "ㅙ", + "ㅚ", + "ㅛ", + "ㅜ", + "ㅝ", + "ㅞ", + "ㅟ", + "ㅠ", + "ㅡ", + "ㅢ", + "ㅣ", +]; +const hangul_e = [ + "", + "ㄱ", + "ㄲ", + "ㄳ", + "ㄴ", + "ㄵ", + "ㄶ", + "ㄷ", + "ㄹ", + "ㄺ", + "ㄻ", + "ㄼ", + "ㄽ", + "ㄾ", + "ㄿ", + "ㅀ", + "ㅁ", + "ㅂ", + "ㅄ", + "ㅅ", + "ㅆ", + "ㅇ", + "ㅈ", + "ㅊ", + "ㅋ", + "ㅌ", + "ㅍ", + "ㅎ", +]; function convert() { let input = document.getElementById("input").value.trim(); let out = ""; for (let i = 0; i < input.length; i++) { - if (input[i].match(/[\uac00-\ud7af]|[\u1100-\u11ff]|[\u3130-\u318f]|[\ua960-\ua97f]|[\ud7b0-\ud7ff]/g)) { + if ( + input[i].match( + /[\uac00-\ud7af]|[\u1100-\u11ff]|[\u3130-\u318f]|[\ua960-\ua97f]|[\ud7b0-\ud7ff]/g + ) + ) { const ga = 44032; let unicode = input[i].charCodeAt(0); unicode = unicode - ga; let fi = parseInt(unicode / 588); - let mi = parseInt((unicode - (fi * 588)) / 28); + let mi = parseInt((unicode - fi * 588) / 28); let ei = parseInt(unicode % 28); if (hangul_f[fi] && hangul_f[fi] != "ㅇ") { @@ -91,7 +166,10 @@ function convert() { for (var i = 0; i < out.length; i++) { if (["s", "j", "ch", "h"].includes(out[i])) { - if (i + 1 < out.length && ["a", "e", "i", "o", "u", "y", "w"].includes(out[i + 1])) { + if ( + i + 1 < out.length && + ["a", "e", "i", "o", "u", "y", "w"].includes(out[i + 1]) + ) { continue; } else { out = out.substring(0, i) + "t" + out.substring(i + 1);