Files
Stalwart/crates/common/src/i18n.rs
2026-03-11 18:28:31 +01:00

36 lines
1.0 KiB
Rust

/*
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <hello@stalw.art>
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
include!(concat!(env!("OUT_DIR"), "/locales.rs"));
pub fn locale_or_default(name: &str) -> &'static Locale {
locale(name)
.or_else(|| name.split_once('_').and_then(|(lang, _)| locale(lang)))
.unwrap_or(&EN_LOCALES)
}
#[cfg(test)]
mod tests {
use super::locale;
#[test]
fn calendar_templates_include_minutes() {
for lang in [
"en", "es", "fr", "de", "it", "pt", "nl", "da", "ca", "el", "sv", "pl",
] {
let locale = locale(lang).expect("locale must exist");
assert!(
locale.calendar_date_template.contains("%M"),
"{lang} calendar.date_template must include minutes"
);
assert!(
locale.calendar_date_template_long.contains("%M"),
"{lang} calendar.date_template_long must include minutes"
);
}
}
}