Refactor code structure for improved readability and maintainability

This commit is contained in:
Torsten Schulz (local)
2026-02-09 16:50:25 +01:00
parent a7688e4ed5
commit b07099b57d
3 changed files with 867 additions and 855 deletions

View File

@@ -46,8 +46,8 @@ export default {
if (g == null || g === '') return '—'; if (g == null || g === '') return '—';
// Altersabhängige, (auf Wunsch) altertümlichere Bezeichnungen // Altersabhängige, (auf Wunsch) altertümlichere Bezeichnungen
const age = Number(this.falukantData?.age); const years = this._ageYearsFromWidgetValue(this.falukantData?.age);
const group = this._getAgeGroupKey(age); const group = this._getAgeGroupKey(years);
if (group && (g === 'female' || g === 'male')) { if (group && (g === 'female' || g === 'male')) {
const key = `falukant.genderAge.${g}.${group}`; const key = `falukant.genderAge.${g}.${group}`;
const t = this.$t(key); const t = this.$t(key);
@@ -62,11 +62,25 @@ export default {
falukantAgeLabel() { falukantAgeLabel() {
const ageValue = this.falukantData?.age; const ageValue = this.falukantData?.age;
if (ageValue == null) return '—'; if (ageValue == null) return '—';
const numAge = Number(ageValue); const years = this._ageYearsFromWidgetValue(ageValue);
return `${numAge} ${this.$t('falukant.overview.metadata.years')}`; if (years == null) return '—';
return `${years} ${this.$t('falukant.overview.metadata.years')}`;
} }
}, },
methods: { methods: {
/**
* Backend liefert für Falukant aktuell das Alter als Tage (differenceInDays).
* Für die Anzeige und die Age-Groups brauchen wir Jahre.
*/
_ageYearsFromWidgetValue(ageValue) {
const n = Number(ageValue);
if (Number.isNaN(n)) return null;
// Heuristik: >= 365 wird als Tage interpretiert.
// Falls das Backend irgendwann auf Jahre umstellt, bleiben Werte < 365 unverändert.
const years = n >= 365 ? Math.floor(n / 365) : Math.floor(n);
return Number.isFinite(years) ? years : null;
},
_getAgeGroupKey(age) { _getAgeGroupKey(age) {
const a = Number(age); const a = Number(age);
if (Number.isNaN(a)) return null; if (Number.isNaN(a)) return null;

View File

@@ -1,48 +1,48 @@
{ {
"admin": { "admin": {
"interests": { "interests": {
"title": "[Admin] - Interessen verwalten", "title": "[Admin] - Administrar intereses",
"newinterests": { "newinterests": {
"name": "Name des Interesses", "name": "Nombre del interés",
"status": "Freigegeben", "status": "Aprobado",
"adultonly": "Nur für Erwachsene", "adultonly": "Solo para adultos",
"translations": "Übersetzungen", "translations": "Traducciones",
"isactive": "Aktiviert", "isactive": "Activado",
"isadult": "Nur für Erwachsene", "isadult": "Solo para adultos",
"delete": "Löschen" "delete": "Eliminar"
} }
}, },
"contacts": { "contacts": {
"title": "[Admin] - Kontaktanfragen", "title": "[Admin] - Solicitudes de contacto",
"date": "Datum", "date": "Fecha",
"from": "Absender", "from": "Remitente",
"actions": "Aktionen", "actions": "Acciones",
"open": "Bearbeiten", "open": "Editar",
"finished": "Abschließen" "finished": "Finalizar"
}, },
"editcontactrequest": { "editcontactrequest": {
"title": "[Admin] - Kontaktanfrage bearbeiten" "title": "[Admin] - Editar solicitud de contacto"
}, },
"user": { "user": {
"name": "Benutzername", "name": "Nombre de usuario",
"active": "Aktiv", "active": "Activo",
"blocked": "Gesperrt", "blocked": "Bloqueado",
"actions": "Aktionen", "actions": "Acciones",
"search": "Suchen" "search": "Buscar"
}, },
"rights": { "rights": {
"add": "Recht hinzufügen", "add": "Añadir permiso",
"select": "Bitte wählen", "select": "Por favor, selecciona",
"current": "Aktuelle Rechte" "current": "Permisos actuales"
}, },
"forum": { "forum": {
"title": "[Admin] - Forum", "title": "[Admin] - Forum",
"currentForums": "Existierende Foren", "currentForums": "Foros existentes",
"edit": "Ändern", "edit": "Editar",
"delete": "Löschen", "delete": "Eliminar",
"createForum": "Anlegen", "createForum": "Crear",
"forumName": "Titel", "forumName": "Titel",
"create": "Anlegen", "create": "Crear",
"permissions": { "permissions": {
"label": "Berechtigungen", "label": "Berechtigungen",
"all": "Jeder", "all": "Jeder",
@@ -51,267 +51,267 @@
"user": "Nur bestimmte Benutzer", "user": "Nur bestimmte Benutzer",
"age": "Nur ab Alter 14" "age": "Nur ab Alter 14"
}, },
"selectPermissions": "Bitte auswählen", "selectPermissions": "Por favor, selecciona",
"confirmDeleteMessage": "Soll das Forum wirklich gelöscht werden?", "confirmDeleteMessage": "¿De verdad quieres eliminar el foro?",
"confirmDeleteTitle": "Forum löschen" "confirmDeleteTitle": "Eliminar foro"
}, },
"falukant": { "falukant": {
"edituser": { "edituser": {
"title": "Falukant Benutzer bearbeiten", "title": "Editar usuario de Falukant",
"username": "Benutzername", "username": "Nombre de usuario",
"characterName": "Charaktername", "characterName": "Nombre del personaje",
"user": "Benutzer", "user": "Usuario",
"success": "Die Änderungen wurden gespeichert.", "success": "Los cambios se han guardado.",
"error": "Die Änderungen konnten nicht gespeichert werden.", "error": "No se pudieron guardar los cambios.",
"errorLoadingBranches": "Fehler beim Laden der Niederlassungen.", "errorLoadingBranches": "Error al cargar las sucursales.",
"errorUpdatingStock": "Fehler beim Aktualisieren des Lagers.", "errorUpdatingStock": "Error al actualizar el almacén.",
"stockUpdated": "Lager erfolgreich aktualisiert.", "stockUpdated": "Almacén actualizado correctamente.",
"search": "Suchen", "search": "Buscar",
"tabs": { "tabs": {
"userdata": "Benutzerdaten", "userdata": "Datos del usuario",
"branches": "Niederlassungen" "branches": "Sucursales"
}, },
"branches": { "branches": {
"title": "Niederlassungen & Lager", "title": "Sucursales y almacén",
"noStocks": "Kein Lager vorhanden", "noStocks": "No hay almacén",
"noBranches": "Keine Niederlassungen gefunden", "noBranches": "No se han encontrado sucursales",
"addStock": "Lager hinzufügen", "addStock": "Añadir almacén",
"stockType": "Lagertyp", "stockType": "Tipo de almacén",
"selectStockType": "Lagertyp auswählen", "selectStockType": "Seleccionar tipo de almacén",
"quantity": "Menge", "quantity": "Cantidad",
"allStocksAdded": "Alle verfügbaren Lagertypen sind bereits vorhanden" "allStocksAdded": "Todos los tipos de almacén disponibles ya existen"
}, },
"errorLoadingStockTypes": "Fehler beim Laden der Lagertypen.", "errorLoadingStockTypes": "Error al cargar los tipos de almacén.",
"errorAddingStock": "Fehler beim Hinzufügen des Lagers.", "errorAddingStock": "Error al añadir el almacén.",
"stockAdded": "Lager erfolgreich hinzugefügt.", "stockAdded": "Almacén añadido correctamente.",
"invalidStockData": "Bitte gültige Lagertyp- und Mengenangaben eingeben." "invalidStockData": "Por favor, introduce un tipo de almacén y una cantidad válidos."
}, },
"map": { "map": {
"title": "Falukant Karten-Editor (Regionen)", "title": "Editor de mapas de Falukant (regiones)",
"description": "Zeichne Rechtecke auf der Falukant-Karte und weise sie Städten zu.", "description": "Dibuja rectángulos en el mapa de Falukant y asígnalos a ciudades.",
"tabs": { "tabs": {
"regions": "Positionen", "regions": "Posiciones",
"distances": "Entfernungen" "distances": "Distancias"
}, },
"regionList": "Städte", "regionList": "Ciudades",
"noCoords": "Keine Koordinaten gesetzt", "noCoords": "No se han establecido coordenadas",
"currentRect": "Aktuelles Rechteck", "currentRect": "Rectángulo actual",
"hintDraw": "Wähle eine Stadt und ziehe mit der Maus ein Rechteck auf der Karte, um die Position festzulegen.", "hintDraw": "Elige una ciudad y dibuja un rectángulo con el ratón sobre el mapa para definir la posición.",
"saveAll": "Alle geänderten Städte speichern", "saveAll": "Guardar todas las ciudades modificadas",
"connectionsTitle": "Verbindungen (region_distance)", "connectionsTitle": "Conexiones (region_distance)",
"source": "Von", "source": "Desde",
"target": "Nach", "target": "Hacia",
"selectSource": "Quellstadt wählen", "selectSource": "Elegir ciudad origen",
"selectTarget": "Zielstadt wählen", "selectTarget": "Elegir ciudad destino",
"mode": "Transportart", "mode": "Transportart",
"modeLand": "Land", "modeLand": "Land",
"modeWater": "Wasser", "modeWater": "Wasser",
"modeAir": "Luft", "modeAir": "Luft",
"distance": "Entfernung", "distance": "Distancia",
"saveConnection": "Verbindung speichern", "saveConnection": "Guardar conexión",
"pickOnMap": "Auf Karte wählen", "pickOnMap": "Seleccionar en el mapa",
"errorSaveConnection": "Die Verbindung konnte nicht gespeichert werden.", "errorSaveConnection": "No se pudo guardar la conexión.",
"errorDeleteConnection": "Die Verbindung konnte nicht gelöscht werden.", "errorDeleteConnection": "No se pudo eliminar la conexión.",
"confirmDeleteConnection": "Verbindung wirklich löschen?" "confirmDeleteConnection": "¿Eliminar la conexión?"
}, },
"createNPC": { "createNPC": {
"title": "NPCs erstellen", "title": "Crear NPC",
"region": "Stadt", "region": "Ciudad",
"allRegions": "Alle Städte", "allRegions": "Todas las ciudades",
"ageRange": "Altersbereich", "ageRange": "Rango de edad",
"to": "bis", "to": "hasta",
"years": "Jahre", "years": "años",
"titleRange": "Titel-Bereich", "titleRange": "Rango de títulos",
"count": "Anzahl pro Stadt-Titel-Kombination", "count": "Cantidad por combinación ciudad-título",
"countHelp": "Diese Anzahl wird für jede Kombination aus gewählter Stadt und Titel erstellt.", "countHelp": "Esta cantidad se crea para cada combinación de ciudad y título seleccionados.",
"create": "NPCs erstellen", "create": "Crear NPC",
"creating": "Erstelle...", "creating": "Creando...",
"result": "Ergebnis", "result": "Resultado",
"createdCount": "{count} NPCs wurden erstellt.", "createdCount": "Se han creado {count} NPC.",
"combinationInfo": "{perCombination} NPCs pro Kombination × {combinations} Kombinationen = {count} NPCs insgesamt", "combinationInfo": "{perCombination} NPC por combinación × {combinations} combinaciones = {count} NPC en total",
"age": "Alter", "age": "Edad",
"errorLoadingRegions": "Fehler beim Laden der Städte.", "errorLoadingRegions": "Error al cargar las ciudades.",
"errorLoadingTitles": "Fehler beim Laden der Titel.", "errorLoadingTitles": "Error al cargar los títulos.",
"errorCreating": "Fehler beim Erstellen der NPCs.", "errorCreating": "Error al crear los NPC.",
"invalidAgeRange": "Ungültiger Altersbereich.", "invalidAgeRange": "Rango de edad no válido.",
"invalidTitleRange": "Ungültiger Titel-Bereich.", "invalidTitleRange": "Rango de títulos no válido.",
"invalidCount": "Ungültige Anzahl (1-500).", "invalidCount": "Cantidad no válida (1-500).",
"progress": "Fortschritt", "progress": "Progreso",
"progressDetails": "{current} von {total} NPCs erstellt", "progressDetails": "{current} de {total} NPC creados",
"timeRemainingSeconds": "Verbleibende Zeit: {seconds} Sekunden", "timeRemainingSeconds": "Tiempo restante: {seconds} segundos",
"timeRemainingMinutes": "Verbleibende Zeit: {minutes} Minuten {seconds} Sekunden", "timeRemainingMinutes": "Tiempo restante: {minutes} minutos {seconds} segundos",
"almostDone": "Fast fertig...", "almostDone": "Casi listo...",
"jobNotFound": "Job nicht gefunden oder abgelaufen." "jobNotFound": "Trabajo no encontrado o caducado."
} }
}, },
"chatrooms": { "chatrooms": {
"title": "[Admin] - Chaträume verwalten", "title": "[Admin] - Administrar salas de chat",
"roomName": "Raumname", "roomName": "Nombre de la sala",
"create": "Chatraum anlegen", "create": "Crear sala de chat",
"edit": "Chatraum bearbeiten", "edit": "Editar sala de chat",
"type": "Typ", "type": "Typ",
"isPublic": "Öffentlich sichtbar", "isPublic": "Visible públicamente",
"actions": "Aktionen", "actions": "Acciones",
"genderRestriction": { "genderRestriction": {
"show": "Geschlechtsbeschränkung aktivieren", "show": "Activar restricción de género",
"label": "Geschlechtsbeschränkung" "label": "Restricción de género"
}, },
"minAge": { "minAge": {
"show": "Mindestalter angeben", "show": "Indicar edad mínima",
"label": "Mindestalter" "label": "Edad mínima"
}, },
"maxAge": { "maxAge": {
"show": "Höchstalter angeben", "show": "Indicar edad máxima",
"label": "Höchstalter" "label": "Edad máxima"
}, },
"password": { "password": {
"show": "Passwortschutz aktivieren", "show": "Activar protección con contraseña",
"label": "Passwort" "label": "Contraseña"
}, },
"friendsOfOwnerOnly": "Nur Freunde des Besitzers", "friendsOfOwnerOnly": "Nur Freunde des Besitzers",
"requiredUserRight": { "requiredUserRight": {
"show": "Benötigtes Benutzerrecht angeben", "show": "Indicar permiso de usuario requerido",
"label": "Benötigtes Benutzerrecht" "label": "Permiso de usuario requerido"
}, },
"roomtype": { "roomtype": {
"chat": "Reden", "chat": "Chat",
"dice": "Würfeln", "dice": "Dados",
"poker": "Poker", "poker": "Poker",
"hangman": "Hangman" "hangman": "Hangman"
}, },
"rights": { "rights": {
"talk": "Reden", "talk": "Hablar",
"scream": "Schreien", "scream": "Gritar",
"whisper": "Flüstern", "whisper": "Susurrar",
"start game": "Spiel starten", "start game": "Iniciar juego",
"open room": "Raum öffnen", "open room": "Abrir sala",
"systemmessage": "Systemnachricht" "systemmessage": "Mensaje del sistema"
}, },
"confirmDelete": "Soll dieser Chatraum wirklich gelöscht werden?" "confirmDelete": "¿De verdad quieres eliminar esta sala de chat?"
}, },
"match3": { "match3": {
"title": "Match3 Level verwalten", "title": "Administrar niveles de Match3",
"newLevel": "Neues Level erstellen", "newLevel": "Crear nuevo nivel",
"editLevel": "Level bearbeiten", "editLevel": "Editar nivel",
"deleteLevel": "Level löschen", "deleteLevel": "Eliminar nivel",
"confirmDelete": "Möchtest du dieses Level wirklich löschen?", "confirmDelete": "¿De verdad quieres eliminar este nivel?",
"levelName": "Name", "levelName": "Name",
"levelDescription": "Beschreibung", "levelDescription": "Descripción",
"boardWidth": "Breite", "boardWidth": "Breite",
"boardHeight": "Höhe", "boardHeight": "Altura",
"moveLimit": "Zug-Limit", "moveLimit": "Zug-Limit",
"levelOrder": "Reihenfolge", "levelOrder": "Reihenfolge",
"boardLayout": "Board-Layout", "boardLayout": "Board-Layout",
"tileTypes": "Verfügbare Tile-Typen", "tileTypes": "Tipos de fichas disponibles",
"actions": "Aktionen", "actions": "Acciones",
"edit": "Bearbeiten", "edit": "Editar",
"delete": "Löschen", "delete": "Eliminar",
"save": "Speichern", "save": "Guardar",
"cancel": "Abbrechen", "cancel": "Cancelar",
"update": "Aktualisieren", "update": "Actualizar",
"create": "Erstellen", "create": "Crear",
"boardControls": { "boardControls": {
"fillAll": "Alle aktivieren", "fillAll": "Activar todo",
"clearAll": "Alle deaktivieren", "clearAll": "Desactivar todo",
"invert": "Invertieren" "invert": "Invertir"
}, },
"loading": "Lade Level...", "loading": "Cargando niveles...",
"retry": "Erneut versuchen", "retry": "Reintentar",
"availableLevels": "Verfügbare Level: {count}", "availableLevels": "Niveles disponibles: {count}",
"levelFormat": "Level {number}: {name}", "levelFormat": "Level {number}: {name}",
"levelObjectives": "Level-Objekte", "levelObjectives": "Level-Objekte",
"objectivesTitle": "Siegvoraussetzungen", "objectivesTitle": "Siegvoraussetzungen",
"addObjective": "Objektiv hinzufügen", "addObjective": "Añadir objetivo",
"removeObjective": "Entfernen", "removeObjective": "Eliminar",
"objectiveType": "Typ", "objectiveType": "Typ",
"objectiveTypeScore": "Punkte sammeln", "objectiveTypeScore": "Punkte sammeln",
"objectiveTypeMatches": "Matches machen", "objectiveTypeMatches": "Matches machen",
"objectiveTypeMoves": "Züge verwenden", "objectiveTypeMoves": "Usar movimientos",
"objectiveTypeTime": "Zeit einhalten", "objectiveTypeTime": "Zeit einhalten",
"objectiveTypeSpecial": "Spezialziel", "objectiveTypeSpecial": "Spezialziel",
"objectiveOperator": "Operator", "objectiveOperator": "Operator",
"operatorGreaterEqual": "Größer oder gleich (≥)", "operatorGreaterEqual": "Mayor o igual (≥)",
"operatorLessEqual": "Kleiner oder gleich (≤)", "operatorLessEqual": "Menor o igual (≤)",
"operatorEqual": "Gleich (=)", "operatorEqual": "Gleich (=)",
"operatorGreater": "Größer als (>)", "operatorGreater": "Mayor que (>)",
"operatorLess": "Kleiner als (<)", "operatorLess": "Menor que (<)",
"objectiveTarget": "Zielwert", "objectiveTarget": "Zielwert",
"objectiveTargetPlaceholder": "z.B. 100", "objectiveTargetPlaceholder": "z.B. 100",
"objectiveOrder": "Reihenfolge", "objectiveOrder": "Reihenfolge",
"objectiveOrderPlaceholder": "1, 2, 3...", "objectiveOrderPlaceholder": "1, 2, 3...",
"objectiveDescription": "Beschreibung", "objectiveDescription": "Descripción",
"objectiveDescriptionPlaceholder": "z.B. Sammle 100 Punkte", "objectiveDescriptionPlaceholder": "z.B. Sammle 100 Punkte",
"objectiveRequired": "Erforderlich für Level-Abschluss", "objectiveRequired": "Requerido para completar el nivel",
"noObjectives": "Keine Siegvoraussetzungen definiert. Klicke auf 'Objektiv hinzufügen' um welche zu erstellen." "noObjectives": "No hay condiciones de victoria definidas. Haz clic en 'Añadir objetivo' para crear una."
}, },
"userStatistics": { "userStatistics": {
"title": "[Admin] - Benutzerstatistiken", "title": "[Admin] - Estadísticas de usuarios",
"totalUsers": "Gesamtanzahl Benutzer", "totalUsers": "Total de usuarios",
"genderDistribution": "Geschlechterverteilung", "genderDistribution": "Distribución por género",
"ageDistribution": "Altersverteilung" "ageDistribution": "Distribución por edad"
}, },
"taxiTools": { "taxiTools": {
"title": "Taxi-Tools", "title": "Taxi-Tools",
"description": "Verwalte Taxi-Maps, Level und Konfigurationen", "description": "Administra mapas, niveles y configuraciones de Taxi",
"mapEditor": { "mapEditor": {
"title": "Map bearbeiten", "title": "Editar mapa",
"availableMaps": "Verfügbare Maps: {count}", "availableMaps": "Mapas disponibles: {count}",
"newMap": "Neue Map erstellen", "newMap": "Crear nuevo mapa",
"mapFormat": "{name} (Position: {x},{y})", "mapFormat": "{name} (Position: {x},{y})",
"mapName": "Map-Name", "mapName": "Map-Name",
"mapDescription": "Beschreibung", "mapDescription": "Descripción",
"mapWidth": "Breite", "mapWidth": "Breite",
"mapHeight": "Höhe", "mapHeight": "Altura",
"tileSize": "Tile-Größe", "tileSize": "Tamaño de las fichas",
"positionX": "X-Position", "positionX": "X-Position",
"positionY": "Y-Position", "positionY": "Y-Position",
"mapType": "Map-Typ", "mapType": "Map-Typ",
"mapLayout": "Map-Layout", "mapLayout": "Map-Layout",
"tilePalette": "Tile-Palette", "tilePalette": "Tile-Palette",
"streetNames": "Straßennamen", "streetNames": "Nombres de calles",
"extraElements": "Zusätzliche Elemente", "extraElements": "Elementos adicionales",
"streetNameHorizontal": "Straßenname (horizontal)", "streetNameHorizontal": "Nombre de calle (horizontal)",
"streetNameVertical": "Straßenname (vertikal)", "streetNameVertical": "Nombre de calle (vertical)",
"continueHorizontal": "In anderer Richtung fortführen (→)", "continueHorizontal": "Continuar en otra dirección (→)",
"continueVertical": "In anderer Richtung fortführen (↓)", "continueVertical": "Continuar en otra dirección (↓)",
"continueOther": "In anderer Richtung fortführen", "continueOther": "Continuar en otra dirección",
"position": "Position", "position": "Position",
"fillAllRoads": "Alle Straßen", "fillAllRoads": "Todas las calles",
"clearAll": "Alle löschen", "clearAll": "Borrar todo",
"generateRandom": "Zufällig generieren", "generateRandom": "Generar aleatoriamente",
"delete": "Löschen", "delete": "Eliminar",
"update": "Aktualisieren", "update": "Actualizar",
"cancel": "Abbrechen", "cancel": "Cancelar",
"create": "Erstellen", "create": "Crear",
"createSuccess": "Map wurde erfolgreich erstellt!", "createSuccess": "¡El mapa se ha creado correctamente!",
"updateSuccess": "Map wurde erfolgreich aktualisiert!", "updateSuccess": "¡El mapa se ha actualizado correctamente!",
"deleteSuccess": "Map wurde erfolgreich gelöscht!" "deleteSuccess": "¡El mapa se ha eliminado correctamente!"
} }
}, },
"servicesStatus": { "servicesStatus": {
"title": "Service-Status", "title": "Service-Status",
"description": "Überwache den Status von Backend, Chat und Daemon", "description": "Supervisa el estado del backend, el chat y el daemon",
"status": { "status": {
"connected": "Verbunden", "connected": "Conectado",
"connecting": "Verbinde...", "connecting": "Conectando...",
"disconnected": "Nicht verbunden", "disconnected": "Desconectado",
"error": "Fehler", "error": "Error",
"unknown": "Unbekannt" "unknown": "Desconocido"
}, },
"backend": { "backend": {
"title": "Backend", "title": "Backend",
"connected": "Backend-Service ist erreichbar und verbunden" "connected": "El servicio de backend está accesible y conectado"
}, },
"chat": { "chat": {
"title": "Chat", "title": "Chat",
"connected": "Chat-Service ist erreichbar und verbunden" "connected": "El servicio de chat está accesible y conectado"
}, },
"daemon": { "daemon": {
"title": "Daemon", "title": "Daemon",
"connected": "Daemon-Service ist erreichbar und verbunden", "connected": "El servicio daemon está accesible y conectado",
"connections": { "connections": {
"title": "Aktive Verbindungen", "title": "Aktive Verbindungen",
"none": "Keine aktiven Verbindungen", "none": "No hay conexiones activas",
"userId": "Benutzer-ID", "userId": "Benutzer-ID",
"username": "Benutzername", "username": "Benutzername",
"connections": "Verbindungen", "connections": "Verbindungen",
@@ -321,21 +321,21 @@
"pongReceived": "Pong empfangen", "pongReceived": "Pong empfangen",
"yes": "Ja", "yes": "Ja",
"no": "Nein", "no": "Nein",
"notConnected": "Daemon nicht verbunden", "notConnected": "Daemon no conectado",
"sendError": "Fehler beim Senden der Anfrage", "sendError": "Error al enviar la solicitud",
"error": "Fehler beim Abrufen der Verbindungen" "error": "Error al obtener las conexiones"
}, },
"websocketLog": { "websocketLog": {
"title": "WebSocket-Log", "title": "WebSocket-Log",
"showLog": "WebSocket-Log anzeigen", "showLog": "WebSocket-Log anzeigen",
"refresh": "Aktualisieren", "refresh": "Aktualisieren",
"loading": "Lädt...", "loading": "Cargando...",
"close": "Schließen", "close": "Cerrar",
"entryCount": "{count} Einträge", "entryCount": "{count} entradas",
"noEntries": "Keine Log-Einträge vorhanden", "noEntries": "No hay entradas de registro",
"notConnected": "Daemon nicht verbunden", "notConnected": "Daemon no conectado",
"sendError": "Fehler beim Senden der Anfrage", "sendError": "Error al enviar la solicitud",
"parseError": "Fehler beim Verarbeiten der Antwort", "parseError": "Error al procesar la respuesta",
"timestamp": "Zeitstempel", "timestamp": "Zeitstempel",
"direction": "Richtung", "direction": "Richtung",
"peer": "Peer", "peer": "Peer",

File diff suppressed because it is too large Load Diff