From 816bdd8f5100a88ae7729ff80c88f127ac26f0db Mon Sep 17 00:00:00 2001 From: Marvin Elsen Date: Fri, 11 Oct 2024 20:11:31 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20mismatching=20(searchable)=20pinyin=20wit?= =?UTF-8?q?h=20numbers=20for=20vowels=20u:,=20v=20and=20=C3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../willow/database/CreateDatabase.kt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/marvinelsen/willow/database/CreateDatabase.kt b/src/main/kotlin/com/marvinelsen/willow/database/CreateDatabase.kt index 48bc989..e349828 100644 --- a/src/main/kotlin/com/marvinelsen/willow/database/CreateDatabase.kt +++ b/src/main/kotlin/com/marvinelsen/willow/database/CreateDatabase.kt @@ -78,7 +78,7 @@ fun main() { 4, entry.pinyinSyllables.joinToString( separator = " " - ) { it.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS) } + ) { it.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS).replace("u:", "ü").replace("v", "ü") } ) insertStatement.setString( 5, @@ -163,7 +163,7 @@ private fun createCrossStraitsEntries(connection: Connection) { "SELECT id FROM entry WHERE traditional = '${entry.traditional}' AND pinyin_with_tone_numbers = '${ pronunciation.joinToString( separator = " " - ) { it.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS) } + ) { it.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS).replace("u:", "ü").replace("v", "ü") } }'" ) if (rs.next()) { @@ -187,7 +187,7 @@ private fun createCrossStraitsEntries(connection: Connection) { 4, pronunciation.joinToString( separator = " " - ) { it.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS) } + ) { it.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS).replace("u:", "ü").replace("v", "ü") } ) insertStatement.setString( 5, @@ -270,7 +270,10 @@ private fun createMoedictEntries(connection: Connection) { "SELECT id FROM entry WHERE traditional = '$traditional' AND pinyin_with_tone_numbers = '${ pronunciation.joinToString( separator = " " - ) { it.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS) } + ) { it.format( + TransliterationSystem.PINYIN_WITH_TONE_NUMBERS + ).replace("u:", "ü").replace("v", "ü") + } }'" ) if (rs.next()) { @@ -294,7 +297,11 @@ private fun createMoedictEntries(connection: Connection) { 4, pronunciation.joinToString( separator = " " - ) { it.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS) } + ) { + it.format( + TransliterationSystem.PINYIN_WITH_TONE_NUMBERS + ).replace("u:", "ü").replace("v", "ü") + } ) insertStatement.setString( 5, @@ -371,7 +378,7 @@ private fun String.sanitizeMoeTitle() = this .replace("""\(.*\)""".toRegex(), "") private fun PinyinSyllable.toSearchablePinyinWithToneNumbers() = - this.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS).lowercase() + this.format(TransliterationSystem.PINYIN_WITH_TONE_NUMBERS).lowercase().replace("u:", "v").replace("ü", "v") private fun PinyinSyllable.toSearchablePinyin() = this.toSearchablePinyinWithToneNumbers().replace("""\d""".toRegex(), "")