- Implemented a preview section for adult verification documents, allowing users to view images and PDFs inline. - Added localization support for preview titles and messages in German, English, and Spanish. - Enhanced the component's state management to handle preview visibility and cleanup.
434 lines
19 KiB
JSON
434 lines
19 KiB
JSON
{
|
||
"admin": {
|
||
"interests": {
|
||
"title": "[Admin] - Administrar intereses",
|
||
"newinterests": {
|
||
"name": "Nombre del interés",
|
||
"status": "Aprobado",
|
||
"adultonly": "Solo para adultos",
|
||
"translations": "Traducciones",
|
||
"isactive": "Activado",
|
||
"isadult": "Solo para adultos",
|
||
"delete": "Eliminar"
|
||
}
|
||
},
|
||
"contacts": {
|
||
"title": "[Admin] - Solicitudes de contacto",
|
||
"date": "Fecha",
|
||
"from": "Remitente",
|
||
"actions": "Acciones",
|
||
"open": "Editar",
|
||
"finished": "Finalizar"
|
||
},
|
||
"editcontactrequest": {
|
||
"title": "[Admin] - Editar solicitud de contacto"
|
||
},
|
||
"user": {
|
||
"name": "Nombre de usuario",
|
||
"active": "Activo",
|
||
"blocked": "Bloqueado",
|
||
"actions": "Acciones",
|
||
"search": "Buscar"
|
||
},
|
||
"adultVerification": {
|
||
"title": "[Admin] - Aprobaciones eróticas",
|
||
"intro": "Los usuarios adultos pueden solicitar acceso al área erótica. Aquí se revisan, aprueban o rechazan las solicitudes.",
|
||
"username": "Usuario",
|
||
"age": "Edad",
|
||
"statusLabel": "Estado",
|
||
"requestLabel": "Prueba",
|
||
"actions": "Acciones",
|
||
"approve": "Aprobar",
|
||
"reject": "Rechazar",
|
||
"resetPending": "Poner en revisión",
|
||
"openDocument": "Abrir documento",
|
||
"previewTitle": "Vista previa de la prueba",
|
||
"closePreview": "Cerrar vista previa",
|
||
"previewUnavailable": "No hay vista previa integrada para este tipo de archivo.",
|
||
"empty": "No se han encontrado solicitudes.",
|
||
"loadError": "No se pudieron cargar las aprobaciones.",
|
||
"updateError": "No se pudo actualizar el estado.",
|
||
"documentError": "No se pudo abrir el documento.",
|
||
"filters": {
|
||
"pending": "Pendientes",
|
||
"approved": "Aprobadas",
|
||
"rejected": "Rechazadas",
|
||
"all": "Todas"
|
||
},
|
||
"status": {
|
||
"none": "No solicitada",
|
||
"pending": "En revisión",
|
||
"approved": "Aprobada",
|
||
"rejected": "Rechazada"
|
||
},
|
||
"messages": {
|
||
"approved": "Aprobación concedida.",
|
||
"rejected": "Aprobación rechazada.",
|
||
"pending": "La solicitud se ha vuelto a poner en revisión."
|
||
}
|
||
},
|
||
"eroticModeration": {
|
||
"title": "[Admin] - Moderación erótica",
|
||
"intro": "Aquí se pueden revisar, ocultar, eliminar o escalar imágenes y vídeos eróticos denunciados.",
|
||
"empty": "No se encontraron denuncias.",
|
||
"loadError": "No se pudieron cargar las denuncias.",
|
||
"actionError": "No se pudo ejecutar la acción de moderación.",
|
||
"actionSuccess": "La acción de moderación fue guardada.",
|
||
"target": "Objetivo",
|
||
"owner": "Propietario",
|
||
"reporter": "Denunciante",
|
||
"reason": "Motivo",
|
||
"statusLabel": "Estado",
|
||
"meta": "Hora / acción",
|
||
"actions": "Acciones",
|
||
"image": "Imagen",
|
||
"video": "Vídeo",
|
||
"hidden": "Oculto",
|
||
"preview": "Vista previa",
|
||
"previewError": "No se pudo cargar la vista previa.",
|
||
"dismiss": "Descartar",
|
||
"hide": "Ocultar",
|
||
"restore": "Restaurar",
|
||
"delete": "Eliminar",
|
||
"blockUploads": "Bloquear subidas",
|
||
"revokeAccess": "Retirar acceso erótico",
|
||
"notePrompt": "Nota para esta decisión de moderación",
|
||
"actionLabels": {
|
||
"dismiss": "Descartado",
|
||
"hide_content": "Oculto",
|
||
"restore_content": "Restaurado",
|
||
"delete_content": "Eliminado",
|
||
"block_uploads": "Subidas bloqueadas",
|
||
"revoke_access": "Acceso retirado"
|
||
},
|
||
"filters": {
|
||
"open": "Abierto",
|
||
"actioned": "Procesado",
|
||
"dismissed": "Descartado",
|
||
"all": "Todos"
|
||
},
|
||
"status": {
|
||
"open": "Abierto",
|
||
"actioned": "Procesado",
|
||
"dismissed": "Descartado"
|
||
}
|
||
},
|
||
"rights": {
|
||
"add": "Añadir permiso",
|
||
"select": "Por favor, selecciona",
|
||
"current": "Permisos actuales"
|
||
},
|
||
"forum": {
|
||
"title": "[Admin] - Forum",
|
||
"currentForums": "Foros existentes",
|
||
"edit": "Editar",
|
||
"delete": "Eliminar",
|
||
"createForum": "Crear",
|
||
"forumName": "Titel",
|
||
"create": "Crear",
|
||
"permissions": {
|
||
"label": "Berechtigungen",
|
||
"all": "Jeder",
|
||
"admin": "Nur Admins",
|
||
"teammember": "Nur Teammitglieder",
|
||
"user": "Nur bestimmte Benutzer",
|
||
"age": "Nur ab Alter 14"
|
||
},
|
||
"selectPermissions": "Por favor, selecciona",
|
||
"confirmDeleteMessage": "¿De verdad quieres eliminar el foro?",
|
||
"confirmDeleteTitle": "Eliminar foro"
|
||
},
|
||
"falukant": {
|
||
"edituser": {
|
||
"title": "Editar usuario de Falukant",
|
||
"username": "Nombre de usuario",
|
||
"characterName": "Nombre del personaje",
|
||
"user": "Usuario",
|
||
"success": "Los cambios se han guardado.",
|
||
"error": "No se pudieron guardar los cambios.",
|
||
"errorLoadingBranches": "Error al cargar las sucursales.",
|
||
"errorUpdatingStock": "Error al actualizar el almacén.",
|
||
"stockUpdated": "Almacén actualizado correctamente.",
|
||
"search": "Buscar",
|
||
"tabs": {
|
||
"userdata": "Datos del usuario",
|
||
"branches": "Sucursales"
|
||
},
|
||
"branches": {
|
||
"title": "Sucursales y almacén",
|
||
"noStocks": "No hay almacén",
|
||
"noBranches": "No se han encontrado sucursales",
|
||
"addStock": "Añadir almacén",
|
||
"stockType": "Tipo de almacén",
|
||
"selectStockType": "Seleccionar tipo de almacén",
|
||
"quantity": "Cantidad",
|
||
"allStocksAdded": "Todos los tipos de almacén disponibles ya existen"
|
||
},
|
||
"errorLoadingStockTypes": "Error al cargar los tipos de almacén.",
|
||
"errorAddingStock": "Error al añadir el almacén.",
|
||
"stockAdded": "Almacén añadido correctamente.",
|
||
"invalidStockData": "Por favor, introduce un tipo de almacén y una cantidad válidos."
|
||
},
|
||
"map": {
|
||
"title": "Editor de mapas de Falukant (regiones)",
|
||
"description": "Dibuja rectángulos en el mapa de Falukant y asígnalos a ciudades.",
|
||
"tabs": {
|
||
"regions": "Posiciones",
|
||
"distances": "Distancias"
|
||
},
|
||
"regionList": "Ciudades",
|
||
"noCoords": "No se han establecido coordenadas",
|
||
"currentRect": "Rectángulo actual",
|
||
"hintDraw": "Elige una ciudad y dibuja un rectángulo con el ratón sobre el mapa para definir la posición.",
|
||
"saveAll": "Guardar todas las ciudades modificadas",
|
||
"connectionsTitle": "Conexiones (region_distance)",
|
||
"source": "Desde",
|
||
"target": "Hacia",
|
||
"selectSource": "Elegir ciudad origen",
|
||
"selectTarget": "Elegir ciudad destino",
|
||
"mode": "Transportart",
|
||
"modeLand": "Land",
|
||
"modeWater": "Wasser",
|
||
"modeAir": "Luft",
|
||
"distance": "Distancia",
|
||
"saveConnection": "Guardar conexión",
|
||
"pickOnMap": "Seleccionar en el mapa",
|
||
"errorSaveConnection": "No se pudo guardar la conexión.",
|
||
"errorDeleteConnection": "No se pudo eliminar la conexión.",
|
||
"confirmDeleteConnection": "¿Eliminar la conexión?"
|
||
},
|
||
"createNPC": {
|
||
"title": "Crear NPC",
|
||
"region": "Ciudad",
|
||
"allRegions": "Todas las ciudades",
|
||
"ageRange": "Rango de edad",
|
||
"to": "hasta",
|
||
"years": "años",
|
||
"titleRange": "Rango de títulos",
|
||
"count": "Cantidad por combinación ciudad-título",
|
||
"countHelp": "Esta cantidad se crea para cada combinación de ciudad y título seleccionados.",
|
||
"create": "Crear NPC",
|
||
"creating": "Creando...",
|
||
"result": "Resultado",
|
||
"createdCount": "Se han creado {count} NPC.",
|
||
"combinationInfo": "{perCombination} NPC por combinación × {combinations} combinaciones = {count} NPC en total",
|
||
"age": "Edad",
|
||
"errorLoadingRegions": "Error al cargar las ciudades.",
|
||
"errorLoadingTitles": "Error al cargar los títulos.",
|
||
"errorCreating": "Error al crear los NPC.",
|
||
"invalidAgeRange": "Rango de edad no válido.",
|
||
"invalidTitleRange": "Rango de títulos no válido.",
|
||
"invalidCount": "Cantidad no válida (1-500).",
|
||
"progress": "Progreso",
|
||
"progressDetails": "{current} de {total} NPC creados",
|
||
"timeRemainingSeconds": "Tiempo restante: {seconds} segundos",
|
||
"timeRemainingMinutes": "Tiempo restante: {minutes} minutos {seconds} segundos",
|
||
"almostDone": "Casi listo...",
|
||
"jobNotFound": "Trabajo no encontrado o caducado."
|
||
}
|
||
},
|
||
"chatrooms": {
|
||
"title": "[Admin] - Administrar salas de chat",
|
||
"roomName": "Nombre de la sala",
|
||
"create": "Crear sala de chat",
|
||
"edit": "Editar sala de chat",
|
||
"type": "Typ",
|
||
"isPublic": "Visible públicamente",
|
||
"isAdultOnly": "Solo área erótica",
|
||
"actions": "Acciones",
|
||
"genderRestriction": {
|
||
"show": "Activar restricción de género",
|
||
"label": "Restricción de género"
|
||
},
|
||
"minAge": {
|
||
"show": "Indicar edad mínima",
|
||
"label": "Edad mínima"
|
||
},
|
||
"maxAge": {
|
||
"show": "Indicar edad máxima",
|
||
"label": "Edad máxima"
|
||
},
|
||
"password": {
|
||
"show": "Activar protección con contraseña",
|
||
"label": "Contraseña"
|
||
},
|
||
"friendsOfOwnerOnly": "Nur Freunde des Besitzers",
|
||
"requiredUserRight": {
|
||
"show": "Indicar permiso de usuario requerido",
|
||
"label": "Permiso de usuario requerido"
|
||
},
|
||
"roomtype": {
|
||
"chat": "Chat",
|
||
"dice": "Dados",
|
||
"poker": "Poker",
|
||
"hangman": "Hangman"
|
||
},
|
||
"rights": {
|
||
"talk": "Hablar",
|
||
"scream": "Gritar",
|
||
"whisper": "Susurrar",
|
||
"start game": "Iniciar juego",
|
||
"open room": "Abrir sala",
|
||
"systemmessage": "Mensaje del sistema"
|
||
},
|
||
"confirmDelete": "¿De verdad quieres eliminar esta sala de chat?"
|
||
},
|
||
"match3": {
|
||
"title": "Administrar niveles de Match3",
|
||
"newLevel": "Crear nuevo nivel",
|
||
"editLevel": "Editar nivel",
|
||
"deleteLevel": "Eliminar nivel",
|
||
"confirmDelete": "¿De verdad quieres eliminar este nivel?",
|
||
"levelName": "Name",
|
||
"levelDescription": "Descripción",
|
||
"boardWidth": "Breite",
|
||
"boardHeight": "Altura",
|
||
"moveLimit": "Zug-Limit",
|
||
"levelOrder": "Reihenfolge",
|
||
"boardLayout": "Board-Layout",
|
||
"tileTypes": "Tipos de fichas disponibles",
|
||
"actions": "Acciones",
|
||
"edit": "Editar",
|
||
"delete": "Eliminar",
|
||
"save": "Guardar",
|
||
"cancel": "Cancelar",
|
||
"update": "Actualizar",
|
||
"create": "Crear",
|
||
"boardControls": {
|
||
"fillAll": "Activar todo",
|
||
"clearAll": "Desactivar todo",
|
||
"invert": "Invertir"
|
||
},
|
||
"loading": "Cargando niveles...",
|
||
"retry": "Reintentar",
|
||
"availableLevels": "Niveles disponibles: {count}",
|
||
"levelFormat": "Level {number}: {name}",
|
||
"levelObjectives": "Level-Objekte",
|
||
"objectivesTitle": "Siegvoraussetzungen",
|
||
"addObjective": "Añadir objetivo",
|
||
"removeObjective": "Eliminar",
|
||
"objectiveType": "Typ",
|
||
"objectiveTypeScore": "Punkte sammeln",
|
||
"objectiveTypeMatches": "Matches machen",
|
||
"objectiveTypeMoves": "Usar movimientos",
|
||
"objectiveTypeTime": "Zeit einhalten",
|
||
"objectiveTypeSpecial": "Spezialziel",
|
||
"objectiveOperator": "Operator",
|
||
"operatorGreaterEqual": "Mayor o igual (≥)",
|
||
"operatorLessEqual": "Menor o igual (≤)",
|
||
"operatorEqual": "Gleich (=)",
|
||
"operatorGreater": "Mayor que (>)",
|
||
"operatorLess": "Menor que (<)",
|
||
"objectiveTarget": "Zielwert",
|
||
"objectiveTargetPlaceholder": "z.B. 100",
|
||
"objectiveOrder": "Reihenfolge",
|
||
"objectiveOrderPlaceholder": "1, 2, 3...",
|
||
"objectiveDescription": "Descripción",
|
||
"objectiveDescriptionPlaceholder": "z.B. Sammle 100 Punkte",
|
||
"objectiveRequired": "Requerido para completar el nivel",
|
||
"noObjectives": "No hay condiciones de victoria definidas. Haz clic en 'Añadir objetivo' para crear una."
|
||
},
|
||
"userStatistics": {
|
||
"title": "[Admin] - Estadísticas de usuarios",
|
||
"totalUsers": "Total de usuarios",
|
||
"genderDistribution": "Distribución por género",
|
||
"ageDistribution": "Distribución por edad"
|
||
},
|
||
"taxiTools": {
|
||
"title": "Taxi-Tools",
|
||
"description": "Administra mapas, niveles y configuraciones de Taxi",
|
||
"mapEditor": {
|
||
"title": "Editar mapa",
|
||
"availableMaps": "Mapas disponibles: {count}",
|
||
"newMap": "Crear nuevo mapa",
|
||
"mapFormat": "{name} (Position: {x},{y})",
|
||
"mapName": "Map-Name",
|
||
"mapDescription": "Descripción",
|
||
"mapWidth": "Breite",
|
||
"mapHeight": "Altura",
|
||
"tileSize": "Tamaño de las fichas",
|
||
"positionX": "X-Position",
|
||
"positionY": "Y-Position",
|
||
"mapType": "Map-Typ",
|
||
"mapLayout": "Map-Layout",
|
||
"tilePalette": "Tile-Palette",
|
||
"streetNames": "Nombres de calles",
|
||
"extraElements": "Elementos adicionales",
|
||
"streetNameHorizontal": "Nombre de calle (horizontal)",
|
||
"streetNameVertical": "Nombre de calle (vertical)",
|
||
"continueHorizontal": "Continuar en otra dirección (→)",
|
||
"continueVertical": "Continuar en otra dirección (↓)",
|
||
"continueOther": "Continuar en otra dirección",
|
||
"position": "Position",
|
||
"fillAllRoads": "Todas las calles",
|
||
"clearAll": "Borrar todo",
|
||
"generateRandom": "Generar aleatoriamente",
|
||
"delete": "Eliminar",
|
||
"update": "Actualizar",
|
||
"cancel": "Cancelar",
|
||
"create": "Crear",
|
||
"createSuccess": "¡El mapa se ha creado correctamente!",
|
||
"updateSuccess": "¡El mapa se ha actualizado correctamente!",
|
||
"deleteSuccess": "¡El mapa se ha eliminado correctamente!"
|
||
}
|
||
},
|
||
"servicesStatus": {
|
||
"title": "Service-Status",
|
||
"description": "Supervisa el estado del backend, el chat y el daemon",
|
||
"status": {
|
||
"connected": "Conectado",
|
||
"connecting": "Conectando...",
|
||
"disconnected": "Desconectado",
|
||
"error": "Error",
|
||
"unknown": "Desconocido"
|
||
},
|
||
"backend": {
|
||
"title": "Backend",
|
||
"connected": "El servicio de backend está accesible y conectado"
|
||
},
|
||
"chat": {
|
||
"title": "Chat",
|
||
"connected": "El servicio de chat está accesible y conectado"
|
||
},
|
||
"daemon": {
|
||
"title": "Daemon",
|
||
"connected": "El servicio daemon está accesible y conectado",
|
||
"connections": {
|
||
"title": "Aktive Verbindungen",
|
||
"none": "No hay conexiones activas",
|
||
"userId": "Benutzer-ID",
|
||
"username": "Benutzername",
|
||
"connections": "Verbindungen",
|
||
"duration": "Verbindungsdauer",
|
||
"lastPong": "Zeit seit letztem Pong",
|
||
"pingTimeouts": "Ping-Timeouts",
|
||
"pongReceived": "Pong empfangen",
|
||
"yes": "Ja",
|
||
"no": "Nein",
|
||
"notConnected": "Daemon no conectado",
|
||
"sendError": "Error al enviar la solicitud",
|
||
"error": "Error al obtener las conexiones"
|
||
},
|
||
"websocketLog": {
|
||
"title": "WebSocket-Log",
|
||
"showLog": "WebSocket-Log anzeigen",
|
||
"refresh": "Aktualisieren",
|
||
"loading": "Cargando...",
|
||
"close": "Cerrar",
|
||
"entryCount": "{count} entradas",
|
||
"noEntries": "No hay entradas de registro",
|
||
"notConnected": "Daemon no conectado",
|
||
"sendError": "Error al enviar la solicitud",
|
||
"parseError": "Error al procesar la respuesta",
|
||
"timestamp": "Zeitstempel",
|
||
"direction": "Richtung",
|
||
"peer": "Peer",
|
||
"connUser": "Verbindungs-User",
|
||
"targetUser": "Ziel-User",
|
||
"event": "Event"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|