From c7f21427e512e064dfce84ed1a3a218dc521d372 Mon Sep 17 00:00:00 2001 From: Armin Friedl Date: Mon, 19 Feb 2024 00:43:50 +0100 Subject: [PATCH] Add more wootexts --- .../android/woot/translator/Combinators.kt | 7 +- .../android/woot/translator/Formatters.kt | 20 + .../friedl/android/woot/translator/Mappers.kt | 1943 ++++++++++++++++- .../friedl/android/woot/ui/WootTextList.kt | 149 +- 4 files changed, 2055 insertions(+), 64 deletions(-) create mode 100644 app/src/main/java/net/friedl/android/woot/translator/Formatters.kt diff --git a/app/src/main/java/net/friedl/android/woot/translator/Combinators.kt b/app/src/main/java/net/friedl/android/woot/translator/Combinators.kt index 26f119f..b4d9fd0 100644 --- a/app/src/main/java/net/friedl/android/woot/translator/Combinators.kt +++ b/app/src/main/java/net/friedl/android/woot/translator/Combinators.kt @@ -12,11 +12,14 @@ enum class Combinators(private val combinator: String): Translator{ SQUIGGLES("\u033E"), LIGHTNING("\u035B"), UP_ARROWS("\u034E"), - VERTICAL_BRACKETS("\u0346\u033A"); + VERTICAL_BRACKETS("\u0346\u033A"), + TRIANGLE("\u20e4"), + HEARTS("\u2665"), + KEYCAP("\u20E3"); override fun translate(text: String): String { return text .map { "${it}${combinator}" } .joinToString("") } -} \ No newline at end of file +} diff --git a/app/src/main/java/net/friedl/android/woot/translator/Formatters.kt b/app/src/main/java/net/friedl/android/woot/translator/Formatters.kt new file mode 100644 index 0000000..c2e8b30 --- /dev/null +++ b/app/src/main/java/net/friedl/android/woot/translator/Formatters.kt @@ -0,0 +1,20 @@ +package net.friedl.android.woot.translator + +enum class Formatters(private val format: String): Translator { + + BRACKETS("\u3010%s\u3011"), + CORNER_BRACKETS("\u300e%s\u300f"), + SHADE("%s\u2591"), + BOXED("[\u0305\u0332%s]"), + DOUBLE_BOXED("⟦%s⟧"), + ANGLE_DOTS("⦑%s⦒"), + ORNATE("﴾%s̤̈﴿"), + TICKED_BRACKETS("⦏%ŝ⦎"), + ZIGZAG("%s͛⦚"), + TILDES("%s≋"), + DOUBLE_TYPE("%s%s"); + + override fun translate(text: String): String { + return String.format(format, text) + } +} \ No newline at end of file diff --git a/app/src/main/java/net/friedl/android/woot/translator/Mappers.kt b/app/src/main/java/net/friedl/android/woot/translator/Mappers.kt index d3ad3b8..842b9b1 100644 --- a/app/src/main/java/net/friedl/android/woot/translator/Mappers.kt +++ b/app/src/main/java/net/friedl/android/woot/translator/Mappers.kt @@ -1548,12 +1548,1945 @@ enum class Mappers(private val mapping: Map) : Translator { "y" to "\u028f", "z" to "\u0290" ) + ), + FULL_CIRCLE( + mapOf( + "A" to "\ud83c\udd50", + "B" to "\ud83c\udd51", + "C" to "\ud83c\udd52", + "D" to "\ud83c\udd53", + "E" to "\ud83c\udd54", + "F" to "\ud83c\udd55", + "G" to "\ud83c\udd56", + "H" to "\ud83c\udd57", + "I" to "\ud83c\udd58", + "J" to "\ud83c\udd59", + "K" to "\ud83c\udd5a", + "L" to "\ud83c\udd5b", + "M" to "\ud83c\udd5c", + "N" to "\ud83c\udd5d", + "O" to "\ud83c\udd5e", + "P" to "\ud83c\udd5f", + "Q" to "\ud83c\udd60", + "R" to "\ud83c\udd61", + "S" to "\ud83c\udd62", + "T" to "\ud83c\udd63", + "U" to "\ud83c\udd64", + "V" to "\ud83c\udd65", + "W" to "\ud83c\udd66", + "X" to "\ud83c\udd67", + "Y" to "\ud83c\udd68", + "Z" to "\ud83c\udd69", + " " to " ", + "a" to "\ud83c\udd50", + "b" to "\ud83c\udd51", + "c" to "\ud83c\udd52", + "d" to "\ud83c\udd53", + "e" to "\ud83c\udd54", + "f" to "\ud83c\udd55", + "g" to "\ud83c\udd56", + "h" to "\ud83c\udd57", + "i" to "\ud83c\udd58", + "j" to "\ud83c\udd59", + "k" to "\ud83c\udd5a", + "l" to "\ud83c\udd5b", + "m" to "\ud83c\udd5c", + "n" to "\ud83c\udd5d", + "o" to "\ud83c\udd5e", + "p" to "\ud83c\udd5f", + "q" to "\ud83c\udd60", + "r" to "\ud83c\udd61", + "s" to "\ud83c\udd62", + "t" to "\ud83c\udd63", + "u" to "\ud83c\udd64", + "v" to "\ud83c\udd65", + "w" to "\ud83c\udd66", + "x" to "\ud83c\udd67", + "y" to "\ud83c\udd68", + "z" to "\ud83c\udd69", + "1" to "\u2776", + "2" to "\u2777", + "3" to "\u2778", + "4" to "\u2779", + "5" to "\u277a", + "6" to "\u277b", + "7" to "\u277c", + "8" to "\u277d", + "9" to "\u277e", + "0" to "\u24ff", + "`" to "`", + "~" to "~", + "!" to "!", + "@" to "@", + "#" to "#", + "$" to "$", + "%" to "%", + "^" to "^", + "&" to "&", + "*" to "*", + "(" to "(", + ")" to ")", + "-" to "-", + "_" to "_", + "=" to "=", + "+" to "+", + "[" to "[", + "]" to "]", + "{" to "{", + "}" to "}", + "\\" to "\\", + "|" to "|", + ";" to ";", + ":" to ":", + "'" to "'", + "\"" to "\"", + "," to ",", + "." to ".", + "<" to "<", + ">" to ">", + "/" to "/", + "?" to "?" + ) + ), + + FULLWIDTH( + mapOf( + "A" to "\uff21", + "B" to "\uff22", + "C" to "\uff23", + "D" to "\uff24", + "E" to "\uff25", + "F" to "\uff26", + "G" to "\uff27", + "H" to "\uff28", + "I" to "\uff29", + "J" to "\uff2a", + "K" to "\uff2b", + "L" to "\uff2c", + "M" to "\uff2d", + "N" to "\uff2e", + "O" to "\uff2f", + "P" to "\uff30", + "Q" to "\uff31", + "R" to "\uff32", + "S" to "\uff33", + "T" to "\uff34", + "U" to "\uff35", + "V" to "\uff36", + "W" to "\uff37", + "X" to "\uff38", + "Y" to "\uff39", + "Z" to "\uff3a", + " " to "\u3000", + "a" to "\uff41", + "b" to "\uff42", + "c" to "\uff43", + "d" to "\uff44", + "e" to "\uff45", + "f" to "\uff46", + "g" to "\uff47", + "h" to "\uff48", + "i" to "\uff49", + "j" to "\uff4a", + "k" to "\uff4b", + "l" to "\uff4c", + "m" to "\uff4d", + "n" to "\uff4e", + "o" to "\uff4f", + "p" to "\uff50", + "q" to "\uff51", + "r" to "\uff52", + "s" to "\uff53", + "t" to "\uff54", + "u" to "\uff55", + "v" to "\uff56", + "w" to "\uff57", + "x" to "\uff58", + "y" to "\uff59", + "z" to "\uff5a", + "1" to "\uff11", + "2" to "\uff12", + "3" to "\uff13", + "4" to "\uff14", + "5" to "\uff15", + "6" to "\uff16", + "7" to "\uff17", + "8" to "\uff18", + "9" to "\uff19", + "0" to "\uff10", + "`" to "\uff40", + "~" to "\uff5e", + "!" to "\uff01", + "@" to "\uff20", + "#" to "\uff03", + "$" to "\uff04", + "%" to "\uff05", + "^" to "\uff3e", + "&" to "\uff06", + "*" to "\uff0a", + "(" to "\uff08", + ")" to "\uff09", + "-" to "\uff0d", + "_" to "\uff3f", + "=" to "\uff1d", + "+" to "\uff0b", + "[" to "\uff3b", + "]" to "\uff3d", + "{" to "\uff5b", + "}" to "\uff5d", + "\\" to "\uff3c", + "|" to "\uff5c", + ";" to "\uff1b", + ":" to "\uff1a", + "'" to "\uff07", + "\"" to "\uff02", + "," to "\uff0c", + "." to "\uff0e", + "<" to "\uff1c", + ">" to "\uff1e", + "/" to "\uff0f", + "?" to "\uff1f", + "\u00a3" to "\uffe1", + "\u00a5" to "\uffe5", + "\u2013" to "\uff0d", + "\u2014" to "\uff0d", + "¥" to "¥", + "₩" to "₩", + "¢" to "¢", + "‾" to " ̄", + "¬" to "¬", + "£" to "£", + "•" to "・" + ) + ), + SMALL_CAPITALS( + mapOf( + "A" to "\u1d00", + "B" to "\u0299", + "C" to "\u1d04", + "D" to "\u1d05", + "E" to "\u1d07", + "F" to "\ua730", + "G" to "\u0262", + "H" to "\u029c", + "I" to "\u026a", + "J" to "\u1d0a", + "K" to "\u1d0b", + "L" to "\u029f", + "M" to "\u1d0d", + "N" to "\u0274", + "O" to "\u1d0f", + "P" to "\u1d29", + "Q" to "Q", + "R" to "\u0280", + "S" to "\ua731", + "T" to "\u1d1b", + "U" to "\u1d1c", + "V" to "\u1d20", + "W" to "\u1d21", + "X" to "x", + "Y" to "Y", + "Z" to "\u1d22", + " " to " ", + "a" to "\u1d00", + "b" to "\u0299", + "c" to "\u1d04", + "d" to "\u1d05", + "e" to "\u1d07", + "f" to "\ua730", + "g" to "\u0262", + "h" to "\u029c", + "i" to "\u026a", + "j" to "\u1d0a", + "k" to "\u1d0b", + "l" to "\u029f", + "m" to "\u1d0d", + "n" to "\u0274", + "o" to "\u1d0f", + "p" to "\u1d29", + "q" to "q", + "r" to "\u0280", + "s" to "\ua731", + "t" to "\u1d1b", + "u" to "\u1d1c", + "v" to "\u1d20", + "w" to "\u1d21", + "x" to "x", + "y" to "y", + "z" to "\u1d22" + ) + ), + + SUPERSCRIPT( + mapOf( + "A" to "\u1d2c", + "B" to "\u1d2e", + "C" to "\u1d9c", + "D" to "\u1d30", + "E" to "\u1d31", + "F" to "\u1da0", + "G" to "\u1d33", + "H" to "\u1d34", + "I" to "\u1d35", + "J" to "\u1d36", + "K" to "\u1d37", + "L" to "\u1d38", + "M" to "\u1d39", + "N" to "\u1d3a", + "O" to "\u1d3c", + "P" to "\u1d3e", + "Q" to "\u1d60", + "R" to "\u1d3f", + "S" to "\u02e2", + "T" to "\u1d40", + "U" to "\u1d41", + "V" to "\u2c7d", + "W" to "\u1d42", + "X" to "\u02e3", + "Y" to "\u02b8", + "Z" to "\u1dbb", + " " to " ", + "a" to "\u1d43", + "b" to "\u1d47", + "c" to "\u1d9c", + "d" to "\u1d48", + "e" to "\u1d49", + "f" to "\u1da0", + "g" to "\u1d4d", + "h" to "\u02b0", + "i" to "\u1da6", + "j" to "\u02b2", + "k" to "\u1d4f", + "l" to "\u02e1", + "m" to "\u1d50", + "n" to "\u207f", + "o" to "\u1d52", + "p" to "\u1d56", + "q" to "\u1d60", + "r" to "\u02b3", + "s" to "\u02e2", + "t" to "\u1d57", + "u" to "\u1d58", + "v" to "\u1d5b", + "w" to "\u02b7", + "x" to "\u02e3", + "y" to "\u02b8", + "z" to "\u1dbb", + "1" to "\u00b9", + "2" to "\u00b2", + "3" to "\u00b3", + "4" to "\u2074", + "5" to "\u2075", + "6" to "\u2076", + "7" to "\u2077", + "8" to "\u2078", + "9" to "\u2079", + "0" to "\u2070", + "`" to "`", + "~" to "~", + "!" to "\u1d4e", + "@" to "@", + "#" to "#", + "$" to "$", + "%" to "%", + "^" to "^", + "&" to "&", + "*" to "*", + "(" to "\u207d", + ")" to "\u207e", + "-" to "\u207b", + "_" to "_", + "=" to "\u207c", + "+" to "\u207a", + "[" to "[", + "]" to "]", + "{" to "{", + "}" to "}", + "\\" to "\\", + "|" to "|", + ";" to ";", + ":" to ":", + "'" to "'", + "\"" to "\"", + "," to ",", + "." to ".", + "<" to "<", + ">" to ">", + "/" to "/", + "?" to "\u02c0" + ) + ), + + SUBSCRIPT( + mapOf( + "A" to "\u2090", + "B" to "\u1d66", + "C" to "\ud835\udcb8", + "D" to "\ud835\udcb9", + "E" to "\u2091", + "F" to "\ud835\udcbb", + "G" to "\ud835\udcf0", + "H" to "\u2095", + "I" to "\u1d62", + "J" to "\u2c7c", + "K" to "\u2096", + "L" to "\u2097", + "M" to "\u2098", + "N" to "\u2099", + "O" to "\u2092", + "P" to "\u209a", + "Q" to "\u1d69", + "R" to "\u1d63", + "S" to "\u209b", + "T" to "\u209c", + "U" to "\u1d64", + "V" to "\u1d65", + "W" to "\ud835\udccc", + "X" to "\u2093", + "Y" to "\u1d67", + "Z" to "\ud835\udccf", + " " to " ", + "a" to "\u2090", + "b" to "\u1d66", + "c" to "\ud835\udcb8", + "d" to "\ud835\udcb9", + "e" to "\u2091", + "f" to "\ud835\udcbb", + "g" to "\ud835\udcf0", + "h" to "\u2095", + "i" to "\u1d62", + "j" to "\u2c7c", + "k" to "\u2096", + "l" to "\u2097", + "m" to "\u2098", + "n" to "\u2099", + "o" to "\u2092", + "p" to "\u209a", + "q" to "\u1d69", + "r" to "\u1d63", + "s" to "\u209b", + "t" to "\u209c", + "u" to "\u1d64", + "v" to "\u1d65", + "w" to "\ud835\udccc", + "x" to "\u2093", + "y" to "\u1d67", + "z" to "\ud835\udccf", + "1" to "\u2081", + "2" to "\u2082", + "3" to "\u2083", + "4" to "\u2084", + "5" to "\u2085", + "6" to "\u2086", + "7" to "\u2087", + "8" to "\u2088", + "9" to "\u2089", + "0" to "\u2080", + "`" to "`", + "~" to "~", + "!" to "!", + "@" to "@", + "#" to "#", + "$" to "$", + "%" to "%", + "^" to "^", + "&" to "&", + "*" to "*", + "(" to "\u208d", + ")" to "\u208e", + "-" to "\u208b", + "_" to "_", + "=" to "\u208c", + "+" to "\u208a", + "[" to "[", + "]" to "]", + "{" to "{", + "}" to "}", + "\\" to "\\", + "|" to "|", + ";" to ";", + ":" to ":", + "'" to "'", + "\"" to "\"", + "," to ",", + "." to ".", + "<" to "<", + ">" to ">", + "/" to "/", + "?" to "?" + ) + ), + + MIRROR( + mapOf( + "A" to "A", + "B" to "\ua4ed", + "C" to "\u0186", + "D" to "\ua4f7", + "E" to "\u018e", + "F" to "\ua7fb", + "G" to "\u04d8", + "H" to "H", + "I" to "I", + "J" to "\u10b1", + "K" to "\ua4d8", + "L" to "\u2143", + "M" to "M", + "N" to "\u0418", + "O" to "O", + "P" to "\ua7fc", + "Q" to "\u03d8", + "R" to "\u042f", + "S" to "\u01a7", + "T" to "T", + "U" to "U", + "V" to "V", + "W" to "W", + "X" to "X", + "Y" to "Y", + "Z" to "Z", + " " to " ", + "a" to "\u0252", + "b" to "d", + "c" to "\u0254", + "d" to "b", + "e" to "\u01dd", + "f" to "\u0287", + "g" to "\u03f1", + "h" to "\u029c", + "i" to "i", + "j" to "\u012f", + "k" to "\u029e", + "l" to "l", + "m" to "m", + "n" to "n", + "o" to "o", + "p" to "q", + "q" to "p", + "r" to "\u027f", + "s" to "\u01a8", + "t" to "\u0248", + "u" to "\u03c5", + "v" to "v", + "w" to "w", + "x" to "x", + "y" to "\u03b3", + "z" to "z", + "1" to "\u0196", + "2" to "\u03c2", + "3" to "\u01b8", + "4" to "\u03bc", + "5" to "\u091f", + "6" to "\u10db", + "7" to "\u0662", + "8" to "8", + "9" to "\u0b67", + "0" to "0", + "`" to "`", + "~" to "~", + "!" to "!", + "@" to "@", + "#" to "#", + "$" to "$", + "%" to "%", + "^" to "^", + "&" to "&", + "*" to "*", + "(" to ")", + ")" to "(", + "-" to "-", + "_" to "_", + "=" to "=", + "+" to "+", + "[" to "[", + "]" to "]", + "{" to "{", + "}" to "}", + "\\" to "\\", + "|" to "|", + ";" to ";", + ":" to ":", + "'" to "'", + "\"" to "\"", + "," to "\u02ce", + "." to ".", + "<" to ">", + ">" to "<", + "/" to "/", + "?" to "\u2e2e" + ) + ), + + UPSIDEDOWN( + mapOf( + "A" to "\u2c6f", + "B" to "\ua4ed", + "C" to "\ua4db", + "D" to "\ua4f7", + "E" to "\u018e", + "F" to "\ua4de", + "G" to "\ua4e8", + "H" to "H", + "I" to "I", + "J" to "\u017f", + "K" to "\ua4d8", + "L" to "\ua4f6", + "M" to "W", + "N" to "N", + "O" to "O", + "P" to "\ua4d2", + "Q" to "\u1ff8", + "R" to "\ua4e4", + "S" to "S", + "T" to "\ua4d5", + "U" to "\ua4f5", + "V" to "\ua4e5", + "W" to "M", + "X" to "X", + "Y" to "\u2144", + "Z" to "Z", + "a" to "\u0250", + "b" to "q", + "c" to "\u0254", + "d" to "p", + "e" to "\u01dd", + "f" to "\u025f", + "g" to "\u0253", + "h" to "\u0265", + "i" to "\u1d09", + "j" to "\u017f", + "k" to "\u029e", + "l" to "l", + "m" to "\u026f", + "n" to "u", + "o" to "o", + "p" to "d", + "q" to "b", + "r" to "\u0279", + "s" to "s", + "t" to "\u0287", + "u" to "n", + "v" to "\u028c", + "w" to "\u028d", + "x" to "x", + "y" to "\u028e", + "z" to "z", + "1" to "\u0196", + "2" to "\u0547", + "3" to "\u0190", + "4" to "h", + "5" to "\u0aec", + "6" to "9", + "7" to "L", + "8" to "8", + "9" to "6", + "0" to "0", + "`" to ",", + "~" to "~", + "!" to "\u00a1", + "\u00a1" to "!", + "@" to "@", + "#" to "#", + "$" to "$", + "%" to "%", + "^" to "v", + "&" to "\u214b", + "*" to "\u2093", + "(" to ")", + ")" to "(", + "-" to "-", + "_" to "\u203e", + "=" to "=", + "+" to "+", + "[" to "]", + "]" to "[", + "{" to "}", + "}" to "{", + "\\" to "/", + "|" to "|", + ";" to ";", + ":" to ":", + "'" to "\u02cc", + "\"" to "\u201e", + "," to "`", + "." to "\u02d9", + "<" to ">", + ">" to "<", + "/" to "\\", + "?" to "\u00bf", + "\u00bf" to "?" + ) + ), + + REGIONAL_INDICATOR( + mapOf( + "A" to " \ud83c\udde6 ", + "B" to " \ud83c\udde7 ", + "C" to " \ud83c\udde8 ", + "D" to " \ud83c\udde9 ", + "E" to " \ud83c\uddea ", + "F" to " \ud83c\uddeb ", + "G" to " \ud83c\uddec ", + "H" to " \ud83c\udded ", + "I" to " \ud83c\uddee ", + "J" to " \ud83c\uddef ", + "K" to " \ud83c\uddf0 ", + "L" to " \ud83c\uddf1 ", + "M" to " \ud83c\uddf2 ", + "N" to " \ud83c\uddf3 ", + "O" to " \ud83c\uddf4 ", + "P" to " \ud83c\uddf5 ", + "Q" to " \ud83c\uddf6 ", + "R" to " \ud83c\uddf7 ", + "S" to " \ud83c\uddf8 ", + "T" to " \ud83c\uddf9 ", + "U" to " \ud83c\uddfa ", + "V" to " \ud83c\uddfb ", + "W" to " \ud83c\uddfc ", + "X" to " \ud83c\uddfd ", + "Y" to " \ud83c\uddfe ", + "Z" to " \ud83c\uddff ", + " " to " ", + "a" to " \ud83c\udde6 ", + "b" to " \ud83c\udde7 ", + "c" to " \ud83c\udde8 ", + "d" to " \ud83c\udde9 ", + "e" to " \ud83c\uddea ", + "f" to " \ud83c\uddeb ", + "g" to " \ud83c\uddec ", + "h" to " \ud83c\udded ", + "i" to " \ud83c\uddee ", + "j" to " \ud83c\uddef ", + "k" to " \ud83c\uddf0 ", + "l" to " \ud83c\uddf1 ", + "m" to " \ud83c\uddf2 ", + "n" to " \ud83c\uddf3 ", + "o" to " \ud83c\uddf4 ", + "p" to " \ud83c\uddf5 ", + "q" to " \ud83c\uddf6 ", + "r" to " \ud83c\uddf7 ", + "s" to " \ud83c\uddf8 ", + "t" to " \ud83c\uddf9 ", + "u" to " \ud83c\uddfa ", + "v" to " \ud83c\uddfb ", + "w" to " \ud83c\uddfc ", + "x" to " \ud83c\uddfd ", + "y" to " \ud83c\uddfe ", + "z" to " \ud83c\uddff ", + "1" to "1\ufe0f\u20e3", + "2" to "2\ufe0f\u20e3", + "3" to "3\ufe0f\u20e3", + "4" to "4\ufe0f\u20e3", + "5" to "5\ufe0f\u20e3", + "6" to "6\ufe0f\u20e3", + "7" to "7\ufe0f\u20e3", + "8" to "8\ufe0f\u20e3", + "9" to "9\ufe0f\u20e3", + "0" to "0\ufe0f\u20e3", + "!" to "\u2757\ufe0f", + "#" to "#\ufe0f\u20e3", + "$" to "\ud83d\udcb2", + "*" to "*\ufe0f\u20e3", + "-" to "\u2796", + "+" to "\u2795", + "?" to "\u2753" + ) + ), + + FULL_SQUARED( + mapOf( + "A" to "\ud83c\udd70", + "B" to "\ud83c\udd71", + "C" to "\ud83c\udd72", + "D" to "\ud83c\udd73", + "E" to "\ud83c\udd74", + "F" to "\ud83c\udd75", + "G" to "\ud83c\udd76", + "H" to "\ud83c\udd77", + "I" to "\ud83c\udd78", + "J" to "\ud83c\udd79", + "K" to "\ud83c\udd7a", + "L" to "\ud83c\udd7b", + "M" to "\ud83c\udd7c", + "N" to "\ud83c\udd7d", + "O" to "\ud83c\udd7e", + "P" to "\ud83c\udd7f", + "Q" to "\ud83c\udd80", + "R" to "\ud83c\udd81", + "S" to "\ud83c\udd82", + "T" to "\ud83c\udd83", + "U" to "\ud83c\udd84", + "V" to "\ud83c\udd85", + "W" to "\ud83c\udd86", + "X" to "\ud83c\udd87", + "Y" to "\ud83c\udd88", + "Z" to "\ud83c\udd89", + " " to " ", + "a" to "\ud83c\udd70", + "b" to "\ud83c\udd71", + "c" to "\ud83c\udd72", + "d" to "\ud83c\udd73", + "e" to "\ud83c\udd74", + "f" to "\ud83c\udd75", + "g" to "\ud83c\udd76", + "h" to "\ud83c\udd77", + "i" to "\ud83c\udd78", + "j" to "\ud83c\udd79", + "k" to "\ud83c\udd7a", + "l" to "\ud83c\udd7b", + "m" to "\ud83c\udd7c", + "n" to "\ud83c\udd7d", + "o" to "\ud83c\udd7e", + "p" to "\ud83c\udd7f", + "q" to "\ud83c\udd80", + "r" to "\ud83c\udd81", + "s" to "\ud83c\udd82", + "t" to "\ud83c\udd83", + "u" to "\ud83c\udd84", + "v" to "\ud83c\udd85", + "w" to "\ud83c\udd86", + "x" to "\ud83c\udd87", + "y" to "\ud83c\udd88", + "z" to "\ud83c\udd89", + "1" to "1\ufe0f\u20e3", + "2" to "2\ufe0f\u20e3", + "3" to "3\ufe0f\u20e3", + "4" to "4\ufe0f\u20e3", + "5" to "5\ufe0f\u20e3", + "6" to "6\ufe0f\u20e3", + "7" to "7\ufe0f\u20e3", + "8" to "8\ufe0f\u20e3", + "9" to "9\ufe0f\u20e3", + "0" to "0\ufe0f\u20e3", + "#" to "#️⃣", + "*" to "*️⃣" + ) + ), + + TAG( + mapOf( + "A" to "\udb40\udc41", + "B" to "\udb40\udc42", + "C" to "\udb40\udc43", + "D" to "\udb40\udc44", + "E" to "\udb40\udc45", + "F" to "\udb40\udc46", + "G" to "\udb40\udc47", + "H" to "\udb40\udc48", + "I" to "\udb40\udc49", + "J" to "\udb40\udc4a", + "K" to "\udb40\udc4b", + "L" to "\udb40\udc4c", + "M" to "\udb40\udc4d", + "N" to "\udb40\udc4e", + "O" to "\udb40\udc4f", + "P" to "\udb40\udc50", + "Q" to "\udb40\udc51", + "R" to "\udb40\udc52", + "S" to "\udb40\udc53", + "T" to "\udb40\udc54", + "U" to "\udb40\udc55", + "V" to "\udb40\udc56", + "W" to "\udb40\udc57", + "X" to "\udb40\udc58", + "Y" to "\udb40\udc59", + "Z" to "\udb40\udc5a", + " " to "\udb40\udc20", + "a" to "\udb40\udc61", + "b" to "\udb40\udc62", + "c" to "\udb40\udc63", + "d" to "\udb40\udc64", + "e" to "\udb40\udc65", + "f" to "\udb40\udc66", + "g" to "\udb40\udc67", + "h" to "\udb40\udc68", + "i" to "\udb40\udc69", + "j" to "\udb40\udc6a", + "k" to "\udb40\udc6b", + "l" to "\udb40\udc6c", + "m" to "\udb40\udc6d", + "n" to "\udb40\udc6e", + "o" to "\udb40\udc6f", + "p" to "\udb40\udc70", + "q" to "\udb40\udc71", + "r" to "\udb40\udc72", + "s" to "\udb40\udc73", + "t" to "\udb40\udc74", + "u" to "\udb40\udc75", + "v" to "\udb40\udc76", + "w" to "\udb40\udc77", + "x" to "\udb40\udc78", + "y" to "\udb40\udc79", + "z" to "\udb40\udc7a", + "1" to "\udb40\udc31", + "2" to "\udb40\udc32", + "3" to "\udb40\udc33", + "4" to "\udb40\udc34", + "5" to "\udb40\udc35", + "6" to "\udb40\udc36", + "7" to "\udb40\udc37", + "8" to "\udb40\udc38", + "9" to "\udb40\udc39", + "0" to "\udb40\udc30", + "`" to "\udb40\udc60", + "~" to "\udb40\udc7e", + "!" to "\udb40\udc21", + "@" to "\udb40\udc40", + "#" to "\udb40\udc23", + "$" to "\udb40\udc24", + "%" to "\udb40\udc25", + "^" to "\udb40\udc5e", + "&" to "\udb40\udc26", + "*" to "\udb40\udc2a", + "(" to "\udb40\udc28", + ")" to "\udb40\udc29", + "-" to "\udb40\udc2d", + "_" to "\udb40\udc5f", + "=" to "\udb40\udc3d", + "+" to "\udb40\udc2b", + "[" to "\udb40\udc5b", + "]" to "\udb40\udc5d", + "{" to "\udb40\udc7b", + "}" to "\udb40\udc7d", + "\\" to "\udb40\udc5c", + "|" to "\udb40\udc7c", + ";" to "\udb40\udc3b", + ":" to "\udb40\udc3a", + "'" to "\udb40\udc27", + "\"" to "\"", + "," to "\udb40\udc2c", + "." to "\udb40\udc2e", + "<" to "<", + ">" to ">", + "/" to "\udb40\udc2f", + "?" to "\udb40\udc3f" + ) + ), + + ACUTE_ACCENT( + mapOf( + "A" to "\u00c1", + "B" to "B\u0301", + "C" to "\u0106", + "D" to "D\u0301", + "E" to "\u00c9", + "F" to "F\u0301", + "G" to "\u01f4", + "H" to "H\u0301", + "I" to "\u00cd", + "J" to "J\u0301", + "K" to "\u1e30", + "L" to "\u0139", + "M" to "\u1e3e", + "N" to "\u0143", + "O" to "\u00d3", + "P" to "\u1e54", + "Q" to "Q\u0301", + "R" to "\u0154", + "S" to "S\u0301", + "T" to "T\u0301", + "U" to "\u00da", + "V" to "V\u0301", + "W" to "\u1e82", + "X" to "X\u0301", + "Y" to "Y\u0301", + "Z" to "\u0179", + " " to " ", + "a" to "\u00e1", + "b" to "b\u0301", + "c" to "\u0107", + "d" to "d\u0301", + "e" to "\u00e9", + "f" to "f\u0301", + "g" to "\u01f5", + "h" to "h\u0301", + "i" to "\u00ed", + "j" to "j\u0301", + "k" to "\u1e31", + "l" to "\u013a", + "m" to "\u1e3f", + "n" to "\u0144", + "o" to "\u00f3", + "p" to "\u1e55", + "q" to "q\u0301", + "r" to "\u0155", + "s" to "\u015b", + "t" to "t\u0301", + "u" to "\u00fa", + "v" to "v\u0301", + "w" to "\u1e83", + "x" to "x\u0301", + "y" to "y\u0301", + "z" to "\u017a", + "1" to "1\u0301", + "2" to "2\u0301", + "3" to "3\u0301", + "4" to "4\u0301", + "5" to "5\u0301", + "6" to "6\u0301", + "7" to "7\u0301", + "8" to "8\u0301", + "9" to "9\u0301", + "0" to "0\u0301", + "`" to "`\u0301", + "~" to "~\u0301", + "!" to "!\u0301", + "@" to "@\u0301", + "#" to "#\u0301", + "$" to "$\u0301", + "%" to "%\u0301", + "^" to "^\u0301", + "&" to "&\u0301", + "*" to "*\u0301", + "(" to "(\u0301", + ")" to ")\u0301", + "-" to "-\u0301", + "_" to "_\u0301", + "=" to "=\u0301", + "+" to "+\u0301", + "[" to "[\u0301", + "]" to "]\u0301", + "{" to "{\u0301", + "}" to "}\u0301", + "\\" to "\\\u0301", + "|" to "|\u0301", + ";" to ";\u0301", + ":" to ":\u0301", + "'" to "'\u0301", + "\"" to "\"\u0301", + "," to ",\u0301", + "." to ".\u0301", + "<" to "<\u0301", + ">" to ">\u0301", + "/" to "/\u0301", + "?" to "?\u0301", + "\u00a1" to "\u00a1\u0301", + "\u00a3" to "\u00a3\u0301", + "\u20ac" to "\u20ac\u0301", + "\u00a2" to "\u00a2\u0301", + "\u00a5" to "\u00a5\u0301", + "\u00bf" to "\u00bf\u0301", + "\u00b1" to "\u00b1\u0301", + "\u2013" to "\u2013\u0301", + "\u2014" to "\u2014\u0301", + "\u221e" to "\u221e\u0301" + ) + ), + + GRAVE_ACCENT( + mapOf( + "A" to "A\u0300", + "B" to "B\u0300", + "C" to "C\u0300", + "D" to "D\u0300", + "E" to "E\u0300", + "F" to "F\u0300", + "G" to "G\u0300", + "H" to "H\u0300", + "I" to "I\u0300", + "J" to "J\u0300", + "K" to "K\u0300", + "L" to "L\u0300", + "M" to "M\u0300", + "N" to "N\u0300", + "O" to "O\u0300", + "P" to "P\u0300", + "Q" to "Q\u0300", + "R" to "R\u0300", + "S" to "S\u0300", + "T" to "T\u0300", + "U" to "U\u0300", + "V" to "V\u0300", + "W" to "W\u0300", + "X" to "X\u0300", + "Y" to "Y\u0300", + "Z" to "Z\u0300", + " " to " \u0300", + "a" to "a\u0300", + "b" to "b\u0300", + "c" to "c\u0300", + "d" to "d\u0300", + "e" to "e\u0300", + "f" to "f\u0300", + "g" to "g\u0300", + "h" to "h\u0300", + "i" to "i\u0300", + "j" to "j\u0300", + "k" to "k\u0300", + "l" to "l\u0300", + "m" to "m\u0300", + "n" to "n\u0300", + "o" to "o\u0300", + "p" to "p\u0300", + "q" to "q\u0300", + "r" to "r\u0300", + "s" to "s\u0300", + "t" to "t\u0300", + "u" to "u\u0300", + "v" to "v\u0300", + "w" to "w\u0300", + "x" to "x\u0300", + "y" to "y\u0300", + "z" to "z\u0300", + "1" to "1\u0300", + "2" to "2\u0300", + "3" to "3\u0300", + "4" to "4\u0300", + "5" to "5\u0300", + "6" to "6\u0300", + "7" to "7\u0300", + "8" to "8\u0300", + "9" to "9\u0300", + "0" to "0\u0300", + "`" to "`\u0300", + "~" to "~\u0300", + "!" to "!\u0300", + "@" to "@\u0300", + "#" to "#\u0300", + "$" to "$\u0300", + "%" to "%\u0300", + "^" to "^\u0300", + "&" to "&\u0300", + "*" to "*\u0300", + "(" to "(\u0300", + ")" to ")\u0300", + "-" to "-\u0300", + "_" to "_\u0300", + "=" to "=\u0300", + "+" to "+\u0300", + "[" to "[\u0300", + "]" to "]\u0300", + "{" to "{\u0300", + "}" to "}\u0300", + "\\" to "\\\u0300", + "|" to "|\u0300", + ";" to ";\u0300", + ":" to ":\u0300", + "'" to "'\u0300", + "\"" to "\"\u0300", + "," to ",\u0300", + "." to ".\u0300", + "<" to "<\u0300", + ">" to ">\u0300", + "/" to "/\u0300", + "?" to "?\u0300", + "\u00a1" to "\u00a1\u0300", + "\u00a3" to "\u00a3\u0300", + "\u20ac" to "\u20ac\u0300", + "\u00a2" to "\u00a2\u0300", + "\u00a5" to "\u00a5\u0300", + "\u00bf" to "\u00bf\u0300", + "\u00b1" to "\u00b1\u0300", + "\u2013" to "\u2013\u0300", + "\u2014" to "\u2014\u0300", + "\u221e" to "\u221e\u0300" + ) + ), + + CIRCUMFLEX( + mapOf( + "A" to "A\u0302", + "B" to "B\u0302", + "C" to "C\u0302", + "D" to "D\u0302", + "E" to "E\u0302", + "F" to "F\u0302", + "G" to "G\u0302", + "H" to "H\u0302", + "I" to "I\u0302", + "J" to "J\u0302", + "K" to "K\u0302", + "L" to "L\u0302", + "M" to "M\u0302", + "N" to "N\u0302", + "O" to "O\u0302", + "P" to "P\u0302", + "Q" to "Q\u0302", + "R" to "R\u0302", + "S" to "S\u0302", + "T" to "T\u0302", + "U" to "U\u0302", + "V" to "V\u0302", + "W" to "W\u0302", + "X" to "X\u0302", + "Y" to "Y\u0302", + "Z" to "Z\u0302", + " " to " \u0302", + "a" to "a\u0302", + "b" to "b\u0302", + "c" to "c\u0302", + "d" to "d\u0302", + "e" to "e\u0302", + "f" to "f\u0302", + "g" to "g\u0302", + "h" to "h\u0302", + "i" to "i\u0302", + "j" to "j\u0302", + "k" to "k\u0302", + "l" to "l\u0302", + "m" to "m\u0302", + "n" to "n\u0302", + "o" to "o\u0302", + "p" to "p\u0302", + "q" to "q\u0302", + "r" to "r\u0302", + "s" to "s\u0302", + "t" to "t\u0302", + "u" to "u\u0302", + "v" to "v\u0302", + "w" to "w\u0302", + "x" to "x\u0302", + "y" to "y\u0302", + "z" to "z\u0302", + "1" to "1\u0302", + "2" to "2\u0302", + "3" to "3\u0302", + "4" to "4\u0302", + "5" to "5\u0302", + "6" to "6\u0302", + "7" to "7\u0302", + "8" to "8\u0302", + "9" to "9\u0302", + "0" to "0\u0302", + "`" to "`\u0302", + "~" to "~\u0302", + "!" to "!\u0302", + "@" to "@\u0302", + "#" to "#\u0302", + "$" to "$\u0302", + "%" to "%\u0302", + "^" to "^\u0302", + "&" to "&\u0302", + "*" to "*\u0302", + "(" to "(\u0302", + ")" to ")\u0302", + "-" to "-\u0302", + "_" to "_\u0302", + "=" to "=\u0302", + "+" to "+\u0302", + "[" to "[\u0302", + "]" to "]\u0302", + "{" to "{\u0302", + "}" to "}\u0302", + "\\" to "\\\u0302", + "|" to "|\u0302", + ";" to ";\u0302", + ":" to ":\u0302", + "'" to "'\u0302", + "\"" to "\"\u0302", + "," to ",\u0302", + "." to ".\u0302", + "<" to "<\u0302", + ">" to ">\u0302", + "/" to "/\u0302", + "?" to "?\u0302", + "\u00a1" to "\u00a1\u0302", + "\u00a3" to "\u00a3\u0302", + "\u20ac" to "\u20ac\u0302", + "\u00a2" to "\u00a2\u0302", + "\u00a5" to "\u00a5\u0302", + "\u00bf" to "\u00bf\u0302", + "\u00b1" to "\u00b1\u0302", + "\u2013" to "\u2013\u0302", + "\u2014" to "\u2014\u0302", + "\u221e" to "\u221e\u0302" + ) + ), + + CARON( + mapOf( + "A" to "A\u030c", + "B" to "B\u030c", + "C" to "C\u030c", + "D" to "D\u030c", + "E" to "E\u030c", + "F" to "F\u030c", + "G" to "G\u030c", + "H" to "H\u030c", + "I" to "I\u030c", + "J" to "J\u030c", + "K" to "K\u030c", + "L" to "L\u030c", + "M" to "M\u030c", + "N" to "N\u030c", + "O" to "O\u030c", + "P" to "P\u030c", + "Q" to "Q\u030c", + "R" to "R\u030c", + "S" to "S\u030c", + "T" to "T\u030c", + "U" to "U\u030c", + "V" to "V\u030c", + "W" to "W\u030c", + "X" to "X\u030c", + "Y" to "Y\u030c", + "Z" to "Z\u030c", + " " to " \u030c", + "a" to "a\u030c", + "b" to "b\u030c", + "c" to "c\u030c", + "d" to "d\u030c", + "e" to "e\u030c", + "f" to "f\u030c", + "g" to "g\u030c", + "h" to "h\u030c", + "i" to "i\u030c", + "j" to "j\u030c", + "k" to "k\u030c", + "l" to "l\u030c", + "m" to "m\u030c", + "n" to "n\u030c", + "o" to "o\u030c", + "p" to "p\u030c", + "q" to "q\u030c", + "r" to "r\u030c", + "s" to "s\u030c", + "t" to "t\u030c", + "u" to "u\u030c", + "v" to "v\u030c", + "w" to "w\u030c", + "x" to "x\u030c", + "y" to "y\u030c", + "z" to "z\u030c", + "1" to "1\u030c", + "2" to "2\u030c", + "3" to "3\u030c", + "4" to "4\u030c", + "5" to "5\u030c", + "6" to "6\u030c", + "7" to "7\u030c", + "8" to "8\u030c", + "9" to "9\u030c", + "0" to "0\u030c", + "`" to "`\u030c", + "~" to "~\u030c", + "!" to "!\u030c", + "@" to "@\u030c", + "#" to "#\u030c", + "$" to "$\u030c", + "%" to "%\u030c", + "^" to "^\u030c", + "&" to "&\u030c", + "*" to "*\u030c", + "(" to "(\u030c", + ")" to ")\u030c", + "-" to "-\u030c", + "_" to "_\u030c", + "=" to "=\u030c", + "+" to "+\u030c", + "[" to "[\u030c", + "]" to "]\u030c", + "{" to "{\u030c", + "}" to "}\u030c", + "\\" to "\\\u030c", + "|" to "|\u030c", + ";" to ";\u030c", + ":" to ":\u030c", + "'" to "'\u030c", + "\"" to "\"\u030c", + "," to ",\u030c", + "." to ".\u030c", + "<" to "<\u030c", + ">" to ">\u030c", + "/" to "/\u030c", + "?" to "?\u030c", + "\u00a1" to "\u00a1\u030c", + "\u00a3" to "\u00a3\u030c", + "\u20ac" to "\u20ac\u030c", + "\u00a2" to "\u00a2\u030c", + "\u00a5" to "\u00a5\u030c", + "\u00bf" to "\u00bf\u030c", + "\u00b1" to "\u00b1\u030c", + "\u2013" to "\u2013\u030c", + "\u2014" to "\u2014\u030c", + "\u221e" to "\u221e\u030c" + ) + ), + + MONEY( + mapOf( + "A" to "\u20b3", + "B" to "\u0e3f", + "C" to "\u20b5", + "D" to "\u0110", + "E" to "\u0246", + "F" to "\u20a3", + "G" to "\u20b2", + "H" to "\u2c67", + "I" to "\u0142", + "K" to "\u20ad", + "L" to "\u2c60", + "M" to "\u20a5", + "N" to "\u20a6", + "O" to "\u00d8", + "P" to "\u20b1", + "R" to "\u2c64", + "S" to "\u20b4", + "T" to "\u20ae", + "U" to "\u0244", + "W" to "\u20a9", + "X" to "\u04fe", + "Y" to "\u024e", + "Z" to "\u2c6b", + "a" to "\u20b3", + "b" to "\u0e3f", + "c" to "\u20b5", + "d" to "\u0110", + "e" to "\u0246", + "f" to "\u20a3", + "g" to "\u20b2", + "h" to "\u2c67", + "i" to "\u0142", + "j" to "J", + "k" to "\u20ad", + "l" to "\u2c60", + "m" to "\u20a5", + "n" to "\u20a6", + "o" to "\u00d8", + "p" to "\u20b1", + "q" to "Q", + "r" to "\u2c64", + "s" to "\u20b4", + "t" to "\u20ae", + "u" to "\u0244", + "v" to "V", + "w" to "\u20a9", + "x" to "\u04fe", + "y" to "\u024e", + "z" to "\u2c6b" + ) + ), + + HOMOGLYPH( + mapOf( + "A" to "A", + "B" to "B", + "C" to "C", + "D" to "D", + "E" to "E", + "F" to "F", + "G" to "G", + "H" to "H", + "I" to "I", + "J" to "J", + "K" to "K", + "L" to "L", + "M" to "M", + "N" to "N", + "O" to "O", + "P" to "P", + "Q" to "Q", + "R" to "R", + "S" to "S", + "T" to "T", + "U" to "U", + "V" to "V", + "W" to "W", + "X" to "X", + "Y" to "Y", + "Z" to "Z", + " " to " ", + "a" to "a", + "b" to "b", + "c" to "c", + "d" to "d", + "e" to "e", + "f" to "f", + "g" to "g", + "h" to "h", + "i" to "i", + "j" to "j", + "k" to "k", + "l" to "l", + "m" to "m", + "n" to "n", + "o" to "o", + "p" to "p", + "q" to "q", + "r" to "r", + "s" to "s", + "t" to "t", + "u" to "u", + "v" to "v", + "w" to "w", + "x" to "x", + "y" to "y", + "z" to "z", + "1" to "1", + "2" to "2", + "3" to "3", + "4" to "4", + "5" to "5", + "6" to "6", + "7" to "7", + "8" to "8", + "9" to "9", + "0" to "0", + "`" to "`", + "~" to "~", + "!" to "!", + "@" to "@", + "#" to "#", + "$" to "$", + "%" to "%", + "^" to "^", + "&" to "&", + "*" to "*", + "(" to "(", + ")" to ")", + "-" to "-", + "_" to "_", + "=" to "=", + "+" to "+", + "[" to "[", + "]" to "]", + "{" to "{", + "}" to "}", + "\\" to "\\", + "|" to "|", + ";" to ";", + ":" to ":", + "'" to "'", + "\"" to "\"", + "," to ",", + "." to ".", + "<" to "<", + ">" to ">", + "/" to "/", + "?" to "?" + ) + ), + + FAKE_BRAILLE( + mapOf( + "A" to "A", + "B" to "B", + "C" to "\u28cf", + "D" to "D", + "E" to "E", + "F" to "\u286f", + "G" to "\u28fb", + "H" to "H", + "I" to "\u2847", + "J" to "J", + "K" to "K", + "L" to "\u28c7", + "M" to "M", + "N" to "N", + "O" to "O", + "P" to "\u285f", + "Q" to "\u28fb", + "R" to "\u2856", + "S" to "\u28eb", + "T" to "\u2897", + "U" to "U", + "V" to "V", + "W" to "W", + "X" to "X", + "Y" to "Y", + "Z" to "\u28dd", + " " to "\u2800", + "a" to "a", + "b" to "b", + "c" to "\u28d6", + "d" to "d", + "e" to "e", + "f" to "\u286f", + "g" to "\u28fb", + "h" to "h", + "i" to "\u28a8", + "j" to "\u2878", + "k" to "k", + "l" to "\u2847", + "m" to "m", + "n" to "n", + "o" to "o", + "p" to "\u285f", + "q" to "\u28fb", + "r" to "\u2856", + "s" to "\u28eb", + "t" to "\u2897", + "u" to "u", + "v" to "v", + "w" to "w", + "x" to "x", + "y" to "y", + "z" to "\u28dd", + "1" to "1", + "2" to "\u28dd", + "3" to "3", + "4" to "4", + "5" to "\u28eb", + "6" to "6", + "7" to "7", + "8" to "8", + "9" to "\u28fb", + "0" to "0", + "`" to "\u2801", + "~" to "\u2812", + "!" to "\u2898", + "@" to "@", + "#" to "#", + "$" to "\u28eb", + "%" to "%", + "^" to "\u2809", + "&" to "&", + "*" to "\u2801", + "(" to "\u288e", + ")" to "\u2871", + "-" to "\u2812", + "_" to "\u28c0", + "=" to "\u28d2", + "+" to "+", + "[" to "\u28cf", + "]" to "\u28f9", + "{" to "\u28cf", + "}" to "\u28f9", + "\\" to "\u28a3", + "|" to "\u2847", + ";" to "\u2845", + ":" to "\u2805", + "'" to "\u2801", + "\"" to "\u281b", + "," to "\u2840", + "." to "\u2840", + "<" to "\u282a", + ">" to "\u2815", + "/" to "\u285c", + "?" to "\u285d", + "\u00a1" to "\u28a8", + "\u00a3" to "\u00a3", + "\u20ac" to "\u20ac", + "\u00a2" to "\u00a2", + "\u00a5" to "\u00a5", + "\u00bf" to "\u00bf", + "\u00b1" to "\u00b1", + "\u2013" to "\u2812", + "\u2014" to "\u2812", + "\u221e" to "\u221e" + ) + ), + + BRAILLE( + mapOf( + "A" to "\u2801", + "B" to "\u2803", + "C" to "\u2809", + "D" to "\u2819", + "E" to "\u2811", + "F" to "\u280b", + "G" to "\u281b", + "H" to "\u2813", + "I" to "\u280a", + "J" to "\u281a", + "K" to "\u2805", + "L" to "\u2807", + "M" to "\u280d", + "N" to "\u281d", + "O" to "\u2815", + "P" to "\u280f", + "Q" to "\u281f", + "R" to "\u2817", + "S" to "\u280e", + "T" to "\u281e", + "U" to "\u2825", + "V" to "\u2827", + "W" to "\u283a", + "X" to "\u282d", + "Y" to "\u283d", + "Z" to "\u2835", + " " to " ", + "a" to "\u2801", + "b" to "\u2803", + "c" to "\u2809", + "d" to "\u2819", + "e" to "\u2811", + "f" to "\u280b", + "g" to "\u281b", + "h" to "\u2813", + "i" to "\u280a", + "j" to "\u281a", + "k" to "\u2805", + "l" to "\u2807", + "m" to "\u280d", + "n" to "\u281d", + "o" to "\u2815", + "p" to "\u280f", + "q" to "\u281f", + "r" to "\u2817", + "s" to "\u280e", + "t" to "\u281e", + "u" to "\u2825", + "v" to "\u2827", + "w" to "\u283a", + "x" to "\u282d", + "y" to "\u283d", + "z" to "\u2835", + "1" to "\u2801", + "2" to "\u2803", + "3" to "\u2809", + "4" to "\u2819", + "5" to "\u2811", + "6" to "\u280b", + "7" to "\u281b", + "8" to "\u2813", + "9" to "\u280a", + "0" to "\u281a", + "`" to "`", + "~" to "~", + "!" to "\u2816", + "@" to "@", + "#" to "#", + "$" to "$", + "%" to "%", + "^" to "^", + "&" to "&", + "*" to "*", + "(" to "\u2810\u2823", + ")" to "\u2810\u281c", + "-" to "\u2824", + "_" to "_", + "=" to "=", + "+" to "+", + "[" to "[", + "]" to "]", + "{" to "{", + "}" to "}", + "\\" to "\u2838\u2821", + "|" to "|", + ";" to "\u2806", + ":" to "\u2812", + "'" to "\u2804", + "\"" to "\u2804\u2836", + "," to "\u2802", + "." to "\u2832", + "<" to "<", + ">" to ">", + "/" to "\u2838\u280c", + "?" to "\u2826" + ) + ), + + BLOCKS( + mapOf( + "A" to " \u259e\u259a", + "B" to " \u2599", + "C" to " \u2af7", + "D" to " \u259f", + "E" to " \u2588\u2630", + "F" to " \u2588\u2580", + "G" to " \ud83c\udd36", + "H" to " \u2588\u25ac\u2588", + "I" to " \u2588", + "J" to " \u259f", + "K" to " \u2588\u25c0", + "L" to " \u2599", + "M" to " \u2590\u25ae\u258c", + "N" to " \u2588\u2580\u2588", + "O" to " \u2b24", + "P" to " \u259b", + "Q" to " \u259c", + "R" to " \u2588\u2598", + "S" to " \u2584\u2588\u2580", + "T" to " \u2580\u2588\u2580", + "U" to " \u2588\u2584\u2588", + "V" to " \u259a\u259e", + "W" to " \u259a\u259e\u259a\u259e", + "X" to " \u2af8\u2af7", + "Y" to " \u2580\u2584\u2580", + "Z" to " \u2580\u2588\u2584", + "a" to " \u259e\u259a", + "b" to " \u2599", + "c" to " \u2af7", + "d" to " \u259f", + "e" to " \u2588\u2630", + "f" to " \u2588\u2580", + "g" to " \ud83c\udd36", + "h" to " \u2588\u25ac\u2588", + "i" to " \u2588", + "j" to " \u259f", + "k" to " \u2588\u25c0", + "l" to " \u2599", + "m" to " \u2590\u25ae\u258c", + "n" to " \u2588\u2580\u2588", + "o" to " \u2b24", + "p" to " \u259b", + "q" to " \u259c", + "r" to " \u2588\u2598", + "s" to " \u2584\u2588\u2580", + "t" to " \u2580\u2588\u2580", + "u" to " \u2588\u2584\u2588", + "v" to " \u259a\u259e", + "w" to " \u259a\u259e\u259a\u259e", + "x" to " \u2af8\u2af7", + "y" to " \u2580\u2584\u2580", + "z" to " \u2580\u2588\u2584", + "1" to " \ud800\udd22", + "2" to " \ud800\udd23", + "3" to " \ud800\udd24", + "4" to " \ud800\udd25", + "5" to " \ud800\udd26", + "6" to " \ud800\udd27", + "7" to " \ud800\udd28", + "8" to " \ud800\udd29", + "9" to " \ud800\udd2a", + "0" to " \ud800\udd19", + "`" to " `", + "\\" to " ", + "/" to "", + "?" to "/?" + ) + ), + + LEET( + mapOf( + "A" to "4", + "B" to "8", + "C" to "<", + "E" to "3", + "H" to "|-|", + "I" to "|", + "K" to "|<", + "L" to "|_", + "M" to "/\\/\\", + "N" to "|\\|", + "O" to "0", + "S" to "5", + "T" to "7", + "W" to "\\/\\/", + "V" to "\\/", + "Y" to "7", + "a" to "4", + "b" to "8", + "c" to "<", + "e" to "3", + "h" to "|-|", + "i" to "|", + "k" to "|<", + "l" to "|_", + "m" to "/\\/\\", + "n" to "|\\|", + "o" to "0", + "s" to "5", + "t" to "7", + "w" to "\\/\\/", + "v" to "\\/", + "y" to "7" + ) + ), + + WINGDINGS( + mapOf( + "A" to "\u270c\ufe0e", + "B" to "\ud83d\udc4c\ufe0e", + "C" to "\ud83d\udc4d\ufe0e", + "D" to "\ud83d\udc4e\ufe0e", + "E" to "\u261c\ufe0e", + "F" to "\u261e\ufe0e", + "G" to "\u261d\ufe0e", + "H" to "\u261f\ufe0e", + "I" to "\u270b\ufe0e", + "J" to "\u263a\ufe0e", + "K" to "\ud83d\ude10\ufe0e", + "L" to "\u2639\ufe0e", + "M" to "\ud83d\udca3\ufe0e", + "N" to "\u2620\ufe0e", + "O" to "\u2690\ufe0e", + "P" to "\ud83c\udff1\ufe0e", + "Q" to "\u2708\ufe0e", + "R" to "\u263c\ufe0e", + "S" to "\ud83d\udca7\ufe0e", + "T" to "\u2744\ufe0e", + "U" to "\ud83d\udd46\ufe0e", + "V" to "\u271e\ufe0e", + "W" to "\ud83d\udd48\ufe0e", + "X" to "\u2720\ufe0e", + "Y" to "\u2721\ufe0e", + "Z" to "\u262a\ufe0e", + " " to " ", + "a" to "\u264b\ufe0e", + "b" to "\u264c\ufe0e", + "c" to "\u264d\ufe0e", + "d" to "\u264e\ufe0e", + "e" to "\u264f\ufe0e", + "f" to "\u2650\ufe0e", + "g" to "\u2651\ufe0e", + "h" to "\u2652\ufe0e", + "i" to "\u2653\ufe0e", + "j" to "\ud83d\ude70", + "k" to "\ud83d\ude75", + "l" to "\u25cf\ufe0e", + "m" to "\u274d\ufe0e", + "n" to "\u25a0\ufe0e", + "o" to "\u25a1\ufe0e", + "p" to "\u25fb\ufe0e", + "q" to "\u2751\ufe0e", + "r" to "\u2752\ufe0e", + "s" to "\u2b27\ufe0e", + "t" to "\u29eb\ufe0e", + "u" to "\u25c6\ufe0e", + "v" to "\u2756\ufe0e", + "w" to "\u2b25\ufe0e", + "x" to "\u2327\ufe0e", + "y" to "\u2353\ufe0e", + "z" to "\u2318\ufe0e", + "1" to "\ud83d\udcc2\ufe0e", + "2" to "\ud83d\udcc4\ufe0e", + "3" to "\ud83d\uddcf\ufe0e", + "4" to "\ud83d\uddd0\ufe0e", + "5" to "\ud83d\uddc4\ufe0e", + "6" to "\u231b\ufe0e", + "7" to "\ud83d\uddae\ufe0e", + "8" to "\ud83d\uddb0\ufe0e", + "9" to "\ud83d\uddb2\ufe0e", + "0" to "\ud83d\udcc1\ufe0e", + "`" to "\u264a\ufe0e", + "~" to "\u275e\ufe0e", + "!" to "\u270f\ufe0e", + "@" to "@", + "#" to "\u2701\ufe0e", + "$" to "\ud83d\udc53\ufe0e", + "%" to "\ud83d\udd6d\ufe0e", + "^" to "\u2648\ufe0e", + "&" to "\ud83d\udd6e\ufe0e", + "*" to "\ud83d\udd82\ufe0e", + "(" to "\ud83d\udd7f\ufe0e", + ")" to "\u2706\ufe0e", + "-" to "\ud83d\udceb\ufe0e", + "_" to "\u2649\ufe0e", + "=" to "\ud83d\uddac\ufe0e", + "+" to "\ud83d\udd83\ufe0e", + "[" to "\u262f\ufe0e", + "]" to "\u2638\ufe0e", + "{" to "\u2740\ufe0e", + "}" to "\u275d\ufe0e", + "\\" to "\u0950\ufe0e", + "|" to "\u273f\ufe0e", + ";" to "\ud83d\uddb4\ufe0e", + ":" to "\ud83d\uddb3\ufe0e", + "'" to "\ud83d\udd6f\ufe0e", + "\"" to "\u2702\ufe0e", + "," to "\ud83d\udcea\ufe0e", + "." to "\ud83d\udcec\ufe0e", + "<" to "\ud83d\uddab\ufe0e", + ">" to "\u2707\ufe0e", + "/" to "\ud83d\udced\ufe0e", + "?" to "\u270d\ufe0e", + "\u00a1" to "\u25cb\ufe0e", + "\u00a3" to "\u25fb\ufe0e", + "\u20ac" to "\u24ea\ufe0e", + "\u00a2" to "\u2b55\ufe0e", + "\u00a5" to "\u25ce\ufe0e", + "\u00bf" to "\ud83d\udd58\ufe0e", + "\u00b1" to "\u2316\ufe0e", + "\u2013" to "\u25fb\ufe0e", + "\u2014" to "\u25fb\ufe0e", + "\u221e" to "\u221e" + ) ); + override fun translate(text: String): String { - return text - .map { it.toString() } - .map { mapping.getOrDefault(it, it) } - .joinToString("") + return text.map { it.toString() }.map { mapping.getOrDefault(it, it) }.joinToString("") } -} \ No newline at end of file +} diff --git a/app/src/main/java/net/friedl/android/woot/ui/WootTextList.kt b/app/src/main/java/net/friedl/android/woot/ui/WootTextList.kt index 9e3f732..fb6b61f 100644 --- a/app/src/main/java/net/friedl/android/woot/ui/WootTextList.kt +++ b/app/src/main/java/net/friedl/android/woot/ui/WootTextList.kt @@ -16,6 +16,9 @@ import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ClipboardManager @@ -26,53 +29,93 @@ import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.unit.dp import net.friedl.android.woot.R import net.friedl.android.woot.translator.Combinators +import net.friedl.android.woot.translator.Formatters import net.friedl.android.woot.translator.Mappers @Composable fun WootTextList( - text: String, - modifier: Modifier = Modifier + text: String, modifier: Modifier = Modifier ) { - val wootTexts = listOf( - Mappers.NORMAL(text), - Mappers.CIRCLED(text), - Mappers.BOLD(text), - Mappers.BOLD_ITALIC(text), - Mappers.ITALIC(text), - Mappers.SANS(text), - Mappers.DOUBLESTRUCK(text), - Mappers.MONOSPACE(text), - Mappers.SERIF_BOLD(text), - Mappers.SERIF_BOLD_ITALIC(text), - Mappers.FRAKTUR(text), - Mappers.BOLD_FRAKTUR(text), - Mappers.SCRIPT(text), - Mappers.BOLD_SCRIPT(text), - Mappers.THAI(text), - Mappers.CYRILLIC(text), - Mappers.ETHIOPIC(text), - Mappers.THAI_LE(text), - Mappers.JAPANESE(text), - Mappers.CANADIAN_SYLLABIC(text), - Mappers.CANADIAN_SYLLABICS_DOTS(text), - Mappers.OLD_ITALIC(text), - Mappers.CRIMPED(text), - Mappers.WILD(text), - Mappers.CURVY(text), - Combinators.FIREWORKS(text), - Combinators.DOUBLE_OVERLINED(text), - Combinators.DOUBLE_UNDERLINE(text), - Combinators.OVERLINED(text), - Combinators.STRIKETHROUGH(text), - Combinators.UNDERLINE(text), - Combinators.SLASHED(text), - Combinators.XS(text), - Combinators.SQUIGGLES(text), - Combinators.LIGHTNING(text), - Combinators.UP_ARROWS(text), - Combinators.VERTICAL_BRACKETS(text) - ) + val wootTexts by remember { + mutableStateOf( + listOf( + Mappers.NORMAL(text), + Mappers.CIRCLED(text), + Mappers.BOLD(text), + Mappers.BOLD_ITALIC(text), + Mappers.ITALIC(text), + Mappers.SANS(text), + Mappers.DOUBLESTRUCK(text), + Mappers.MONOSPACE(text), + Mappers.SERIF_BOLD(text), + Mappers.SERIF_BOLD_ITALIC(text), + Mappers.FRAKTUR(text), + Mappers.BOLD_FRAKTUR(text), + Mappers.SCRIPT(text), + Mappers.BOLD_SCRIPT(text), + Mappers.THAI(text), + Mappers.CYRILLIC(text), + Mappers.ETHIOPIC(text), + Mappers.THAI_LE(text), + Mappers.JAPANESE(text), + Mappers.CANADIAN_SYLLABIC(text), + Mappers.CANADIAN_SYLLABICS_DOTS(text), + Mappers.OLD_ITALIC(text), + Mappers.CRIMPED(text), + Mappers.WILD(text), + Mappers.CURVY(text), + Mappers.FULL_CIRCLE(text), + Mappers.FULLWIDTH(text), + Mappers.SMALL_CAPITALS(text), + Mappers.SUPERSCRIPT(text), + Mappers.SUBSCRIPT(text), + Mappers.MIRROR(text), + Mappers.UPSIDEDOWN(text), + Mappers.REGIONAL_INDICATOR(text), + Mappers.FULL_SQUARED(text), + Mappers.TAG(text), + Mappers.ACUTE_ACCENT(text), + Mappers.GRAVE_ACCENT(text), + Mappers.CIRCUMFLEX(text), + Mappers.CARON(text), + Mappers.MONEY(text), + Mappers.HOMOGLYPH(text), + Mappers.FAKE_BRAILLE(text), + Mappers.BRAILLE(text), + Mappers.BLOCKS(text), + Mappers.LEET(text), + Mappers.WINGDINGS(text), + + Combinators.FIREWORKS(text), + Combinators.DOUBLE_OVERLINED(text), + Combinators.DOUBLE_UNDERLINE(text), + Combinators.OVERLINED(text), + Combinators.STRIKETHROUGH(text), + Combinators.UNDERLINE(text), + Combinators.SLASHED(text), + Combinators.XS(text), + Combinators.SQUIGGLES(text), + Combinators.LIGHTNING(text), + Combinators.UP_ARROWS(text), + Combinators.VERTICAL_BRACKETS(text), + Combinators.TRIANGLE(text), + Combinators.HEARTS(text), + Combinators.KEYCAP(text), + + Formatters.BRACKETS(text), + Formatters.CORNER_BRACKETS(text), + Formatters.SHADE(text), + Formatters.BOXED(text), + Formatters.DOUBLE_BOXED(text), + Formatters.ANGLE_DOTS(text), + Formatters.ORNATE(text), + Formatters.TICKED_BRACKETS(text), + Formatters.ZIGZAG(text), + Formatters.TILDES(text) + ) + ) + } LazyColumn(modifier = modifier) { items(wootTexts) { text -> @@ -83,8 +126,7 @@ fun WootTextList( @Composable fun WootTextCard( - text: String, - modifier: Modifier = Modifier + text: String, modifier: Modifier = Modifier ) { val cardColors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surface, @@ -103,8 +145,7 @@ fun WootTextCard( @Composable fun WootTextCardDetail( - text: String, - modifier: Modifier = Modifier + text: String, modifier: Modifier = Modifier ) { Row( verticalAlignment = Alignment.CenterVertically, @@ -117,21 +158,18 @@ fun WootTextCardDetail( ) ShareTextButton( - text, - modifier= modifier.weight(0.1f) + text, modifier = modifier.weight(0.1f) ) CopyTextButton( - text, - modifier = modifier.weight(0.1f) + text, modifier = modifier.weight(0.1f) ) } } @Composable fun CopyTextButton( - text: String, - modifier: Modifier = Modifier + text: String, modifier: Modifier = Modifier ) { val clipboardManager: ClipboardManager = LocalClipboardManager.current val context = LocalContext.current @@ -139,9 +177,7 @@ fun CopyTextButton( IconButton( onClick = { clipboardManager.setText(AnnotatedString(text)) - Toast - .makeText(context, R.string.clipboard_copy_toast, Toast.LENGTH_SHORT) - .show() + Toast.makeText(context, R.string.clipboard_copy_toast, Toast.LENGTH_SHORT).show() }, modifier = modifier ) { Icon( @@ -153,8 +189,7 @@ fun CopyTextButton( @Composable fun ShareTextButton( - text: String, - modifier: Modifier = Modifier + text: String, modifier: Modifier = Modifier ) { val sendIntent: Intent = Intent().apply { action = Intent.ACTION_SEND @@ -171,4 +206,4 @@ fun ShareTextButton( ) { Icon(Icons.Default.Share, contentDescription = "Share") } -} \ No newline at end of file +}