From 9fcc19ef7e80d065220c8014e51ccaff2305e830 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 23 Jun 2021 19:34:10 +0300 Subject: [PATCH] Fix filename transliteration --- .idea/misc.xml | 66 ------------------- .../koitharu/kotatsu/utils/ext/StringExt.kt | 16 +++-- 2 files changed, 10 insertions(+), 72 deletions(-) delete mode 100644 .idea/misc.xml diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 6d6229d16..000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/StringExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/StringExt.kt index 834a4158f..cc6a7d295 100644 --- a/app/src/main/java/org/koitharu/kotatsu/utils/ext/StringExt.kt +++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/StringExt.kt @@ -50,18 +50,22 @@ fun String.toCamelCase(): String { fun String.transliterate(skipMissing: Boolean): String { val cyr = charArrayOf( - 'a', 'б', 'в', 'г', 'д', 'ё', 'ж', 'з', 'и', 'к', 'л', 'м', 'н', - 'п', 'р', 'с', 'т', 'у', 'ў', 'ф', 'х', 'ц', 'ш', 'щ', 'ы', 'э', 'ю', 'я' + 'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', + 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', 'ё', 'ў' ) val lat = arrayOf( - "a", "b", "v", "g", "d", "jo", "zh", "z", "i", "k", "l", "m", "n", - "p", "r", "s", "t", "u", "w", "f", "h", "ts", "sh", "sch", "", "e", "ju", "ja" + "a", "b", "v", "g", "d", "e", "zh", "z", "i", "y", "k", "l", "m", "n", "o", "p", + "r", "s", "t", "u", "f", "h", "ts", "ch", "sh", "sch", "", "i", "", "e", "ju", "ja", "jo", "w" ) return buildString(length + 5) { for (c in this@transliterate) { - val p = cyr.binarySearch(c.toLowerCase()) + val p = cyr.binarySearch(c.lowercaseChar()) if (p in lat.indices) { - append(lat[p]) + if (c.isUpperCase()) { + append(lat[p].uppercase()) + } else { + append(lat[p]) + } } else if (!skipMissing) { append(c) }