(function () {
  window.LOCALE_NAMES = {
    'pt-BR': 'Português (Brasil)',
    'en': 'English',
    'es': 'Español',
    'de': 'Deutsch',
    'pl': 'Polski',
    'it': 'Italiano',
    'ru': 'Русский',
    'zh': '中文',
    'ja': '日本語',
    'fa': 'فارسی',
  };

  const ptBR = {
    'nav.dashboard': 'Dashboard',
    'nav.storage': 'Storage Locations',
    'nav.profiles': 'Backup Profiles',
    'nav.runs': 'Backup Runs',
    'nav.backups': 'Backups',
    'nav.settings': 'Configurações',
    'nav.about': 'Sobre',

    'dashboard.title': 'Dashboard',
    'dashboard.totalContainers': 'Total Containers',
    'dashboard.activeConnections': 'Conexões ativas',
    'dashboard.backupProfiles': 'Backup Profiles',
    'dashboard.configuredProfiles': 'Profiles configurados',
    'dashboard.successful': 'Bem-sucedidos',
    'dashboard.totalSuccessful': 'Total com sucesso',
    'dashboard.failed': 'Falhas',
    'dashboard.totalFailed': 'Total com falha',
    'dashboard.recentRuns': 'Execuções Recentes',
    'dashboard.createProfile': '+ Criar Profile',

    'table.id': 'ID',
    'table.profile': 'Profile',
    'table.mode': 'Modo',
    'table.status': 'Status',
    'table.containers': 'Containers',
    'table.files': 'Arquivos',
    'table.size': 'Tamanho',
    'table.started': 'Início',
    'table.duration': 'Duração',
    'table.actions': 'Ações',
    'table.date': 'Data',
    'table.type': 'Tipo',
    'table.directory': 'Diretório',
    'table.name': 'Nome',

    'profiles.title': 'Backup Profiles',
    'profiles.create': '+ Criar Profile',
    'profiles.reload': 'Recarregar',
    'profiles.empty': 'Nenhum profile salvo.',
    'profiles.newProfile': 'Novo Profile',
    'profiles.editProfile': 'Editar Profile',
    'profiles.name': 'Nome do profile',
    'profiles.namePlaceholder': 'Backup banco principal',
    'profiles.storageLocation': 'Local de armazenamento',
    'profiles.storageLocationPlaceholder': 'Selecione um local...',
    'profiles.backupScope': 'Escopo do backup',
    'profiles.scopeVolumes': 'Somente volumes',
    'profiles.scopeVolumesDesc': 'mantém o comportamento atual de backup de volumes e binds',
    'profiles.scopeContainer': 'Container inteiro',
    'profiles.scopeContainerDesc': 'gera um único tar por container a partir de /',
    'profiles.containers': 'Containers',
    'profiles.refreshContainers': 'Atualizar lista',
    'profiles.save': 'Salvar profile',
    'profiles.cancel': 'Cancelar',
    'profiles.saved': 'Profile salvo.',
    'profiles.deleted': 'Profile removido.',
    'profiles.confirmDelete': 'Excluir o profile',

    'action.run': 'Run',
    'action.running': 'Executando...',
    'action.edit': 'Editar',
    'action.delete': 'Excluir',
    'action.restore': 'Restore',
    'action.restoring': 'Restaurando...',
    'action.refresh': 'Refresh',
    'action.save': 'Salvar',
    'action.cancel': 'Cancelar',
    'action.close': 'Fechar',
    'action.confirm': 'Confirmar',
    'action.selectAll': 'Marcar todos',

    'mode.full': 'Full',
    'mode.incremental': 'Incremental',
    'mode.backupMode': 'Modo do backup',

    'runs.title': 'Backup Runs',
    'runs.allRuns': 'Todas as execuções',
    'runs.empty': 'Nenhum run encontrado.',

    'backups.title': 'Backups',
    'backups.noBackups': 'Nenhum backup realizado.',
    'backups.noProfiles': 'Nenhum profile encontrado.',

    'storage.title': 'Storage Locations',
    'storage.new': '+ Novo Local',
    'storage.empty': 'Nenhum local de armazenamento configurado. Crie um para poder configurar backup profiles.',
    'storage.newLocation': 'Novo Local de Armazenamento',
    'storage.name': 'Nome',
    'storage.namePlaceholder': 'Backup principal',
    'storage.directory': 'Diretório',
    'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'Local de armazenamento salvo.',
    'storage.deleted': 'Local removido.',
    'storage.confirmDelete': 'Excluir este local de armazenamento?',

    'settings.title': 'Configurações',
    'settings.language': 'Idioma',
    'settings.languageDesc': 'Selecione o idioma de toda a interface',
    'settings.auth': 'Controle de Acesso',
    'settings.authEnabled': 'Exigir usuário e senha para acesso',
    'settings.username': 'Usuário',
    'settings.password': 'Senha (deixe em branco para não alterar)',
    'settings.saveSettings': 'Salvar configurações',
    'settings.saved': 'Configurações salvas.',

    'about.title': 'Sobre',
    'about.description': 'Aplicação web para backup e restauração de volumes Docker com suporte a snapshots incrementais e restore seletivo.',
    'about.currentVersion': 'Versão atual',
    'about.latestVersion': 'Última versão',
    'about.checking': 'Verificando...',
    'about.upToDate': 'Atualizado',
    'about.updateAvailable': 'Atualização disponível',
    'about.update': 'Atualizar agora',
    'about.updating': 'Atualizando...',
    'about.changelog': 'Últimas alterações',
    'about.checkError': 'Não foi possível verificar a versão mais recente.',
    'about.updateSuccess': 'Atualização concluída. Reiniciando...',
    'about.updateError': 'Falha na atualização.',

    'login.title': 'Acesso restrito',
    'login.subtitle': 'Faça login para continuar',
    'login.username': 'Usuário',
    'login.password': 'Senha',
    'login.submit': 'Entrar',
    'login.error': 'Usuário ou senha incorretos.',
    'login.logout': 'Sair',

    'progress.backup': 'Progresso do backup',
    'progress.restore': 'Progresso do restore',
    'progress.containers': 'Containers',
    'progress.completed': 'concluído(s)',
    'progress.remaining': 'Faltam',
    'progress.current': 'Container atual',
    'progress.files': 'Arquivos',
    'progress.detailedLog': 'Log detalhado',
    'progress.events': 'evento(s)',
    'progress.noEvents': 'Nenhum evento detalhado ainda.',
    'progress.step': 'Etapa',
    'progress.waiting': 'Aguardando processamento de arquivo...',

    'error.selectStorage': 'Selecione um local de armazenamento.',
    'error.noFullBackup': 'Não há backup full disponível. Execute um backup full primeiro.',
    'error.selectFullBackup': 'Selecione um backup full.',
    'error.selectFullBackupModal': 'Selecionar backup full base',
    'error.selectFullBackupDesc': 'Selecione o backup full que será utilizado como base para o backup incremental:',
    'error.selectVolume': 'Selecione ao menos um volume.',
    'error.selectContainer': 'Selecione ao menos um container para restaurar.',

    'volume.title': 'Selecionar volumes para backup',
    'volume.confirm': 'Confirmar seleção',

    'restore.title': 'Selecionar containers para restore',
    'restore.confirm': 'Restaurar selecionados',
    'restore.confirmPrompt': 'Restaurar o backup selecionado para o profile',

    'scope.volumes': 'somente volumes',
    'scope.container': 'container inteiro',

    'status.completed': 'Completed',
    'status.partial': 'Partial',
    'status.error': 'Error',
    'status.running': 'Running',
  };

  const en = {
    'nav.dashboard': 'Dashboard',
    'nav.storage': 'Storage Locations',
    'nav.profiles': 'Backup Profiles',
    'nav.runs': 'Backup Runs',
    'nav.backups': 'Backups',
    'nav.settings': 'Settings',
    'nav.about': 'About',

    'dashboard.title': 'Dashboard',
    'dashboard.totalContainers': 'Total Containers',
    'dashboard.activeConnections': 'Active connections',
    'dashboard.backupProfiles': 'Backup Profiles',
    'dashboard.configuredProfiles': 'Configured profiles',
    'dashboard.successful': 'Successful',
    'dashboard.totalSuccessful': 'Total successful',
    'dashboard.failed': 'Failed',
    'dashboard.totalFailed': 'Total failed',
    'dashboard.recentRuns': 'Recent Backup Runs',
    'dashboard.createProfile': '+ Create Profile',

    'table.id': 'ID', 'table.profile': 'Profile', 'table.mode': 'Mode', 'table.status': 'Status',
    'table.containers': 'Containers', 'table.files': 'Files', 'table.size': 'Size',
    'table.started': 'Started', 'table.duration': 'Duration', 'table.actions': 'Actions',
    'table.date': 'Date', 'table.type': 'Type', 'table.directory': 'Directory', 'table.name': 'Name',

    'profiles.title': 'Backup Profiles', 'profiles.create': '+ Create Profile', 'profiles.reload': 'Reload',
    'profiles.empty': 'No saved profiles.', 'profiles.newProfile': 'New Profile', 'profiles.editProfile': 'Edit Profile',
    'profiles.name': 'Profile name', 'profiles.namePlaceholder': 'Main database backup',
    'profiles.storageLocation': 'Storage location', 'profiles.storageLocationPlaceholder': 'Select a location...',
    'profiles.backupScope': 'Backup scope', 'profiles.scopeVolumes': 'Volumes only',
    'profiles.scopeVolumesDesc': 'backs up volumes and bind mounts', 'profiles.scopeContainer': 'Entire container',
    'profiles.scopeContainerDesc': 'creates a single tar per container from /',
    'profiles.containers': 'Containers', 'profiles.refreshContainers': 'Refresh list',
    'profiles.save': 'Save profile', 'profiles.cancel': 'Cancel', 'profiles.saved': 'Profile saved.',
    'profiles.deleted': 'Profile removed.', 'profiles.confirmDelete': 'Delete profile',

    'action.run': 'Run', 'action.running': 'Running...', 'action.edit': 'Edit', 'action.delete': 'Delete',
    'action.restore': 'Restore', 'action.restoring': 'Restoring...', 'action.refresh': 'Refresh',
    'action.save': 'Save', 'action.cancel': 'Cancel', 'action.close': 'Close',
    'action.confirm': 'Confirm', 'action.selectAll': 'Select all',

    'mode.full': 'Full', 'mode.incremental': 'Incremental', 'mode.backupMode': 'Backup mode',

    'runs.title': 'Backup Runs', 'runs.allRuns': 'All Runs', 'runs.empty': 'No runs found.',

    'backups.title': 'Backups', 'backups.noBackups': 'No backups performed.', 'backups.noProfiles': 'No profiles found.',

    'storage.title': 'Storage Locations', 'storage.new': '+ New Location',
    'storage.empty': 'No storage locations configured. Create one to set up backup profiles.',
    'storage.newLocation': 'New Storage Location', 'storage.name': 'Name', 'storage.namePlaceholder': 'Main backup',
    'storage.directory': 'Directory', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'Storage location saved.', 'storage.deleted': 'Location removed.',
    'storage.confirmDelete': 'Delete this storage location?',

    'settings.title': 'Settings', 'settings.language': 'Language',
    'settings.languageDesc': 'Select the interface language', 'settings.auth': 'Access Control',
    'settings.authEnabled': 'Require username and password for access',
    'settings.username': 'Username', 'settings.password': 'Password (leave blank to keep current)',
    'settings.saveSettings': 'Save settings', 'settings.saved': 'Settings saved.',

    'about.title': 'About',
    'about.description': 'Web application for Docker volume backup and restore with support for incremental snapshots and selective restore.',
    'about.currentVersion': 'Current version', 'about.latestVersion': 'Latest version',
    'about.checking': 'Checking...', 'about.upToDate': 'Up to date',
    'about.updateAvailable': 'Update available', 'about.update': 'Update now',
    'about.updating': 'Updating...', 'about.changelog': 'Latest changes',
    'about.checkError': 'Could not check for latest version.',
    'about.updateSuccess': 'Update complete. Restarting...', 'about.updateError': 'Update failed.',

    'login.title': 'Restricted access', 'login.subtitle': 'Please log in to continue',
    'login.username': 'Username', 'login.password': 'Password', 'login.submit': 'Sign in',
    'login.error': 'Incorrect username or password.', 'login.logout': 'Log out',

    'progress.backup': 'Backup progress', 'progress.restore': 'Restore progress',
    'progress.containers': 'Containers', 'progress.completed': 'completed',
    'progress.remaining': 'Remaining', 'progress.current': 'Current container',
    'progress.files': 'Files', 'progress.detailedLog': 'Detailed log',
    'progress.events': 'event(s)', 'progress.noEvents': 'No detailed events yet.',
    'progress.step': 'Step', 'progress.waiting': 'Waiting for file processing...',

    'error.selectStorage': 'Select a storage location.',
    'error.noFullBackup': 'No full backup available. Run a full backup first.',
    'error.selectFullBackup': 'Select a full backup.',
    'error.selectFullBackupModal': 'Select base full backup',
    'error.selectFullBackupDesc': 'Select the full backup to use as base for the incremental backup:',
    'error.selectVolume': 'Select at least one volume.',
    'error.selectContainer': 'Select at least one container to restore.',

    'volume.title': 'Select volumes for backup', 'volume.confirm': 'Confirm selection',
    'restore.title': 'Select containers for restore', 'restore.confirm': 'Restore selected',
    'restore.confirmPrompt': 'Restore the selected backup for profile',
    'scope.volumes': 'volumes only', 'scope.container': 'entire container',
    'status.completed': 'Completed', 'status.partial': 'Partial', 'status.error': 'Error', 'status.running': 'Running',
  };

  const es = {
    'nav.dashboard': 'Panel de control', 'nav.storage': 'Ubicaciones de almacenamiento',
    'nav.profiles': 'Perfiles de copia de seguridad', 'nav.runs': 'Ejecuciones de copia',
    'nav.backups': 'Copias de seguridad', 'nav.settings': 'Configuración', 'nav.about': 'Acerca de',

    'dashboard.title': 'Panel de control', 'dashboard.totalContainers': 'Total de contenedores',
    'dashboard.activeConnections': 'Conexiones activas', 'dashboard.backupProfiles': 'Perfiles de copia',
    'dashboard.configuredProfiles': 'Perfiles configurados', 'dashboard.successful': 'Exitosas',
    'dashboard.totalSuccessful': 'Total exitosas', 'dashboard.failed': 'Fallidas',
    'dashboard.totalFailed': 'Total fallidas', 'dashboard.recentRuns': 'Ejecuciones recientes',
    'dashboard.createProfile': '+ Crear perfil',

    'table.id': 'ID', 'table.profile': 'Perfil', 'table.mode': 'Modo', 'table.status': 'Estado',
    'table.containers': 'Contenedores', 'table.files': 'Archivos', 'table.size': 'Tamaño',
    'table.started': 'Iniciado', 'table.duration': 'Duración', 'table.actions': 'Acciones',
    'table.date': 'Fecha', 'table.type': 'Tipo', 'table.directory': 'Directorio', 'table.name': 'Nombre',

    'profiles.title': 'Perfiles de copia de seguridad', 'profiles.create': '+ Crear perfil',
    'profiles.reload': 'Recargar', 'profiles.empty': 'No hay perfiles guardados.',
    'profiles.newProfile': 'Nuevo perfil', 'profiles.editProfile': 'Editar perfil',
    'profiles.name': 'Nombre del perfil', 'profiles.namePlaceholder': 'Copia de seguridad principal',
    'profiles.storageLocation': 'Ubicación de almacenamiento', 'profiles.storageLocationPlaceholder': 'Seleccione una ubicación...',
    'profiles.backupScope': 'Alcance de la copia', 'profiles.scopeVolumes': 'Solo volúmenes',
    'profiles.scopeVolumesDesc': 'realiza copia de seguridad de volúmenes y montajes',
    'profiles.scopeContainer': 'Contenedor completo', 'profiles.scopeContainerDesc': 'crea un único tar por contenedor desde /',
    'profiles.containers': 'Contenedores', 'profiles.refreshContainers': 'Actualizar lista',
    'profiles.save': 'Guardar perfil', 'profiles.cancel': 'Cancelar', 'profiles.saved': 'Perfil guardado.',
    'profiles.deleted': 'Perfil eliminado.', 'profiles.confirmDelete': 'Eliminar el perfil',

    'action.run': 'Ejecutar', 'action.running': 'Ejecutando...', 'action.edit': 'Editar', 'action.delete': 'Eliminar',
    'action.restore': 'Restaurar', 'action.restoring': 'Restaurando...', 'action.refresh': 'Actualizar',
    'action.save': 'Guardar', 'action.cancel': 'Cancelar', 'action.close': 'Cerrar',
    'action.confirm': 'Confirmar', 'action.selectAll': 'Seleccionar todo',

    'mode.full': 'Completo', 'mode.incremental': 'Incremental', 'mode.backupMode': 'Modo de copia',
    'runs.title': 'Ejecuciones de copia', 'runs.allRuns': 'Todas las ejecuciones', 'runs.empty': 'No se encontraron ejecuciones.',
    'backups.title': 'Copias de seguridad', 'backups.noBackups': 'No se han realizado copias.', 'backups.noProfiles': 'No se encontraron perfiles.',

    'storage.title': 'Ubicaciones de almacenamiento', 'storage.new': '+ Nueva ubicación',
    'storage.empty': 'No hay ubicaciones de almacenamiento. Cree una para configurar perfiles.',
    'storage.newLocation': 'Nueva ubicación de almacenamiento', 'storage.name': 'Nombre', 'storage.namePlaceholder': 'Copia principal',
    'storage.directory': 'Directorio', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'Ubicación guardada.', 'storage.deleted': 'Ubicación eliminada.',
    'storage.confirmDelete': '¿Eliminar esta ubicación de almacenamiento?',

    'settings.title': 'Configuración', 'settings.language': 'Idioma',
    'settings.languageDesc': 'Seleccione el idioma de la interfaz', 'settings.auth': 'Control de acceso',
    'settings.authEnabled': 'Requerir usuario y contraseña para acceder',
    'settings.username': 'Usuario', 'settings.password': 'Contraseña (dejar en blanco para no cambiar)',
    'settings.saveSettings': 'Guardar configuración', 'settings.saved': 'Configuración guardada.',

    'about.title': 'Acerca de',
    'about.description': 'Aplicación web para copia de seguridad y restauración de volúmenes Docker con soporte para snapshots incrementales y restauración selectiva.',
    'about.currentVersion': 'Versión actual', 'about.latestVersion': 'Última versión',
    'about.checking': 'Verificando...', 'about.upToDate': 'Actualizado',
    'about.updateAvailable': 'Actualización disponible', 'about.update': 'Actualizar ahora',
    'about.updating': 'Actualizando...', 'about.changelog': 'Últimos cambios',
    'about.checkError': 'No se pudo verificar la versión más reciente.',
    'about.updateSuccess': 'Actualización completa. Reiniciando...', 'about.updateError': 'Error en la actualización.',

    'login.title': 'Acceso restringido', 'login.subtitle': 'Inicie sesión para continuar',
    'login.username': 'Usuario', 'login.password': 'Contraseña', 'login.submit': 'Iniciar sesión',
    'login.error': 'Usuario o contraseña incorrectos.', 'login.logout': 'Cerrar sesión',

    'progress.backup': 'Progreso de la copia', 'progress.restore': 'Progreso de la restauración',
    'progress.containers': 'Contenedores', 'progress.completed': 'completado(s)',
    'progress.remaining': 'Restantes', 'progress.current': 'Contenedor actual',
    'progress.files': 'Archivos', 'progress.detailedLog': 'Registro detallado',
    'progress.events': 'evento(s)', 'progress.noEvents': 'No hay eventos detallados aún.',
    'progress.step': 'Paso', 'progress.waiting': 'Esperando el procesamiento de archivos...',

    'error.selectStorage': 'Seleccione una ubicación de almacenamiento.',
    'error.noFullBackup': 'No hay copia completa disponible. Ejecute una primero.',
    'error.selectFullBackup': 'Seleccione una copia completa.',
    'error.selectFullBackupModal': 'Seleccionar copia base', 'error.selectFullBackupDesc': 'Seleccione la copia completa que se usará como base:',
    'error.selectVolume': 'Seleccione al menos un volumen.', 'error.selectContainer': 'Seleccione al menos un contenedor.',
    'volume.title': 'Seleccionar volúmenes para copia', 'volume.confirm': 'Confirmar selección',
    'restore.title': 'Seleccionar contenedores para restaurar', 'restore.confirm': 'Restaurar seleccionados',
    'restore.confirmPrompt': 'Restaurar la copia seleccionada para el perfil',
    'scope.volumes': 'solo volúmenes', 'scope.container': 'contenedor completo',
    'status.completed': 'Completado', 'status.partial': 'Parcial', 'status.error': 'Error', 'status.running': 'Ejecutando',
  };

  const de = {
    'nav.dashboard': 'Dashboard', 'nav.storage': 'Speicherorte', 'nav.profiles': 'Backup-Profile',
    'nav.runs': 'Backup-Läufe', 'nav.backups': 'Sicherungen', 'nav.settings': 'Einstellungen', 'nav.about': 'Über die App',

    'dashboard.title': 'Dashboard', 'dashboard.totalContainers': 'Container gesamt',
    'dashboard.activeConnections': 'Aktive Verbindungen', 'dashboard.backupProfiles': 'Backup-Profile',
    'dashboard.configuredProfiles': 'Konfigurierte Profile', 'dashboard.successful': 'Erfolgreich',
    'dashboard.totalSuccessful': 'Gesamt erfolgreich', 'dashboard.failed': 'Fehlgeschlagen',
    'dashboard.totalFailed': 'Gesamt fehlgeschlagen', 'dashboard.recentRuns': 'Letzte Backup-Läufe',
    'dashboard.createProfile': '+ Profil erstellen',

    'table.id': 'ID', 'table.profile': 'Profil', 'table.mode': 'Modus', 'table.status': 'Status',
    'table.containers': 'Container', 'table.files': 'Dateien', 'table.size': 'Größe',
    'table.started': 'Gestartet', 'table.duration': 'Dauer', 'table.actions': 'Aktionen',
    'table.date': 'Datum', 'table.type': 'Typ', 'table.directory': 'Verzeichnis', 'table.name': 'Name',

    'profiles.title': 'Backup-Profile', 'profiles.create': '+ Profil erstellen', 'profiles.reload': 'Neu laden',
    'profiles.empty': 'Keine Profile gespeichert.', 'profiles.newProfile': 'Neues Profil', 'profiles.editProfile': 'Profil bearbeiten',
    'profiles.name': 'Profilname', 'profiles.namePlaceholder': 'Hauptdatenbank-Backup',
    'profiles.storageLocation': 'Speicherort', 'profiles.storageLocationPlaceholder': 'Speicherort auswählen...',
    'profiles.backupScope': 'Backup-Umfang', 'profiles.scopeVolumes': 'Nur Volumes',
    'profiles.scopeVolumesDesc': 'sichert Volumes und Bind-Mounts', 'profiles.scopeContainer': 'Gesamter Container',
    'profiles.scopeContainerDesc': 'erstellt ein einzelnes tar pro Container von /',
    'profiles.containers': 'Container', 'profiles.refreshContainers': 'Liste aktualisieren',
    'profiles.save': 'Profil speichern', 'profiles.cancel': 'Abbrechen', 'profiles.saved': 'Profil gespeichert.',
    'profiles.deleted': 'Profil entfernt.', 'profiles.confirmDelete': 'Profil löschen',

    'action.run': 'Ausführen', 'action.running': 'Wird ausgeführt...', 'action.edit': 'Bearbeiten', 'action.delete': 'Löschen',
    'action.restore': 'Wiederherstellen', 'action.restoring': 'Wird wiederhergestellt...', 'action.refresh': 'Aktualisieren',
    'action.save': 'Speichern', 'action.cancel': 'Abbrechen', 'action.close': 'Schließen',
    'action.confirm': 'Bestätigen', 'action.selectAll': 'Alle auswählen',

    'mode.full': 'Vollständig', 'mode.incremental': 'Inkrementell', 'mode.backupMode': 'Backup-Modus',
    'runs.title': 'Backup-Läufe', 'runs.allRuns': 'Alle Läufe', 'runs.empty': 'Keine Läufe gefunden.',
    'backups.title': 'Sicherungen', 'backups.noBackups': 'Keine Sicherungen durchgeführt.', 'backups.noProfiles': 'Keine Profile gefunden.',

    'storage.title': 'Speicherorte', 'storage.new': '+ Neuer Speicherort',
    'storage.empty': 'Keine Speicherorte konfiguriert. Erstellen Sie einen, um Backup-Profile einzurichten.',
    'storage.newLocation': 'Neuer Speicherort', 'storage.name': 'Name', 'storage.namePlaceholder': 'Haupt-Backup',
    'storage.directory': 'Verzeichnis', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'Speicherort gespeichert.', 'storage.deleted': 'Speicherort entfernt.',
    'storage.confirmDelete': 'Diesen Speicherort löschen?',

    'settings.title': 'Einstellungen', 'settings.language': 'Sprache',
    'settings.languageDesc': 'Wählen Sie die Sprache der Benutzeroberfläche', 'settings.auth': 'Zugangskontrolle',
    'settings.authEnabled': 'Benutzername und Passwort erforderlich',
    'settings.username': 'Benutzername', 'settings.password': 'Passwort (leer lassen, um nicht zu ändern)',
    'settings.saveSettings': 'Einstellungen speichern', 'settings.saved': 'Einstellungen gespeichert.',

    'about.title': 'Über die App',
    'about.description': 'Webanwendung für Docker-Volume-Backup und -Wiederherstellung mit Unterstützung für inkrementelle Snapshots.',
    'about.currentVersion': 'Aktuelle Version', 'about.latestVersion': 'Neueste Version',
    'about.checking': 'Wird überprüft...', 'about.upToDate': 'Aktuell',
    'about.updateAvailable': 'Update verfügbar', 'about.update': 'Jetzt aktualisieren',
    'about.updating': 'Wird aktualisiert...', 'about.changelog': 'Letzte Änderungen',
    'about.checkError': 'Version konnte nicht überprüft werden.',
    'about.updateSuccess': 'Update abgeschlossen. Neustart...', 'about.updateError': 'Update fehlgeschlagen.',

    'login.title': 'Zugang eingeschränkt', 'login.subtitle': 'Bitte melden Sie sich an',
    'login.username': 'Benutzername', 'login.password': 'Passwort', 'login.submit': 'Anmelden',
    'login.error': 'Falscher Benutzername oder Passwort.', 'login.logout': 'Abmelden',

    'progress.backup': 'Backup-Fortschritt', 'progress.restore': 'Wiederherstellungs-Fortschritt',
    'progress.containers': 'Container', 'progress.completed': 'abgeschlossen',
    'progress.remaining': 'Verbleibend', 'progress.current': 'Aktueller Container',
    'progress.files': 'Dateien', 'progress.detailedLog': 'Detailliertes Protokoll',
    'progress.events': 'Ereignis(se)', 'progress.noEvents': 'Noch keine detaillierten Ereignisse.',
    'progress.step': 'Schritt', 'progress.waiting': 'Warte auf Dateiverarbeitung...',

    'error.selectStorage': 'Wählen Sie einen Speicherort.',
    'error.noFullBackup': 'Kein vollständiges Backup verfügbar. Führen Sie zuerst ein vollständiges Backup durch.',
    'error.selectFullBackup': 'Wählen Sie ein vollständiges Backup.',
    'error.selectFullBackupModal': 'Vollständiges Basis-Backup auswählen',
    'error.selectFullBackupDesc': 'Wählen Sie das vollständige Backup als Basis für das inkrementelle Backup:',
    'error.selectVolume': 'Wählen Sie mindestens ein Volume.', 'error.selectContainer': 'Wählen Sie mindestens einen Container.',
    'volume.title': 'Volumes für Backup auswählen', 'volume.confirm': 'Auswahl bestätigen',
    'restore.title': 'Container zum Wiederherstellen auswählen', 'restore.confirm': 'Ausgewählte wiederherstellen',
    'restore.confirmPrompt': 'Das ausgewählte Backup für das Profil wiederherstellen',
    'scope.volumes': 'nur Volumes', 'scope.container': 'gesamter Container',
    'status.completed': 'Abgeschlossen', 'status.partial': 'Teilweise', 'status.error': 'Fehler', 'status.running': 'Läuft',
  };

  const pl = {
    'nav.dashboard': 'Panel główny', 'nav.storage': 'Lokalizacje przechowywania',
    'nav.profiles': 'Profile kopii zapasowych', 'nav.runs': 'Uruchomienia kopii',
    'nav.backups': 'Kopie zapasowe', 'nav.settings': 'Ustawienia', 'nav.about': 'O aplikacji',

    'dashboard.title': 'Panel główny', 'dashboard.totalContainers': 'Łączna liczba kontenerów',
    'dashboard.activeConnections': 'Aktywne połączenia', 'dashboard.backupProfiles': 'Profile kopii zapasowych',
    'dashboard.configuredProfiles': 'Skonfigurowane profile', 'dashboard.successful': 'Udane',
    'dashboard.totalSuccessful': 'Łącznie udanych', 'dashboard.failed': 'Nieudane',
    'dashboard.totalFailed': 'Łącznie nieudanych', 'dashboard.recentRuns': 'Ostatnie uruchomienia',
    'dashboard.createProfile': '+ Utwórz profil',

    'table.id': 'ID', 'table.profile': 'Profil', 'table.mode': 'Tryb', 'table.status': 'Status',
    'table.containers': 'Kontenery', 'table.files': 'Pliki', 'table.size': 'Rozmiar',
    'table.started': 'Rozpoczęto', 'table.duration': 'Czas trwania', 'table.actions': 'Akcje',
    'table.date': 'Data', 'table.type': 'Typ', 'table.directory': 'Katalog', 'table.name': 'Nazwa',

    'profiles.title': 'Profile kopii zapasowych', 'profiles.create': '+ Utwórz profil', 'profiles.reload': 'Odśwież',
    'profiles.empty': 'Brak zapisanych profili.', 'profiles.newProfile': 'Nowy profil', 'profiles.editProfile': 'Edytuj profil',
    'profiles.name': 'Nazwa profilu', 'profiles.namePlaceholder': 'Kopia głównej bazy danych',
    'profiles.storageLocation': 'Lokalizacja przechowywania', 'profiles.storageLocationPlaceholder': 'Wybierz lokalizację...',
    'profiles.backupScope': 'Zakres kopii zapasowej', 'profiles.scopeVolumes': 'Tylko woluminy',
    'profiles.scopeVolumesDesc': 'tworzy kopie woluminów i montowań', 'profiles.scopeContainer': 'Cały kontener',
    'profiles.scopeContainerDesc': 'tworzy jeden plik tar na kontener od /',
    'profiles.containers': 'Kontenery', 'profiles.refreshContainers': 'Odśwież listę',
    'profiles.save': 'Zapisz profil', 'profiles.cancel': 'Anuluj', 'profiles.saved': 'Profil zapisany.',
    'profiles.deleted': 'Profil usunięty.', 'profiles.confirmDelete': 'Usuń profil',

    'action.run': 'Uruchom', 'action.running': 'Uruchamianie...', 'action.edit': 'Edytuj', 'action.delete': 'Usuń',
    'action.restore': 'Przywróć', 'action.restoring': 'Przywracanie...', 'action.refresh': 'Odśwież',
    'action.save': 'Zapisz', 'action.cancel': 'Anuluj', 'action.close': 'Zamknij',
    'action.confirm': 'Potwierdź', 'action.selectAll': 'Zaznacz wszystko',

    'mode.full': 'Pełna', 'mode.incremental': 'Przyrostowa', 'mode.backupMode': 'Tryb kopii zapasowej',
    'runs.title': 'Uruchomienia kopii', 'runs.allRuns': 'Wszystkie uruchomienia', 'runs.empty': 'Nie znaleziono uruchomień.',
    'backups.title': 'Kopie zapasowe', 'backups.noBackups': 'Nie wykonano żadnych kopii.', 'backups.noProfiles': 'Nie znaleziono profili.',

    'storage.title': 'Lokalizacje przechowywania', 'storage.new': '+ Nowa lokalizacja',
    'storage.empty': 'Nie skonfigurowano lokalizacji przechowywania. Utwórz jedną, aby skonfigurować profile.',
    'storage.newLocation': 'Nowa lokalizacja przechowywania', 'storage.name': 'Nazwa', 'storage.namePlaceholder': 'Główna kopia',
    'storage.directory': 'Katalog', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'Lokalizacja zapisana.', 'storage.deleted': 'Lokalizacja usunięta.',
    'storage.confirmDelete': 'Usunąć tę lokalizację przechowywania?',

    'settings.title': 'Ustawienia', 'settings.language': 'Język',
    'settings.languageDesc': 'Wybierz język interfejsu', 'settings.auth': 'Kontrola dostępu',
    'settings.authEnabled': 'Wymagaj nazwy użytkownika i hasła',
    'settings.username': 'Użytkownik', 'settings.password': 'Hasło (zostaw puste, aby nie zmieniać)',
    'settings.saveSettings': 'Zapisz ustawienia', 'settings.saved': 'Ustawienia zapisane.',

    'about.title': 'O aplikacji',
    'about.description': 'Aplikacja internetowa do tworzenia kopii zapasowych i przywracania woluminów Docker z obsługą migawek przyrostowych.',
    'about.currentVersion': 'Bieżąca wersja', 'about.latestVersion': 'Najnowsza wersja',
    'about.checking': 'Sprawdzanie...', 'about.upToDate': 'Aktualna',
    'about.updateAvailable': 'Dostępna aktualizacja', 'about.update': 'Aktualizuj teraz',
    'about.updating': 'Aktualizowanie...', 'about.changelog': 'Ostatnie zmiany',
    'about.checkError': 'Nie można sprawdzić najnowszej wersji.',
    'about.updateSuccess': 'Aktualizacja zakończona. Restartuję...', 'about.updateError': 'Aktualizacja nie powiodła się.',

    'login.title': 'Dostęp ograniczony', 'login.subtitle': 'Zaloguj się, aby kontynuować',
    'login.username': 'Użytkownik', 'login.password': 'Hasło', 'login.submit': 'Zaloguj się',
    'login.error': 'Nieprawidłowy użytkownik lub hasło.', 'login.logout': 'Wyloguj się',

    'progress.backup': 'Postęp kopii zapasowej', 'progress.restore': 'Postęp przywracania',
    'progress.containers': 'Kontenery', 'progress.completed': 'ukończono',
    'progress.remaining': 'Pozostało', 'progress.current': 'Bieżący kontener',
    'progress.files': 'Pliki', 'progress.detailedLog': 'Szczegółowy dziennik',
    'progress.events': 'zdarzenie(a)', 'progress.noEvents': 'Brak szczegółowych zdarzeń.',
    'progress.step': 'Krok', 'progress.waiting': 'Oczekiwanie na przetwarzanie pliku...',

    'error.selectStorage': 'Wybierz lokalizację przechowywania.',
    'error.noFullBackup': 'Brak pełnej kopii zapasowej. Najpierw wykonaj pełną kopię.',
    'error.selectFullBackup': 'Wybierz pełną kopię zapasową.',
    'error.selectFullBackupModal': 'Wybierz bazową pełną kopię',
    'error.selectFullBackupDesc': 'Wybierz pełną kopię jako bazę dla przyrostowej kopii:',
    'error.selectVolume': 'Wybierz co najmniej jeden wolumen.', 'error.selectContainer': 'Wybierz co najmniej jeden kontener.',
    'volume.title': 'Wybierz woluminy do kopii', 'volume.confirm': 'Potwierdź wybór',
    'restore.title': 'Wybierz kontenery do przywrócenia', 'restore.confirm': 'Przywróć wybrane',
    'restore.confirmPrompt': 'Przywróć wybraną kopię dla profilu',
    'scope.volumes': 'tylko woluminy', 'scope.container': 'cały kontener',
    'status.completed': 'Zakończono', 'status.partial': 'Częściowe', 'status.error': 'Błąd', 'status.running': 'Uruchomione',
  };

  const it = {
    'nav.dashboard': 'Dashboard', 'nav.storage': 'Percorsi di archiviazione',
    'nav.profiles': 'Profili di backup', 'nav.runs': 'Esecuzioni backup',
    'nav.backups': 'Backup', 'nav.settings': 'Impostazioni', 'nav.about': 'Informazioni',

    'dashboard.title': 'Dashboard', 'dashboard.totalContainers': 'Container totali',
    'dashboard.activeConnections': 'Connessioni attive', 'dashboard.backupProfiles': 'Profili di backup',
    'dashboard.configuredProfiles': 'Profili configurati', 'dashboard.successful': 'Riusciti',
    'dashboard.totalSuccessful': 'Totale riusciti', 'dashboard.failed': 'Falliti',
    'dashboard.totalFailed': 'Totale falliti', 'dashboard.recentRuns': 'Esecuzioni recenti',
    'dashboard.createProfile': '+ Crea profilo',

    'table.id': 'ID', 'table.profile': 'Profilo', 'table.mode': 'Modalità', 'table.status': 'Stato',
    'table.containers': 'Container', 'table.files': 'File', 'table.size': 'Dimensione',
    'table.started': 'Avviato', 'table.duration': 'Durata', 'table.actions': 'Azioni',
    'table.date': 'Data', 'table.type': 'Tipo', 'table.directory': 'Directory', 'table.name': 'Nome',

    'profiles.title': 'Profili di backup', 'profiles.create': '+ Crea profilo', 'profiles.reload': 'Ricarica',
    'profiles.empty': 'Nessun profilo salvato.', 'profiles.newProfile': 'Nuovo profilo', 'profiles.editProfile': 'Modifica profilo',
    'profiles.name': 'Nome del profilo', 'profiles.namePlaceholder': 'Backup database principale',
    'profiles.storageLocation': 'Percorso di archiviazione', 'profiles.storageLocationPlaceholder': 'Seleziona un percorso...',
    'profiles.backupScope': 'Ambito del backup', 'profiles.scopeVolumes': 'Solo volumi',
    'profiles.scopeVolumesDesc': 'esegue il backup di volumi e mount bind', 'profiles.scopeContainer': 'Container completo',
    'profiles.scopeContainerDesc': 'crea un singolo tar per container da /',
    'profiles.containers': 'Container', 'profiles.refreshContainers': 'Aggiorna lista',
    'profiles.save': 'Salva profilo', 'profiles.cancel': 'Annulla', 'profiles.saved': 'Profilo salvato.',
    'profiles.deleted': 'Profilo rimosso.', 'profiles.confirmDelete': 'Elimina il profilo',

    'action.run': 'Esegui', 'action.running': 'In esecuzione...', 'action.edit': 'Modifica', 'action.delete': 'Elimina',
    'action.restore': 'Ripristina', 'action.restoring': 'Ripristino...', 'action.refresh': 'Aggiorna',
    'action.save': 'Salva', 'action.cancel': 'Annulla', 'action.close': 'Chiudi',
    'action.confirm': 'Conferma', 'action.selectAll': 'Seleziona tutto',

    'mode.full': 'Completo', 'mode.incremental': 'Incrementale', 'mode.backupMode': 'Modalità backup',
    'runs.title': 'Esecuzioni backup', 'runs.allRuns': 'Tutte le esecuzioni', 'runs.empty': 'Nessuna esecuzione trovata.',
    'backups.title': 'Backup', 'backups.noBackups': 'Nessun backup eseguito.', 'backups.noProfiles': 'Nessun profilo trovato.',

    'storage.title': 'Percorsi di archiviazione', 'storage.new': '+ Nuovo percorso',
    'storage.empty': 'Nessun percorso di archiviazione configurato. Creane uno per configurare i profili.',
    'storage.newLocation': 'Nuovo percorso di archiviazione', 'storage.name': 'Nome', 'storage.namePlaceholder': 'Backup principale',
    'storage.directory': 'Directory', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'Percorso salvato.', 'storage.deleted': 'Percorso rimosso.',
    'storage.confirmDelete': 'Eliminare questo percorso di archiviazione?',

    'settings.title': 'Impostazioni', 'settings.language': 'Lingua',
    'settings.languageDesc': "Seleziona la lingua dell'interfaccia", 'settings.auth': 'Controllo accessi',
    'settings.authEnabled': 'Richiedi nome utente e password per accedere',
    'settings.username': 'Utente', 'settings.password': 'Password (lascia vuoto per non modificare)',
    'settings.saveSettings': 'Salva impostazioni', 'settings.saved': 'Impostazioni salvate.',

    'about.title': 'Informazioni',
    'about.description': "Applicazione web per il backup e il ripristino di volumi Docker con supporto per snapshot incrementali e ripristino selettivo.",
    'about.currentVersion': 'Versione corrente', 'about.latestVersion': 'Ultima versione',
    'about.checking': 'Verifica in corso...', 'about.upToDate': 'Aggiornato',
    'about.updateAvailable': 'Aggiornamento disponibile', 'about.update': 'Aggiorna ora',
    'about.updating': 'Aggiornamento...', 'about.changelog': 'Ultime modifiche',
    'about.checkError': 'Impossibile verificare la versione più recente.',
    'about.updateSuccess': 'Aggiornamento completato. Riavvio...', 'about.updateError': "Aggiornamento non riuscito.",

    'login.title': 'Accesso limitato', 'login.subtitle': 'Effettua il login per continuare',
    'login.username': 'Utente', 'login.password': 'Password', 'login.submit': 'Accedi',
    'login.error': 'Nome utente o password errati.', 'login.logout': 'Disconnetti',

    'progress.backup': 'Avanzamento backup', 'progress.restore': 'Avanzamento ripristino',
    'progress.containers': 'Container', 'progress.completed': 'completato/i',
    'progress.remaining': 'Rimanenti', 'progress.current': 'Container corrente',
    'progress.files': 'File', 'progress.detailedLog': 'Log dettagliato',
    'progress.events': 'evento/i', 'progress.noEvents': 'Nessun evento dettagliato ancora.',
    'progress.step': 'Fase', 'progress.waiting': 'In attesa di elaborazione file...',

    'error.selectStorage': 'Seleziona un percorso di archiviazione.',
    'error.noFullBackup': 'Nessun backup completo disponibile. Esegui prima un backup completo.',
    'error.selectFullBackup': 'Seleziona un backup completo.',
    'error.selectFullBackupModal': 'Seleziona backup completo base',
    'error.selectFullBackupDesc': 'Seleziona il backup completo da usare come base per il backup incrementale:',
    'error.selectVolume': 'Seleziona almeno un volume.', 'error.selectContainer': 'Seleziona almeno un container.',
    'volume.title': 'Seleziona volumi per il backup', 'volume.confirm': 'Conferma selezione',
    'restore.title': 'Seleziona container per il ripristino', 'restore.confirm': 'Ripristina selezionati',
    'restore.confirmPrompt': 'Ripristina il backup selezionato per il profilo',
    'scope.volumes': 'solo volumi', 'scope.container': 'container completo',
    'status.completed': 'Completato', 'status.partial': 'Parziale', 'status.error': 'Errore', 'status.running': 'In esecuzione',
  };

  const ru = {
    'nav.dashboard': 'Панель управления', 'nav.storage': 'Места хранения',
    'nav.profiles': 'Профили резервного копирования', 'nav.runs': 'Запуски резервного копирования',
    'nav.backups': 'Резервные копии', 'nav.settings': 'Настройки', 'nav.about': 'О приложении',

    'dashboard.title': 'Панель управления', 'dashboard.totalContainers': 'Всего контейнеров',
    'dashboard.activeConnections': 'Активные подключения', 'dashboard.backupProfiles': 'Профили резервного копирования',
    'dashboard.configuredProfiles': 'Настроенные профили', 'dashboard.successful': 'Успешные',
    'dashboard.totalSuccessful': 'Всего успешных', 'dashboard.failed': 'Неудачные',
    'dashboard.totalFailed': 'Всего неудачных', 'dashboard.recentRuns': 'Последние запуски',
    'dashboard.createProfile': '+ Создать профиль',

    'table.id': 'ID', 'table.profile': 'Профиль', 'table.mode': 'Режим', 'table.status': 'Статус',
    'table.containers': 'Контейнеры', 'table.files': 'Файлы', 'table.size': 'Размер',
    'table.started': 'Начато', 'table.duration': 'Продолжительность', 'table.actions': 'Действия',
    'table.date': 'Дата', 'table.type': 'Тип', 'table.directory': 'Директория', 'table.name': 'Название',

    'profiles.title': 'Профили резервного копирования', 'profiles.create': '+ Создать профиль', 'profiles.reload': 'Обновить',
    'profiles.empty': 'Нет сохранённых профилей.', 'profiles.newProfile': 'Новый профиль', 'profiles.editProfile': 'Редактировать профиль',
    'profiles.name': 'Название профиля', 'profiles.namePlaceholder': 'Резервная копия основной БД',
    'profiles.storageLocation': 'Место хранения', 'profiles.storageLocationPlaceholder': 'Выберите место...',
    'profiles.backupScope': 'Область резервного копирования', 'profiles.scopeVolumes': 'Только тома',
    'profiles.scopeVolumesDesc': 'создаёт резервные копии томов и точек монтирования', 'profiles.scopeContainer': 'Весь контейнер',
    'profiles.scopeContainerDesc': 'создаёт один tar на контейнер начиная с /',
    'profiles.containers': 'Контейнеры', 'profiles.refreshContainers': 'Обновить список',
    'profiles.save': 'Сохранить профиль', 'profiles.cancel': 'Отмена', 'profiles.saved': 'Профиль сохранён.',
    'profiles.deleted': 'Профиль удалён.', 'profiles.confirmDelete': 'Удалить профиль',

    'action.run': 'Запустить', 'action.running': 'Выполняется...', 'action.edit': 'Редактировать', 'action.delete': 'Удалить',
    'action.restore': 'Восстановить', 'action.restoring': 'Восстановление...', 'action.refresh': 'Обновить',
    'action.save': 'Сохранить', 'action.cancel': 'Отмена', 'action.close': 'Закрыть',
    'action.confirm': 'Подтвердить', 'action.selectAll': 'Выбрать все',

    'mode.full': 'Полный', 'mode.incremental': 'Инкрементальный', 'mode.backupMode': 'Режим резервного копирования',
    'runs.title': 'Запуски резервного копирования', 'runs.allRuns': 'Все запуски', 'runs.empty': 'Запусков не найдено.',
    'backups.title': 'Резервные копии', 'backups.noBackups': 'Резервные копии не созданы.', 'backups.noProfiles': 'Профили не найдены.',

    'storage.title': 'Места хранения', 'storage.new': '+ Новое место',
    'storage.empty': 'Места хранения не настроены. Создайте одно для настройки профилей.',
    'storage.newLocation': 'Новое место хранения', 'storage.name': 'Название', 'storage.namePlaceholder': 'Основная копия',
    'storage.directory': 'Директория', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'Место хранения сохранено.', 'storage.deleted': 'Место хранения удалено.',
    'storage.confirmDelete': 'Удалить это место хранения?',

    'settings.title': 'Настройки', 'settings.language': 'Язык',
    'settings.languageDesc': 'Выберите язык интерфейса', 'settings.auth': 'Контроль доступа',
    'settings.authEnabled': 'Требовать имя пользователя и пароль для входа',
    'settings.username': 'Пользователь', 'settings.password': 'Пароль (оставьте пустым, чтобы не менять)',
    'settings.saveSettings': 'Сохранить настройки', 'settings.saved': 'Настройки сохранены.',

    'about.title': 'О приложении',
    'about.description': 'Веб-приложение для резервного копирования и восстановления томов Docker с поддержкой инкрементальных снапшотов и выборочного восстановления.',
    'about.currentVersion': 'Текущая версия', 'about.latestVersion': 'Последняя версия',
    'about.checking': 'Проверка...', 'about.upToDate': 'Актуальная',
    'about.updateAvailable': 'Доступно обновление', 'about.update': 'Обновить сейчас',
    'about.updating': 'Обновление...', 'about.changelog': 'Последние изменения',
    'about.checkError': 'Не удалось проверить последнюю версию.',
    'about.updateSuccess': 'Обновление завершено. Перезапуск...', 'about.updateError': 'Обновление не удалось.',

    'login.title': 'Доступ ограничен', 'login.subtitle': 'Войдите, чтобы продолжить',
    'login.username': 'Пользователь', 'login.password': 'Пароль', 'login.submit': 'Войти',
    'login.error': 'Неверное имя пользователя или пароль.', 'login.logout': 'Выйти',

    'progress.backup': 'Ход резервного копирования', 'progress.restore': 'Ход восстановления',
    'progress.containers': 'Контейнеры', 'progress.completed': 'завершено',
    'progress.remaining': 'Осталось', 'progress.current': 'Текущий контейнер',
    'progress.files': 'Файлы', 'progress.detailedLog': 'Подробный журнал',
    'progress.events': 'событий', 'progress.noEvents': 'Подробных событий пока нет.',
    'progress.step': 'Шаг', 'progress.waiting': 'Ожидание обработки файла...',

    'error.selectStorage': 'Выберите место хранения.',
    'error.noFullBackup': 'Нет полной резервной копии. Сначала выполните полное резервное копирование.',
    'error.selectFullBackup': 'Выберите полную резервную копию.',
    'error.selectFullBackupModal': 'Выбор базовой полной копии',
    'error.selectFullBackupDesc': 'Выберите полную резервную копию для использования в качестве базы:',
    'error.selectVolume': 'Выберите хотя бы один том.', 'error.selectContainer': 'Выберите хотя бы один контейнер.',
    'volume.title': 'Выбор томов для резервного копирования', 'volume.confirm': 'Подтвердить выбор',
    'restore.title': 'Выбор контейнеров для восстановления', 'restore.confirm': 'Восстановить выбранные',
    'restore.confirmPrompt': 'Восстановить выбранную копию для профиля',
    'scope.volumes': 'только тома', 'scope.container': 'весь контейнер',
    'status.completed': 'Завершено', 'status.partial': 'Частично', 'status.error': 'Ошибка', 'status.running': 'Выполняется',
  };

  const zh = {
    'nav.dashboard': '仪表盘', 'nav.storage': '存储位置', 'nav.profiles': '备份配置',
    'nav.runs': '备份运行', 'nav.backups': '备份记录', 'nav.settings': '设置', 'nav.about': '关于',

    'dashboard.title': '仪表盘', 'dashboard.totalContainers': '容器总数',
    'dashboard.activeConnections': '活动连接', 'dashboard.backupProfiles': '备份配置',
    'dashboard.configuredProfiles': '已配置的配置文件', 'dashboard.successful': '成功',
    'dashboard.totalSuccessful': '总成功数', 'dashboard.failed': '失败',
    'dashboard.totalFailed': '总失败数', 'dashboard.recentRuns': '最近的备份运行',
    'dashboard.createProfile': '+ 创建配置',

    'table.id': 'ID', 'table.profile': '配置', 'table.mode': '模式', 'table.status': '状态',
    'table.containers': '容器', 'table.files': '文件', 'table.size': '大小',
    'table.started': '开始时间', 'table.duration': '持续时间', 'table.actions': '操作',
    'table.date': '日期', 'table.type': '类型', 'table.directory': '目录', 'table.name': '名称',

    'profiles.title': '备份配置', 'profiles.create': '+ 创建配置', 'profiles.reload': '刷新',
    'profiles.empty': '没有保存的配置。', 'profiles.newProfile': '新建配置', 'profiles.editProfile': '编辑配置',
    'profiles.name': '配置名称', 'profiles.namePlaceholder': '主数据库备份',
    'profiles.storageLocation': '存储位置', 'profiles.storageLocationPlaceholder': '选择一个位置...',
    'profiles.backupScope': '备份范围', 'profiles.scopeVolumes': '仅卷',
    'profiles.scopeVolumesDesc': '备份卷和绑定挂载', 'profiles.scopeContainer': '整个容器',
    'profiles.scopeContainerDesc': '为每个容器从/创建单个tar文件',
    'profiles.containers': '容器', 'profiles.refreshContainers': '刷新列表',
    'profiles.save': '保存配置', 'profiles.cancel': '取消', 'profiles.saved': '配置已保存。',
    'profiles.deleted': '配置已删除。', 'profiles.confirmDelete': '删除配置',

    'action.run': '运行', 'action.running': '运行中...', 'action.edit': '编辑', 'action.delete': '删除',
    'action.restore': '恢复', 'action.restoring': '恢复中...', 'action.refresh': '刷新',
    'action.save': '保存', 'action.cancel': '取消', 'action.close': '关闭',
    'action.confirm': '确认', 'action.selectAll': '全选',

    'mode.full': '完整', 'mode.incremental': '增量', 'mode.backupMode': '备份模式',
    'runs.title': '备份运行', 'runs.allRuns': '所有运行', 'runs.empty': '未找到运行记录。',
    'backups.title': '备份记录', 'backups.noBackups': '没有执行过备份。', 'backups.noProfiles': '未找到配置。',

    'storage.title': '存储位置', 'storage.new': '+ 新建位置',
    'storage.empty': '没有配置存储位置。创建一个以设置备份配置。',
    'storage.newLocation': '新建存储位置', 'storage.name': '名称', 'storage.namePlaceholder': '主备份',
    'storage.directory': '目录', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': '存储位置已保存。', 'storage.deleted': '位置已删除。',
    'storage.confirmDelete': '删除此存储位置？',

    'settings.title': '设置', 'settings.language': '语言',
    'settings.languageDesc': '选择界面语言', 'settings.auth': '访问控制',
    'settings.authEnabled': '访问需要用户名和密码',
    'settings.username': '用户名', 'settings.password': '密码（留空表示不修改）',
    'settings.saveSettings': '保存设置', 'settings.saved': '设置已保存。',

    'about.title': '关于',
    'about.description': '用于Docker卷备份和恢复的Web应用程序，支持增量快照和选择性恢复。',
    'about.currentVersion': '当前版本', 'about.latestVersion': '最新版本',
    'about.checking': '检查中...', 'about.upToDate': '已是最新',
    'about.updateAvailable': '有可用更新', 'about.update': '立即更新',
    'about.updating': '更新中...', 'about.changelog': '最新更改',
    'about.checkError': '无法检查最新版本。',
    'about.updateSuccess': '更新完成。重启中...', 'about.updateError': '更新失败。',

    'login.title': '访问受限', 'login.subtitle': '请登录以继续',
    'login.username': '用户名', 'login.password': '密码', 'login.submit': '登录',
    'login.error': '用户名或密码错误。', 'login.logout': '退出',

    'progress.backup': '备份进度', 'progress.restore': '恢复进度',
    'progress.containers': '容器', 'progress.completed': '已完成',
    'progress.remaining': '剩余', 'progress.current': '当前容器',
    'progress.files': '文件', 'progress.detailedLog': '详细日志',
    'progress.events': '个事件', 'progress.noEvents': '暂无详细事件。',
    'progress.step': '步骤', 'progress.waiting': '等待文件处理...',

    'error.selectStorage': '请选择存储位置。',
    'error.noFullBackup': '没有可用的完整备份。请先执行完整备份。',
    'error.selectFullBackup': '请选择完整备份。',
    'error.selectFullBackupModal': '选择基础完整备份',
    'error.selectFullBackupDesc': '选择用作增量备份基础的完整备份：',
    'error.selectVolume': '请至少选择一个卷。', 'error.selectContainer': '请至少选择一个容器。',
    'volume.title': '选择备份卷', 'volume.confirm': '确认选择',
    'restore.title': '选择要恢复的容器', 'restore.confirm': '恢复所选',
    'restore.confirmPrompt': '恢复所选备份到配置',
    'scope.volumes': '仅卷', 'scope.container': '整个容器',
    'status.completed': '已完成', 'status.partial': '部分完成', 'status.error': '错误', 'status.running': '运行中',
  };

  const ja = {
    'nav.dashboard': 'ダッシュボード', 'nav.storage': 'ストレージの場所',
    'nav.profiles': 'バックアッププロファイル', 'nav.runs': 'バックアップ実行',
    'nav.backups': 'バックアップ', 'nav.settings': '設定', 'nav.about': 'アプリについて',

    'dashboard.title': 'ダッシュボード', 'dashboard.totalContainers': 'コンテナ合計',
    'dashboard.activeConnections': 'アクティブな接続', 'dashboard.backupProfiles': 'バックアッププロファイル',
    'dashboard.configuredProfiles': '設定済みプロファイル', 'dashboard.successful': '成功',
    'dashboard.totalSuccessful': '合計成功数', 'dashboard.failed': '失敗',
    'dashboard.totalFailed': '合計失敗数', 'dashboard.recentRuns': '最近のバックアップ実行',
    'dashboard.createProfile': '+ プロファイル作成',

    'table.id': 'ID', 'table.profile': 'プロファイル', 'table.mode': 'モード', 'table.status': 'ステータス',
    'table.containers': 'コンテナ', 'table.files': 'ファイル', 'table.size': 'サイズ',
    'table.started': '開始', 'table.duration': '所要時間', 'table.actions': '操作',
    'table.date': '日付', 'table.type': '種類', 'table.directory': 'ディレクトリ', 'table.name': '名前',

    'profiles.title': 'バックアッププロファイル', 'profiles.create': '+ プロファイル作成', 'profiles.reload': '更新',
    'profiles.empty': '保存されたプロファイルがありません。', 'profiles.newProfile': '新しいプロファイル', 'profiles.editProfile': 'プロファイルを編集',
    'profiles.name': 'プロファイル名', 'profiles.namePlaceholder': 'メインデータベースバックアップ',
    'profiles.storageLocation': 'ストレージの場所', 'profiles.storageLocationPlaceholder': '場所を選択...',
    'profiles.backupScope': 'バックアップ範囲', 'profiles.scopeVolumes': 'ボリュームのみ',
    'profiles.scopeVolumesDesc': 'ボリュームとバインドマウントをバックアップ', 'profiles.scopeContainer': 'コンテナ全体',
    'profiles.scopeContainerDesc': '各コンテナの/からtarを作成',
    'profiles.containers': 'コンテナ', 'profiles.refreshContainers': 'リストを更新',
    'profiles.save': 'プロファイルを保存', 'profiles.cancel': 'キャンセル', 'profiles.saved': 'プロファイルが保存されました。',
    'profiles.deleted': 'プロファイルが削除されました。', 'profiles.confirmDelete': 'プロファイルを削除',

    'action.run': '実行', 'action.running': '実行中...', 'action.edit': '編集', 'action.delete': '削除',
    'action.restore': '復元', 'action.restoring': '復元中...', 'action.refresh': '更新',
    'action.save': '保存', 'action.cancel': 'キャンセル', 'action.close': '閉じる',
    'action.confirm': '確認', 'action.selectAll': 'すべて選択',

    'mode.full': '完全', 'mode.incremental': '増分', 'mode.backupMode': 'バックアップモード',
    'runs.title': 'バックアップ実行', 'runs.allRuns': 'すべての実行', 'runs.empty': '実行が見つかりません。',
    'backups.title': 'バックアップ', 'backups.noBackups': 'バックアップは実行されていません。', 'backups.noProfiles': 'プロファイルが見つかりません。',

    'storage.title': 'ストレージの場所', 'storage.new': '+ 新しい場所',
    'storage.empty': 'ストレージの場所が設定されていません。バックアッププロファイルを設定するために作成してください。',
    'storage.newLocation': '新しいストレージの場所', 'storage.name': '名前', 'storage.namePlaceholder': 'メインバックアップ',
    'storage.directory': 'ディレクトリ', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'ストレージの場所が保存されました。', 'storage.deleted': '場所が削除されました。',
    'storage.confirmDelete': 'このストレージの場所を削除しますか？',

    'settings.title': '設定', 'settings.language': '言語',
    'settings.languageDesc': 'インターフェースの言語を選択', 'settings.auth': 'アクセス制御',
    'settings.authEnabled': 'アクセスにユーザー名とパスワードを要求する',
    'settings.username': 'ユーザー名', 'settings.password': 'パスワード（変更しない場合は空白）',
    'settings.saveSettings': '設定を保存', 'settings.saved': '設定が保存されました。',

    'about.title': 'アプリについて',
    'about.description': '増分スナップショットと選択的復元をサポートするDockerボリュームのバックアップと復元のためのWebアプリケーション。',
    'about.currentVersion': '現在のバージョン', 'about.latestVersion': '最新バージョン',
    'about.checking': '確認中...', 'about.upToDate': '最新',
    'about.updateAvailable': 'アップデートあり', 'about.update': '今すぐ更新',
    'about.updating': '更新中...', 'about.changelog': '最新の変更',
    'about.checkError': '最新バージョンを確認できませんでした。',
    'about.updateSuccess': '更新が完了しました。再起動中...', 'about.updateError': '更新に失敗しました。',

    'login.title': 'アクセス制限', 'login.subtitle': '続けるにはログインしてください',
    'login.username': 'ユーザー名', 'login.password': 'パスワード', 'login.submit': 'ログイン',
    'login.error': 'ユーザー名またはパスワードが正しくありません。', 'login.logout': 'ログアウト',

    'progress.backup': 'バックアップの進捗', 'progress.restore': '復元の進捗',
    'progress.containers': 'コンテナ', 'progress.completed': '完了',
    'progress.remaining': '残り', 'progress.current': '現在のコンテナ',
    'progress.files': 'ファイル', 'progress.detailedLog': '詳細ログ',
    'progress.events': 'イベント', 'progress.noEvents': '詳細なイベントはまだありません。',
    'progress.step': 'ステップ', 'progress.waiting': 'ファイル処理を待っています...',

    'error.selectStorage': 'ストレージの場所を選択してください。',
    'error.noFullBackup': '完全バックアップがありません。まず完全バックアップを実行してください。',
    'error.selectFullBackup': '完全バックアップを選択してください。',
    'error.selectFullBackupModal': '基本完全バックアップの選択',
    'error.selectFullBackupDesc': '増分バックアップのベースとして使用する完全バックアップを選択:',
    'error.selectVolume': '少なくとも1つのボリュームを選択してください。', 'error.selectContainer': '少なくとも1つのコンテナを選択してください。',
    'volume.title': 'バックアップするボリュームを選択', 'volume.confirm': '選択を確認',
    'restore.title': '復元するコンテナを選択', 'restore.confirm': '選択したものを復元',
    'restore.confirmPrompt': 'プロファイルの選択したバックアップを復元',
    'scope.volumes': 'ボリュームのみ', 'scope.container': 'コンテナ全体',
    'status.completed': '完了', 'status.partial': '部分的', 'status.error': 'エラー', 'status.running': '実行中',
  };

  const fa = {
    'nav.dashboard': 'داشبورد', 'nav.storage': 'مکان‌های ذخیره‌سازی',
    'nav.profiles': 'پروفایل‌های پشتیبان‌گیری', 'nav.runs': 'اجرای پشتیبان‌گیری',
    'nav.backups': 'پشتیبان‌ها', 'nav.settings': 'تنظیمات', 'nav.about': 'درباره برنامه',

    'dashboard.title': 'داشبورد', 'dashboard.totalContainers': 'مجموع کانتینرها',
    'dashboard.activeConnections': 'اتصالات فعال', 'dashboard.backupProfiles': 'پروفایل‌های پشتیبان‌گیری',
    'dashboard.configuredProfiles': 'پروفایل‌های پیکربندی‌شده', 'dashboard.successful': 'موفق',
    'dashboard.totalSuccessful': 'مجموع موفق', 'dashboard.failed': 'ناموفق',
    'dashboard.totalFailed': 'مجموع ناموفق', 'dashboard.recentRuns': 'آخرین اجراها',
    'dashboard.createProfile': '+ ایجاد پروفایل',

    'table.id': 'شناسه', 'table.profile': 'پروفایل', 'table.mode': 'حالت', 'table.status': 'وضعیت',
    'table.containers': 'کانتینرها', 'table.files': 'فایل‌ها', 'table.size': 'حجم',
    'table.started': 'شروع', 'table.duration': 'مدت', 'table.actions': 'عملیات',
    'table.date': 'تاریخ', 'table.type': 'نوع', 'table.directory': 'پوشه', 'table.name': 'نام',

    'profiles.title': 'پروفایل‌های پشتیبان‌گیری', 'profiles.create': '+ ایجاد پروفایل', 'profiles.reload': 'بارگذاری مجدد',
    'profiles.empty': 'هیچ پروفایلی ذخیره نشده.', 'profiles.newProfile': 'پروفایل جدید', 'profiles.editProfile': 'ویرایش پروفایل',
    'profiles.name': 'نام پروفایل', 'profiles.namePlaceholder': 'پشتیبان پایگاه داده اصلی',
    'profiles.storageLocation': 'مکان ذخیره‌سازی', 'profiles.storageLocationPlaceholder': 'یک مکان انتخاب کنید...',
    'profiles.backupScope': 'محدوده پشتیبان‌گیری', 'profiles.scopeVolumes': 'فقط والیوم‌ها',
    'profiles.scopeVolumesDesc': 'از والیوم‌ها و bind mount پشتیبان می‌گیرد', 'profiles.scopeContainer': 'کل کانتینر',
    'profiles.scopeContainerDesc': 'یک tar به ازای هر کانتینر از / ایجاد می‌کند',
    'profiles.containers': 'کانتینرها', 'profiles.refreshContainers': 'بروزرسانی لیست',
    'profiles.save': 'ذخیره پروفایل', 'profiles.cancel': 'انصراف', 'profiles.saved': 'پروفایل ذخیره شد.',
    'profiles.deleted': 'پروفایل حذف شد.', 'profiles.confirmDelete': 'حذف پروفایل',

    'action.run': 'اجرا', 'action.running': 'در حال اجرا...', 'action.edit': 'ویرایش', 'action.delete': 'حذف',
    'action.restore': 'بازیابی', 'action.restoring': 'در حال بازیابی...', 'action.refresh': 'بروزرسانی',
    'action.save': 'ذخیره', 'action.cancel': 'انصراف', 'action.close': 'بستن',
    'action.confirm': 'تأیید', 'action.selectAll': 'انتخاب همه',

    'mode.full': 'کامل', 'mode.incremental': 'افزایشی', 'mode.backupMode': 'حالت پشتیبان‌گیری',
    'runs.title': 'اجرای پشتیبان‌گیری', 'runs.allRuns': 'همه اجراها', 'runs.empty': 'اجرایی یافت نشد.',
    'backups.title': 'پشتیبان‌ها', 'backups.noBackups': 'هیچ پشتیبانی انجام نشده.', 'backups.noProfiles': 'پروفایلی یافت نشد.',

    'storage.title': 'مکان‌های ذخیره‌سازی', 'storage.new': '+ مکان جدید',
    'storage.empty': 'هیچ مکانی پیکربندی نشده. برای تنظیم پروفایل‌ها یک مکان ایجاد کنید.',
    'storage.newLocation': 'مکان ذخیره‌سازی جدید', 'storage.name': 'نام', 'storage.namePlaceholder': 'پشتیبان اصلی',
    'storage.directory': 'پوشه', 'storage.directoryPlaceholder': '/srv/docker-backups',
    'storage.saved': 'مکان ذخیره‌سازی ذخیره شد.', 'storage.deleted': 'مکان حذف شد.',
    'storage.confirmDelete': 'این مکان ذخیره‌سازی حذف شود؟',

    'settings.title': 'تنظیمات', 'settings.language': 'زبان',
    'settings.languageDesc': 'زبان رابط کاربری را انتخاب کنید', 'settings.auth': 'کنترل دسترسی',
    'settings.authEnabled': 'برای دسترسی نام کاربری و رمز عبور لازم باشد',
    'settings.username': 'نام کاربری', 'settings.password': 'رمز عبور (برای عدم تغییر خالی بگذارید)',
    'settings.saveSettings': 'ذخیره تنظیمات', 'settings.saved': 'تنظیمات ذخیره شد.',

    'about.title': 'درباره برنامه',
    'about.description': 'برنامه وب برای پشتیبان‌گیری و بازیابی والیوم‌های Docker با پشتیبانی از snapshot‌های افزایشی و بازیابی انتخابی.',
    'about.currentVersion': 'نسخه فعلی', 'about.latestVersion': 'آخرین نسخه',
    'about.checking': 'در حال بررسی...', 'about.upToDate': 'به‌روز است',
    'about.updateAvailable': 'بروزرسانی موجود است', 'about.update': 'اکنون بروزرسانی کن',
    'about.updating': 'در حال بروزرسانی...', 'about.changelog': 'آخرین تغییرات',
    'about.checkError': 'بررسی آخرین نسخه ممکن نبود.',
    'about.updateSuccess': 'بروزرسانی کامل شد. در حال راه‌اندازی مجدد...', 'about.updateError': 'بروزرسانی ناموفق بود.',

    'login.title': 'دسترسی محدود', 'login.subtitle': 'برای ادامه وارد شوید',
    'login.username': 'نام کاربری', 'login.password': 'رمز عبور', 'login.submit': 'ورود',
    'login.error': 'نام کاربری یا رمز عبور نادرست است.', 'login.logout': 'خروج',

    'progress.backup': 'پیشرفت پشتیبان‌گیری', 'progress.restore': 'پیشرفت بازیابی',
    'progress.containers': 'کانتینرها', 'progress.completed': 'تکمیل شده',
    'progress.remaining': 'باقی‌مانده', 'progress.current': 'کانتینر فعلی',
    'progress.files': 'فایل‌ها', 'progress.detailedLog': 'گزارش تفصیلی',
    'progress.events': 'رویداد', 'progress.noEvents': 'هنوز رویداد تفصیلی‌ای نیست.',
    'progress.step': 'مرحله', 'progress.waiting': 'منتظر پردازش فایل...',

    'error.selectStorage': 'یک مکان ذخیره‌سازی انتخاب کنید.',
    'error.noFullBackup': 'پشتیبان کامل موجود نیست. ابتدا یک پشتیبان کامل انجام دهید.',
    'error.selectFullBackup': 'یک پشتیبان کامل انتخاب کنید.',
    'error.selectFullBackupModal': 'انتخاب پشتیبان کامل پایه',
    'error.selectFullBackupDesc': 'پشتیبان کامل مورد استفاده به عنوان پایه برای پشتیبان افزایشی را انتخاب کنید:',
    'error.selectVolume': 'حداقل یک والیوم انتخاب کنید.', 'error.selectContainer': 'حداقل یک کانتینر انتخاب کنید.',
    'volume.title': 'انتخاب والیوم‌ها برای پشتیبان‌گیری', 'volume.confirm': 'تأیید انتخاب',
    'restore.title': 'انتخاب کانتینرها برای بازیابی', 'restore.confirm': 'بازیابی انتخاب‌شده‌ها',
    'restore.confirmPrompt': 'بازیابی پشتیبان انتخاب‌شده برای پروفایل',
    'scope.volumes': 'فقط والیوم‌ها', 'scope.container': 'کل کانتینر',
    'status.completed': 'تکمیل شد', 'status.partial': 'ناقص', 'status.error': 'خطا', 'status.running': 'در حال اجرا',
  };

  window.TRANSLATIONS = { 'pt-BR': ptBR, en, es, de, pl, it, ru, zh, ja, fa };
})();
