garbage_code_hunter/common/
i18n_ext.rs1pub fn is_chinese(lang: &str) -> bool {
5 matches!(
6 lang.to_lowercase().replace('_', "-").as_str(),
7 "zh" | "zh-cn" | "chinese"
8 )
9}
10
11pub fn t<'a>(lang: &'a str, zh: &'a str, en: &'a str) -> &'a str {
13 if is_chinese(lang) {
14 zh
15 } else {
16 en
17 }
18}
19
20pub fn t_owned(lang: &str, zh: &str, en: &str) -> String {
22 if is_chinese(lang) {
23 zh.to_string()
24 } else {
25 en.to_string()
26 }
27}
28
29#[cfg(test)]
30mod tests {
31 use super::*;
32
33 #[test]
34 fn test_is_chinese() {
35 assert!(is_chinese("zh-CN"));
36 assert!(is_chinese("zh"));
37 assert!(is_chinese("chinese"));
38 assert!(!is_chinese("en-US"));
39 assert!(!is_chinese("en"));
40 }
41
42 #[test]
43 fn test_t() {
44 assert_eq!(t("zh-CN", "中文", "English"), "中文");
45 assert_eq!(t("en-US", "中文", "English"), "English");
46 }
47}