(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 }; })();