rtopm 0.1.0

A modern TUI system resource monitor with Docker and disk I/O tracking
use std::env;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Language {
    English,
    Spanish,
}

impl Language {
    pub fn detect() -> Self {
        // Check standard env vars for language detection
        for var in &["LANG", "LC_ALL", "LC_MESSAGES"] {
            if let Ok(val) = env::var(var) {
                if val.to_lowercase().starts_with("es") {
                    return Language::Spanish;
                }
            }
        }
        Language::English
    }
}

pub fn translate(key: &'static str, lang: Language) -> &'static str {
    match lang {
        Language::English => match key {
            "Processes" => "Processes",
            "Containers" => "Containers",
            "Network" => "Network",
            "PID" => "PID",
            "Process" => "Process",
            "Status" => "Status",
            "CPU" => "CPU",
            "Memory" => "Memory",
            "RAM" => "RAM",
            "Disk R" => "Disk R",
            "Disk W" => "Disk W",
            "Disk" => "Disk",
            "Uptime" => "Uptime",
            "User" => "User",
            "Threads" => "Threads",
            "Path" => "Path",
            "Directory" => "Directory",
            "Command" => "Command",
            "Image" => "Image",
            "State" => "State",
            "Net Tot" => "Net Tot",
            "Disk Tot" => "Disk Tot",
            "Ports" => "Ports",
            "Volumes" => "Volumes",
            "Networks" => "Networks",
            "Env Vars" => "Env Vars",
            "Back" => "Back",
            "Logs" => "Logs",
            "Restart" => "Restart",
            "Stop" => "Stop",
            "History" => "History",
            "Range" => "Range",
            "Confirm" => "Confirm",
            "Cancel" => "Cancel",
            "running" => "running",
            "sleeping" => "sleeping",
            "stopped" => "stopped",
            "zombie" => "zombie",
            "other" => "other",
            "all" => "all",
            "YesNoConfirmRestart" => "Are you sure you want to restart this container?",
            "YesNoConfirmStop" => "Are you sure you want to stop this container?",
            "NoContainers" => "No active containers",
            "NoDisks" => "No disks detected.",
            "SelectDisk" => "Select disk device",
            "SelectNIC" => "Select network interface",
            "AllNICs" => "All",
            "Summation" => "(summation)",
            "Selected" => "selected",
            "NicSelected" => "selected",
            "SumOfNICs" => "sum of interfaces",
            "Active" => "active",
            "Inactive" => "inactive",
            "TerminalTooSmall" => "⚠  Terminal too small (minimum 80×24)",
            "Refresh" => "Refresh",
            "Help" => "Help",
            "General Navigation" => "General Navigation",
            "Quit rtop" => "Quit rtop",
            "Quit always" => "Quit (always)",
            "Change tab" => "Change tab (Processes ↔ Containers)",
            "Show hide help" => "Show / hide this help",
            "Close modal exit detail" => "Close modal / exit detail view",
            "System" => "System",
            "Decrease refresh interval" => "Decrease refresh interval",
            "Increase refresh interval" => "Increase refresh interval",
            "Select disk" => "Select disk selector",
            "Select network interface" => "Select network interface selector",
            "Navigate list" => "Navigate list",
            "View process detail" => "View process detail",
            "View container detail" => "View container detail",
            "Toggle filter by name" => "Toggle filter by name",
            "Clear filter" => "Clear filter",
            "Sort by CPU" => "Sort by CPU",
            "Sort by Memory" => "Sort by Memory",
            "Sort by disk read" => "Sort by disk read",
            "Sort by disk write" => "Sort by disk write",
            "View container logs" => "View container logs",
            "Restart container" => "Restart container",
            "Stop container" => "Stop container",
            "Container logs" => "Container logs",
            "Scroll logs" => "Scroll logs",
            "Toggle auto-scroll" => "Toggle auto-scroll",
            "Back to container detail" => "Back to container detail",
            "CPU RAM" => "CPU · RAM",
            "Disk Net IO" => "Disk · Net (I/O)",
            "Pressure PSI" => "Pressure (PSI)",
            "Help Shortcuts" => " Help — Keyboard Shortcuts  [F1 / Esc to close] ",
            "Version" => "Version rtop 0.1",
            "Filter" => "Filter",
            "PressSlashToFilter" => "filter",
            "PressFToStatus" => "status",
            "Navigate" => "navigate",
            "EnterDetail" => "detail",
            "CPU History" => "CPU History",
            "Memory History" => "Memory History",
            "Disk History" => "Disk History",
            "Net History" => "Net History",
            "Last" => "Last",
            "Clean filter" => "ESC clear",
            "All" => "All",
            "HelpShort" => "F1 Help",

            // process_detail / container_detail specific keys
            "ProcessDetailHeader" => "Process detail:",
            "ContainerDetailHeader" => "Container:",
            "UserLabel" => "User",
            "StatusLabel" => "Status",
            "ThreadsLabel" => "Threads",
            "UptimeLabel" => "Uptime",
            "PathLabel" => "Path (Exe)",
            "DirectoryLabel" => "Directory",
            "CommandLabel" => "Command",
            "CPUHistory" => "CPU History",
            "CPULabel" => "CPU",
            "MemHistory" => "Memory History",
            "MemLabel" => "Memory",
            "DiskReadHistory" => "Disk Read History",
            "DiskReadLabel" => "Disk Read",
            "DiskWriteHistory" => "Disk Write History",
            "DiskWriteLabel" => "Disk Write",
            "LastLabel" => "Last",
            "BackLabel" => "Back",
            "HistoryLabel" => "History",
            "RangeLabel" => "Range",
            "PortLabel" => "Ports",
            "VolumeLabel" => "Volumes",
            "NetworkLabel" => "Networks",
            "EnvVarsLabel" => "Environment variables",
            "RestartLabel" => "restart",
            "StopLabel" => "stop",
            _ => key,
        },
        Language::Spanish => match key {
            "Processes" => "Procesos",
            "Containers" => "Contenedores",
            "Network" => "Red",
            "PID" => "PID",
            "Process" => "Proceso",
            "Status" => "Estado",
            "CPU" => "CPU",
            "Memory" => "Memoria",
            "RAM" => "RAM",
            "Disk R" => "Disco R",
            "Disk W" => "Disco W",
            "Disk" => "Disco",
            "Uptime" => "Uptime",
            "User" => "Usuario",
            "Threads" => "Threads",
            "Path" => "Ruta (Exe)",
            "Directory" => "Directorio",
            "Command" => "Comando",
            "Image" => "Imagen",
            "State" => "Estado",
            "Net Tot" => "Red Tot",
            "Disk Tot" => "Disk Tot",
            "Ports" => "Puertos",
            "Volumes" => "Volúmenes",
            "Networks" => "Redes",
            "Env Vars" => "Variables de entorno",
            "Back" => "Volver",
            "Logs" => "Logs",
            "Restart" => "Reiniciar",
            "Stop" => "Detener",
            "History" => "Historial",
            "Range" => "Rango",
            "Confirm" => "Confirmar",
            "Cancel" => "Cancelar",
            "running" => "ejecutando",
            "sleeping" => "durmiendo",
            "stopped" => "parado",
            "zombie" => "zombi",
            "other" => "otro",
            "all" => "todos",
            "YesNoConfirmRestart" => "¿Seguro que quieres reiniciar este contenedor?",
            "YesNoConfirmStop" => "¿Seguro que quieres detener este contenedor?",
            "NoContainers" => "Sin contenedores activos",
            "NoDisks" => "No se detectaron dispositivos.",
            "SelectDisk" => "Seleccionar dispositivo de disco",
            "SelectNIC" => "Seleccionar interfaz de red",
            "AllNICs" => "Todas",
            "Summation" => "(sumatoria)",
            "Selected" => "seleccionado",
            "NicSelected" => "seleccionada",
            "SumOfNICs" => "suma de interfaces",
            "Active" => "activa",
            "Inactive" => "inactiva",
            "TerminalTooSmall" => "⚠  Terminal muy pequeña (mínimo 80×24)",
            "Refresh" => "Refresco",
            "Help" => "Ayuda",
            "General Navigation" => "Navegación general",
            "Quit rtop" => "Salir de rtop",
            "Quit always" => "Salir (siempre)",
            "Change tab" => "Cambiar pestaña (Procesos ↔ Contenedores)",
            "Show hide help" => "Mostrar / cerrar esta ayuda",
            "Close modal exit detail" => "Cerrar modal / salir de vista de detalle",
            "System" => "Sistema",
            "Decrease refresh interval" => "Disminuir intervalo de refresco",
            "Increase refresh interval" => "Aumentar intervalo de refresco",
            "Select disk" => "Selector de disco",
            "Select network interface" => "Selector de interfaz de red",
            "Navigate list" => "Navegar lista",
            "View process detail" => "Ver detalle del proceso",
            "View container detail" => "Ver detalle del contenedor",
            "Toggle filter by name" => "Activar filtro por nombre",
            "Clear filter" => "Limpiar filtro",
            "Sort by CPU" => "Ordenar por CPU",
            "Sort by Memory" => "Ordenar por Memoria",
            "Sort by disk read" => "Ordenar por Lectura de disco",
            "Sort by disk write" => "Ordenar por Escritura de disco",
            "View container logs" => "Ver logs del contenedor",
            "Restart container" => "Reiniciar contenedor",
            "Stop container" => "Parar contenedor",
            "Container logs" => "Logs de contenedor",
            "Scroll logs" => "Desplazar logs",
            "Toggle auto-scroll" => "Activar / desactivar seguimiento automático",
            "Back to container detail" => "Volver al detalle del contenedor",
            "CPU RAM" => "CPU · RAM",
            "Disk Net IO" => "Disco · Red (I/O)",
            "Pressure PSI" => "Presión (PSI)",
            "Help Shortcuts" => " Ayuda — Atajos de teclado  [F1 / Esc para cerrar] ",
            "Version" => "Versión rtop 0.1",
            "Filter" => "Filtro",
            "PressSlashToFilter" => "filtrar",
            "PressFToStatus" => "estado",
            "Navigate" => "navegar",
            "EnterDetail" => "detalle",
            "CPU History" => "CPU Historial",
            "Memory History" => "Memoria Historial",
            "Disk History" => "Disco Historial",
            "Net History" => "Red Historial",
            "Last" => "Último",
            "Clean filter" => "ESC limpiar",
            "All" => "Todos",
            "HelpShort" => "F1 Ayuda",

            // process_detail / container_detail specific keys
            "ProcessDetailHeader" => "Detalle de proceso:",
            "ContainerDetailHeader" => "Contenedor:",
            "UserLabel" => "Usuario",
            "StatusLabel" => "Estado",
            "ThreadsLabel" => "Threads",
            "UptimeLabel" => "Uptime",
            "PathLabel" => "Ruta (Exe)",
            "DirectoryLabel" => "Directorio",
            "CommandLabel" => "Comando",
            "CPUHistory" => "CPU Historial",
            "CPULabel" => "CPU",
            "MemHistory" => "Memoria Historial",
            "MemLabel" => "Memoria",
            "DiskReadHistory" => "Disco Lectura Historial",
            "DiskReadLabel" => "Disco Lectura",
            "DiskWriteHistory" => "Disco Escritura Historial",
            "DiskWriteLabel" => "Disco Escritura",
            "LastLabel" => "Último",
            "BackLabel" => "Volver",
            "HistoryLabel" => "Historial",
            "RangeLabel" => "Rango",
            "PortLabel" => "Puertos",
            "VolumeLabel" => "Volúmenes",
            "NetworkLabel" => "Redes",
            "EnvVarsLabel" => "Variables de entorno",
            "RestartLabel" => "reiniciar",
            "StopLabel" => "detener",
            _ => key,
        },
    }
}