Skip to main content

browser_automation_cli/
i18n.rs

1//! Minimal en/pt-BR message helpers for critical errors.
2
3/// Normalize lang token to "en" or "pt".
4pub fn normalize_lang(lang: Option<&str>) -> &'static str {
5    match lang.map(|s| s.trim().to_ascii_lowercase()) {
6        Some(ref s) if s.starts_with("pt") => "pt",
7        _ => "en",
8    }
9}
10
11/// Localized suggestion for a known kind key.
12pub fn suggestion_for(kind: &str, lang: Option<&str>) -> Option<&'static str> {
13    let l = normalize_lang(lang);
14    match (kind, l) {
15        ("usage", "pt") => Some("Confira --help e os argumentos obrigatorios"),
16        ("usage", _) => Some("Check --help and required arguments"),
17        ("broken-pipe", "pt") => {
18            Some("Nao pipe stdout para consumidor fechado; exit 141 e esperado")
19        }
20        ("broken-pipe", _) => Some("Do not pipe stdout to a closed consumer; exit 141 is expected"),
21        ("unavailable", "pt") => Some("Instale Chrome/Chromium no PATH ou configure o executavel"),
22        ("unavailable", _) => Some("Install Chrome/Chromium on PATH or set the executable"),
23        ("data", "pt") => Some("Verifique robots.txt ou o payload JSON/NDJSON"),
24        ("data", _) => Some("Check robots.txt or the JSON/NDJSON payload"),
25        ("browser", "pt") => Some("Verifique URL e se o Chrome ainda esta vivo no one-shot"),
26        ("browser", _) => Some("Check the URL and whether Chrome stayed alive in this one-shot"),
27        _ => None,
28    }
29}