btex: v-series korean specific tags

This commit is contained in:
minjaesong
2024-05-08 18:17:49 +09:00
parent 68f5d5c5da
commit 35768e6c72
3 changed files with 74 additions and 26 deletions

View File

@@ -311,36 +311,29 @@ object Lang {
}
}
fun postEunNeun(word: String): String {
fun getHangulJosa(word: String, josa1: String, josa2: String): String {
val lastChar = getLastChar(word)
val isIrregular = josa1.startsWith("") && josa2.startsWith("으로")
if (isHangul(lastChar)) {
val selected = if (isHangul(lastChar)) {
val index = lastChar.toInt() - HANGUL_SYL_START
return if (index % 28 == 0) word + "" else word + ""
if (isIrregular)
if (index % 28 == 0 || index % 28 == 8) josa1 else josa2
else
if (index % 28 == 0) josa1 else josa2
}
else if (lastChar in 'A'..'Z' || lastChar in 'a'..'z') {
val index = (lastChar.toInt() - 0x41) % 0x20
return if (HANGUL_POST_INDEX_ALPH[index] == 0) word + "" else word + ""
if (isIrregular)
if (HANGUL_POST_RO_INDEX_ALPH[index] == 0) josa1 else josa2
else
if (HANGUL_POST_INDEX_ALPH[index] == 0) josa1 else josa2
}
else {
return ""
josa2
}
}
fun postIiGa(word: String): String {
val lastChar = getLastChar(word)
if (isHangul(lastChar)) {
val index = lastChar.toInt() - HANGUL_SYL_START
return if (index % 28 == 0) word + "" else word + ""
}
else if (lastChar in 'A'..'Z' || lastChar in 'a'..'z') {
val index = (lastChar.toInt() - 0x41) % 0x20
return if (HANGUL_POST_INDEX_ALPH[index] == 0) word + "" else word + ""
}
else {
return ""
}
return "$word$selected"
}
private fun isHangul(c: Char): Boolean {