passgenlib/
lang.rs

1pub mod lang {
2    /// Supported languages for password strength level description
3    #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
4    pub enum Language {
5        /// English - default language
6        English,
7        /// Chinese (Simplified)
8        Chinese,
9        /// Spanish
10        Spanish,
11        /// Hindi
12        Hindi,
13        /// Arabic
14        Arabic,
15        /// Portuguese
16        Portuguese,
17        /// Bengali
18        Bengali,
19        /// Russian
20        Russian,
21        /// Japanese
22        Japanese,
23        /// Punjabi
24        Punjabi,
25        /// German
26        German,
27        /// Korean
28        Korean,
29        /// French
30        French,
31        /// Turkish
32        Turkish,
33        /// Italian
34        Italian,
35    }
36
37    /// Translations for password strength levels
38    pub struct StrengthTranslations;
39
40    impl StrengthTranslations {
41        /// Get the strength level description in the selected language
42        pub fn get_level(language: Language, score: u8) -> &'static str {
43            match score {
44                0..=20 => match language {
45                    Language::English => "Very Weak",
46                    Language::Chinese => "非常弱",
47                    Language::Spanish => "Muy Débil",
48                    Language::Hindi => "बहुत कमजोर",
49                    Language::Arabic => "ضعيف جداً",
50                    Language::Portuguese => "Muito Fraco",
51                    Language::Bengali => "খুব দুর্বল",
52                    Language::Russian => "Очень слабый",
53                    Language::Japanese => "非常に弱い",
54                    Language::Punjabi => "ਬਹੁਤ ਕਮਜ਼ੋਰ",
55                    Language::German => "Sehr Schwach",
56                    Language::Korean => "매우 약함",
57                    Language::French => "Très Faible",
58                    Language::Turkish => "Çok Zayıf",
59                    Language::Italian => "Molto Debole",
60                },
61                21..=40 => match language {
62                    Language::English => "Weak",
63                    Language::Chinese => "弱",
64                    Language::Spanish => "Débil",
65                    Language::Hindi => "कमजोर",
66                    Language::Arabic => "ضعيف",
67                    Language::Portuguese => "Fraco",
68                    Language::Bengali => "দুর্বল",
69                    Language::Russian => "Слабый",
70                    Language::Japanese => "弱い",
71                    Language::Punjabi => "ਕਮਜ਼ੋਰ",
72                    Language::German => "Schwach",
73                    Language::Korean => "약함",
74                    Language::French => "Faible",
75                    Language::Turkish => "Zayıf",
76                    Language::Italian => "Debole",
77                },
78                41..=60 => match language {
79                    Language::English => "Fair",
80                    Language::Chinese => "一般",
81                    Language::Spanish => "Aceptable",
82                    Language::Hindi => "मध्यम",
83                    Language::Arabic => "مقبول",
84                    Language::Portuguese => "Razoável",
85                    Language::Bengali => "মধ্যম",
86                    Language::Russian => "Удовлетворительный",
87                    Language::Japanese => "普通",
88                    Language::Punjabi => "ਸ਼ਾਤ",
89                    Language::German => "Mittel",
90                    Language::Korean => "보통",
91                    Language::French => "Moyen",
92                    Language::Turkish => "Orta",
93                    Language::Italian => "Discreto",
94                },
95                61..=80 => match language {
96                    Language::English => "Strong",
97                    Language::Chinese => "强",
98                    Language::Spanish => "Fuerte",
99                    Language::Hindi => "मजबूत",
100                    Language::Arabic => "قوي",
101                    Language::Portuguese => "Forte",
102                    Language::Bengali => "শক্তিশালী",
103                    Language::Russian => "Сильный",
104                    Language::Japanese => "強い",
105                    Language::Punjabi => "ਮਜ਼ਬੂਤ",
106                    Language::German => "Stark",
107                    Language::Korean => "강함",
108                    Language::French => "Fort",
109                    Language::Turkish => "Güçlü",
110                    Language::Italian => "Forte",
111                },
112                81..=100 => match language {
113                    Language::English => "Very Strong",
114                    Language::Chinese => "非常强",
115                    Language::Spanish => "Muy Fuerte",
116                    Language::Hindi => "बहुत मजबूत",
117                    Language::Arabic => "قوي جداً",
118                    Language::Portuguese => "Muito Forte",
119                    Language::Bengali => "খুব শক্তিশালী",
120                    Language::Russian => "Очень сильный",
121                    Language::Japanese => "非常に強い",
122                    Language::Punjabi => "ਬਹੁਤ ਮਜ਼ਬੂਤ",
123                    Language::German => "Sehr Stark",
124                    Language::Korean => "매우 강함",
125                    Language::French => "Très Fort",
126                    Language::Turkish => "Çok Güçlü",
127                    Language::Italian => "Molto Forte",
128                },
129                _ => "Unknown",
130            }
131        }
132    }
133}