wordle_cli/lang/
locale.rs1use any_ascii::any_ascii;
2
3pub fn replace_unicode(word: &str, lang: &str) -> String {
7 match lang {
8 "de" => {
9 let without_umlauts = replace_umlauts(word);
11
12 any_ascii(without_umlauts.as_str())
13 }
14 _ => any_ascii(word)
15 }
16}
17
18fn replace_umlauts(word: &str) -> String {
24 word.replace("ä", "ae").replace("ö", "oe").replace("ü", "ue")
25}
26
27
28#[cfg(test)]
29#[test]
30fn test_replace_unicode() {
31 assert_eq!(replace_unicode("schön", "de"), "schoen");
32 assert_eq!(replace_unicode("geschoß", "de"), "geschoss");
33 assert_eq!(replace_unicode("zäh", "de"), "zaeh");
34 assert_eq!(replace_unicode("lüge", "de"), "luege");
35
36 assert_eq!(replace_unicode("schön", "en"), "schon");
37 assert_eq!(replace_unicode("geschoß", "en"), "geschoss");
38 assert_eq!(replace_unicode("zäh", "en"), "zah");
39 assert_eq!(replace_unicode("lüge", "en"), "luge");
40}
41
42#[cfg(test)]
43#[test]
44fn test_replace_umlauts() {
45 assert_eq!(replace_umlauts("schön"), "schoen");
46 assert_eq!(replace_umlauts("zäh"), "zaeh");
47 assert_eq!(replace_umlauts("lüge"), "luege");
48
49 assert_ne!(replace_umlauts("schön"), "schon");
50 assert_ne!(replace_umlauts("zäh"), "zah");
51 assert_ne!(replace_umlauts("lüge"), "luge");
52}