diff --git a/client/src/locales/de.json b/client/src/locales/de.json index f71c32a89..0fcdba385 100644 --- a/client/src/locales/de.json +++ b/client/src/locales/de.json @@ -17,7 +17,11 @@ "no": "Nein", "show": "Anzeigen", "hide": "Ausblenden", - "undo": "Rückgängig" + "undo": "Rückgängig", + "pagination": { + "pageOf": "Seite {page} von {totalPages}", + "goToPage": "Gehe zur Seite {page}" + } }, "settings": { "privacySharing": { @@ -1359,6 +1363,8 @@ "server-fonts": "Server-Schriftarten" }, "tts": { + "addProvider": "Anbieter hinzufügen", + "manageVoices": "Stimmen verwalten", "deleted": "Anbieter gelöscht", "saveFailed": "{name} konnte nicht kopiert werden" }, @@ -5678,6 +5684,7 @@ } }, "bookRequests": { + "title": "Anfragen (Beta)", "detail": { "series": "Reihe", "dockFileIdLabel": "Bücherablage Datei-ID", diff --git a/client/src/locales/es.json b/client/src/locales/es.json index e17fd61fc..1c468da62 100644 --- a/client/src/locales/es.json +++ b/client/src/locales/es.json @@ -16,7 +16,15 @@ "yes": "Sí", "no": "No", "show": "Mostrar", - "hide": "Ocultar" + "hide": "Ocultar", + "undo": "Deshacer", + "pagination": { + "label": "Paginación", + "pageOf": "Página {page} de {totalPages}", + "previousPage": "Página anterior", + "nextPage": "Página siguiente", + "goToPage": "Ir a la página {page}" + } }, "settings": { "privacySharing": { @@ -420,6 +428,11 @@ "collapseSeries": { "label": "Contraer series por defecto", "hint": "Agrupa los libros de la misma serie en una sola tarjeta en las vistas de biblioteca y colección" + }, + "bookRequests": { + "label": "Mostrar solicitudes de libros", + "hint": "Mostrar páginas de solicitudes, peticiones y ajustes en esta cuenta. Las solicitudes existentes siguen ejecutándose cuando se ocultan.", + "saveFailed": "No se pudo actualizar la visibilidad de las solicitudes de libros" } }, "icons": { @@ -1356,6 +1369,7 @@ "account-activity": "Actividad de la cuenta", "magic-links": "Enlaces mágicos", "oidc": "OIDC/SSO", + "tts": "Texto-a-Voz", "server-fonts": "Fuentes del servidor" }, "tts": { @@ -1421,7 +1435,35 @@ "formModel": "Default model", "formModelPlaceholder": "tts-1", "formDiscovery": "This provider can list its own voices", - "formRequired": "Name and base URL are required" + "formRequired": "Name and base URL are required", + "curation": { + "title": "Gestionar Voces - {provider}", + "summary": "{count, plural, one {# voz configurada} other {# voces configuradas}}", + "summaryUnsaved": "{count, plural, one {# voz configurada} other {# voces configuradas}} - Cambios sin guardar", + "importFromProvider": "Importar del proveedor", + "loadPreset": "Load {preset} preset", + "importUnsupported": "Este proveedor no soporta el descubrimiento de voz.", + "importUnsupportedWithPreset": "Este proveedor no soporta el descubrimiento de voz. Utilice el botón \"Cargar configuración predefinida {preset}\".", + "discoveryUnsupported": "Este proveedor no ofrece un endpoint para consultar la lista de voces.", + "discoverFailed": "Error al descubrir voces", + "emptyImportOrPreset": "No hay voces configuradas. Importar desde el proveedor o cargar un preset predeterminado.", + "emptyImport": "No hay voces configuradas. Importar desde el proveedor.", + "emptyPreset": "No hay voces configuradas. Carga un ajuste predefinido para empezar.", + "emptyManual": "No hay voces configuradas. Agrega voces manualmente.", + "columnId": "ID", + "columnName": "Nombre", + "columnLocale": "Región", + "columnGender": "Género", + "genderMale": "Hombre", + "genderFemale": "Mujer", + "genderUnknown": "Desconocido", + "cancelEdit": "Cancelar edición", + "editVoice": "Editar {name}", + "deleteVoice": "Eliminar {name}", + "previewVoice": "Preview {name}", + "stopPreview": "Detener vista previa para {name}", + "saveVoices": "{count, plural, one {Guarda # voz} other {Guarda # voces}}" + } }, "serverFonts": { "title": "Fuentes del servidor", @@ -1442,11 +1484,13 @@ "opds": "OPDS", "kobo": "Kobo", "koreader": "KOReader", + "tts": "Texto-a-Voz", "integrations": "Integraciones", "hardcover": "Hardcover", "admin": "administrador", "system": "Sistema", - "account": "Cuenta" + "account": "Cuenta", + "podcasts": "Podcasts" } }, "integrations": { @@ -1472,6 +1516,7 @@ "subtitle": "Subtítulo", "description": "Descripción", "cover": "Portada", + "audioCover": "Portadas de audiolibros", "authors": "Autores", "publisher": "Editor", "publishedYear": "Año de publicación", @@ -1656,6 +1701,7 @@ "clearAllProviders": "Borrar todos los proveedores", "clearAll": "Borrar todo", "resetToDefault": "Restablecer los valores predeterminados", + "bookCover": "Portada de libro", "reset": "Reiniciar", "dragProvidersHint": "Arrastre proveedores desde aquí a cualquier campo para agregarlos", "dragProviderHere": "arrastra un proveedor aquí", @@ -1790,6 +1836,7 @@ "makeFirst": "Hacer primero en todas partes", "makeLast": "Hacer la última en todas partes", "removeEverywhere": "Eliminar de todos los campos", + "audioCoverOrderKept": "La reordenación omite la regla de portada de audiolibros, que mantiene las fuentes de audiolibros en primer lugar.", "allFields": "Todos los campos", "overridesOnly": "Sobrescribir solo", "clearFilters": "Limpiar filtros" @@ -2913,7 +2960,8 @@ "qbittorrent": "qBittorrent", "transmission": "Transmission", "deluge": "Deluge", - "nzbget": "NZBGet" + "nzbget": "NZBGet", + "sabnzbd": "SABnzbd" }, "color": { "label": "Color", @@ -2926,10 +2974,13 @@ "baseUrl": "URL base", "username": "Nombre de usuario", "password": "Contraseña", + "apiKey": "Clave API", "passwordKeep": "Dejar en blanco para mantener la contraseña almacenada", + "apiKeyKeep": "Dejar en blanco para mantener la contraseña almacenada", "passwordClear": "Limpiar", "passwordKeepAction": "Mantener", "passwordWillClear": "La contraseña almacenada se elimina al guardar", + "apiKeyWillClear": "La contraseña almacenada se elimina al guardar", "category": "Categoría", "categoryHint": "Etiqueta los torrents que añade BookOrbit, para que solo actúe sobre los suyos.", "priority": "Prioridad", @@ -2938,6 +2989,7 @@ "allowPrivateAddress": "Permitir direcciones privadas", "allowPrivateAddressHint": "Necesario cuando el cliente se ejecuta en su red local o en la misma máquina.", "passwordBrief": "Almacenado de forma cifrada.", + "apiKeyBrief": "Se encuentra en SABnzbd, en Configuración > General. Se almacena cifrado.", "useHardlinksBrief": "Semillas sin usar el disco dos veces. Vuelve a una copia a través de sistemas de archivos." }, "mappings": { @@ -2991,7 +3043,8 @@ "pathNotAbsolute": "Los mapeos de rutas deben usar rutas absolutas en ambos lados", "nameRequired": "Dar un nombre a este cliente.", "urlRequired": "Introduce la dirección en la que BookOrbit debe conectarse a este cliente.", - "mappingRequired": "Agregue al menos un mapeo de rutas, de modo que BookOrbit sepa de qué directorio puede importar." + "mappingRequired": "Agregue al menos un mapeo de rutas, de modo que BookOrbit sepa de qué directorio puede importar.", + "apiKeyRequired": "Introduzca la clave de API SABnzbd en Config > General." }, "encryptionKeyMissing": "BOOK_REQUEST_ENCRYPTION_KEY no está establecido, por lo que no se puede guardar una contraseña de cliente. Generar una con: openssl rand -hex 32", "confirmDelete": { @@ -3009,6 +3062,9 @@ "body": "BookOrbit no incluye fuentes propias, por lo que una búsqueda de solicitudes no encuentra nada hasta que añadas una. Hay dos vías.", "bodyOneWay": "BookOrbit no incluye fuentes propias, por lo que una búsqueda de solicitudes no encuentra nada hasta que añadas una.", "responsibility": "Tú eres responsable de las fuentes que añadas al indexador.", + "prowlarrTitle": "Conectar Prowlarr", + "prowlarrBody": "Gestiona varios indexadores de torrents y Usenet mediante una única conexión.", + "recommended": "Recomendado", "pluginTitle": "Instalar un plugin", "pluginBody": "Un archivo que enseña a BookOrbit a buscar en un sitio específico. Tú lo proporcionas y, después, completas su configuración.", "torznabTitle": "Añadir un indexador Torznab", @@ -3033,6 +3089,18 @@ "deleted": "Fuente eliminada", "unavailable": "Esta instalación no tiene ningún tipo de indexador \"{type}\". Cambie el tipo o elimine su plugin y la configuración guardada.", "pluginFailed": "El plugin en \"{directory}\" no se cargó: {reason}", + "sources": { + "title": "Fuentes", + "hint": "Todo lo que BookOrbit puede buscar, agrupado por conexión.", + "add": "Añadir fuente", + "prowlarr": "Conectar Prowlarr", + "prowlarrHint": "Gestiona varios indexadores de torrents y Usenet mediante una única conexión.", + "direct": "Añadir Torznab o Newznab", + "directHint": "Conecta un feed compatible directamente.", + "plugin": "Instalar un plugin", + "pluginHint": "Añadir una implementación de fuente especializada.", + "activeSummary": "{count, plural, one {# fuente activa} other {# fuentes activas}}: {torrent} torrent, {usenet} Usenet, {direct} directo" + }, "network": { "title": "Red avanzada", "hint": "Solo es necesario cuando la ruta predeterminada a esta fuente no funciona. Lo que está permitido no cambia: independientemente de la dirección a la que se acceda, se seguirá comprobando de la misma manera.", @@ -3218,6 +3286,61 @@ }, "posture": "BookOrbit no proporciona o respalda fuentes de indexadores. Cada fuente aquí es una que configuraste, y eres responsable de lo que busques y descarga a través de ella." }, + "managers": { + "add": "Añadir Prowlarr", + "loading": "Cargando conexiones de Prowlarr...", + "managedSources": "{count, plural, one {# indexador gestionado} other {# indexadores gestionados}}", + "protocol": { + "torrent": "Torrent", + "usenet": "Usenet" + }, + "saved": "Ajustes de Prowlarr guardados", + "deleted": "Prowlarr eliminado", + "synced": "Fuentes de Prowlarr sincronizadas", + "test": "Prueba de conexión", + "sync": "Sincronizar", + "testOk": "Conectado con Prowlarr {version}. Encontrado {count, plural, one {# fuente} other {# fuentes}}.", + "unavailable": "No disponible", + "priority": "Prowlarr priority {priority}", + "toggleSource": "Buscar con {name}", + "changeColor": "Cambiar color para {name}", + "sourceColor": "Color original", + "sourceColorHint": "Versiones de marca devueltas por {name} a través de BookOrbit.", + "noSources": "No se encontraron indexadores de torrents o Usenet compatibles. Sincroniza después de añadir uno en Prowlarr.", + "unknown": "Desconocido", + "editorDescription": "Configuración de conexión y sincronización de fuentes para Prowlarr.", + "confirmDelete": "¿Eliminar esta conexión de Prowlarr?", + "deleteConsequence": "La conexión, la clave API cifrada, y todas las fuentes sincronizadas se eliminan. Las descargas que ya están en progreso no se eliminan.", + "fields": { + "name": "Nombre", + "color": "Color de conexión", + "colorHint": "Marca esta conexión Prowlarr aquí. Cada indexador administrado tiene su propio color de liberación.", + "baseUrl": "URL base", + "apiKey": "Clave API", + "apiKeyHint": "Se encuentra en Prowlarr, en Ajustes > General > Seguridad. Se almacena cifrado.", + "syncNew": "Habilitar fuentes recién descubiertas", + "syncNewHint": "Los nuevos índices Prowlarr pueden ser buscados inmediatamente. Fuentes que usted apaga aquí permanecen apagados después de sincronizaciones posteriores.", + "autoExpand": "Reintentar sin filtros de categoría", + "autoExpandHint": "Cuando un indexador responde correctamente sin resultados, vuelve a intentarlo una vez sin el filtro de categoría de libros de BookOrbit.", + "inheritSeedLimits": "Usar límites de semillas de Prowlarr", + "inheritSeedLimitsHint": "Aplicar la relación de semilla configurada y el tiempo de semilla de cada índice de torrent a futuras descargas cuando no exista ninguna anulación de BookOrbit.", + "perIndexerTimeout": "Tiempo de espera del indexador (segundos)", + "perIndexerTimeoutHint": "Cuánto puede tardar una fuente sincronizada. Los indexadores que utilizan FlareSolverr y son lentos pueden necesitar más tiempo.", + "overallBudget": "Presupuesto Prowlarr (segundos)", + "overallBudgetHint": "Tiempo máximo de reloj de pared compartido por todas las fuentes de esta conexión Prowlarr durante una búsqueda." + }, + "errors": { + "load": "No se pudo cargar los indexadores", + "nameTaken": "Ya existe una conexión Prowlarr con ese nombre", + "urlPrivate": "Esa dirección está en una red privada o local. Active \"Permitir direcciones privadas\" si el cliente se ejecuta allí.", + "required": "Introduzca un nombre, URL base y clave API.", + "save": "No se pudo guardar la conexión Prowlarr", + "delete": "No se pudo eliminar la conexión Prowlarr", + "test": "No se pudo alcanzar Prowlarr", + "sync": "No se pudo sincronizar las fuentes de Prowlarr", + "source": "No se ha podido eliminar esa fuente" + } + }, "automation": { "title": "Automatización", "pipeline": "Cuando termina una descarga, pasa por Book Dock, donde se leen el título y el autor para poder nombrar y archivar el archivo correctamente. Después, se mueve automáticamente a la biblioteca de destino de la solicitud. Solo se detendrá para que intervengas si la comprobación de importación está activada y el archivo no coincide con lo solicitado.", @@ -3350,7 +3473,8 @@ "qbittorrent": "Tu propio qBittorrent. Necesita una dirección y una cuenta.", "transmission": "Tu propio transmisión. No tiene categorías, por lo que la categoría se convierte en una subcarpeta de su directorio de descargas.", "deluge": "Tu propio Deluge. Inicia sesión con la contraseña de la Web UI; la categoría necesita que el plugin de etiqueta encenda.", - "nzbget": "Tu propio NZBGet. BookOrbit envía archivos NZB sobre su API JSON-RPC." + "nzbget": "Tu propio NZBGet. BookOrbit envía archivos NZB sobre su API JSON-RPC.", + "sabnzbd": "Tu propio SABnzbd. BookOrbit envía archivos NZB usando su clave API." }, "searchHealth": { "failingOnce": "Última búsqueda fallida", @@ -3527,8 +3651,12 @@ "trend": "Tendencia de lectura diaria", "emptyTitle": "No hay actividad de lectura en este período.", "noData": "No hay datos de lectura registrados para este período.", + "sessionCount": "{count, plural, one {# sesión} other {# sesiones}}", "sourceNames": { "web": "Lector web", + "ios": "App iOS", + "watchos": "Apple Watch", + "android": "Android App", "koreader": "KOReader", "manual": "Manual", "kobo": "Kobo", @@ -3606,6 +3734,7 @@ "presetClearAll": "Borrar todo", "permissionGroups": { "content": "Contenido", + "podcasts": "Podcasts", "devicesAccess": "Dispositivos y acceso", "email": "Correo electrónico", "administration": "Administración", @@ -4186,6 +4315,8 @@ "User": "Usuario", "Library": "Biblioteca", "Book": "Libro", + "Podcast": "Podcast", + "PodcastEpisode": "Episodio de Podcast", "Collection": "Colección", "SmartScope": "Alcance Inteligente", "BookDockFile": "Archivo de Book Dock", @@ -4250,6 +4381,17 @@ "LibraryWriteMetadataToFiles": "Escribir metadatos en archivos", "LibraryBulkRename": "Cambiar el nombre de los archivos de la biblioteca", "LibraryRecomputeAddedAt": "Recalcular la fecha añadida", + "PodcastCreate": "Crear podcast", + "PodcastUpdate": "Actualizar podcast", + "PodcastArchive": "Archivar podcast", + "PodcastRestore": "Restaurar podcast", + "PodcastPurge": "Purgar podcast", + "PodcastMerge": "Fusionar podcast", + "PodcastDownload": "Descargar episodio de podcast", + "PodcastDownloadRemove": "Eliminar descarga de podcast", + "PodcastRetentionUpdate": "Actualizar retención de podcast", + "PodcastOpmlImport": "Importar podcast OPML", + "PodcastOpmlExport": "Exportar podcast OPML", "BookUpload": "Subir libro", "BookMetadataUpdate": "Actualizar metadatos del libro", "BookMetadataLocksUpdate": "Actualizar bloqueos de metadatos", @@ -4654,6 +4796,26 @@ "primary": "Principal", "audiobook": "Audiolibro" }, + "formats": { + "epub": "E-book EPUB", + "kepub": "E-book KEPUB", + "pdf": "Documento PDF", + "cbz": "CBZ cómic", + "cbr": "CBR cómic", + "cb7": "CB7 cómic", + "mobi": "E-book MOBI", + "azw3": "E-book AZW3", + "azw": "E-book AZW", + "fb2": "Libro de ficción", + "m4b": "Audiobook M4B", + "mp3": "Audio MP3", + "m4a": "Audio M4A", + "opus": "Audio Opus", + "ogg": "Audio OGG", + "flac": "Audio FLAC", + "readAlong": "Lectura EPUB", + "primary": "Formato Principal" + }, "actions": { "read": "Leer", "listen": "Escuchar", @@ -4674,7 +4836,14 @@ "setStatus": "Establecer estado", "sendViaEmail": "Enviar por correo electrónico", "rate": "Califica {star}", - "openAs": "Abrir como {format}" + "openAs": "Abrir como {format}", + "openReadAlong": "Abrir lectura a lo largo de EPUB" + }, + "coverRegeneration": { + "failed": "No se pudo regenerar la portada", + "bulkInProgress": "Volver a extraer portadas de libros", + "bulkFailed": "No se pudo volver a extraer las portadas", + "bulkCompleted": "Re-extraído {updated} de {processed, plural, one {# cubre} other {# cubre}}" }, "readStatus": { "unread": "No leído", @@ -4696,7 +4865,10 @@ "progressPercent": "Descargando {percent} de {total}", "progressBytes": "Descargando {transferred}", "failed": "Descarga fallida", - "exportFailed": "Exportación fallida" + "exportFailed": "Exportación fallida", + "audiolessEpub": "EPUB KOReader", + "audiolessEpubHint": "Descargar EPUB para KOReader con archivos de audio eliminados", + "noAudio": "sin audio" }, "sort": { "moveUp": "Subir", @@ -4704,6 +4876,7 @@ "ascending": "Ascendente", "descending": "Descendente", "fields": { + "relevance": "Relevancia", "author": "Autor", "title": "Título", "series": "Serie", @@ -4767,6 +4940,7 @@ "isbn": "ISBN", "metadataScore": "Puntuación de metadatos", "cover": "Portada", + "audioCover": "Portadas de audiolibros", "lockStatus": "Estado de bloqueo", "seriesStatus": "Estado de la serie" }, @@ -5070,7 +5244,32 @@ "saving": "Guardando...", "saveCover": "Guardar portada", "revertToOriginal": "Volver al original", - "regenerateCover": "Regenerar cubierta" + "regenerateCover": "Regenerar cubierta", + "slotsLabel": "Portada para editar", + "slotEbook": "Libro", + "slotAudio": "Audiolibro", + "slotEbookName": "Portada de libro", + "slotAudioName": "Portada de audiolibro", + "editingEbook": "Editando la portada del libro", + "editingAudio": "Editando la portada del audiolibro", + "lockEbookCover": "Bloquear portada del libro", + "unlockEbookCover": "Desbloquear portada del libro", + "lockAudioCover": "Bloquear portada de audiolibro", + "unlockAudioCover": "Desbloquear portada de audiolibro", + "viewLarger": "Ver más grande", + "viewLargerEbook": "Ver portada de libro más grande", + "viewLargerAudio": "Ver portada de audiolibro más grande", + "sourceMode": "Fuente de imagen", + "urlLabel": "URL de la imagen", + "saveFailed": "No se ha podido guardar la portada", + "revertFailed": "No se ha podido revertir la portada" + }, + "coverLightbox": { + "title": "Vista previa de la portada", + "description": "La portada de tamaño completo. Pulse Escape para cerrar.", + "switchLabel": "Portada para mostrar", + "ebook": "Libro", + "audio": "Audiolibro" }, "coverSearch": { "title": "Búsqueda en línea", @@ -5111,14 +5310,38 @@ "cancelEditAria": "Cancelar edición de reseña personal" }, "editCover": "Editar portada", + "viewCover": "Ver portada más grande", "finished": "Terminado", "resetFileProgress": "Restablecer el progreso del archivo", + "resetEditionProgress": "Restablecer progreso para {format}", "resetting": "Restableciendo...", "resetProgressConfirm": "¿Restablecer el progreso de lectura almacenado para {label}?", "moreCount": "+{count} más", "untitled": "Sin título", "metadataScore": "Puntuación de metadatos", "primaryFormat": "Formato Principal", + "readAloudSync": { + "title": "Sincronización del progreso de lectura en voz alta", + "state": { + "enabled": "Activado", + "disabled": "Desactivado", + "unavailable": "No disponible", + "epubCopiesOnly": "Solo copias EPUB" + }, + "enabledDescription": "Las posiciones de Audiobook, lector web, Kobo y KOReader permanecen sincronizadas.", + "disabledDescription": "Cada formato mantiene su propia posición de lectura.", + "epubCopiesDescription": "Las posiciones de los lectores web, Kobo y KOReader están sincronizadas a través de las copias de EPUB. Añade archivos de audio coincidentes para sincronizar también el audiolibro.", + "reason": { + "no_media_overlay_epub": "Se requiere un EPUB de lectura sincronizada con superposiciones multimedia.", + "no_audio_files": "Se requieren archivos de audio independientes que coincidan.", + "missing_duration": "Los metadatos de duración de audio están incompletos.", + "durationMismatch": "Las duraciones no coinciden lo suficiente: audiolibro {audio}, EPUB de lectura sincronizada {overlay}." + }, + "enable": "Activar", + "disable": "Desactivar", + "saving": "Guardando...", + "saveFailed": "No se pudo actualizar la sincronización de progreso en voz alta." + }, "openIn": "Abrir en {provider}", "showLess": "Mostrar menos", "showMore": "Mostrar más", @@ -5228,6 +5451,7 @@ "loadFromFileTooltip": "Cargar metadatos desde el archivo del libro principal", "writeToFile": "Escribir al archivo", "autoFill": "Autocompletar", + "autoFillFailed": "Auto-relleno fallido", "fetchingMetadata": "Obteniendo metadatos...", "noExistingProviderIds": "No se han obtenido metadatos: ninguno de los proveedores activos de Reglas de Campo tiene un ID almacenado en este libro.", "allFieldsLocked": "Todos los campos están bloqueados", @@ -5297,9 +5521,19 @@ "hideUnchanged": "Ocultar sin cambios", "showUnchanged": "Mostrar sin cambios", "current": "Actual", + "new": "Nuevo", "noMetadata": "No hay metadatos disponibles de esta fuente.", "noChangedFields": "No hay campos modificados ni faltantes. Utilice Mostrar sin cambios para inspeccionar todo.", - "applyToForm": "Aplicar al formulario" + "applyToForm": "Aplicar al formulario", + "secondCover": { + "audioResults": "Resultados de portada de audiolibro", + "bookResults": "Resultados de portada del libro", + "showCover": "Mostrar la portada {provider} , {index} de {total}", + "searchingAudio": "Buscando ediciones de audiolibro...", + "searchingBook": "Buscando ediciones de libro...", + "noAudio": "No se encontraron portadas de audiolibro.", + "noBook": "No se han encontrado portadas de libros." + } }, "diff": { "locked": "Bloqueado", @@ -5308,8 +5542,14 @@ "newCoverAlt": "Nueva portada", "pickCoverFromProvider": "Elija cobertura de otro proveedor", "pickCoverSource": "Elija la fuente de la portada", + "coverShapeHint": { + "portraitForAudio": "Imagen vertical. Las portadas de audiolibro son cuadradas.", + "squareForBook": "Imagen cuadrada. Las portadas de los libros son retratos." + }, "pickFromProvider": "Elija de otro proveedor", "pickSource": "Elegir fuente", + "useNew": "Usa el nuevo {field}", + "keepCurrent": "Mantener el {field} actual", "genreWriteMode": { "label": "Cómo aplicar géneros", "merge": "Fusionar", @@ -5318,7 +5558,57 @@ "empty": "vacío", "showLess": "Mostrar menos", "showMore": "Mostrar más", - "coverPreviewAlt": "Vista previa de la portada" + "coverPreviewAlt": "Vista previa de la portada", + "fields": { + "coverUrl": "Portada", + "bookCover": "Portada de libro", + "audioCover": "Portada de audiolibro", + "title": "Título", + "subtitle": "Subtítulo", + "authors": "Autores", + "description": "Descripción", + "publisher": "Editor", + "publishedDate": "Publicado", + "language": "Idioma", + "pageCount": "Número de páginas", + "communityRating": "Calificación de la comunidad", + "seriesName": "Serie", + "seriesIndex": "Índice de series", + "isbn13": "ISBN-13", + "isbn10": "ISBN-10", + "genres": "Géneros", + "narrators": "Narradores", + "durationSeconds": "Duración (segundos)", + "abridged": "Abreviado", + "hardcoverEditionId": "ID de la edición en tapa dura", + "comicIssueNumber": "Número de emisión", + "comicVolumeName": "Volumen", + "comicPencillers": "Dibujantes a lápiz", + "comicInkers": "Entintadores", + "comicColorists": "Coloristas", + "comicLetterers": "Rotuladores", + "comicCoverArtists": "Artistas de portada", + "comicCharacters": "Personajes", + "comicTeams": "Equipos", + "comicLocations": "Ubicaciones", + "comicStoryArcs": "Arcos de la historia", + "sourceUrl": "URL de origen" + }, + "providerIds": { + "google": "ID de Google Books.", + "goodreads": "ID de Goodreads", + "amazon": "ID de Amazon", + "hardcover": "ID de Hardcover", + "openLibrary": "ID de Open Library", + "itunes": "ID de iTunes", + "audible": "ID de Audible", + "librofm": "Libro.fm ISBN", + "comicvine": "ID de ComicVine", + "ranobedb": "ID de RanobeDB", + "kobo": "ID de Kobo", + "lubimyczytac": "ID de LubimyCzytac", + "aladin": "ID de Aladin" + } }, "searchDrawer": { "searchTitle": "Metadatos de búsqueda", @@ -5911,6 +6201,8 @@ "table": { "title": "Sesiones", "sourceWeb": "Web", + "sourceIos": "App iOS", + "sourceWatchos": "Apple Watch", "sourceManual": "Manual", "colDate": "Fecha", "colDateMobile": "Fecha", @@ -5993,6 +6285,15 @@ "chips": { "addPlaceholder": "Añadir..." }, + "quickFilter": { + "presentFiles": "Filtrar los archivos actuales", + "missingFiles": "Filtrar a archivos faltantes", + "withCovers": "Filtrar a libros con portadas", + "missingCovers": "Filtrar a los libros que faltan portadas", + "missingAudioCovers": "Filtrar a libros que faltan portadas de audiolibro", + "withValues": "Filtrar a filas con valores", + "emptyRows": "Filtrar a filas vacías" + }, "cover": { "previewDescription": "Vista previa de la portada del libro", "editDescription": "Editar portada del libro", @@ -6039,6 +6340,8 @@ "read": { "play": "Jugar", "read": "Leído", + "readFormat": "Leer {format}", + "playFormat": "Reproducir {format}", "primary": "Principal", "peekFormat": "Vistazo {format}", "chooseFormat": "Elige el formato para leer o reproducir", @@ -7136,6 +7439,7 @@ }, "createDialog": { "title": "Nueva colección", + "podcastTitle": "Nueva colección de Podcast", "namePlaceholder": "por ej. Favoritos" }, "editDialog": { @@ -7240,6 +7544,10 @@ }, "support": "Soporte BookOrbit", "supportAria": "Soporte BookOrbit en Ko-fi", + "appLinks": { + "ios": "Obtén la aplicación para iOS", + "android": "Aplicación Android próximamente" + }, "sectionHeader": { "add": "Añadir", "showAll": "Mostrar todo", @@ -7261,6 +7569,30 @@ "seeAllLibraries": "Ver todas las bibliotecas ({count})", "seeAllSmartScopes": "Ver todos los Alcances Inteligentes ({count})", "seeAllCollections": "Ver todas las colecciones ({count})", + "podcasts": "Podcasts", + "newPodcastLibrary": "Nueva biblioteca de Podcast", + "noPodcastLibraries": "Aún no hay bibliotecas de podcast", + "filterPodcastLibraries": "Filtrar bibliotecas de podcast", + "filterPodcastLibrariesPlaceholder": "Filtrar bibliotecas de podcast...", + "seeAllPodcastLibraries": "Ver todas las bibliotecas ({count})", + "podcastScopes": "Ámbitos de Podcast", + "newPodcastScope": "Nuevo ámbito de Podcast", + "noPodcastScopes": "Aún no hay alcances de podcast", + "filterPodcastScopes": "Filtrar alcances de podcast", + "filterPodcastScopesPlaceholder": "Filtrar alcances de podcast...", + "seeAllPodcastScopes": "Ver todos los alcances de podcast ({count})", + "podcastCollections": "Colecciones de Podcast", + "newPodcastCollection": "Nueva colección de Podcast", + "noPodcastCollections": "Aún no hay colecciones de podcast", + "filterPodcastCollections": "Filtrar colecciones de podcast", + "filterPodcastCollectionsPlaceholder": "Filtrar colecciones de podcast...", + "seeAllPodcastCollections": "Ver todas las colecciones de podcast ({count})", + "queue": "Cola", + "mode": { + "books": "Libros", + "podcasts": "Podcasts", + "switcherAria": "Cambiar entre libros y podcasts" + }, "updateAvailable": "Actualizar {version}", "updateTooltip": "Actualización {version} disponible", "openUpdateRelease": "Abrir la versión {version} en GitHub", @@ -7274,7 +7606,15 @@ "dropped": "{name} soltado en la posición {position} de {total}", "cancelled": "Reordenación cancelada. {name} volvió a la posición {position} de {total}.", "filteredHint": "Borra el filtro para reordenar" - } + }, + "podcastImportProgress": "Archivos {processed}/{total}", + "podcastImportCounting": "Contando archivos…", + "playlists": "Listas inteligentes", + "newPlaylist": "Nueva lista inteligente", + "noPlaylists": "Aún no hay listas inteligentes", + "filterPlaylists": "Filtrar listas inteligentes", + "filterPlaylistsPlaceholder": "Filtrar listas de reproducción inteligentes...", + "seeAllPlaylists": "Ver todas las listas de reproducción inteligentes ({count})" }, "selectionActionBar": { "setReadingStatus": "Establecer estado de lectura", @@ -7420,7 +7760,8 @@ "sort": { "custom": "Orden personalizado", "name": "Nombre", - "bookCount": "Número de libros" + "bookCount": "Número de libros", + "showCount": "Mostrar recuento" }, "ascending": "Ascendente", "descending": "Descendente", @@ -7431,6 +7772,7 @@ "bookCount": "Libros: {count}", "showCount": "Shows: {count}", "librariesEmptyHint": "Crea una biblioteca para empezar a añadir libros.", + "podcastLibrariesEmptyHint": "Crear una librería de podcast para comenzar a seguir los espectáculos.", "smartScopesEmptyHint": "Los Alcances Inteligentes guardan un conjunto de filtros que usas a menudo.", "collectionsEmptyHint": "Las colecciones agrupan libros que eliges manualmente." }, @@ -7447,6 +7789,11 @@ "sourceCode": "Código fuente", "license": "Licencia AGPLv3", "additionalTerms": "Términos adicionales" + }, + "formSheet": { + "discardTitle": "¿Descartar cambios?", + "discardDescription": "Los cambios no guardados se perderán.", + "discardConfirm": "Descartar" } }, "customIcons": { @@ -8122,7 +8469,8 @@ "title": "Estilo de portada", "portrait": "Retrato", "square": "cuadrado", - "hint": "Retrato para libros electrónicos o bibliotecas mixtas. Square para bibliotecas exclusivas de audiolibros." + "hint": "Retrato para libros electrónicos o bibliotecas mixtas. Square para bibliotecas exclusivas de audiolibros.", + "hintSlots": "Formato vertical para bibliotecas de ebooks o mixtas, y formato cuadrado para bibliotecas exclusivamente de audiolibros. Un libro que tenga tanto ebook como audiolibro mostrará la portada del libro en una biblioteca vertical y la portada del audiolibro en una biblioteca cuadrada." }, "icon": { "label": "Icono", @@ -8153,7 +8501,16 @@ "noneAdded": "Aún no se han agregado carpetas", "runPrescanHint": "Ejecute un escaneo previo para validar las rutas antes de guardar.", "scanning": "Escaneando…", - "prescan": "Pre-escanear" + "prescan": "Pre-escanear", + "local": { + "title": "Carpetas de podcasts existentes", + "optional": "Opcional", + "description": "Carpetas que ya mantiene los podcasts dentro. BookOrbit los lee donde están y nunca renombre, mueve, o elimina nada dentro.", + "addTitle": "Añadir una carpeta de podcast existente", + "addDescription": "Cada carpeta directamente dentro se convierte en un espectáculo.", + "add": "Añadir otra carpeta", + "remove": "Eliminar {folder}" + } }, "scanner": { "scanMode": { @@ -8236,7 +8593,9 @@ "formatPriority": { "title": "Prioridad de formato", "hint": "Cuando un libro tiene varios formatos, se prefiere el formato más alto de la lista." - } + }, + "moveUp": "Mover {item} arriba", + "moveDown": "Mover {item} abajo" }, "fileWrite": { "maxFileSizeMb": "Tamaño máximo de archivo (MB)", @@ -8291,7 +8650,8 @@ }, "markAsFinished": { "title": "Marcar como terminado", - "hint": "Un libro se marca automáticamente como \"leído\" cuando se alcanza este porcentaje de progreso." + "hint": "Un libro se marca automáticamente como \"leído\" cuando se alcanza este porcentaje de progreso.", + "invalidThreshold": "El progreso final debe estar entre 90 y 100%." } }, "schedule": { @@ -8934,6 +9294,12 @@ "keyboardShortcutsHint": "Atajos de teclado (?)", "enterFullscreen": "Entrar en pantalla completa", "exitFullscreen": "Salir de pantalla completa", + "narrationPlaying": "Reproduciendo narración", + "ttsPlaying": "Reproduciendo TTS", + "listenWithNarrationShort": "Escuchar (narración)", + "listen": "Escuchar", + "listenWithNarration": "Escuchar con narración", + "listenWithTts": "Escuchar con TTS", "footerMode": { "pageProgress": "Información del pie de página: página + progreso", "sessionTimeLeft": "Información del pie de página: sesión de lectura + tiempo restante", @@ -9212,6 +9578,19 @@ "sheet": { "expand": "Expandir panel", "collapse": "Contraer panel" + }, + "narration": { + "fallbackTitle": "Narración", + "meta": "Narración de audio - {speed}x", + "openControls": "Abrir controles de narración", + "previousSentence": "Oración anterior", + "nextSentence": "Siguiente oración", + "play": "Reproducir narración", + "pause": "Pausar narración", + "showControls": "Mostrar controles", + "hideControls": "Ocultar controles", + "stop": "Detener narración", + "error": "Error de reproducción de narración" } }, "scanner": { @@ -9384,6 +9763,7 @@ }, "createDialog": { "title": "Nuevo Alcance Inteligente", + "podcastTitle": "Nueva lista de reproducción inteligente", "createFailed": "No se pudo crear el Alcance Inteligente" }, "saveAsDialog": { @@ -9411,6 +9791,14 @@ "noGenres": "Sin géneros", "epubOnly": "EPUB Solamente" } + }, + "errors": { + "load": "No se pudieron cargar tus alcances inteligentes", + "loadEpisodes": "Error al cargar episodios para esta lista de reproducción inteligente", + "save": "Error al guardar el alcance inteligente", + "delete": "Error al eliminar el alcance inteligente", + "reorder": "Error al reordenar los alcances inteligentes", + "koboSync": "Error al actualizar la sincronización de Kobo para este alcance inteligente" } }, "statistics": { @@ -9589,7 +9977,9 @@ "sourceDistribution": { "title": "Dónde lees", "emptyTitle": "Aún no hay actividad de lectura", - "emptyDescription": "Lea en la web, KOReader o Kobo para ver su fuente dividida." + "emptyDescription": "Lea en la web, KOReader o Kobo para ver su fuente dividida.", + "emptyDescriptionWithAppleClients": "Lee en la web, la aplicación iOS, Apple Watch, KOReader o Kobo para ver tu división de fuentes.", + "emptyDescriptionWithNativeClients": "Lee en la web, en la app para iOS o Android, en el Apple Watch, en KOReader o en Kobo para ver el desglose de tus fuentes." } } }, @@ -9771,7 +10161,16 @@ "isbn": "ISBN", "formats": "Formatos", "collections": "Colecciones", - "added": "Añadido" + "added": "Añadido", + "size": "Tamaño", + "metadata": "Metadatos", + "reading": "Leyendo", + "folder": "Carpeta", + "noIsbn": "No establecido", + "notStarted": "No iniciado", + "outOfHundred": "/100", + "percentRead": "{percent} leídos", + "fileCount": "{count, plural, one {# archivo} other {# archivos}}" }, "initial": { "title": "Encuentra libros duplicados", @@ -9791,11 +10190,82 @@ "status": "No se pudo cargar el progreso del escaneo.", "scan": "El escaneo duplicado falló. Intente ejecutarlo nuevamente.", "results": "No se pudieron cargar grupos duplicados.", - "delete": "No se pudieron eliminar los libros duplicados seleccionados." + "delete": "No se pudieron eliminar los libros duplicados seleccionados.", + "dismiss": "No se pudo descartar ese grupo.", + "restore": "No se pudo restaurar ese par." }, "pagination": { "label": "Páginas de grupos duplicadas", "page": "Página {page} de {total}" + }, + "similarityOption": "{percent} y más", + "scannedBooks": "{count} libros · revisado {when}", + "scanProgress": "{processed} de {total} libros", + "recommended": "Recomendado", + "keeping": "Manteniendo", + "willDelete": "Delete", + "keepCopy": "Mantener {name}", + "selectGroup": "Seleccionar {title}", + "selectAll": "Seleccionar todos los grupos de esta página", + "compareCopies": "Compara las copias de {title}", + "compareCaption": "Comparación campo por campo de {count} copias", + "fieldColumn": "Campo", + "filesEach": "{count, plural, one {# archivo cada} other {# archivos cada}}", + "moreFilesCount": "{count, plural, one {y # archivo más} other {y # más archivos}}", + "identicalAcross": "{count, plural, one {Identico en ambas copias:} other {Identico en todas las # copias:}}", + "deleteGroup": "{count, plural, one {Eliminar # copia, liberar {size}} other {Eliminar # copias, liberar {size}}}", + "confidence": { + "file_hash": "Idéntico", + "isbn": "Mismo ISBN", + "exact_metadata": "Búsqueda exacta", + "fuzzy_metadata": "Similar", + "withSimilarity": "{label} {percent}" + }, + "summary": { + "groups": "{count, plural, one {# grupo} other {# grupos}}", + "extraCopies": "{count, plural, one {copia extra} other {copias extra}}", + "reclaimable": "recuperable" + }, + "columns": { + "match": "Coincidencia", + "book": "Libro", + "copies": "Copias", + "libraries": "Librerías", + "frees": "Libres", + "keeping": "Manteniendo" + }, + "keepRule": { + "label": "Mantener", + "metadata": "Mejor metadatos", + "size": "Archivos más grandes", + "formats": "La mayoría de formatos", + "oldest": "Copia más antigua", + "newest": "Copia más reciente", + "hint": "Selecciona una copia que conservar en cada grupo. Puedes cambiar la selección en cualquier fila." + }, + "sort": { + "label": "Ordenar", + "reclaimable": "Mayor espacio liberado", + "copies": "Más copiados", + "confidence": "Coincidencia más fuerte", + "title": "Título de A a Z" + }, + "keeper": { + "yourChoice": "Tu selección", + "reading": "has completado el {percent}", + "collection": "está en {name}", + "metadata": "metadatos {score}", + "largest": "más grande en {size}", + "formats": "{count} formatos", + "isbn": "tiene un ISBN", + "added": "añadido {date}", + "riskReading": "elimina una copia que hayas completado el {percent}", + "riskCollection": "borra una copia en {name}" + }, + "selection": { + "summary": "{groups} grupos seleccionados, {copies} copias para eliminar, libera {size}", + "clear": "Limpiar", + "review": "{count, plural, one {Revisa # copia} other {Revisa # copias}}" } }, "entityManager": { diff --git a/client/src/locales/fr.json b/client/src/locales/fr.json index 053c6b8b0..b5be1de6a 100644 --- a/client/src/locales/fr.json +++ b/client/src/locales/fr.json @@ -9552,7 +9552,7 @@ "reading": "En cours", "unread": "Non commencées", "complete": "Complètes", - "gaps": "Trous", + "gaps": "Incomplètes", "read": "Lue", "inProgress": "En cours", "hasGaps": "Avec des trous", diff --git a/client/src/locales/hu.json b/client/src/locales/hu.json index 6fb8b0126..f90264e6c 100644 --- a/client/src/locales/hu.json +++ b/client/src/locales/hu.json @@ -15,12 +15,12 @@ "retry": "Újra", "yes": "Igen", "no": "Nem", - "show": "Mutat", - "hide": "Elrejt", + "show": "Megjelenítés", + "hide": "Elrejtés", "undo": "Visszavon", "pagination": { "label": "Oldalszámozás", - "pageOf": "{page} / {totalPages} oldal", + "pageOf": "{page}/{totalPages} oldal", "previousPage": "Előző oldal", "nextPage": "Következő oldal", "goToPage": "Ugrás erre az oldalra: {page}" @@ -400,7 +400,7 @@ "hint": "A szerzői borítók alakja a rácsban" }, "circle": "Kör", - "square": "Szögletes" + "square": "Négyzet" }, "listTableViews": { "title": "Lista- és táblázatnézetek" @@ -422,11 +422,16 @@ }, "filterPreview": { "label": "Szűrő előnézetének megjelenítése alapértelmezés szerint", - "hint": "Az aktív szűrő kibontása és az összegző rendezés egy okos gyűjtemény megnyitásakor" + "hint": "Az aktív szűrő kibontása és az összegző rendezés egy okosgyűjtemény megnyitásakor" }, "collapseSeries": { "label": "Sorozatok összecsukása alapértelmezés szerint", "hint": "Azonos sorozat könyveinek csoportosítása egyetlen kártyára könyvtári és gyűjteményi nézetekben" + }, + "bookRequests": { + "label": "Könyvkérések mutatása", + "hint": "A kérések oldalainak, promptjainak és beállításainak megjelenítése ebben a fiókban. A meglévő kérések rejtett állapotban is tovább futnak.", + "saveFailed": "Nem sikerült frissíteni a könyvkérések láthatóságát" } }, "icons": { @@ -448,12 +453,12 @@ "checkingUsage": "Használat ellenőrzése...", "usedBy": "{count} által használva", "notUsedYet": "Még nem használt", - "rename": "Átnevez", + "rename": "Átnevezés", "replace": "Csere", "usage": { "libraries": "{count, plural, =0 {nincs könyvtár} one {# könyvtár} other {# könyvtár}}", "collections": "{count, plural, =0 {nincs gyűjtemény} one {# gyűjtemény} other {# gyűjtemény}}", - "smartScopes": "{count, plural, =0 {nincs okos gyűjtemény} one {# okos gyűjtemény} other {# okos gyűjtemény}}" + "smartScopes": "{count, plural, =0 {nincs okosgyűjtemény} one {# okosgyűjtemény} other {# okosgyűjtemény}}" }, "confirm": { "deleteOne": "Törli a „{name}” elemet? A meglévő alkalmazások ikonja visszaáll az alapértelmezettre.", @@ -498,7 +503,7 @@ "notice": "Demókorlátozásos fiók: a profil, a jelszó, az avatár és a kapcsolt identitások szerkesztése le van tiltva." }, "feedback": { - "unsavedChanges": "A változtatások nincsenek elmentve", + "unsavedChanges": "Nem mentett módosítások", "discard": "Elvetés" }, "profile": { @@ -514,7 +519,7 @@ "accountTypeOidc": "OIDC / SSO", "accountTypeShared": "Megosztva", "accountTypeLocal": "Helyi", - "nameRequired": "Név megadása kötelező", + "nameRequired": "A név megadása kötelező", "updateFailed": "Nem sikerült frissíteni a profilt", "updated": "Profil frissítve", "usernameHint": "A felhasználóneved nem módosítható.", @@ -535,7 +540,7 @@ }, "preferences": { "saveFailed": "Nem sikerült menteni a beállításokat", - "saved": "Beállítások elmentve" + "saved": "Beállítások mentve" }, "avatar": { "title": "Profilkép", @@ -551,7 +556,7 @@ "removed": "Profilkép eltávolítva", "removeFailed": "Nem sikerült eltávolítani a profilképet", "removeConfirm": { - "title": "Eltávolítod a profilképet?", + "title": "Profilkép törlése?", "description": "Az avatárod eltávolításra kerül, és a helyére monogram kerül.", "confirm": "Eltávolít" } @@ -656,7 +661,7 @@ "labelPlaceholder": "pl. demó link a konferenciához", "expiresAt": "Lejárat ideje", "optional": "(opcionális)", - "create": "Létrehoz", + "create": "Létrehozás", "creating": "Létrehozás..." }, "revokeDialog": { @@ -742,7 +747,7 @@ "connectionFailed": "Csatlakozás sikertelen", "privateIssuerAddress": "A kibocsátó URL-címe egy privát vagy helyi hálózati címre van feloldva, ezért a szerver megtagadta a csatlakozást. Állítsa be az OIDC_ALLOW_LOCAL_ISSUERS=true értéket a BookOrbit szerveren az engedélyezéshez.", "tlsCertificateUntrusted": "A BookOrbit nem tudta ellenőrizni az OIDC-szolgáltató TLS-tanúsítványát. Ha a szolgáltató privát tanúsítványkiadót használ, csatold annak PEM CA-tanúsítványcsomagját, állítsd be a NODE_EXTRA_CA_CERTS környezeti változót a csomag konténeren belüli elérési útjára, majd indítsd újra a BookOrbitot.", - "hide": "Elrejt", + "hide": "Elrejtés", "details": "Részletek", "supported": "támogatott", "notSupported": "nem támogatott" @@ -806,7 +811,7 @@ "recently": "nemrég", "getStarted": "Kezdj bele", "continueSetup": "Beállítás folytatása", - "viewDetails": "Részletek mutatása", + "viewDetails": "Részletek megjelenítése", "refreshRecommendationIndex": "Javaslatok indexének frissítése", "refreshRecommendationHint": "Frissítsd az ajánlómotort a legújabb könyvtármódosításokkal. Ez a folyamat a háttérben fut.", "booksQueuedForProcessing": "{count, plural, =0 {nincs feldolgozásra váró könyv} one {# könyv vár feldolgozásra} other {# könyv vár feldolgozásra}}", @@ -848,8 +853,8 @@ "stepRunMigration": "Migrálás futtatása", "stepReport": "Jelentés", "stepReportTitle": "Migrálási jelentés", - "subtitleSource": "Konfigurálja az adatbázis-kapcsolatot a forrás Booklore-példányhoz.", - "genericSubtitleSource": "Konfigurálja az adatbázis-kapcsolatot a forrás könyvtár alkalmazáshoz.", + "subtitleSource": "Konfiguráld az adatbázis-kapcsolatot a forrás Booklore-példányhoz.", + "genericSubtitleSource": "Konfiguráld az adatbázis-kapcsolatot a forrás könyvtár alkalmazáshoz.", "subtitleMappings": "Forrásfelhasználók és célfelhasználók közötti megfeleltetés, valamint fájlelérési utak lefordítása.", "subtitleDryRun": "Az élő migráció futtatása előtt tekintsd meg az importálni kívánt elemek előnézetét.", "subtitleRun": "Indítsd el az élő importálást, és figyeld a folyamatot.", @@ -861,17 +866,17 @@ "badgeValidated": "Ellenőrizve", "badgeSaved": "Mentve", "badgeUpToDate": "Naprakész", - "badgeCompleted": "Kész", + "badgeCompleted": "Befejezett", "badgeRunning": "Folyamatban", "badgeFailed": "Sikertelen", - "mediaPathRequired": "Kötelező a könyvborítók migrálásához.", + "mediaPathRequired": "A könyvborítók migrálásához szükséges.", "mediaPathAbsolute": "Használj abszolút elérési utat (például: /books). A relatív elérési utak nem támogatottak.", "mediaPathConfigured": "Borító importálási útvonal konfigurálva. A Kapcsolat tesztelése funkcióval ellenőrizhető a hozzáférés és a Booklore képek mappaszerkezete.", "issueSaveSource": "Forráskapcsolat-beállítások mentése", "issueValidateSource": "Forráskapcsolat ellenőrzése", - "issueSaveMappings": "Felhasználói és elérési út-hozzárendelések mentése", - "issueSavePathMappings": "Mentsd el az útvonal-hozzárendeléseket az érvényesítéshez", - "issueFreshDryRun": "Futtass friss próbaüzemet", + "issueSaveMappings": "Felhasználói és útvonal-leképzések mentése", + "issueSavePathMappings": "Mentsd el az útvonal-leképzéseket az érvényesítéshez", + "issueFreshDryRun": "Új próbaüzem futtatása", "issueResolveDuplicates": "Ismétlődő célkönyv-egyezések feloldása a próbaüzemben", "issueWaitActiveRun": "Várd meg, amíg az aktív futtatás befejeződik", "sourceRecordId": "Forrásrekord-azonosító #{id}", @@ -886,7 +891,7 @@ "noSourceUsersReturned": "Nem találtunk forrásfelhasználókat", "userMappingSuggestionsLoaded": "Felhasználói hozzárendelési javaslatok betöltve", "errorLoadSuggestions": "Nem sikerült betölteni a felhasználói hozzárendelési javaslatokat", - "requiredFields": "A gazdagép, a felhasználó, az adatbázis és a forrás neve kötelező", + "requiredFields": "A kiszolgáló, a felhasználó, az adatbázis és a forrás nevének megadása kötelező", "connectionTestPassedWithWarnings": "A kapcsolatteszt figyelmeztetésekkel sikerült", "connectionTestPassedWithCount": "A kapcsolatteszt {count} figyelmeztetéssel sikerült. Első: {first}", "connectionTestPassed": "Csatlakozási teszt sikeres", @@ -910,10 +915,10 @@ "mappingsSaved": "Leképezések mentve", "errorSaveMappings": "Nem sikerült menteni a leképezéseket", "cannotRunDryRunActiveRun": "Nem futtatható próbafuttatás, amíg egy futtatás aktív", - "saveMappingsFirst": "Először mentse el a leképezéseket", + "saveMappingsFirst": "Először mentsd el a leképezéseket", "dryRunCompleted": "Próbafuttatás befejezve: {matched} egyezik, {unresolved} feloldatlan", "dryRunFailed": "Próbafuttatás sikertelen", - "selectSourceForAllGroups": "Válasszon ki egy forráskönyvet az összes {count} ismétlődő csoporthoz", + "selectSourceForAllGroups": "Válassz ki egy forráskönyvet az összes {count} ismétlődő csoporthoz", "duplicatesResolved": "Ismétlődő egyezések megoldva", "errorResolveDuplicates": "Nem sikerült feloldani az ismétlődéseket", "preflightNotReady": "A migrálás elővizsgálata nem áll készen", @@ -948,11 +953,11 @@ "strategyPathMapping": "A leképezett fájlútvonal alapján egyeztetve", "strategyTitleAuthor": "Cím és szerző alapján egyeztetve", "strategyUnavailable": "Egyeztetési stratégia nem elérhető", - "userPreviewCounts": "{statuses} állapotok, {progress} előrehaladási bejegyzések, {bookmarks} könyvjelzők, {annotations} annotációk, {collections} gyűjtemény bejegyzések", + "userPreviewCounts": "{statuses} állapot, {progress} előrehaladási bejegyzés, {bookmarks} könyvjelző, {annotations} annotáció, {collections} gyűjtemény bejegyzés", "connErrorUnreachable": "Nem sikerült elérni az adatbázis-kiszolgálót. Ellenőrizze a kiszolgálót és a portot.", "connErrorAuth": "A hitelesítés sikertelen. Ellenőrizze a felhasználónevet és a jelszót.", "connErrorUnknownDatabase": "Az adatbázis nem található. Ellenőrizd az adatbázis nevét.", - "connErrorTimeout": "Időtúllépés történt a kapcsolat során. Ellenőrizd a gazdagép és a tűzfal beállításait.", + "connErrorTimeout": "Időtúllépés történt a kapcsolat során. Ellenőrizd a kiszolgáló és a tűzfal beállításait.", "connErrorGeneric": "Csatlakozás teszt sikertelen", "sourceType": "Forrás típusa", "sourceName": "Forrás neve", @@ -969,7 +974,7 @@ "testPath": "Útvonal tesztelése", "useTls": "TLS/SSL használata", "testConnection": "Kapcsolat tesztelése", - "saveAndValidate": "Mentés és érvényesítés", + "saveAndValidate": "Mentés és ellenőrzés", "sourceValidatedWithWarnings": "Forrás érvényesítve figyelmeztetésekkel", "lastValidationSnapshot": "Utolsó érvényesítési pillanatkép", "sourceVersion": "Forrás verzió: {version}", @@ -1029,7 +1034,7 @@ "stageLabel": "Szakasz: {stage}", "stageInitializing": "inicializálás", "endedLabel": "Befejezve {date}", - "stageCompleted": "Kész", + "stageCompleted": "Befejezett", "stageInit": "Inicializálás", "stageSharedOverlays": "Metaadatok importálása", "stageBookCovers": "Borítók importálása", @@ -1172,10 +1177,10 @@ }, "stateOn": "Be", "stateOff": "Ki", - "toggleDetail": "{name} részleteinek mutatása", + "toggleDetail": "{name} részleteinek megjelenítése", "durationMs": "{ms} ms", - "durationSeconds": "{seconds}s", - "durationMinutes": "{minutes}m {seconds}s", + "durationSeconds": "{seconds}mp", + "durationMinutes": "{minutes}p {seconds}mp", "history": { "when": "Mikor", "trigger": "Eseményindító", @@ -1184,7 +1189,7 @@ "status": "Állapot", "statusValue": { "running": "Folyamatban", - "completed": "Kész", + "completed": "Befejezett", "failed": "Sikertelen" } }, @@ -1340,7 +1345,7 @@ "running": "Könyvtár újrapontozása", "failed": "Újrapontozás sikertelen", "count": "{processed} könyv feldolgozva", - "countOf": "{processed} / {total} könyv", + "countOf": "{processed}/{total} könyv", "failedCount": "({count} sikertelen)", "safeToLeave": "Biztonságosan elhagyhatod ezt az oldalt.", "dismiss": "Elvetés" @@ -1427,7 +1432,7 @@ "formModel": "Alapértelmezett modell", "formModelPlaceholder": "tts-1", "formDiscovery": "Ez a szolgáltató képes automatikusan listázni a saját hangjait", - "formRequired": "Név és alap URL megadása kötelező", + "formRequired": "A név és alap URL megadása kötelező", "curation": { "title": "Hangok kezelése - {provider}", "summary": "{count, plural, one {# beállított hang} other {# beállított hang}}", @@ -1477,7 +1482,7 @@ "kobo": "Kobo", "koreader": "KOReader", "tts": "Szövegfelolvasás", - "integrations": "Integrációk", + "integrations": "Bővítmények", "hardcover": "Hardcover", "admin": "Adminisztrátor", "system": "Rendszer", @@ -1486,9 +1491,9 @@ } }, "integrations": { - "title": "Integrációk", + "title": "Bővítmények", "subtitle": "Csatlakoztass külső szolgáltatásokat az olvasási adatok és a kiemelések szinkronizálásához.", - "noPermission": "Nincs jogosultságod semmilyen integráció használatára.", + "noPermission": "Nincs jogosultságod semmilyen bővítmény használatára.", "tabs": { "hardcover": "Hardcover", "readwise": "Readwise", @@ -1768,7 +1773,7 @@ "groupSummary": { "base": "{fields} mező · {enabled} engedélyezve", "withOverrides": "{base} · {overrides} felülbírálás", - "enabledOf": "{enabled} / {fields} engedélyezve" + "enabledOf": "{enabled}/{fields} engedélyezve" }, "table": { "field": "Mező", @@ -1885,7 +1890,7 @@ "add": "Hozzáad", "filterPlaceholder": "Tiltólista szűrése", "entryCount": "{count, plural,one {# bejegyzés} other {# bejegyzés}}", - "filteredCount": "{shown} / {total}", + "filteredCount": "{shown}/{total}", "noFilterMatch": "Egyetlen blokkolt műfaj sem felel meg a jelenlegi szűrőnek.", "emptyTitle": "Nincsenek blokkolt műfajok", "emptyHint": "Adj meg pontos értékeket, például Hangoskönyv vagy Felnőtt, hogy ezek ne szerepeljenek a lekért metaadatokban.", @@ -1935,7 +1940,7 @@ "preview": "Előnézet", "sampleValue": "Mintaérték", "enabledLibraries": "Engedélyezett könyvtárak", - "countOf": "{selected} / {total}", + "countOf": "{selected}/{total}", "selectAll": "Összes kijelölése", "clear": "Törlés", "noLibraries": "Még nincsenek elérhető könyvtárak.", @@ -2013,7 +2018,7 @@ "scrolled": "Görgetett", "fixedLayoutSpread": "Fix elrendezésű oldalpárok", "fixedLayoutSpreadHint": "Alapértelmezett mangák, képregények és képalapú EPUB-ok esetén", - "bookDefault": "Könyv alapértelmezett", + "bookDefault": "Könyv alapértelmezése", "singlePage": "Egyetlen oldal", "columns": "Oszlopok", "columnsHint": "Szövegoszlopok száma oldalonként", @@ -2033,7 +2038,7 @@ "lineHeightHint": "Függőleges távolság a vonalak között", "paragraphSpacing": "Bekezdés térköze", "paragraphSpacingHint": "Bekezdések közötti térköz. A könyv alapértelmezés szerint megőrzi a kiadó által megadott térközöket.", - "paragraphSpacingDefault": "Könyv alapértelmezett", + "paragraphSpacingDefault": "Könyv alapértelmezése", "paragraphSpacingValue": "{value} em", "letterSpacing": "Betűköz", "letterSpacingHint": "Betűk közötti térköz. A könyv alapértelmezés szerint megőrzi a kiadó által megadott térközöket.", @@ -2061,7 +2066,7 @@ "scrollModeHint": "Egyesével lapozás; folyamatosan görgetés az összes oldalon", "page": "Oldal", "scrolled": "Görgetett", - "pageSpread": "Oldalpárosítás", + "pageSpread": "Oldalpárok", "pageSpreadHint": "Melyik oldalszám van jobb oldalon kétoldalas nézetben", "spreadNone": "Egyik sem", "spreadOdd": "Páratlan", @@ -2078,13 +2083,13 @@ "comics": { "title": "Képregény olvasó", "subtitle": "A CBZ, CBR és CB7 fájlok megnyitásakor alkalmazott alapértelmezett beállítások.", - "view": "Nézet", + "view": "Megtekintés", "readingMode": "Olvasási mód", "readingModeHint": "Oldalak navigációja - webtoonokhoz használd az \"Végtelen (nincsenek szünetek)\" beállítást", "paginated": "Oldalszámozott", "infiniteSpaced": "Végtelen (szünettel elválasztva)", "infiniteNoGaps": "Végtelen (nincsenek szünetek)", - "pageView": "Oldalmegtekintés", + "pageView": "Oldalnézet", "pageViewHint": "Egy vagy két oldal megjelenítése egymás mellett", "single": "Egyoldalas", "twoPage": "Kétoldalas", @@ -2147,7 +2152,7 @@ "browse": "tallózás", "fileTypesHint": "TTF, OTF, WOFF, WOFF2 - egyenként legfeljebb 50 MB", "yourFonts": "Betűtípusaid", - "fontsUsed": "{count} / {max} használatban", + "fontsUsed": "{count}/{max} használatban", "noFontsYet": "Még nincsenek feltöltve betűtípusok", "noFontsHint": "Húzz egy betűtípusfájlt a fenti helyre a kezdéshez.", "fileCount": "{count, plural, =0 {nincs fájl} one {# fájl} other {# fájl}}", @@ -2177,10 +2182,10 @@ "deleteFamilyFailed": "Nem sikerült törölni a betűtípuscsaládot", "demoCannotManage": "A demókorlátozott fiók nem tudja kezelni a betűtípusokat", "fileAdded": "\"{name}\" hozzáadva", - "uploadFailed": "A feltöltés sikertelen", + "uploadFailed": "Feltöltés sikertelen", "serverFontsTitle": "Szerver betűtípusok (adminisztrátor által megosztva)", "serverFontsHint": "Ezek a betűtípusok a szerver adminisztrátorától származnak. Kapcsolj ki egyet, hogy ne legyen elérhető a olvasódban.", - "serverFontsShown": "{count} / {total} megjelenítve", + "serverFontsShown": "{count}/{total} megjelenítve", "serverFontsAllHidden": "Minden szerver betűtípus rejtve van. Az olvasó csak a beépített és a saját betűtípusokat kínálja fel.", "serverFontVisibilityFailed": "Nem sikerült frissíteni a szerver betűtípusának láthatóságát" }, @@ -2417,7 +2422,7 @@ "unknownModifier": "Ismeretlen módosító: \"{modifier}\". Figyelmen kívül lesz hagyva, az érték változatlan marad." }, "kobo": { - "title": "Kobo szinkronizálás", + "title": "Kobo-szinkronizálás", "subtitle": "Párosítsd Kobo eszközödet a könyvtár szinkronizálásához.", "copy": "Másolás", "never": "Soha", @@ -2474,7 +2479,7 @@ "saveSyncSettings": "Szinkronizálási beállítások mentése", "thresholdOrderError": "Az olvasási küszöbnek alacsonyabbnak kell lennie, mint a befejezési küszöbnek", "saveSettingsFailed": "Nem sikerült menteni a beállításokat", - "settingsSaved": "Kobo szinkronizálási beállítások mentve", + "settingsSaved": "Kobo-szinkronizálási beállítások mentve", "saveFailed": "Mentés sikertelen", "activity": { "waitingForActivity": "Várakozás a tevékenységre", @@ -2490,7 +2495,7 @@ "noFailedActivity": "A közelmúltban nem volt sikertelen Kobo-tevékenység.", "noActivityYet": "Még nincs Kobo-tevékenység.", "event": { - "librarySync": "A könyvtár frissítéseket keresett", + "librarySync": "A könyvtár frissítéseket keresve", "bookDownload": "Könyv letöltve", "progressUpdate": "Olvasási pozíció frissítve", "annotationsPull": "Kiemelések elküldve a Kobo-nak", @@ -2501,7 +2506,7 @@ "noUpdates": "Nincsenek frissítések", "noChanges": "Nincs változás", "pending": "Függőben", - "completed": "Kész", + "completed": "Befejezett", "downloaded": "Letöltve", "updated": "Frissítve", "sent": "Elküldve", @@ -2662,7 +2667,7 @@ "updateFailed": "Nem sikerült frissíteni a KOReader hitelesítő adatait" }, "creating": "Létrehozás...", - "create": "Létrehoz", + "create": "Létrehozás", "credentialsCreated": "KOReader szinkronizálási hitelesítő adatok létrehozva", "createCredentialsFailed": "Nem sikerült létrehozni a hitelesítő adatokat", "status": "KOReader állapota", @@ -2756,8 +2761,8 @@ "loadingManual": "Manuális hash kapcsolatok betöltése...", "noUnmatched": "Nincsenek párosítatlan KOReader könyvek.", "noManual": "Nincsenek kézi KOReader kapcsolatok.", - "pageOf": "Oldal {page}/{total}", - "showingRange": "Mutatva {start}-{end} ennyiből: {total}", + "pageOf": "{page}/{total} oldal", + "showingRange": "Megjelenítve {start}-{end} ennyiből: {total}", "unknownFile": "Ismeretlen KOReader fájl {hash}", "unknownAuthor": "Ismeretlen szerző", "noTitleOrAuthor": "Nincs jelentett cím vagy szerző", @@ -2835,7 +2840,7 @@ "unmatchedBooks": "Párosítatlan könyvek", "deviceRemoved": "Eszköz eltávolítva", "removeDeviceFailed": "Nem sikerült eltávolítani az eszközt", - "removeDeviceConfirmTitle": "Eltávolítod ezt: {device}?", + "removeDeviceConfirmTitle": "{device} törlése?", "removeDeviceConfirmBody": "Ez véglegesen törli az eszköz szinkronizált haladását, olvasási tevékenységét és minden olyan nem egyező könyvbejegyzést, amelyet más eszköz már nem jelent. Ha az eszköz később újra szinkronizál, az új bejegyzésként jelenik meg.", "deleteDeviceDataConfirmTitle": "Törlöd a szinkronizált adatokat erről: {device}?", "deleteDeviceDataConfirmBody": "Ez véglegesen törli az eszköz szinkronizált haladását, az oldalankénti olvasási tevékenységet és az összes olyan nem egyező könyvbejegyzést, amelyet más eszköz már nem jelent. A statisztikákban már rögzített olvasási munkamenetek megmaradnak. Ha az eszköz később újra szinkronizál, új bejegyzésként jelenik meg.", @@ -2873,7 +2878,7 @@ "defaultSort": "Alapértelmezett rendezés", "sortLabel": "Rendezés", "creating": "Létrehozás...", - "create": "Létrehoz", + "create": "Létrehozás", "noAccounts": "Még nincsenek OPDS-fiókok. Hozz létre egyet az OPDS kliensek használatának megkezdéséhez.", "hideDetails": "Részletek elrejtése", "showDetails": "Részletek megjelenítése", @@ -2925,16 +2930,16 @@ "subtitle": "Hol találhatók a kibocsátott anyagok, mi hozza őket létre, és mi történik, miután beérkeznek.", "tabs": { "sources": "Források", - "clients": "Letöltő kliensek", + "clients": "Letöltőkliensek", "automation": "Automatizálás" }, - "loading": "Letöltő kliensek betöltése...", - "clients": "Letöltő kliens", + "loading": "Letöltőkliensek betöltése...", + "clients": "Letöltőkliens", "addClient": "Kliens hozzáadása", "editClient": "Kliens szerkesztése", "deleteClient": "{name} törlése", "clientsEmpty": { - "title": "Még nincsenek letöltő kliensek", + "title": "Még nincsenek letöltőkliensek", "body": "A közvetlen HTTP letöltéshez nincs szükség kliensre. Csatlakoztass egyet, hogy a BookOrbit letölthesse a tracker által kínált torrenteket is.", "note": "qBittorrent, Transmission és Deluge támogatott." }, @@ -2946,8 +2951,8 @@ "testOkNoVersion": "Csatlakozva ehhez: {client}", "lastTestOk": "Utolsó tesztelés {time}: csatlakoztatva", "lastTestFailed": "Utolsó tesztelés {time}: {error}", - "saved": "Letöltő kliens mentve", - "deleted": "Letöltő kliens törölve", + "saved": "Letöltőkliens mentve", + "deleted": "Letöltőkliens törölve", "clientTypes": { "qbittorrent": "qBittorrent", "transmission": "Transmission", @@ -3017,17 +3022,17 @@ "remove": "Eltávolítás a kliensből", "removed": "Gazdátlan ügyfélelem eltávolítva", "removeTitle": "Eltávolítod a gazdátlan ügyfélelemet?", - "removeDescription": "{name} eltávolítva a letöltő kliensből. A letöltött fájlok megmaradtak.", + "removeDescription": "{name} eltávolítva a letöltőkliensből. A letöltött fájlok megmaradtak.", "notOrphan": "Az adott klienselem továbbra is egy BookOrbit letöltési kísérlethez van csatolva.", "notAdoptable": "Az ügyfélelem vagy a sikertelen kísérlet megváltozott, és már nem csatolható. Egyeztesd újra." }, "errors": { - "loadFailed": "Nem sikerült betölteni a letöltő klienseket", - "saveFailed": "Nem sikerült menteni a letöltő klienst", - "deleteFailed": "Nem sikerült eltávolítani a letöltő klienst", - "testFailed": "A letöltő kliens nem elérhető", - "nameAndUrlRequired": "Név és alap URL megadása kötelező", - "nameTaken": "Már létezik letöltő kliens ezzel a névvel", + "loadFailed": "Nem sikerült betölteni a letöltőklienseket", + "saveFailed": "Nem sikerült menteni a letöltőklienst", + "deleteFailed": "Nem sikerült eltávolítani a letöltőklienst", + "testFailed": "A letöltőkliens nem elérhető", + "nameAndUrlRequired": "A név és alap URL megadása kötelező", + "nameTaken": "Már létezik letöltőkliens ezzel a névvel", "urlUnsafe": "Az alap URL nem érhető el. Ellenőrizd a címet, és hogy http vagy https protokollt használ-e.", "urlPrivate": "Ez a cím egy privát vagy helyi hálózaton található. Kapcsold be a „Privát címek engedélyezése” beállítást, ha a kliens ott fut.", "encryptionKeyMissing": "Jelszó mentése előtt állítsd be a BOOK_REQUEST_ENCRYPTION_KEY értékét. Generálj egyet a következő paranccsal: openssl rand -hex 32", @@ -3040,7 +3045,7 @@ }, "encryptionKeyMissing": "A BOOK_REQUEST_ENCRYPTION_KEY nincs beállítva, ezért a kliensjelszó nem menthető. Hozzon létre egyet a következő paranccsal: openssl rand -hex 32", "confirmDelete": { - "title": "Eltávolítod ezt a letöltő klienst?", + "title": "Eltávolítod ezt a letöltőklienst?", "description": "{name} címe és tárolt jelszava törlődik, és az oda letöltő kérelmek frissítése leáll. Kapcsold ki inkább az adatok megőrzéséhez.", "confirm": "Kliens eltávolítása" }, @@ -3192,7 +3197,7 @@ "saveFailed": "Nem sikerült menteni az indexelőt", "deleteFailed": "Nem sikerült törölni a forrást", "testFailed": "Nem sikerült elérni az indexelőt", - "nameAndUrlRequired": "Név és alap URL megadása kötelező", + "nameAndUrlRequired": "A név és alap URL megadása kötelező", "nameTaken": "Már létezik indexelő ezzel a névvel", "urlUnsafe": "Az alap URL nem érhető el. Ellenőrizd a címet, és hogy http vagy https protokollt használ-e.", "urlPrivate": "Ez a cím egy privát vagy helyi hálózaton található. Kapcsold be a „Privát címek engedélyezése” beállítást, ha az indexelő ott fut.", @@ -3335,13 +3340,13 @@ }, "automation": { "title": "Automatizálás", - "pipeline": "Amikor a letöltés befejeződik, a fájl áthalad a Book Dockon, ahol beolvassa a címét és a szerzőt, hogy a fájl neve és a megfelelő iktatás megtörténhessen, majd magától átkerül a kérés célkönyvtárába. Csak akkor áll meg, ha az importellenőrzés be van kapcsolva, és a fájl nem felel meg a kértnek.", + "pipeline": "Amikor a letöltés befejeződik, a fájl áthalad a Könyvdokkon, ahol beolvassa a címét és a szerzőt, hogy a fájl neve és a megfelelő tárolás megtörténhessen, majd magától átkerül a kérés célkönyvtárába. Csak akkor áll meg, ha az importellenőrzés be van kapcsolva, és a fájl nem felel meg a kértnek.", "groupDownloads": "Automatikus letöltés", "groupImports": "Importellenőrzések", "stateOn": "Be", "stateOff": "Ki", "summaryOff": "Minden jóváhagyott kérés arra vár, hogy egy személy megnyissa a kiadásválasztót és válasszon.", - "summaryNoRetry": "Egy jóváhagyott kérelem önmagában letölti a legjobb kiadványt, amennyiben az a kiadás legalább {score} pontot ér el. Ha nem sikerül, a kérés vár egy személyre.", + "summaryNoRetry": "Egy jóváhagyott kérés önmagában letölti a legjobb kiadványt, amennyiben az a kiadás legalább {score} pontot ér el. Ha nem sikerül, a kérés vár egy személyre.", "summaryRetry": "Egy jóváhagyott kérés magától letölti a legjobb kiadást, amennyiben az eléri a {score} pontot vagy annál többet. {count, plural, one {Ez az egyetlen kipróbált kiadás, mielőtt a kérés személyes beavatkozásra vár.} other {Legfeljebb # kiadást próbál ki a rendszer, mielőtt a kérés személyes beavatkozásra vár.}}", "howDownloads": "Hogyan működik az automatikus letöltés", "howImports": "Hogyan működnek az importellenőrzések", @@ -3353,19 +3358,19 @@ "loadFailed": "Nem sikerült betölteni az automatizálási beállításokat", "saveFailed": "Nem sikerült menteni a beállítást", "saved": "Automatizálási beállítások mentve", - "autoGrab": "Töltsd le automatikusan a legjobb kiadást", + "autoGrab": "Töltse le automatikusan a legjobb kiadást", "noSourcesConfigured": "Nincsenek beállítva keresési források, így semmi sem lesz keresve, és minden jóváhagyott kérés azonnal visszakerül. Adj hozzá egyet a Források alatt.", "noSourcesEnabled": "Minden keresési forrás ki van kapcsolva, így semmi sem kerül keresésre, és minden jóváhagyott kérés azonnal visszakerül. Kapcsold be újra a Források alatt.", "autoGrabHint": "Amikor egy kérést jóváhagynak, a legmagasabb pontszámú kiadás egyenesen a letöltőklienshez kerül, és senkinek sem kell megnyitnia a kiadásválasztót. Alapértelmezés szerint ki van kapcsolva, mert nehéz egy könyvet a megfelelő kiadáshoz párosítani, és általában egy személy jobban el tudja dönteni.", "autoGrabEnabled": "Az automatikus letöltések be vannak kapcsolva", "autoGrabDisabled": "Az automatikus letöltések ki vannak kapcsolva", "minScore": "Minimális kiadási pontszám", - "minScoreHint": "Az ennél alacsonyabb pontszámú kiadások letöltése soha nem történik meg automatikusan. A pontszámok 100-ig futnak, és a cím és a szerző egyezésének mértéke nagyjából egyet tesz ki, a formátummal, a fájlmérettel, a seederekkel és a forrás prioritásával együtt. Ha semmi nem ér el elég magas pontszámot, a kérés megvárja, hogy valaki manuálisan válasszon ki egy kiadást, és közli, hogy miért állt le.", + "minScoreHint": "Az ennél alacsonyabb pontszámú kiadások letöltése soha nem történik meg automatikusan. A pontszámok 100-ig futnak, és a cím és a szerző egyezésének mértéke nagyjából egyet tesz ki, a formátummal, a fájlmérettel, a feltöltőkkel és a forrás prioritásával együtt. Ha semmi nem ér el elég magas pontszámot, a kérés megvárja, hogy valaki manuálisan válasszon ki egy kiadást, és közli, hogy miért állt le.", "minScoreHintV2": "Az ennél alacsonyabb pontszámot elérő kiadásokat a rendszer soha nem tölti le automatikusan. A pontszámok maximuma 100 pont. Legnagyobb mértékben a cím és a szerző relevanciája számít, ezt követi a formátum és az ésszerű fájlméret, valamint a swarm állapota és a freeleech jelzés, ha a forrás biztosítja azokat. Ha egyik kiadás sem ér el elég magas pontszámot, az igénylés várakozó állapotba kerül, amíg valaki kézzel ki nem választ egy kiadást, a rendszer pedig megjelöli a leállás okát.", "autoRetry": "Hiba után próbálja ki a következő kiadást", "autoRetryHint": "Amikor egy automatikus letöltés sikertelen, a rendszer a feladás helyett a következő legjobb verziót próbálja ki. Ez vonatkozik arra az esetre, ha a forrás nem hajlandó átadni a fájlt, vagy ha a letöltés félbeszakad. Ez csak azokra a verziókra vonatkozik, amelyeket a BookOrbit maga választott ki: a jóváhagyó által kézzel kiválasztott verziók sikertelenek maradnak, és várnak rájuk.", "maxAttempts": "Próbálkozások száma kérésenként", - "maxAttemptsHint": "Minden egyes letöltés, amit a BookOrbit küld a letöltő kliensnek ehhez a kéréshez, beleszámít ebbe a korlátba: az első automatikus kísérlet, minden, amire egy forrás elutasítása után került sor, és minden, amire egy sikertelen letöltés után került sor. Állítsd 1-re, ha az első kísérlet után le szeretnéd állítani.", + "maxAttemptsHint": "Minden egyes letöltés, amit a BookOrbit küld a letöltőkliensnek ehhez a kéréshez, beleszámít ebbe a korlátba: az első automatikus kísérlet, minden, amire egy forrás elutasítása után került sor, és minden, amire egy sikertelen letöltés után került sor. Állítsd 1-re, ha az első kísérlet után le szeretnéd állítani.", "autoSearch": "Keressen tovább olyan kéréseket, amire nincs találat", "autoSearchShort": "Egy eredménytelen jóváhagyott keresés esetén a rendszer később újra keres.", "autoSearchHint": "Egy kérést egyszer keres a rendszer jóváhagyást követően. Ha nincs elég jó találat, vagy a könyv még nem jelent meg, a kérés jóváhagyásra vár, és nincs újbóli keresés. Kapcsold be ezt, és a BookOrbit automatikusan ellenőrzi a könyvet, így a következő hónapban közzétett kiadás is megtalálható lesz. Csak akkor fut, ha az automatikus letöltések be vannak kapcsolva, mivel egy olyan keresés, amelynek semmi köze a találatokhoz, csak a források forgalmát csökkenti.", @@ -3379,9 +3384,9 @@ "autoSearchMaxAgeShort": "A kérés benyújtásának időpontjától számolva.", "autoSearchMaxAgeHint": "Az ennél régebbi kérést békén hagyjuk. Jóváhagyva marad, és bármikor manuálisan kiválasztható egy kiadás; semmi sem keresi már automatikusan.", "autoSearchMaxAgeUnit": "nap", - "verify": "Importálás ellenőrzése a kérelem alapján", + "verify": "Importálás ellenőrzése a kérés alapján", "verifyOnHint": "Minden letöltött fájlt összehasonlításra kerül a kért könyvvel tárolás előtt. Bármi, ami nem elég pontosan egyezik, a Könyvdokkban várakozik, hogy valaki megnézze.", - "verifyOffHint": "Semmit sem tartunk vissza ellenőrzésre. Minden letöltést a cím és a szerző beolvasása után azonnal elmentünk, így egy rosszul címkézett kiadás figyelmeztetés nélkül kerül a könyvtáradba.", + "verifyOffHint": "Semmit sem tartunk vissza ellenőrzésre. Minden letöltést a cím és a szerző beolvasása után azonnal tárolunk, így egy rosszul címkézett kiadás figyelmeztetés nélkül kerül a könyvtáradba.", "verificationEnabled": "Importellenőrzés be van kapcsolva", "verificationDisabled": "Importellenőrzés ki van kapcsolva. A letöltéseket ellenőrzés nélkül tároljuk", "verification": "Ellenőrzési küszöbértékb", @@ -3409,7 +3414,7 @@ "effectiveRule": "Automatikus letöltési szabály: először az első egyező szint, majd a legmagasabb pontszám (minimum {score}).", "summary": "A profilon kívül eső kiadások továbbra is elérhetők maradnak a manuális kiválasztáshoz. Szintek hiányában a kiadások rangsorolása kizárólag a pontszám alapján történik.", "howProfiles": "A kiadásprofilok működése", - "hint": "A kívánt kiadás, a legjobb az elején. A kiadást felülről lefelé párosítjuk ezekkel a szintekkel, és az első megfelelő szintet választjuk. A felügyelet nélküli letöltés a következő lehetőségek közül választhat: a szintnek nem megfelelő kiadások soha nem töltődnek le automatikusan, bár továbbra is megjelennek a választóban, hogy kézzel elküldhesd őket. Ha üresen hagysz egy médiumot, akkor semmi sem lesz szűrve vagy elutasítva, és a kiadások rangsorolása kizárólag pontszám alapján történik.", + "hint": "A rendszer a kiadásokat fentről lefelé haladva veti össze a szintekkel, és az első olyan szintet alkalmazza, amelyikre illeszkednek. Ha létezik profil, az automatikus letöltések csak a szintbe sorolt kiadásokat veszik figyelembe. A kézi kiválasztás a szintbe sorolt találatok után továbbra is tartalmazza a szinten kívüli kiadásokat is.", "bitrateNote": "A bitráta alsó határa elutasítja azokat a kiadásokat, amelyek alacsonyabb besorolásúak. A legtöbb forrás nagyon kevés kiadást mér, és egy nem mért kiadást nem utasítanak el, így ez kevésbé szűkíti le a területet, mint amilyennek látszik.", "empty": "Nincs profil. Az ehhez a médiumhoz tartozó kiadványok rangsorolása kizárólag a pontszám alapján történik.", "addTier": "Szint hozzáadása", @@ -3422,9 +3427,9 @@ "files": "Fájlok", "anyLayout": "Mind", "minBitrate": "Minimum kbps", - "minSeeders": "Minimum seedelő", + "minSeeders": "Minimum feltöltő", "torrentConditions": "Torrentfeltételek", - "nonTorrentConditions": "A seeder-, freeleech- és VIP-feltételek nem érvényesek a kiválasztott forrásokra.", + "nonTorrentConditions": "A feltöltő-, aránymentes- és VIP-feltételek nem érvényesek a kiválasztott forrásokra.", "incompatibleTorrentConditions": "Ez a nem-torrent szint még mindig mentett torrentfeltételeket tartalmaz. A rendszer figyelmen kívül hagyhatja őket, vagy megakadályozhatják a szint illeszkedését.", "removeTorrentConditions": "Torrentfeltételek eltávolítása", "channels": "Csatornák", @@ -3458,7 +3463,7 @@ }, "continueWithType": "Folytatás", "external": "Külső", - "editorDescription": "Beállítások ehhez a letöltő klienshez.", + "editorDescription": "Beállítások ehhez a letöltőklienshez.", "chooseClientType": "Válassz kliens típust", "chooseClientTypeHint": "Válaszd ki, hogy a BookOrbit melyik programnak adja át a torrenteket.", "clientTypeDescriptions": { @@ -3523,7 +3528,7 @@ "serverFonts": "A szerveren található összes olvasóhoz telepített betűtípusok.", "bookDock": "Könyv lapjain megjelenő gyorsműveletek.", "auditLog": "Ki mit változtatott, és mikor.", - "requests": "Források, letöltő kliensek, és mi történik egy könyvvel a letöltés után." + "requests": "Források, letöltőkliensek, és mi történik egy könyvvel a letöltés után." }, "backToApp": "Vissza a könyvtárba" }, @@ -3531,7 +3536,7 @@ "required": "(kötelező)" }, "editor": { - "discardTitle": "Elveted a változtatásokat?", + "discardTitle": "Módosítások elvetése?", "discardDescription": "Ez a szerkesztő nem mentett módosításokat tartalmaz. A bezárása törli őket.", "discardConfirm": "Változtatások elvetése", "moreActions": "További műveletek", @@ -3540,15 +3545,15 @@ }, "achievements": { "title": "Trófeák", - "tiersCount": "{earned} / {total} szint", + "tiersCount": "{earned}/{total} szint", "loadFailed": "Nem sikerült betölteni a trófeákat", "tryAgain": "Próbáld újra", "noMatchFilter": "Egyetlen trófea sem felel meg a szűrőnek", "secretAchievement": "Titkos trófea", "earnedOn": "Megszerezve {date}", "whileReading": "A következő olvasása közben: \"{title}\"", - "tierProgress": "Szint {earned} / {total}", - "progressToNext": "{current} / {threshold} ehhez: {name}", + "tierProgress": "Szint {earned}/{total}", + "progressToNext": "{current}/{threshold} ehhez: {name}", "rarity": { "common": "Általános", "rare": "Ritka", @@ -3619,7 +3624,7 @@ }, "pagination": { "label": "Fióktevékenységi oldalak", - "page": "Oldal {page}/{totalPages}" + "page": "{page}/{totalPages} oldal" }, "errors": { "load": "Nem sikerült betölteni a fióktevékenységet." @@ -3736,7 +3741,7 @@ "bookRequests": "Könyvkérések", "bookDock": "Könyvdokk", "devices": "Eszközök", - "readingIntegrations": "Olvasási integrációk", + "readingIntegrations": "Olvasási bővítmények", "emailNotifications": "E-mail és értesítések", "libraryConfiguration": "Könyvtár beállítások", "usersSecurity": "Felhasználók és biztonság", @@ -3771,7 +3776,7 @@ "noRestrictionsHint": "Ez a felhasználó teljes hozzáféréssel rendelkezik a hozzárendelt könyvtárakban található összes könyvhöz.", "addRestrictions": "+ Tartalomkorlátozás hozzáadása", "contentRestrictions": "Tartalomkorlátozások", - "remove": "Eltávolít", + "remove": "Eltávolítás", "includeTags": "Címkék befoglalása", "includeTagsHint": "(csak a következő címkékkel ellátott könyvek megjelenítése)", "excludeTags": "Címkék kizárása", @@ -3790,7 +3795,7 @@ "updatePermissions": "Az engedélyek frissítése sikertelen", "updateLibraryAccess": "A könyvtár hozzáférés frissítése sikertelen", "updateContentFilters": "A tartalom szűrők frissítése sikertelen", - "emailRequired": "Email cím megadása kötelező", + "emailRequired": "Az email cím megadása kötelező", "createSharedAccount": "A megosztott fiók létrehozása sikertelen", "createUser": "A felhasználó létrehozása sikertelen", "nameRequired": "A teljes név megadása kötelező", @@ -3807,7 +3812,7 @@ }, "sectionSummary": { "newAccount": "Még nincs létrehozva", - "libraries": "{selected} / {total}", + "libraries": "{selected}/{total}", "permissions": "{count, plural, =0 {Nincs jogosultság} one {1 megadva} other {# megadva}}", "restrictionsNone": "Egyik sem", "restrictionsContent": "Tartalomszűrők", @@ -3831,8 +3836,8 @@ "libraryAccessHint": "Az ezeken a könyvtárakon kívüli könyvek láthatatlanok a felhasználó számára.", "selectAll": "Összes kijelölése", "clearAll": "Törlés", - "permissionsHint": "Amit ez a fiók tehet. {granted} / {total} engedélyezett.", - "groupLegend": "{group}: {granted} / {total} engedélyezett", + "permissionsHint": "Amit ez a fiók tehet. {granted}/{total} engedélyezett.", + "groupLegend": "{group}: {granted}/{total} engedélyezett", "presets": { "label": "Engedély előbeállítás", "none": "Egyik sem", @@ -3931,8 +3936,8 @@ }, "pagination": { "label": "Felhasználók oldalszámozása", - "page": "Oldal {page} / {totalPages}", - "showing": "{shown} / {total} fiókból mutatva" + "page": "{page}/{totalPages} oldal", + "showing": "{shown}/{total} fiókból megjelenítve" }, "editUserAria": "{name} szerkesztése", "resetPasswordAria": "{name} jelszavának visszaállítása", @@ -3951,7 +3956,7 @@ }, "libraries": { "all": "Mind {total}", - "some": "{granted} / {total}" + "some": "{granted}/{total}" }, "statusLocked": "Zárolt", "status": { @@ -3982,8 +3987,8 @@ "sendResetLink": "Visszaállító link küldése", "sendNewLink": "Új link küldése" }, - "collapse": "Elrejt", - "expand": "Mutat" + "collapse": "Elrejtés", + "expand": "Megjelenítés" }, "defaults": { "title": "Új fiókok alapértelmezett beállításai", @@ -4032,8 +4037,8 @@ "clearAll": "Összes törlése" }, "pagination": { - "showing": "Mutatva {start}-{end} ennyiből: {total}", - "pageOf": "Oldal {page} / {totalPages}", + "showing": "Megjelenítve {start}-{end} ennyiből: {total}", + "pageOf": "{page}/{totalPages} oldal", "firstPage": "Első oldal", "previousPage": "Előző oldal", "nextPage": "Következő oldal", @@ -4072,7 +4077,7 @@ "comfortableView": "Kényelmes nézet" }, "listItem": { - "pageNumber": "o. {page}", + "pageNumber": "{page}. o", "chapterNumber": "fejezet {chapter}", "selectAnnotation": "Annotáció kiválasztása", "collapse": "Összecsuk", @@ -4086,7 +4091,7 @@ "restore": "Visszaállít", "deleteForever": "Végleges törlés", "editNote": "Megjegyzés szerkesztése", - "addNote": "Megjegyzés hozzáadása", + "addNote": "Jegyzet hozzáadása", "colorAndStyle": "Szín és stílus", "copied": "Másolva", "copyText": "Szöveg másolása", @@ -4163,7 +4168,7 @@ "color": "Szín szerint", "source": "Forrás szerint" }, - "matchCount": "{shown} / {total}", + "matchCount": "{shown}/{total}", "moreActions": "További műveletek", "loadMore": "{count, plural, one {További 1 betöltése} other {További # betöltése}}", "openBook": "Könyv megnyitása", @@ -4207,8 +4212,8 @@ "noActiveFilters": "Nincsenek aktív szűrők", "clear": "Törlés", "empty": "Nem találhatók ellenőrzési naplók", - "showMore": "Több mutatása", - "showLess": "Kevesebb mutatása", + "showMore": "Több megjelenítése", + "showLess": "Kevesebb megjelenítése", "details": "Részletek", "hideDetails": "Részletek elrejtése", "refresh": "Ellenőrzési napló frissítése", @@ -4252,7 +4257,7 @@ "deletedBookDetail": "{title} (könyv #{id})", "untitledBook": "Névtelen", "deletedBooksOmitted": "{count, plural, one {# további könyv kihagyva} other {# további könyv kihagyva}}", - "showing": "Mutatva {from}-{to} ennyiből: {total}", + "showing": "Megjelenítve {from}-{to} ennyiből: {total}", "prev": "Előző", "chips": { "search": "Keresés: {value}", @@ -4310,10 +4315,10 @@ "Podcast": "Podcast", "PodcastEpisode": "Podcastepizód", "Collection": "Gyűjtemény", - "SmartScope": "Okos gyűjtemény", + "SmartScope": "Okosgyűjtemény", "BookDockFile": "Könyvdokk-fájl", "BookRequest": "Könyvkérés", - "DownloadClient": "Letöltő kliens", + "DownloadClient": "Letöltőkliens", "RequestIndexer": "Indexelő", "Author": "Szerző", "AppSettings": "Alkalmazás beállításai", @@ -4405,9 +4410,9 @@ "CollectionDelete": "Gyűjtemény törlése", "CollectionBooksAdd": "Könyvek hozzáadása gyűjteményhez", "CollectionBooksRemove": "Könyvek eltávolítása gyűjteményből", - "SmartScopeCreate": "Okos gyűjtemény létrehozása", - "SmartScopeUpdate": "Okos gyűjtemény frissítése", - "SmartScopeDelete": "Okos gyűjtemény törlése", + "SmartScopeCreate": "Okosgyűjtemény létrehozása", + "SmartScopeUpdate": "Okosgyűjtemény frissítése", + "SmartScopeDelete": "Okosgyűjtemény törlése", "BookDockFinalize": "Könyvdokk-fájl véglegesítése", "BookRequestCreate": "Könyvkérés létrehozása", "BookRequestApprove": "Könyvkérés jóváhagyása", @@ -4505,7 +4510,7 @@ "invalidCredentials": "Érvénytelen felhasználónév vagy jelszó", "tooManyAttempts": "Túl sok bejelentkezési kísérlet. Kérjük, várj egy percet, majd próbáld újra.", "passwordDisabled": "A jelszavas bejelentkezés le van tiltva. Használj egy egyszeri bejelentkezési szolgáltatót.", - "optionsUnavailable": "Nem sikerült betölteni a bejelentkezési beállításokat. Kérjük, frissítsd az oldalt, vagy fordulj a rendszergazdához.", + "optionsUnavailable": "Nem sikerült betölteni a bejelentkezési beállításokat. Kérjük, frissítsd az oldalt, vagy fordulj az adminisztrátorhoz.", "accountLocked": "A jelszavad helyes, de a fiókodat átmenetileg zároltuk a túl sok sikertelen bejelentkezési kísérlet miatt. Próbáld újra {minutes, plural,one {# perc} other {# perc}} múlva, vagy a feloldáshoz állítsd alaphelyzetbe a jelszavad most." } }, @@ -4517,9 +4522,9 @@ "tryAgain": "Próbáld újra", "errors": { "stateExpired": "A bejelentkezési munkameneted lejárt. Kérjük, próbálj meg újra bejelentkezni.", - "tokenExchangeFailed": "Nem sikerült befejezni a bejelentkezést a szolgáltatóddal. Kérjük, próbáld újra, vagy fordulj a rendszergazdához.", - "userNotProvisioned": "A fiókod nincs beállítva. A hozzáférésért fordulj a rendszergazdához.", - "userInactive": "A fiókodat deaktiválták. Fordulj a rendszergazdához.", + "tokenExchangeFailed": "Nem sikerült befejezni a bejelentkezést a szolgáltatóddal. Kérjük, próbáld újra, vagy fordulj az adminisztrátorhoz.", + "userNotProvisioned": "A fiókod nincs beállítva. A hozzáférésért fordulj az adminisztrátorhoz.", + "userInactive": "A fiókodat deaktiválták. Fordulj az adminisztrátorhoz.", "providerError": "Az identitásszolgáltatód hibát jelzett. Kérjük, próbáld újra.", "missingCodeOrState": "Hiányzik a kód vagy az állapot paraméter" }, @@ -4535,7 +4540,7 @@ "sending": "Küldés...", "sendResetLink": "Visszaállító link küldése", "errors": { - "emailUnavailable": "Az e-mailben történő jelszó-visszaállítás nem érhető el. Fordulj a rendszergazdához." + "emailUnavailable": "Az e-mailben történő jelszó-visszaállítás nem érhető el. Fordulj az adminisztrátorhoz." } }, "resetPassword": { @@ -4625,8 +4630,8 @@ "refreshing": "Frissítés...", "refreshMetadata": "Metaadatok frissítése", "deleteAuthor": "Szerző törlése", - "showLess": "Kevesebb mutatása", - "showMore": "Több mutatása", + "showLess": "Kevesebb megjelenítése", + "showMore": "Több megjelenítése", "lookingUpMetadata": "Szerzői metaadatok keresése...", "noBiography": "Nem érhető el életrajz. A metaadatok frissítéséhez használd a menüt.", "previewFrom": "{provider} előnézete. A véglegesítéshez mentsd el a metaadatokat.", @@ -4749,7 +4754,7 @@ "refreshed": "Szerzői metaadatok frissítve", "refreshedNoImage": "A metaadatok frissítve, de nem található kép a szerzőhöz.", "refreshFailed": "Nem sikerült frissíteni a szerzői metaadatokat", - "nameRequired": "Szerző név megadása kötelező", + "nameRequired": "A szerző nevének megadása kötelező", "updated": "Szerző frissítve", "updateFailed": "A szerző frissítése sikertelen", "imageUpdated": "A szerző képe frissítve", @@ -4843,7 +4848,7 @@ "reading": "Olvasás", "onHold": "Félretéve", "rereading": "Újraolvasás", - "read": "Olvasott", + "read": "Elolvasva", "skimmed": "Átfutva", "abandoned": "Abbahagyva" }, @@ -4894,7 +4899,7 @@ }, "customFieldsGroup": "Egyéni mezők", "customFieldFallback": "Egyéni mező", - "remove": "Eltávolít", + "remove": "Eltávolítás", "emptyState": "Nincs rendezés beállítva. Növekvő cím szerinti rendezés lesz alkalmazva.", "addLevel": "Rendezési szint hozzáadása" }, @@ -5017,7 +5022,7 @@ "apply": "Alkalmaz", "mode": { "add": "Hozzáad", - "remove": "Eltávolít", + "remove": "Eltávolítás", "replace": "Csere", "clear": "Törlés" } @@ -5063,7 +5068,7 @@ "presets": "Sablonok", "exportBackup": "Sablonok és mentett nézetek exportálása", "importBackup": "Sablonok és mentett nézetek importálása", - "rename": "Átnevez", + "rename": "Átnevezés", "renamePrompt": "Adj meg új nevet", "builtIn": "Beépített", "saveCurrentPreset": "Jelenlegi sablon mentése", @@ -5074,7 +5079,7 @@ "pinnedRight": "Rögzítés jobbra", "columns": { "cover": "Borító", - "read": "Olvasott", + "read": "Elolvasva", "actions": "Műveletek" } }, @@ -5116,8 +5121,8 @@ "pages": "{count, plural, =0 {# oldal} one {# oldal} other {# oldal}}", "primaryFile": "Elsődleges fájl", "fileNumber": "Fájl #{id}", - "showLess": "Kevesebb mutatása", - "showMore": "Több mutatása", + "showLess": "Kevesebb megjelenítése", + "showMore": "Több megjelenítése", "collections": "Gyűjtemények", "noDescription": "Nincs elérhető leírás.", "openMetadataEditor": "Metaadat-szerkesztő megnyitása", @@ -5132,7 +5137,7 @@ "booksSelected": "{count, plural, =0 {# könyv kiválasztva} one {# könyv kiválasztva} other {# könyv kiválasztva}}", "loadingMoreBooks": "További könyvek betöltése", "sort": "Rendezés", - "refreshingMetadata": "Metaadatok frissítése {processed} / {total}", + "refreshingMetadata": "Metaadatok frissítése {processed}/{total}", "failedCount": "{count} sikertelen", "remainingCount": "{count} van hátra", "readOnlyNotice": "Kisebb képernyőkön a táblázatos szerkesztés nem érhető el. A gyorsműveletekhez válts lista vagy rács nézetre.", @@ -5143,7 +5148,7 @@ "scrollToTop": "Görgetés a tetejére", "selectedStatus": "{count} kiválasztva", "filtered": "Szűrve", - "loadedStatus": "{loaded} / {total} betöltve", + "loadedStatus": "{loaded}/{total} betöltve", "bookCount": "{count, plural,=0 {# könyv} one {# könyv} other {# könyv}}", "keyboardShortcutsTitle": "Gyorsbillentyűk (?)", "showKeyboardShortcuts": "Táblázat gyorsbillentyűinek megjelenítése", @@ -5271,7 +5276,7 @@ "sourceField": "Forrás", "allSources": "Minden forrás", "audiobookCovers": "Hangoskönyv-borítók", - "squareHint": "(négyzet alakú)", + "squareHint": "(négyzet)", "searching": "Keresés...", "findCovers": "Borítók keresése", "selectCover": "Borító kiválasztása", @@ -5335,8 +5340,8 @@ "saveFailed": "A felolvasási haladás szinkronizálását nem sikerült frissíteni." }, "openIn": "Megnyitás itt: {provider}", - "showLess": "Kevesebb mutatása", - "showMore": "Több mutatása", + "showLess": "Kevesebb megjelenítése", + "showMore": "Több megjelenítése", "publisher": "Kiadó", "published": "Publikálva", "language": "Nyelv", @@ -5395,9 +5400,9 @@ "activityProgress": "Előrehaladás", "activityDayTooltip": "{day}: {minutes} min", "activityReached": "{percent} elérve", - "durationS": "{seconds}s", - "durationM": "{minutes}m", - "durationHm": "{hours}h {minutes}m", + "durationS": "{seconds}mp", + "durationM": "{minutes}p", + "durationHm": "{hours}ó {minutes}p", "yourReview": "Értékelésed", "reviewNotWritten": "Még nincs megírva", "writeReview": "Írás", @@ -5503,24 +5508,24 @@ "fieldsSelected": "{count, plural, =0 {nincs kiválasztott mező} one {egy kiválasztott mező} other {# kiválasztott mező}}", "results": "Eredmények", "providerMatches": "„{provider}-találatok", - "selectedOf": "{selected} / {total} kiválasztva", + "selectedOf": "{selected}/{total} kiválasztva", "yearUnknown": "Év ismeretlen", - "indexOf": "{index} / {total}", + "indexOf": "{index}/{total}", "switchedResult": "Találatváltás történt. A szolgáltatóhoz kapcsolódó korábbi kijelölések törlődtek.", "selectFieldsToApply": "Válaszd ki az alkalmazandó mezőket", "copyMissing": "Hiányzó másolása", "copyAll": "Összes másolása", "hideUnchanged": "Változatlanok elrejtése", - "showUnchanged": "Változatlanok mutatása", + "showUnchanged": "Változatlanok megjelenítése", "current": "Jelenlegi", "new": "Új", "noMetadata": "Ebből a forrásból nem érhetők el metaadatok.", - "noChangedFields": "Nincsenek módosított vagy hiányzó mezők. Mindent áttekinthet a \"Változatlanok mutatása\" funkcióval.", + "noChangedFields": "Nincsenek módosított vagy hiányzó mezők. Mindent áttekinthet a \"Változatlanok megjelenítése\" funkcióval.", "applyToForm": "Alkalmazás az űrlapon", "secondCover": { "audioResults": "Hangoskönyvborító-találatok", "bookResults": "Könyvborító találatok", - "showCover": "A(z) {provider} borítójának mutatása, {index} / {total}", + "showCover": "A(z) {provider} borítójának megjelenítése, {index}/{total}", "searchingAudio": "Hangoskönyv-kiadások keresése…", "searchingBook": "Könykiadások keresése...", "noAudio": "Nem találhatók hangoskönyv-borítók.", @@ -5548,8 +5553,8 @@ "replace": "Csere" }, "empty": "üres", - "showLess": "Kevesebb mutatása", - "showMore": "Több mutatása", + "showLess": "Kevesebb megjelenítése", + "showMore": "Több megjelenítése", "coverPreviewAlt": "Borító előnézete", "fields": { "coverUrl": "Borító", @@ -5639,7 +5644,7 @@ "catalogCard": "Katalógus", "sourceCard": "Forrás", "score": "Pontszám", - "scoreTooltip": "Metaadat-pontszám: {score} / 100", + "scoreTooltip": "Metaadat-pontszám: {score}/100", "emptyFields": "{count, plural, one {üres mező} other {üres mező}}", "emptyFieldsTooltip": "Még nincsenek kitöltve: {fields}. Az adatok pótlásához online keresés szükséges.", "libraryRow": "Könyvtár", @@ -5664,20 +5669,20 @@ "groupedByReader": "olvasó szerint csoportosítva", "thisFile": "Ez a fájl", "writeBackShort": "Visszaírás", - "fieldsSet": "{filled} / {total} megadva", + "fieldsSet": "{filled}/{total} megadva", "writtenSummary": "{fields} és {count, plural, one {# további mező} other {# további mező}} beírva a(z) {format} formátumba.", "writtenSummaryAll": "{fields} beírva a(z) {format} formátumba.", "writtenNothing": "A(z) {total} írható mező egyikének sincs még értéke.", "writeBackOff": "A visszaírás ki van kapcsolva ehhez a könyvhöz.", "editMetadata": "Metaadatok szerkesztése", - "showAllTracks": "Mindent mutat", + "showAllTracks": "Mind megjelenítése", "collapseTracks": "Összecsuk", "moreTracks": "{count, plural, one {# további fejezet} other {# további fejezet}}", "tracksRolled": "{count, plural,one {# fejezet} other {# fejezet}}", "fileDetails": "Fájl részletei", "openDetails": "Fájl részleteinek megnyitása", "closeDetails": "Fájl részleteinek bezárása", - "trackFrom": "{track} / {total}. fejezet, ekkortól: {time}", + "trackFrom": "{track}/{total}. fejezet, ekkortól: {time}", "throughCopy": "{percent} olvasva ebből a példányból", "fileCount": "{count, plural, =0 {nincs fájl} one {# fájl} other {# fájl}}", "synced": "Szinkronizálva {time}", @@ -5702,7 +5707,7 @@ "date": "Dátum" }, "hidePaths": "Útvonalak elrejtése", - "showPaths": "Útvonalak mutatása", + "showPaths": "Útvonalak megjelenítése", "hideLog": "Napló elrejtése", "viewSyncLog": "Szinkronizálási napló megtekintése", "noWriteHistory": "Még nincs írási előzmény.", @@ -5751,7 +5756,7 @@ "formatsInFolder": "{count, plural, one {# formátumot tartalmaz} other {# formátumot tartalmaz}}", "compositionAria": "Mappaméret megoszlása formátum szerint", "percentRead": "{percent} elolvasva", - "trackOf": "Fejezet {track} / {total}", + "trackOf": "Fejezet {track}/{total}", "groups": { "ebook": "E-könyv", "document": "Dokumentum", @@ -5786,13 +5791,13 @@ "notWritten": "Nincs írva" }, "duration": { - "hoursMinutes": "{hours}h {minutes}m", - "minutes": "{minutes}m", - "minutesSeconds": "{minutes}m {seconds}s", - "seconds": "{seconds}s" + "hoursMinutes": "{hours}ó {minutes}p", + "minutes": "{minutes}p", + "minutesSeconds": "{minutes}p {seconds}mp", + "seconds": "{seconds}mp" }, "positionHeading": "Aktuális pozíció ebben a példányban", - "copiesStarted": "{started} / {total} példányból elkezdve", + "copiesStarted": "{started}/{total} példányból elkezdve", "nothingStarted": "Még semmi sincs elkezdve", "throughFile": "{percent} ebből a fájlból", "notOpened": "Még nincs megnyitva", @@ -5804,7 +5809,7 @@ "trackLength": "{duration} hosszú", "switchFileHeading": "Fájlváltás", "writeBackHeading": "Írva ebbe a fájlba", - "fieldsWithValue": "{filled} / {total} mező rendelkezik értékkel", + "fieldsWithValue": "{filled}/{total} mező rendelkezik értékkel", "lastRun": "Utolsó futtatás: {time}", "neverRun": "Soha nem volt futtatva", "historyHeading": "Előzmények", @@ -5819,7 +5824,7 @@ }, "highlights": { "note": { - "placeholder": "Megjegyzés hozzáadása...", + "placeholder": "Jegyzet hozzáadása...", "saving": "Mentés" }, "export": { @@ -5857,7 +5862,7 @@ "chaptersMarked": "fejezet megjelölve", "ofChaptersMarked": "a {total} fejezetből megjelölve", "colour": "Szín", - "showOnly": "Csak a következő mutatása: {colour}", + "showOnly": "Csak a következő megjelenítése: {colour}", "source": "Ahonnan származnak", "health": "Pozíciók állapota", "needsAttention": "{count, plural, one {# figyelmet igényel} other {# figyelmet igényel}}", @@ -5872,11 +5877,11 @@ }, "row": { "select": "Kiemelés kijelölése", - "showMore": "Több mutatása", - "showLess": "Kevesebb mutatása", + "showMore": "Több megjelenítése", + "showLess": "Kevesebb megjelenítése", "note": "Megjegyzés", - "addNote": "Megjegyzés hozzáadása", - "page": "{page}. o.", + "addNote": "Jegyzet hozzáadása", + "page": "{page}. o", "anchorLost": "A rögzítési hely elveszett", "reAnchored": "Rögzítési pont helyreállítva" }, @@ -5887,10 +5892,10 @@ "notes": "Megjegyzések", "review": "Áttekintés", "density": "Váltás a kényelmes és a kompakt sorok között", - "matchCount": "{shown} / {total} találat felel meg", + "matchCount": "{shown}/{total} találat felel meg", "textChip": "szöveg: „{query}”", "marks": "{count, plural,one {# jelölés} other {# jelölés}}", - "loadingMore": "Továbbiak betöltése" + "loadingMore": "Több betöltése" }, "bulk": { "selected": "{count} kiválasztva", @@ -5910,12 +5915,12 @@ "title": "Megjelölési tevékenység", "days": "{count, plural, one {# nap} other {# nap}}", "showAll": "Mind a(z) {count} nap megjelenítése", - "showFewer": "Kevesebb mutatása" + "showFewer": "Kevesebb megjelenítése" }, "inspector": { "title": "Kiemelés részletei", "back": "Vissza a mutatóhoz", - "counter": "{position} / {total} jelölés", + "counter": "{position}/{total} jelölés", "previous": "Előző jelölés", "next": "Következő jelölés", "notePrompt": "Miért fontos ez? A jegyzetek kereshetők, és az exportált fájllal együtt mozognak.", @@ -5927,7 +5932,7 @@ "title": "Jelölések helye", "subtitle": "minden megjelölt fejezet olvasási sorrendben, az eredeti jelölés színével", "barTitle": "{chapter}, {count} jelölés", - "start": "Eleje", + "start": "Indít", "densest": "Legtömörebb", "marks": "{count, plural,one {# jelölés} other {# jelölés}}", "longestGap": "Leghosszabb szakasz jelölés nélkül", @@ -5990,15 +5995,15 @@ "sessions": "Munkamenetek", "avgSession": "Átlagos munkamenet", "activeDays": "Aktív napok", - "activeDaysOf": "{active} / {total}", - "pace": "Sebesség", + "activeDaysOf": "{active}/{total}", + "pace": "Tempó", "pacePerHour": "{percent}%/h", "lastRead": "Utoljára olvasva", "whereYouRead": "Hol olvastad", "addSession": "Munkamenet hozzáadása", - "durationHm": "{hours}h {minutes}m", - "durationM": "{minutes}m", - "durationS": "{seconds}s" + "durationHm": "{hours}ó {minutes}p", + "durationM": "{minutes}p", + "durationS": "{seconds}mp" }, "ledger": { "title": "Munkamenetek", @@ -6030,7 +6035,7 @@ "fieldEnded": "Befejezve", "fieldOutcome": "Eredmény", "outcome": { - "completed": "Kész", + "completed": "Befejezett", "skimmed": "Átfutva", "abandoned": "Abbahagyva", "inProgress": "Folyamatban" @@ -6054,7 +6059,7 @@ "bestDay": "Legjobb nap", "longestStreak": "Leghosszabb sorozat", "streakDays": "{count, plural, one {# nap} other {# nap}}", - "pace": "Olvasási sebesség", + "pace": "Olvasási tempó", "jumpedBack": "Visszaugrás", "jumpedBackTimes": "{count, plural, one {# alkalommal} other {# alkalommal}}", "firstOpened": "Először megnyitva", @@ -6066,7 +6071,7 @@ "switchAria": "Diagram nézet", "curveTitle": "Haladási idővonal", "traceTitle": "Hol tartottál a könyvben", - "curveSubDays": "{active} / {total} aktív nap", + "curveSubDays": "{active}/{total} aktív nap", "curveSubSitting": "egyetlen alkalommal, munkamenetenként", "traceSub": "mindegyik oszlop egy-egy munkamenet által lefedett szakaszt jelöl", "traceSubWithBacktracks": "{count, plural, one {minden oszlop egy munkamenet, # visszaugrás} other {minden oszlop egy munkamenet, # visszaugrás}}", @@ -6182,7 +6187,7 @@ "untitled": "Névtelen", "addSessionFailed": "Munkamenet hozzáadása sikertelen", "filters": { - "show": "Mutat", + "show": "Megjelenítés", "dateRangeAria": "Olvasási munkamenet időintervalluma", "allTime": "Mindenkori", "last30": "Utolsó 30 nap", @@ -6207,7 +6212,7 @@ "jumpToProgress": "Ugrás {progress}%-ra", "empty": "Még nincsenek rögzített olvasási munkamenetek.", "emptyHint": "Egy munkamenet hozzáadásával kezdhető meg a könyv olvasási előzményeinek felépítése.", - "colPace": "Sebesség", + "colPace": "Tempó", "colSource": "Forrás", "colFormatMobile": "Fmt", "colFormat": "Formátum", @@ -6217,7 +6222,7 @@ "confirmDeleteAria": "Munkamenet törlésének megerősítése", "deleteAria": "Munkamenet törlése", "loadMore": "Több betöltése", - "showing": "{shown} / {total} munkamenet mutatva" + "showing": "{shown}/{total} munkamenet megjelenítve" } }, "richDescription": { @@ -6345,7 +6350,7 @@ "series": { "seriesRow": "Sorozatsor", "bookCount": "{count, plural,=0 {(nincs könyv)} one {(# könyv)} other {(# könyv)}}", - "readOfCount": "{read} / {total} elolvasva" + "readOfCount": "{read}/{total} elolvasva" }, "text": { "openDetails": "Részletek megnyitása" @@ -6425,7 +6430,7 @@ "stats": { "queued": "Sorba állítva", "processing": "Feldolgozás alatt", - "rateLimited": "Túl sok kérés", + "rateLimited": "Kérés korlátozva", "failed": "Sikertelen" }, "actions": { @@ -6505,7 +6510,7 @@ "destinationLibrary": "Célkönyvtár", "destinationFolder": "Célmappa", "nFailed": "{count} sikertelen", - "updatedOfFiles": "{updated} / {total} fájl frissítve", + "updatedOfFiles": "{updated}/{total} fájl frissítve", "errorStatus": "Hiba {status}", "invalidSeriesIndex": "Csak számjegyeket adjon meg, legfeljebb egy tizedesjellel (pl. 5.10).", "tab": { @@ -6585,144 +6590,3679 @@ "title": "{count, plural, =0 {Nincs cél beállítva fájlhoz} one {Cél beállítva # fájlhoz} other {Cél beállítva # fájlhoz}}", "resultTitle": "Cél frissítve", "failed": "Cél beállítása sikertelen" + }, + "finalizeDialog": { + "title": "{count, plural, =0 {Nincs véglegesítendő fájl} one {# véglegesítendő fájl} other {# véglegesítendő fájl}}", + "resultTitle": "Eredmények véglegesítése", + "needDestination": "{count, plural, =0 {A(z) # kijelölt fájl közül {without}-nak nincs célhelye} one {A(z) # kijelölt fájl közül {without}-nak nincs célhelye} other {A(z) # kijelölt fájl közül {without}-nak nincs célhelye}}", + "allHaveDestination": "Minden kijelölt fájlhoz meg van adva a célhely", + "defaultDestinationLibrary": "Alapértelmezett célkönyvtár", + "defaultDestinationFolder": "Alapértelmezett célmappa", + "renamePreview": "Átnevezés előnézete", + "moreFiles": "+{count} további fájl", + "start": "Indít", + "filesFinalized": "{succeeded}/{total} fájl véglegesítve", + "checking": "Kiválasztott fájlok ellenőrzése...", + "readyCount": "{count, plural, =0 {nem áll készen fájl} one {# fájl készen áll} other {# fájl készen áll}}", + "duplicateCount": "{count, plural, =0 {egyik sincs még a könyvtárban} one {# már a könyvárban van} other {# már a könyvárban van}}", + "conflictCount": "{count, plural, =0 {nincs fájlnév-ütközés} one {# fájlnév-ütközés} other {# fájlnév-ütközés}}", + "missingDestinationCount": "{count, plural, =0 {nincs hiányzó cél} one {# hiányzó cél} other {# hiányzó cél}}", + "blockedCount": "{count, plural, =0 {nincs blokkolt fájl} one {# blokkolt fájl} other {# blokkolt fájl}}", + "moreDuplicates": "+{count} már a könyvtárban van", + "discardDuplicates": "Duplikátumok elvetése", + "failedCount": "{count, plural, =0 {nincs sikertelen fájl} one {# sikertelen fájl} other {# sikertelen fájl}}", + "failedWithDuplicates": "{count, plural, =0 {{failed} sikertelen (# duplikátum)} one {{failed} sikertelen (# duplikátum)} other {{failed} sikertelen (# duplikátum)}}", + "view": "Megtekintés", + "viewExisting": "Meglévő megtekintése", + "hide": "Elrejtés", + "details": "Részletek", + "alreadyExistsSaveAs": "Már létezik – mentés mint:", + "renamePlaceholder": "pl. {name} (2)", + "import": "Importálás" + }, + "layout": { + "pause": "Szünet", + "resume": "Folytatás", + "pauseUpdateFailed": "A frissítés szüneteltetése sikertelen", + "clearSearch": "Keresés törlése", + "filter": { + "all": "Összes", + "needsReview": "Felülvizsgálat szükséges", + "pending": "Függőben", + "ready": "Kész", + "error": "Hiba" + }, + "working": { + "label": "{count} működő" + }, + "row": { + "select": "{title} kiválasztása", + "setDestination": "Cél beállítása", + "file": "Fájl", + "match": "{percent}%-os egyezés", + "noAuthor": "Még nincs szerző", + "proposedChanges": "Javasolt módosítások", + "noChanges": "Még nem történtek metaadat-lekérések", + "editDetails": "Részletek szerkesztése", + "noMatch": "Nincs találat", + "applied": "Alkalmazva", + "refetch": "Metaadatok újbóli lekérése", + "clickToZoom": "Kattintson egy borítóra a nagyításhoz", + "changedFields": "{count, plural,one {# mező} other {# mező}}", + "needMore": "Szeretnél keresni a szolgáltatóknál, vagy módosítanád a többi mezőt?" + }, + "selection": { + "fileToLibrary": "{count, plural, =0 {Fájl a könyvtárhoz} one {# fájl a könyvtárhoz} other {# fájl a könyvtárhoz}}", + "nSelected": "{count} kiválasztva", + "nReadyToFile": "{count} besorolásra kész" + }, + "empty": { + "nothingToReview": "Semmi nem igényel ellenőrzést. Minden készen álló fájlhoz tartozik célhely és biztos találat.", + "nothingReadyToFile": "Nincsenek besorolásra kész fájlok.", + "dropHint": "Vagy húzd a fájlokat a lap bármely részére." + }, + "selectAllOnPage": "Minden fájl kijelölése ezen az oldalon", + "showingOf": "{shown}/{total}", + "keyboardHint": "J / K: mozgatás · Szóköz: kijelölés · Enter: kibontás", + "allOnPageSelected": "Az oldalon található mind a(z) {count} elem ki van jelölve.", + "selectAllMatching": "Mind a(z) {count} egyező elem kijelölése", + "allMatchingSelected": "Mind a(z) {count} egyező fájl ki van jelölve", + "sort": { + "label": "Rendezés módja", + "attention": "Figyelmet igényel", + "createdAt": "Legutóbb hozzáadva", + "fileName": "Fájlnév", + "fileSize": "Méret", + "format": "Formátum", + "status": "Állapot" + }, + "conflict": { + "duplicate": "Duplikátum", + "destination_conflict": "Foglalt elérési út", + "invalid_target": "Rossz cél", + "access_denied": "Nincs hozzáférés", + "invalid_format": "Rossz formátum", + "error": "Meghiúsulna" + }, + "unit": { + "fileCount": "{count, plural, one {# fájl} other {# fájl}}", + "filesHeading": "{count, plural, one {Fájl ebben a bejegyzésben} other {# fájl ebben a bejegyzésben}}", + "role": { + "content": "Könyv", + "cover": "Borító", + "metadata": "Metaadatok", + "supplement": "Extra" + } + } } }, "bookRequests": { + "title": "Kérések (Béta)", + "subtitle": "Olyan könyvek kérése, amelyek még nincsenek meg a könyvtárban. Ez a funkció kísérleti jellegű, kisebb hibák előfordulhatnak.", + "tabs": { + "search": "Könyv kérése", + "mine": "Saját kérések", + "all": "Összes kérés" + }, + "mediaKind": { + "ebook": "E-könyv", + "audiobook": "Hangoskönyv", + "comic": "Képregény" + }, + "status": { + "pending": "Függőben", + "approved": "Jóváhagyva", + "rejected": "Elutasítva", + "cancelled": "Visszavonva", + "searching": "Keresés", + "grabbed": "Begyűjtve", + "downloading": "Letöltés", + "importing": "Importálás", + "needs_review": "Felülvizsgálat szükséges", + "available": "Elérhető", + "failed": "Sikertelen" + }, + "search": { + "titleLabel": "Cím", + "titlePlaceholder": "Könyv címe", + "authorLabel": "Szerző", + "authorPlaceholder": "Szerző neve", + "mediaKindLabel": "Formátum", + "libraryLabel": "Hozzáadás a könyvtárhoz", + "libraryAny": "Döntsön a jóváhagyó", + "libraryDefault": "Alapértelmezett ({library})", + "libraryChoose": "Válassz egy könyvtárat", + "libraryRequired": "A kérések a benyújtásuk után azonnal jóváhagyásra kerülnek, ezért válaszd ki azt a könyvtárat, ahová a könyvnek kerülnie kell.", + "fulfillmentLabel": "Teljesítés", + "fulfillmentAutomatic": "Automatikus", + "fulfillmentChooseRelease": "Kiadás kiválasztása", + "folderLabel": "Mappa", + "languageLabel": "Kérés nyelve", + "languageAny": "Bármely nyelv", + "languageDefaultToggleLabel": "Alapértelmezett nyelv az új kérésekhez", + "languageDefaultSetHint": "A nyelv kiválasztásának kérése minden új kérésnél", + "languageDefaultClearHint": "Alapértelmezett nyelvválasztás kérésének kikapcsolása", + "languageDefaultSaved": "Az új kéréseknél a(z) {language} nyelv lesz kiválasztva", + "languageDefaultCleared": "Az új kérések a felületi nyelvhez fognak igazodni", + "languageDefaultFailed": "Nem sikerült elmenteni a nyelvi beállításokat", + "submit": "Keresés", + "searching": "Szolgáltatók keresése...", + "noResultsTitle": "Nem találhatók egyező könyvek", + "noResultsHint": "Próbálj meg egy másik címet vagy szerzőt.", + "noResultsIndexerHint": "Próbálj meg egy másik címet vagy szerzőt, vagy keress rá a(z) „{title}” címre az indexelőkben, és válassz ki egy kiadást kézzel.", + "freeTextAction": "Indexelők keresése", + "manualSearchAction": "Indexelők keresése kézzel", + "yearUnknown": "Év ismeretlen", + "sourceCount": "{count, plural, one {# forrás} other {# forrás}}", + "sourcesLabel": "Források: {sources}", + "sourcesUnavailable": "Néhány forrás nem válaszolt, ezért a találatok hiányosak lehetnek: {sources}", + "identifiers": { + "none": "Nincs ISBN", + "one": "1 ISBN", + "confirmed": "ISBN megerősítve", + "count": "{count} ISBN", + "sourcesTitle": "Metaadat források", + "provider": "Szolgáltató", + "providerTitle": "Szolgáltatói cím", + "isbn": "ISBN", + "year": "Év", + "language": "Nyelv", + "notProvided": "Nem ismert", + "searchScope": "Válassz egyet a(z) {count, plural, one {# ISBN} other {# ISBN}} közül a kereséshez, vagy keress cím és szerző szerint.", + "searchScopeLimited": "Válassz ki egy ISBN-t a kereséshez.", + "titleAuthorOnly": "Nincs megadva ISBN. A BookOrbit egyszeri keresést indít cím és szerző szerint.", + "chooseSearch": "Válassz ki egy változatot a kereséshez", + "searchByEdition": "Kiadás keresése egy változathoz", + "findRelease": "Kiadás keresése", + "primaryIsbn": "ISBN {isbn}", + "primaryTitleAuthor": "Cím és szerző", + "recommended": "Ajánlott", + "recommendationHelpLabel": "Hogyan választja ki a BookOrbit az ajánlott ISBN-t", + "recommendationTitle": "Hogyan áll össze az ajánlott keresés", + "recommendationLanguage": "Elsőbbséget élvez a kért nyelv, majd az ismeretlen nyelv, megelőzve az igazoltan nem egyező nyelvet.", + "recommendationAgreement": "Elsőbbséget élvez több független metaadat-szolgáltató által megerősített ISBN.", + "recommendationProvider": "A BookOrbit stabil metaadat-szolgáltatói prioritásának használata.", + "recommendationRelevance": "Használd a változat helyezését az adott szolgáltató találatai között.", + "recommendationYear": "Elsőbbséget élvez a mű legkorábbi ismert kiadási évéhez legközelebbi változat.", + "recommendationStable": "Használd magát az ISBN-t végső, stabil holtverseny-eldöntőként.", + "recommendationFallback": "Ha nem áll rendelkezésre érvényes ISBN, a BookOrbit egyszeri keresést indít cím és szerző szerint. Egy változat kiválasztása a menüből mindig felülírja ezt az ajánlást.", + "withoutIsbn": "Keresés cím és szerző alapján", + "action": "Művelet" + }, + "request": "Kérés", + "download": "Letöltés", + "getAutomatically": "Automatikus beszerzés", + "chooseRelease": "Kiadás kiválasztása", + "joinRequest": "Engem is érdekel", + "submitted": "Kérés elküldve", + "joinedExisting": "Hozzáadva a meglévő kéréshez", + "submitFailed": "Nem sikerült benyújtani a kérést", + "alreadyInLibrary": "Már a könyvtárban van", + "alreadyRequested": "Valaki más már kérte", + "alreadyRequestedByYou": "Már szerepel a kéréseid között", + "preferredFormatsLabel": "Előnyben részesített formátumok", + "preferredFormatsHint": "Az ilyen formátumú kiadások magasabb rangsorolást kapnak. A rendszer a többi formátumot is felajánlja.", + "noteLabel": "Megjegyzés a jóváhagyónak", + "notePlaceholder": "Bármi, amit érdemes tudni erről a kérésről", + "moreOptions": "További lehetőségek", + "fewerOptions": "Kevesebb lehetőség", + "optionsSummary": "{formats} · jegyzet hozzáadva", + "formatToggleAria": "{format} előnyben részesítése" + }, + "card": { + "details": "Részletek", + "mediaKind": "Formátum", + "library": "Könyvtár", + "requestedBy": "Kérte", + "requestedByAt": "{name} ekkor: {time}", + "alsoWanted": "További igénylők", + "alsoWantedCount": "{count, plural, one {# további személy kéri ezt} other {# további személy kéri ezt}}", + "moreActions": "További műveletek ehhez: {title}", + "settledIn": "Tárolva a(z) {library} könyvtárba ekkor: {time}", + "settledAt": "Lezárva {time}", + "dismissedBadge": "Elvetve" + }, + "detail": { + "unknownAuthor": "Ismeretlen szerző", + "requestedBy": "Kérte", + "requestedOn": "Kérés időpontja", + "library": "Könyvtár", + "series": "Sorozat", + "isbn": "ISBN", + "decidedBy": "Döntéshozó", + "requesterNote": "Megjegyzés a kérőtől", + "decisionNote": "Döntési megjegyzés", + "statusReason": "A leállás oka", + "alsoWanted": "További igénylők", + "decisionNoteLabel": "Megjegyzés (opcionális)", + "decisionNotePlaceholder": "A döntés indoklása", + "destinationLibraryLabel": "Célkönyvtár", + "destinationLibraryPlaceholder": "Válassz egy könyvtárat", + "destinationFolderLabel": "Célmappa", + "languageLabel": "Kért nyelv", + "languageAny": "Bármely nyelv", + "destinationRequired": "A fájlok jóváhagyása a könyvtárba helyezi a könyvet, ezért a jóváhagyás előtt válassz ki egyet.", + "fulfilTitle": "Kérés lezárása", + "fulfilHint": "A kérés hozzárendelése a hozzáadott könyvhöz, vagy a Könyvdokk tárolásra váró fájljához.", + "bookIdLabel": "Könyvazonosító", + "bookIdPlaceholder": "pl. 128", + "dockFileIdLabel": "Könyvdokk-fájl azonosítója", + "dockFileIdPlaceholder": "pl. 42", + "backToList": "Összes kérés", + "loading": "Kérés betöltése...", + "transfer": "Átvitel", + "requestSection": "Kérés", + "decideTitle": "Jóváhagyás vagy elutasítás", + "fulfilSourceLabel": "Mi zárja le ezt a kérést", + "fulfilFromLibrary": "Egy könyv a könyvtárban", + "fulfilFromDock": "Egy Könyvdokk-fájl", + "fulfilSearchLabel": "A kérést lezáró fájl keresése", + "fulfilSearchBooks": "Keresés a könyvtárban cím vagy szerző alapján", + "fulfilSearchDock": "Keresés a Könyvdokkban fájlnév alapján", + "fulfilSearching": "Keresés...", + "fulfilNoResults": "Nincs találat. Próbálkozz más keresési feltétellel.", + "errors": { + "notFound": "Ez a kérés már nem létezik.", + "forbidden": "Ez a kérés egy másik felhasználóhoz tartozik.", + "loadFailed": "Nem sikerült betölteni a kérést" + }, + "entityName": "Kérés" + }, + "actions": { + "approve": "Jóváhagy", + "approveAndNext": "Jováhagy és ugrás a következőre", + "reject": "Elutasít", + "cancel": "Kérés megszakítása", + "cancelDownload": "Letöltés megszakítása", + "dismiss": "Elvetés", + "restore": "Visszaállít", + "delete": "Kérés törlése", + "markFulfilled": "Megjelölés teljesítettként", + "grab": "Kiadás keresése", + "goToBook": "Ugrás a könyvhöz", + "retryRelease": "Másik kiadás választása", + "leave": "Kérés elhagyása" + }, + "filters": { + "status": "Állapot", + "anyStatus": "Bármilyen állapot", + "mediaKind": "Formátum", + "anyMediaKind": "Bármilyen formátum", + "requester": "Kérelmező", + "anyRequester": "Bármelyik kérelmező", + "showDismissed": "Elvetettek megjelenítése", + "fulfilment": "Teljesítés", + "anyFulfilment": "Bármely teljesítés", + "selfServeOnly": "Önkiszolgáló", + "approvedOnly": "Jóváhagyáson átesett" + }, + "list": { + "loading": "Kérések betöltése...", + "emptyMine": "Még nincsenek könyvkéréseid.", + "emptyAll": "Még nincsenek könyvkérések.", + "pagination": "Kérések oldalai", + "pageOf": "{page}/{total} oldal", + "emptyHint": "Keress egy könyvet, és a kérés után az meg fog jelenni itt." + }, + "toasts": { + "approved": "Kérés jóváhagyva", + "rejected": "Kérés elutasítva", + "cancelled": "Kérés megszakítva", + "downloadCancelled": "Letöltés megszakítva", + "dismissed": "Elrejtve a listádról", + "restored": "Újra a listádon", + "deleted": "Kérés törölve", + "fulfilled": "Kérés teljesítettként megjelölve", + "grabbed": "A letöltés elindult", + "downloadRemoved": "Eltávolítva a letöltőkliensből", + "bulkApproved": "{count, plural,one {# kérés jóváhagyva} other {# kérés jóváhagyva}}", + "bulkApprovedPartial": "{done} jóváhagyva, {failed} nem sikerült", + "bulkDismissed": "{count, plural,one {# kérés elrejtve} other {# kérés elrejtve}}", + "bulkDismissedPartial": "{done} elrejtve, {failed} nem sikerült", + "unitChosen": "A választott könyv importálása", + "languageChanged": "A kérés nyelve frissítve", + "left": "Eltávolítva a saját kérések közül", + "bulkRejected": "{count, plural,one {# kérés elutasítva} other {# kérés elutasítva}}", + "bulkRejectedPartial": "{done} elutasítva, {failed} nem sikerült", + "importDiscarded": "Az importált fájl elvetve" + }, + "errors": { + "loadFailed": "Nem sikerült betölteni a kéréseket", + "approveFailed": "Nem sikerült jóváhagyni a kérést", + "rejectFailed": "Nem sikerült elutasítani a kérést", + "cancelFailed": "Nem sikerült megszakítani a kérést", + "cancelDownloadFailed": "Nem sikerült megszakítani a letöltést", + "dismissFailed": "Nem sikerült elrejteni a kérést", + "restoreFailed": "Nem sikerült visszaállítani a kérést", + "deleteFailed": "Nem sikerült törölni a kérést", + "fulfilFailed": "Nem sikerült lezárni a kérést", + "grabFailed": "Nem sikerült elindítani a letöltést", + "removeDownloadFailed": "Nem sikerült eltávolítani a torrentet a letöltőkliensből", + "bulkApproveFailed": "Nem sikerült jóváhagyni a kijelölt kéréseket", + "bulkDismissFailed": "Nem sikerült elrejteni a kijelölt kéréseket", + "selectUnitFailed": "A könyv nem importálható.", + "languageChangeFailed": "Nem sikerült megváltoztatni a kérés nyelvét", + "leaveFailed": "Ebből a kérésből nem lehet kilépni", + "bulkRejectFailed": "A kijelölt elemeket nem sikerült elutasítani", + "discardImportFailed": "Az importálást nem sikerült elvetni" + }, + "grab": { + "title": "Küldés egy letöltőkliensbe", + "subtitle": "Illessz be egy mágnes linket, vagy tölts fel egy .torrent fájlt ehhez: „{title}”.", + "singleFileNote": "Egy kiadás állhat egy könyv több formátumából, egy hangoskönyv részeiből vagy egy archívumból – ezek mind egyetlen könyvként importálódnak. Ha egy kiadás több különálló könyvet tartalmaz, a rendszer megkérdezi, melyiket szeretné megtartani.", + "magnet": "Mágnes link", + "torrentFile": ".torrent fájl", + "client": "Letöltőkliens", + "submit": "Küldés", + "errors": { + "pickOne": "Vagy mágnes linket, vagy .torrent fájlt adj meg, a kettőt egyszerre ne", + "fileTooLarge": "Ez a fájl nagyobb, mint {limit}, így ez nem egy .torrent fájl", + "fileUnreadable": "A fájl nem olvasható" + }, + "noClientList": "A BookOrbit a legmagasabb prioritású engedélyezett letöltőklienst fogja használni." + }, + "attempts": { + "title": "Korábbi próbálkozások", + "loading": "Korábbi próbálkozások betöltése...", + "loadFailed": "Nem sikerült betölteni a korábbi próbálkozásokat", + "refused": "Elutasítva, semmi sem lett letöltve", + "handPicked": "Kézzel elküldve" + }, + "download": { + "source": { + "automatic": "Automatikusan begyűjtve", + "manual": "Jóváhagyó által kiválasztva", + "pasted": "Kézzel beillesztve" + }, + "transferred": "{done}/{total}", + "transferredUnknown": "{done} letöltve", + "progressLabel": "A(z) {title} letöltési állapota", + "status": { + "queued": "Letöltésre vár", + "downloading": "Letöltés", + "completed": "Letöltés befejeződött", + "importing": "Importálás a könyvtáradba", + "needs_review": "Ellenőrzésre vár a könyvdokkban", + "imported": "Hozzáadva a könyvtáradhoz", + "failed": "Letöltés sikertelen" + } + }, "releases": { + "title": "Válassz kiadást", + "retryTitle": "Másik kiadás választása", + "subtitle": "Rangsorolva minden engedélyezett indexelőben.", + "summaryCount": "{count, plural, one {# kiadás} other {# kiadás}}", + "allFreeleech": "összes aránymentes", + "allLanguage": "összes {language}", + "allFormat": "összes {format}", + "allIndexer": "összes ebből: {name}", + "criteria": { + "label": "Aktív keresés", + "searched": "Keresve", + "searchedTitleAuthor": "Cím és szerző keresve", + "nothingFound": "Nincs találat a(z) {key} kifejezésre", + "changeSearch": "Keresés módosítása", + "closeSearch": "Bezárás", + "sources": "Források", + "sourceSearchedIsbn": "ISBN keresve", + "sourceSearchedTitleAuthor": "cím és szerző keresve", + "sourceNoAdapter": "nincs egyező adapter", + "sourceReleases": "{count, plural, one {# kiadás} other {# kiadás}}", + "sourceNone": "nincs találat", + "sourceFiltered": "{count} kiszűrve", + "sourcesSearched": "{count, plural, one {# forrás keresve} other {# forrás keresve}}", + "showEachSource": "Összes megjelenítése", + "uncovered": "{count, plural, one {# engedélyezett forrás} other {# engedélyezett forrás}} nem tartalmaz ilyen könyvet", + "fixSource": "Javítás a beállításokban", + "searchInstead": "Keresés inkább erre", + "keyTried": "megpróbálva, nincs találat", + "keyTriedCount": "megpróbálva, {count, plural, one {# kiadás} other {# kiadás}}", + "searchWithoutIsbn": "Cím és szerző", + "customIsbnSource": "Egyéni ISBN", + "filteredLocally": "Helyileg szűrve:", + "title": "Cím", + "author": "Szerző", + "additionalAuthors": "További szerzők", + "isbn10": "ISBN-10", + "isbn13": "ISBN-13", + "isbns": "ISBN számok", + "mediaKind": "Média", + "language": "Nyelv", + "formats": "Előnyben részesített formátumok", + "editFields": "Mezők szerkesztése", + "closeEditor": "Szerkesztő bezárása", + "authorsEditor": "Szerzők, soronként egy", + "authorsPlaceholder": "Egy szerző soronként", + "authorsInvalid": "Legfeljebb 50 szerzőt adj meg, szerzőnként maximum 255 karakterrel.", + "languagePlaceholder": "Bármely nyelv", + "formatsPlaceholder": "epub, azw3", + "formatsInvalid": "Legfeljebb 20 formátumot adj meg, formátumonként maximum 20 karakterrel.", + "isbnSelection": "Keresési mód", + "isbnSelectionHint": "Válassz egy ISBN-t, címet és szerzőt, vagy adj meg egy egyéni ISBN-t.", + "noIsbnSelected": "Cím és szerző, ISBN nélkül", + "customIsbn": "Egyéni ISBN", + "customIsbnPlaceholder": "ISBN-10 vagy ISBN-13", + "addIsbn": "ISBN hozzáadása", + "invalidIsbn": "A(z) {isbn} nem érvényes ISBN-10 vagy ISBN-13 azonosító.", + "titleRequired": "Adj meg egy címet a kereséshez.", + "fixedMedia": "A média típusa továbbra is {media} marad, mivel ez vezérli a kompatibilis forrásokat és a teljesítési útvonalat.", + "useRequestFields": "Kérési mezők használata", + "runSearch": "Keresés ezen mezőkkel" + }, + "previousFailure": "A legutóbbi próbálkozás sikertelen volt: {reason}", + "refused": { + "sourceRefused": "Ez a forrás elutasított egy korábbi kiadást", + "sourceUnavailable": "Ez a forrás nem válaszolt", + "vipRequired": "VIP-fiók szükséges ehhez a forráshoz", + "clientRefused": "A letöltőkliens elutasított egy korábbi kiadást", + "clientUnavailable": "A letöltőkliens nem válaszolt egy korábbi kiadásra" + }, + "singleFileNote": "Egy kiadás állhat egy könyv több formátumából, egy hangoskönyv részeiből vagy egy archívumból – ezek mind egyetlen könyvként importálódnak. Ha egy kiadás több különálló könyvet tartalmaz, a rendszer megkérdezi, melyiket szeretné megtartani.", + "searching": "Indexelők keresése...", + "refresh": "Keresés újra", + "cached": "A legutóbbi keresés látható. Friss találatokért keress újra.", + "sortBy": "Rendezés módja", + "sort": { + "score": "Legjobb egyezés", + "seeders": "Feltöltők", + "size": "Méret", + "bitrate": "Bitráta", + "added": "Hozzáadás dátuma" + }, + "freeleechOnly": "Csak aránymentes ({count})", "clearFilters": "Szűrők törlése", + "filteredEmpty": "Nincs a szűrőknek megfelelő kiadás.", + "grab": "Kiadás letöltése", + "viewFiles": "Fájlok megtekintése", + "hideFiles": "Fájlok elrejtése", + "viewDetails": "Tartalom részletei", + "hideDetails": "Részletek elrejtése", + "inspectingFiles": "A kiadás fájllistájának beolvasása…", + "inspectingNzb": "Az NZB-fájl lekérése és validálása…", + "inspectingShort": "Fájlok ellenőrzése...", + "inspectionFailed": "A kiadás fájllistáját nem sikerült beolvasni.", "manifest": { - "untitledUnit": "Névtelen" + "ready": "{count, plural, one {Ez a kiadás # fájlt tartalmaz. A támogatott könyvfájl importálható.} other {Ez a kiadás # fájlt tartalmaz. A támogatott könyvfájl importálható.}}", + "noSupported": "Ez a kiadás nem tartalmaz közvetlenül támogatott könyvfájlt, így nem küldhető el.", + "contentsUnknown": "Ez a kiadás archívumként (RAR, ZIP vagy 7z) van csomagolva. A BookOrbit a letöltés után kibontja, így a tartalma még nem ismert.", + "multipleBooks": "Ez a kiadás {count} különálló könyvet tartalmaz. A letöltés után a rendszer megkérdezi, melyiket szeretnéd importálni.", + "multiPartBook": "{count, plural, one {Ez a kiadás egyetlen könyv, amely # fájlból áll.} other {Ez a kiadás egyetlen könyv, amely # fájlból áll, és ezek együttesen, egyetlen könyvként importálódnak.}}", + "metadataUnavailable": "Ez egy mágnes-link. A fájllista nem érhető el mindaddig, amíg egy torrentkliens le nem kéri a metaadatokat a swarmból.", + "usenetMetadataUnavailable": "Ez egy Usenet-kiadás. A végleges fájllista nem érhető el mindaddig, amíg az NZBGet le nem tölti és utólag fel nem dolgozza.", + "bookFile": "Könyvfájl", + "extraFile": "Extra", + "truncated": "{shown}/{total} fájl megjelenítve.", + "untitledUnit": "Névtelen", + "unitFiles": "{count, plural, one {# fájl} other {# fájl}}", + "unitsTruncated": "{shown}/{total} könyv megjelenítve.", + "ignored": "{count, plural, one {# minta- vagy kitöltőfájl figyelmen kívül hagyva.} other {# minta- vagy kitöltőfájl figyelmen kívül hagyva.}}", + "mediaKind": { + "ebook": "E-könyv", + "audiobook": "Hangoskönyv", + "comic": "Képregény" + } + }, + "manual": "Illessz be inkább egy linket", + "manualTorrent": "Használj inkább mágnes-linket vagy .torrent fájlt", + "indexer": "Indexelő", + "size": "Méret", + "seeders": "Feltöltők", + "language": "Nyelv", + "seederCountPlural": "{count, plural, one {# feltöltő} other {# feltöltő}}", + "seederCountUnknown": "Ismeretlen feltöltőszám", + "format": "Formátum", + "files": "Fájlok", + "fileLayout": { + "single": "Egy listázott fájl", + "multi": "Több listázott fájl" + }, + "fileCount": "{count, plural, one {# fájl} other {# fájl}}", + "audio": "Hang", + "bitrateAtLeast": "{rate}k+", + "channels": { + "mono": "Monó", + "stereo": "Sztereó" + }, + "chapterCountPlural": "{count, plural,one {# fejezet} other {# fejezet}}", + "durationHm": "{hours}ó {minutes}p", + "durationM": "{minutes}p", + "freeleech": "Aránymentes", + "vipOnly": "Csak VIP", + "hideVipOnly": "Csak VIP elrejtése", + "noneMatchedProfile": "Az itt található kiadások egyike sem felel meg az ehhez a médiumhoz beállított profilodnak, így egyik sem fog automatikusan letöltődni. Manuálisan azonban továbbra is elküldhetsz egyet. A feltételek bővítéséhez adj hozzá egy kevesebb feltételt tartalmazó szintet a mostaniak alá.", + "profileMismatch": { + "summary": "{count, plural, one {# kiadás található, de az automatikus letöltés ki fogja hagyni, mivel nem felel meg egyik {medium}-profilszintnek sem.} other {# kiadás található, de az automatikus letöltés ki fogja hagyni őket, mivel egyik sem felel meg semelyik {medium}-profilszintnek sem.}} Az egyezési pontszám és a profilszabályok ellenőrzése külön történik. A Küldés gombra továbbra is rákattinthatsz.", + "review": "{medium}-profil áttekintése", + "row": "Az automatikus letöltés ki fogja hagyni ezt. Legközelebbi szint: {tier}. {reasons}", + "failures": { + "formatUnknown": "A(z) {source} forrásnál nincs megadva formátum; ez a szint a(z) {expected} formátumot igényli.", + "format": "A formátum {actual}; ez a szint a(z) {expected} értéket igényli.", + "fileLayoutUnknown": "A(z) {source} forrásnál nincs megadva fájlszám; ez a szint a(z) {expected} értéket igényli.", + "fileLayout": "A fájlelrendezés {actual}; ez a szint a(z) {expected} értéket igényli.", + "bitrate": "A bitráta {actual} kbps; ez a szint legalább {expected} kbps értéket igényel.", + "channels": "Az audió {actual}; ez a szint a(z) {expected} értéket igényli.", + "languageUnknown": "A(z) {source} forrásnál nincs megadva nyelv; ez a szint a(z) {expected} értéket igényli.", + "language": "A nyelv {actual}; ez a szint a(z) {expected} értéket igényli.", + "source": "Ez a forrás nem szerepel a szintben.", + "seeders": "Ez a kiadás {actual} feltöltővel rendelkezik; ez a szint legalább {expected} feltöltőt igényel.", + "sizeUnknown": "A(z) {source} forrásnál nincs megadva méret; ez a szint legfeljebb {expected} értéket engedélyez.", + "size": "A méret {actual}; ez a szint legfeljebb {expected} értéket engedélyez.", + "freeleech": "Ez a szint aránymentességet igényel.", + "vipOnly": "Ez a szint kizárja a VIP-kiadásokat." + } + }, + "alreadyGrabbed": "Már hozzáadva", + "freeleechLabel": "Aránymentes", + "published": "Publikálva", + "scoreLabel": "Egyezési pontszám: {score} a 100-ból", + "scoreBreakdown": "Hogyan lett ez a kiadás pontozva", + "whyThisScore": "Miért ez a pontszám", + "failures": { + "unauthorized": "a bejelentkezés lejárt", + "throttled": "kérés korlátozva", + "timeout": "időtúllépés", + "unreachable": "nem elérhető", + "unsupportedMedium": "nem tartalmaz ilyen könyvet", + "error": "keresés sikertelen" + }, + "reasons": { + "isbnMatch": "ISBN egyezések", + "titleMatch": "Címegyezés", + "authorMatch": "Cím- és szerzőegyezés", + "preferredFormat": "Előnyben részesített formátum {detail}", + "knownFormat": "Formátum {detail}", + "unknownFormat": "Nincs megadva formátum", + "expectedSize": "Elfogadható méret", + "suspiciousSize": "Valószínűtlen méret {detail}", + "seeders": "{detail} feltöltő", + "freeleech": "Aránymentes", + "likelySeveralBooks": "{detail} fájl, több könyvet is tartalmazhat" + }, + "errors": { + "loadFailed": "Nem sikerült keresni a kiadások között" + }, + "backToRequest": "Vissza a kéréshez", + "bestMatch": "Legjobb egyezés", + "flags": "Címkék", + "score": "Pontszám", + "release": "Kiadás", + "send": "Küldés", + "tableCaption": "Kiadások, rangsorolva", + "onlyBestMatch": "Ez az egyetlen egyező kiadás.", + "tiedWithBest": "{count, plural, one {# másik kiadás ért el azonos pontszámot} other {# másik kiadás ért el azonos pontszámot}}", + "inspectionFailedHint": "Nem lett elküldve egy letöltőkliensnek sem. Próbáld újra, vagy illessz be inkább magad egy linket.", + "inspectionFailedHintGeneric": "Nem lett elküldve egy letöltőkliensnek sem. Próbáld újra, vagy válassz egy másik kiadást.", + "mediumUncovered": "Egyetlen forrás sem tartalmaz ilyen könyvet.", + "mediumUncoveredHint": "Egyik engedélyezett indexelő sem fedi le. Adj hozzá olyat, ami igen, vagy illessz be magad egy linket.", + "noSourcesConfigured": "Még nincsenek beállítva keresési források.", + "noSourcesEnabled": "Minden keresési forrás ki van kapcsolva.", + "noSourcesConfiguredHint": "Nem futott le keresés. Adj hozzá egy indexelőt, telepíts egy forrásbővítményt, vagy illessz be magad egy linket egy kiadáshoz.", + "noSourcesEnabledHint": "Nem futott le keresés. Kapcsolj vissza egyet, vagy illessz be magad egy linket egy kiadáshoz.", + "noSourcesAskAdmin": "Nem futott le keresés. Kérj meg egy adminisztrátort egy keresési forrás beállítására, vagy illessz be magad egy linket egy kiadáshoz.", + "addSource": "Forrás hozzádása", + "reviewSources": "Források áttekintése", + "protocol": { + "torrent": "Torrent", + "usenet": "Usenet", + "direct": "Közvetlen letöltés", + "directPill": "Közvetlen" + } + }, + "seed": { + "title": "Letöltőkliens", + "automated": "A BookOrbit automatikusan választotta ki ezt a kiadást.", + "loading": "Letöltőkliens beolvasása...", + "loadFailed": "A letöltőkliens nem érhető el ehhez a kéréshez.", + "notInClient": "Ez a torrent már nem szerepel a letöltőkliensben.", + "state": "Állapot", + "seeding": "Megosztás", + "stopped": "Leállítva", + "client": "Kliens", + "ratio": "Arány", + "time": "Megosztási idő", + "uploaded": "Feltöltve", + "hours": "{value} ó", + "ofGoal": "{value}/{goal}", + "deleteFiles": "A letöltött fájlokat is törölje", + "remove": "Eltávolítás a kliensből", + "removeHint": "A BookOrbit magától soha nem állítja le a megosztást. Az importált könyv mindkét esetben a könyvtáradban marad.", + "confirm": { + "title": "Eltávolítod ezt a torrentet?", + "description": "A torrent megosztása leállításra kerül. A letöltött fájlok megmaradnak a lemezen.", + "descriptionWithFiles": "A torrent megosztása leállításra kerül, és a letöltött fájljai pedig törlődnek. Az importált könyv a könyvtáradban marad." + } + }, + "pipeline": { + "label": "Előrehaladás", + "steps": { + "asked": "Kérve", + "approved": "Jóváhagyva", + "release": "Kiadás megtalálva", + "downloading": "Letöltés", + "filed": "Tárolva" + }, + "summary": { + "waiting": "Várakozás itt: {step}", + "progress": "Folyamatban itt: {step}", + "done": "Tárolva a könyvtáradban", + "failed": "Hiba által leállítva itt: {step}", + "stopped": "Leállítva itt: {step}" } }, "density": { + "label": "Lista sűrűsége", + "comfortable": "Kényelmes", "compact": "Kompakt" }, + "drawer": { + "label": "Kérés részletei", + "description": "A kérés, a szakasz, amelyet elért, valamint a rajta elvégezhető nyitott döntések.", + "previous": "Előző kérés", + "next": "Következő kérés", + "position": "{position}/{total}", + "shortcuts": "J / K: mozgatás, A: jóváhagyás, Esc: bezárás" + }, + "table": { + "caption": "Könyvkérések az általuk elért szakasszal", + "cover": "Borító", + "title": "Cím", + "mediaKind": "Formátum", + "requestedBy": "Kérte", + "age": "Kor", + "state": "Állapot", + "outcome": "Eredmény", + "actions": "Műveletek", + "selectAll": "Minden jóváhagyásra váró kérés kijelölése", + "selectRow": "{title} kiválasztása", + "toggleDetail": "Mutassa, mi történt ezzel: {title}", + "release": "Kiadás", + "decidedBy": "Döntéshozó", + "decisionNote": "Döntési megjegyzés", + "requestNote": "Kérési megjegyzés", + "openDetail": "Részletek megnyitása" + }, + "confirm": { + "cancelDownloadTitle": "Letöltés megszakítása?", + "cancelDownloadDescription": "Az aktív átvitel leáll, és a kérés nyitva marad, így másik kiadás választható. A letöltőkliens által kezelt adatok megmaradnak; a részleges közvetlen letöltések átmeneti fájljai törlődnek.", + "cancelTitle": "Kérés leállítása?", + "cancelDescription": "A kérés megszakított állapotba kerül. Senki sem fogja megkapni a könyvet azok közül, akik várnak rá.", + "cancelDescriptionWithDownload": "Az aktív átvitel leállítva. A letöltőkliensben lévő adatok megmaradnak; a részleges közvetlen letöltések átmeneti fájljai törlődnek.", + "deleteTitle": "Kérés törlése?", + "deleteDescription": "A kérés és az arra vonatkozó bejegyzés, hogy ki kérte azt, véglegesen törlődik mindenki számára. Minden még megosztás alatt álló torrent eltávolításra kerül a letöltőkliensből, de a fájljai megmaradnak. A közvetlen letöltések átmeneti tárolója automatikusan kiürül. A kérés elvetése ezzel szemben csak a saját listádról rejti el azt.", + "discardImportTitle": "Importálás elvetése?", + "discardImportDescription": "A letöltött fájlok eltávolításra kerülnek a Könyvdokkból, a kérés pedig meghiúsultként lesz megjelölve. A torrent megosztása folytatódik; ha szeretnéd leállítani, azt külön kell megtenned.", + "leaveTitle": "Kérés elhagyása?", + "leaveDescription": "Nem követed tovább a kérést, és nem kapsz róla több értesítést. Aki beküldte, annak a kérése változatlanul megmarad.", + "rejectDescription": "A kérésekre várakozó összes felhasználó értesítést kap az elutasításról. Semmi sem lesz letöltve." + }, + "outcome": { + "filedIn": "Tárolva a(z) {library} könyvtárban ekkor: {time}", + "filed": "Tárolva {time}", + "rejected": "Elutasítva {time}", + "cancelled": "Megszakítva {time}", + "awaitingApproval": "Jóváhagyásra vár", + "awaitingReview": "Kézi ellenőrzésre vár", + "failedUnknown": "Leállítva az indexelő által, indoklás nélkül", + "atStage": { + "asked": "Épp most kérve", + "approved": "Jóváhagyva, még nem keresett", + "release": "Kiadás keresése", + "downloading": "Kiadás letöltése", + "filed": "Tárolás a könyvtáradban" + } + }, + "handback": { + "AUTOMATION_DISABLED": "Az automatikus begyűjtés ki van kapcsolva, így ennél a kiadás kézi kiválasztása szükséges", + "NO_DESTINATION": "A kérésnek nincs célkönyvtára, így nincs hol tárolni a könyvet", + "ATTEMPT_LIMIT": "Az automatikus teljesítés feladta {attempts} kísérlet után", + "SEARCH_FAILED": "Nem sikerült keresni a kiadások között: {detail}", + "NO_SOURCES_CONFIGURED": "Nincsenek beállítva keresési források, így nem futott le keresés ehhez a kéréshez", + "NO_SOURCES_ENABLED": "Minden keresési forrás ki van kapcsolva, így nem futott le keresés ehhez a kéréshez", + "MEDIUM_UNCOVERED": "Egyetlen engedélyezett keresési forrás sem tartalmaz ilyen könyvet, így nem futott le keresés ehhez a kéréshez", + "PROFILE_EXCLUDED_ALL": "Egyetlen kiadás sem felelt meg az ehhez a médiumhoz tartozó profilnak, így ennél a kiadás kézi kiválasztása szükséges", + "ALL_TRIED": "Minden begyűjtésre érdemes kiadás meg lett már próbálva, így ennél a kiadás kézi kiválasztása szükséges", + "BELOW_SCORE_FLOOR": "Egyetlen kiadás sem ért el {floor} vagy jobb pontszámot, így ennél a kiadás kézi kiválasztása szükséges", + "ALL_BLOCKED": "Minden begyűjtésre érdemes kiadás ki lett zárva egy korábbi meghiúsulás miatt, így ennél a kiadás kézi kiválasztása szükséges", + "ABANDONED": "Nem lett kiadás kiválasztva, így ez a letöltés nem indult el" + }, + "submitError": { + "SUBMIT_TITLE_REQUIRED": "Adj címet a könyvnek, mielőtt kérnéd", + "SUBMIT_SELF_FULFIL_FORBIDDEN": "Nem teljesítheted a saját kéréseidet", + "SUBMIT_LIBRARY_FORBIDDEN": "Nincs hozzáférésed ahhoz a könyvtárhoz", + "SUBMIT_FOLDER_NEEDS_LIBRARY": "Válassz ki egy célkönyvtárat, mielőtt mappát választanál", + "SUBMIT_FOLDER_NOT_IN_LIBRARY": "Az a mappa nem része a célkönyvtárnak", + "SUBMIT_DEFAULT_LIBRARY_UNREACHABLE": "Válassz egy olyan célkönyvtárat, amelyet elérsz: ennek a példánynak az alapértelmezettje nem tartozik a tieid közé", + "SUBMIT_DESTINATION_REQUIRED": "A kérések a benyújtásuk után azonnal jóváhagyásra kerülnek, ezért válaszd ki azt a könyvtárat, ahová a könyvnek kerülnie kell", + "SUBMIT_SELF_SERVE_LIMIT": "Fejezz be vagy szakíts meg néhány letöltést előbb: egyszerre legfeljebb {limit} letöltésed lehet folyamatban", + "SUBMIT_ON_BEHALF_FORBIDDEN": "Nem kérhetsz könyveket mások számára", + "SUBMIT_ON_BEHALF_UNKNOWN_USER": "A felhasználó számára nem küldhető be könyvkérés" + }, + "actionError": { + "BOOK_REQUEST_NOT_PENDING": "Ez a művelet csak függőben lévő kérés esetén támogatott; ennek a kérésnek az állapota jelenleg {status}", + "BOOK_REQUEST_NOT_CANCELLABLE": "Egy {status} állapotú kérés már nem szakítható meg", + "BOOK_REQUEST_DESTINATION_REQUIRED": "Válassz ki egy célkönyvtárat, mielőtt jóváhagynád ezt a kérést", + "BOOK_REQUEST_ACTION_FORBIDDEN": "Nincs jogosultságod a kérés kapcsán ehhez: {action}", + "BOOK_REQUEST_STALE_TRANSITION": "Ez a kérés megváltozott a művelet végrehajtása közben. Az állapota jelenleg {status}." + }, + "bulk": { + "selected": "{count, plural, one {# kérés kiválasztva} other {# kérés kiválasztva}}", + "approveSelected": "{count, plural, one {# kérés jóváhagyása} other {Mind a(z) # jóváhagyása}}", + "clear": "Törlés", + "dismissSelected": "{count, plural, one {# kérés elrejtése} other {Mind a(z) # elrejtése}}", + "rejectSelected": "{count, plural, one {# kérés elutasítása} other {Mind a(z) # elutasítása}}", + "rejectNoteLabel": "Ok (opcionális)", + "rejectNotePlaceholder": "Miért lettek elutasítva", + "rejectTitle": "{count, plural, one {# kérés} other {# kérés}} elutasítása?", + "rejectConfirm": "Elutasít" + }, "chooser": { - "untitled": "Névtelen" - } + "title": "Válaszd ki az importálandó könyvet", + "hint": "Erről a kiadásról kiderült, hogy {count} különálló könyvet tartalmaz. A letöltés befejeződött; válaszd ki a kért könyvet, a többi pedig hátramarad.", + "untitled": "Névtelen", + "files": "{count, plural, one {# fájl} other {# fájl}}", + "import": "Könyv importálása", + "mediaKind": { + "ebook": "E-könyv", + "audiobook": "Hangoskönyv", + "comic": "Képregény" + } + }, + "review": { + "title": "Miért várakozik", + "scoreShort": "Az importált fájl {score} pontot ért el ehhez a kéréshez képest, amely elmarad az automatikus mentéshez szükséges {threshold} küszöbértéktől.", + "scoreClears": "Az importált fájl {score} pontot ért el, amellyel elérte az automatikus mentéshez szükséges {threshold} küszöbértéket.", + "verificationOff": "Az importálás-ellenőrzés ki van kapcsolva, így ez a fájl soha nem lett pontozva a kéréshez képest.", + "reason": { + "isbn_match": "Az ISBN-száma megegyezik a kért értékkel.", + "above_threshold": "A kért könyvnek tűnik.", + "below_threshold": "Ellenőrizd az alábbi mezőket, és döntsd el, hogy ez-e a megfelelő könyv.", + "author_mismatch": "A cím hasonló, de a szerző más.", + "no_title": "A fájl nem tartalmaz olvasható címet, így nem volt mit összehasonlítani." + }, + "field": { + "title": "Cím", + "authors": "Szerző", + "isbn13": "ISBN" + }, + "verdict": { + "match": "Egyezések", + "mismatch": "Nem egyezik", + "unknown": "Nincs összehasonlítva" + }, + "requested": "Kérve", + "imported": "Importálva", + "absent": "Sem a kérés, sem a fájl nem tartalmazza.", + "notSet": "Nincs beállítva", + "filesTitle": "Mi érkezett be", + "fileCount": "{count, plural, one {# fájl} other {# fájl}}", + "role": { + "cover": "Borító", + "metadata": "Metaadatok", + "supplement": "Extra" + }, + "fileAnyway": "Tárolás mindenképp", + "fileAnywayHint": "Bemásolja a fájlt a célkönyvtárba, a kérést pedig elérhetőként jelöli meg – pontosan úgy, mintha sikeres pontszámot ért volna el.", + "noDestination": "Ehhez a kéréshez nincs mappát tartalmazó célkönyvtár megadva, így még nincs hol tárolni a könyvet.", + "openDock": "Könyvdokk megnyitása", + "missingEntry": "A fájl, amely miatt ez a kérés fel lett függesztve, már nincs a Könyvdokkban. Manuálisan tárolva vagy elvetve lett, így itt nem maradt felülbírálandó elem.", + "missingEntryNext": "Ha a könyv már szerepel a könyvtáradban, zárd le ezt a kérést az alábbiakban hozzárendelve. Ha nem szerepel ott, szakítsd meg a kérést, és keress egy másik kiadást.", + "filed": "Tárolva a könyvtáradban.", + "fileFailed": "Nem sikerült tárolni ezt az importált elemet", + "discard": "Importálás elvetése", + "discardHint": "Akkor használd ezt, ha a kiadásról kiderült, hogy nem a megfelelő könyvet tartalmazza. A fájlok eltávolításra kerülnek a Könyvdokkból, a kérés pedig meghiúsultként lesz megjelölve." + }, + "sources": { + "noneConfigured": "Nincsenek beállítva keresési források.", + "allDisabled": "Minden keresési forrás ki van kapcsolva.", + "noneConfiguredHint": "A kérések beküldhetők, de nem fut le hozzájuk keresés mindaddig, amíg hozzá nem adsz egy indexelőt vagy nem telepítesz egy forrás-bővítményt.", + "allDisabledHint": "A kérések beküldhetők, de nem fut le hozzájuk keresés mindaddig, amíg be nem kapcsolsz egyet újra.", + "askAdmin": "A kérések beküldhetők, de nem fut le hozzájuk keresés mindaddig, amíg egy adminisztrátor be nem állít egyet.", + "addSource": "Forrás hozzádása", + "reviewSources": "Források áttekintése" + }, + "selfServeBadge": "Önkiszolgáló", + "selfServeBadgeHint": "A kérő által közvetlenül letöltve, jóváhagyási lépés nélkül" }, "collection": { + "visibleToAll": "Minden felhasználó számára látható", + "visibleToAllHint": "Minden felhasználó láthatja ezt a gyűjteményt, de csak te módosíthatod a benne lévő könyveket", + "dialog": { + "name": "Név", + "icon": "Ikon", + "iconPlaceholder": "Válassz egy ikont...", + "nameRequired": "A név megadása kötelező", + "iconRequired": "Válassz egy ikont", + "creating": "Létrehozás...", + "createFailed": "Gyűjtemény létrehozása sikertelen" + }, + "createDialog": { + "title": "Új gyűjtemény", + "podcastTitle": "Új podcast-gyűjtemény", + "namePlaceholder": "pl. Kedvencek" + }, "editDialog": { - "deleted": "\"{name}\" törölve" + "title": "Gyűjtemény szerkesztése", + "syncToKobo": "Szinkronizálás Kobo-val", + "syncToKoboHint": "Az ebben a gyűjteményben lévő könyvek meg fognak jelenni a Kobo készülékeden", + "deleteCollection": "Gyűjtemény törlése", + "confirmDelete": "Megerősítés?", + "deleting": "Törlés...", + "saving": "Mentés...", + "deleted": "\"{name}\" törölve", + "updateFailed": "A gyűjtemény frissítése sikertelen", + "deleteFailed": "A gyűjtemény törlése sikertelen" + }, + "addToSheet": { + "title": "Gyűjtemények kezelése", + "selectedCount": "{count, plural, =0 {nincs könyv kiválasztva} one {egy könyv kiválasztva} other {# könyv kiválasztva}}", + "newCollection": "Új gyűjtemény", + "namePlaceholder": "Gyűjtemény neve", + "create": "Létrehozás", + "collections": "Gyűjtemények", + "empty": "Még nincsenek gyűjtemények. Hozz létre egyet fentebb.", + "done": "Kész", + "added": "Hozzáadva", + "allAdded": "Mind a(z) {total} hozzáadva", + "inCollection": "Ebben a gyűjteményben", + "allInCollection": "Mind a(z) {total} ebben a gyűjteményben", + "partialInCollection": "{partial}/{total} ebben a gyűjteményben", + "bookCount": "{count, plural, =0 {nincs könyv} one {egy könyv} other {# könyv}}", + "loadFailed": "Nem sikerült betölteni a gyűjteményeket", + "createdAndAdded": "{count, plural, =0 {\"{name}\" létrehozva és nem lett könyv hozzáadva} one {\"{name}\" létrehozva és egy könyv hozzáadva} other {\"{name}\" létrehozva és # könyv hozzáadva}}", + "createdButAddFailed": "\"{name}\" létrehozva, de a könyvek hozzáadása sikertelen", + "createFailed": "Gyűjtemény létrehozása sikertelen", + "addedNewWithExisting": "{count, plural, =0 {Egy új könyv hozzáadva ehhez: \"{name}\" ({alreadyHad} már ott van)} one {Egy új könyv hozzáadva ehhez: \"{name}\" ({alreadyHad} már ott van)} other {# új könyv hozzáadva ehhez: \"{name}\" ({alreadyHad} már ott van)}}", + "addedToCollection": "{count, plural, =0 {Nincs hozzáadott könyv ehhez: \"{name}\"} one {Egy könyv hozzáadva ehhez: \"{name}\"} other {# könyv hozzáadva ehhez: \"{name}\"}}", + "addFailed": "Nem sikerült hozzáadni a gyűjteményhez", + "removedFromCollection": "{count, plural, =0 {Nem lett könyv eltávolítva ebből: \"{name}\"} one {Egy könyv eltávolítva ebből: \"{name}\"} other {# könyv eltávolítva ebből: \"{name}\"}}", + "removeFailed": "Nem sikerült eltávolítani a gyűjteményből" } }, "components": { "appHeader": { - "annotations": "Annotációk" + "searchAllBooks": "Keresés minden könyv között...", + "searching": "Keresés...", + "noResults": "Nincs találat", + "loadingMore": "Több betöltése...", + "loadMore": "Több betöltése ({loaded}/{total})", + "allMatchesShown": "{count, plural, =0 {Mind az 1 egyezés megjelenítve} one {Mind az 1 egyezés megjelenítve} other {Mind a(z) # egyezés megjelenítve}}", + "bookCount": "{count, plural, =0 {nincs könyv} one {# könyv} other {# könyv}}", + "fileCount": "{count, plural, =0 {nincs fájl} one {# fájl} other {# fájl}}", + "uploadedToast": "{uploaded} feltöltve", + "uploadFailedToast": "{failed} feltöltése sikertelen", + "uploadPartialToast": "{uploaded} feltöltve, {failed} sikertelen", + "bookDock": "Könyvdokk", + "statistics": "Statisztikák", + "achievements": "Trófeák", + "annotations": "Annotációk", + "uploadBooks": "Könyvek feltöltése", + "appearance": "Megjelenés", + "appearanceDescription": "Válassz témát, kiemelőszínt, lekerekítési sugarat, felületi elemeket és háttérbeállításokat.", + "theme": "Téma", + "accent": "Kiemelőszín", + "radius": "Lekerekítettség", + "background": "Háttér", + "settings": "Beállítások", + "whatsNew": "Újdonságok", + "documentation": "Dokumentáció", + "help": "Súgó", + "starOnGithub": "Csillagozás a GitHubon", + "new": "Új", + "newReleaseNotes": "Új verzióinformációk érhetők el", + "account": "Fiók", + "changePassword": "Jelszó módosítása", + "signOut": "Kijelentkezés", + "githubStar": { + "title": "Tetszik a BookOrbit?", + "body": "Ha a BookOrbit segít a könyvtárad kezelésében, kérjük, fontold meg a projekt csillagozását GitHubon. Ez segít, hogy még több ember fedezhesse fel az alkalmazást, és támogatja a folyamatos fejlesztést is.", + "cta": "BookOrbit csillagozása a GitHubon" + }, + "surfaceOpacity": "Felület átlátszósága", + "surfaceOpacityValue": "{value}%", + "surfaceBrightnessValue": "{value}%" + }, + "sidebar": { + "dashboard": "Irányítópult", + "authors": "Szerzők", + "series": "Sorozat", + "tools": "Eszközök", + "libraries": "Könyvtárak", + "newLibrary": "Új könyvtár", + "scanProgress": "{processed} / {total} könyv", + "smartScopes": "Okosgyűjtemények", + "newSmartScope": "Új okosgyűjtemény", + "noSmartScopes": "Még nincsenek okosgyűjtemények", + "collections": "Gyűjtemények", + "newCollection": "Új gyűjtemény", + "noCollections": "Még nincsenek gyűjtemények", + "newReleaseNotes": "Új verzióinformációk érhetők el", + "requestBadge": { + "allActive": "{count, plural, one {# aktív kérés az összes felhasználótól} other {# aktív kérés az összes felhasználótól}}", + "mineActive": "{count, plural, one {# aktív kérés tőled} other {# aktív kérés tőled}}" + }, + "support": "BookOrbit támogatása", + "supportAria": "A BookOrbit támogatása Ko-fin", + "appLinks": { + "ios": "iOS alkalmazás letöltése", + "android": "Hamarosan érkezik az Android-alkalmazás" + }, + "sectionHeader": { + "add": "Hozzáad", + "showAll": "Mind megjelenítése", + "showCount": "{count} megjelenítése", + "rowsShown": "Megjelenített sorok", + "menuAria": "A(z) {section} szakasz beállításai", + "reorder": "Átrendezése", + "doneReordering": "Átrendezés kész" + }, + "noLibraries": "Még nincsenek könyvtárak", + "clearFilter": "Szűrő törlése", + "filterSummary": "{shown}/{total} megjelenítve", + "filterLibraries": "Könyvtárak szűrése", + "filterLibrariesPlaceholder": "Könyvtárak szűrése...", + "filterSmartScopes": "Okosgyűjtemények szűrése", + "filterSmartScopesPlaceholder": "Okosgyűjtemények szűrése...", + "filterCollections": "Gyűjtemények szűrése", + "filterCollectionsPlaceholder": "Gyűjtemények szűrése...", + "seeAllLibraries": "Összes könyvtár megtekintése ({count})", + "seeAllSmartScopes": "Összes okosgyűjtemény megtekintése ({count})", + "seeAllCollections": "Összes gyűjtemény megtekintése ({count})", + "podcasts": "Podcastok", + "newPodcastLibrary": "Új podcastkönyvtár", + "noPodcastLibraries": "Még nincsenek podcastkönyvtárak", + "filterPodcastLibraries": "Podcastkönyvtárak szűrése", + "filterPodcastLibrariesPlaceholder": "Podcastkönyvtárak szűrése...", + "seeAllPodcastLibraries": "Összes podcastkönyvtár megtekintése ({count})", + "podcastScopes": "Podcast-hatókörök", + "newPodcastScope": "Új podcast-hatókör", + "noPodcastScopes": "Még nincsenek podcast-hatókörök", + "filterPodcastScopes": "Podcast-hatókörök szűrése", + "filterPodcastScopesPlaceholder": "Podcast-hatókörök szűrése...", + "seeAllPodcastScopes": "Összes podcast-hatókör megtekintése ({count})", + "podcastCollections": "Podcast-gyűjtemény", + "newPodcastCollection": "Új podcast-gyűjtemény", + "noPodcastCollections": "Még nincsenek podcast-gyűjtemények", + "filterPodcastCollections": "Podcast-gyűjtemények szűrése", + "filterPodcastCollectionsPlaceholder": "Podcast-gyűjtemények szűrése...", + "seeAllPodcastCollections": "Összes podcast-gyűjtemény megtekintése ({count})", + "queue": "Várólista", + "mode": { + "books": "Könyvek", + "podcasts": "Podcastok", + "switcherAria": "Válts a könyvek és a podcastok között" + }, + "updateAvailable": "{version} frissítése", + "updateTooltip": "{version} frissítés elérhető", + "openUpdateRelease": "A(z) {version} kiadás megnyitása GitHubon", + "zones": { + "browse": "Tallózás" + }, + "reorder": { + "gripAria": "{name} átrendezése", + "lifted": "{name} felemelve, pozíció: {position}/{total}. A nyílbillentyűkkel mozgathatod.", + "moved": "{name}, pozíció {position}/{total}", + "dropped": "{name} lehelyezve, pozíció {position}/{total}", + "cancelled": "Átrendezés megszakítva. {name} visszahelyezve a következő pozícióba: {position}/{total}.", + "filteredHint": "Az átrendezéshez töröld a szűrőt" + }, + "podcastImportProgress": "{processed}/{total} fájl", + "podcastImportCounting": "Fájlok számolása...", + "playlists": "Okos lejátszólisták", + "newPlaylist": "Új okos lejátszólista", + "noPlaylists": "Még nincsenek okos lejátszólisták", + "filterPlaylists": "Okos lejátszólisták szűrése", + "filterPlaylistsPlaceholder": "Okos lejátszólisták szűrése...", + "seeAllPlaylists": "Összes okos lejátszólista megtekintése ({count})" + }, + "selectionActionBar": { + "setReadingStatus": "Olvasási állapot beállítása", + "setRating": "Értékelés beállítása", + "openMetadataEditor": "Metaadat-szerkesztő megnyitása", + "editIndividually": "Könyvek egyenkénti szerkesztése", + "addToCollection": "Hozzáadás gyűjteményhez", + "removeFromCollection": "Eltávolítás gyűjteményből", + "sendViaEmail": "Küldés e-mailben", + "downloadFilesZip": "Fájlok letöltése ZIP-ként", + "moreActions": "További műveletek", + "setField": "Mező beállítása", + "refreshMetadata": "Metaadatok frissítése", + "reExtractCover": "Borító újbóli kibontása", + "metadataLock": "Metaadat-zárolás", + "lockAll": "Összes zárolása", + "unlockAll": "Összes feloldása", + "exportMetadata": "Metaadatok exportálása", + "deleteSelected": "Kijelöltek törlése", + "exitSelection": "Kilépés a kijelölésből", + "downloadFilesZipLabel": "Fájlok letöltése ZIP-ként:", + "primaryOnly": "Csak elsődleges", + "allFormats": "Minden formátum", + "audioOnly": "Csak hang", + "setRatingLabel": "Értékelés beállítása:", + "clear": "Törlés", + "setFieldLabel": "Mező beállítása:", + "apply": "Alkalmaz", + "fieldPlaceholder": "Hagyd üresen a törléshez", + "fieldPlaceholderArray": "Vesszővel elválasztva (hagyd üresen a törléshez)", + "deleteConfirm": "{count, plural, =0 {Törölsz # könyvet?} one {Törölsz # könyvet?} other {Törölsz # könyvet?}}", + "typeDelete": "Írd be: DELETE" }, "viewHeader": { + "select": "Kiválaszt", + "display": "Megjelenés", + "displayDescription": "Módosítsd a borítóméretet, a rácstávolságot és a nézetmegjelenítési beállításokat.", + "columnVisibilityHint": "Használd a táblázat fejlécében található oszlopláthatósági panelt az oszlopok megjelenítéséhez vagy elrejtéséhez.", + "columnVisibilityMobileHint": "Az oszlopok láthatósága a táblázat fejlécéből kezelhető.", + "searchPlaceholder": "Keresés cím, szerző, sorozat, felolvasó alapján...", + "clearSearch": "Keresés törlése", + "closeSearch": "Keresés bezárása", + "mobileSearch": { + "description": "Elemeket keresése cím, szerző, sorozat vagy felolvasó alapján.", + "done": "Kész" + }, + "mobileMenu": { + "grid": "Rács", + "list": "Lista", + "select": "Kiválaszt", + "exitSelect": "Kilépés a kijelölésből" + }, "displayControls": { - "densityCompact": "Kompakt" + "display": "Megjelenés", + "coverSize": "Borító mérete", + "gridGap": "Rács-térköz", + "pixelValue": "{value} pixel", + "showJumpRails": "Gyorsugró sáv megjelenítése", + "columnsHint": "Használd a táblázat fejlécében található oszlopláthatósági panelt az oszlopok megjelenítéséhez vagy elrejtéséhez.", + "coverShape": "Borító alakja", + "circle": "Kör", + "square": "Négyzet", + "rowDensity": "Sormagasság", + "densityCompact": "Kompakt", + "densityComfortable": "Kényelmes", + "densityRoomy": "Tágas", + "coverFallback": "Könyvborítók használata a hiányzó portrékhoz" + }, + "viewModes": { + "grid": "Rácsnézet", + "list": "Lista nézet", + "table": "Táblázat nézet" } + }, + "iconPicker": { + "clearSelectionAria": "Kiválasztott ikon törlése", + "searchLucide": "Keresés a Lucide ikonok között...", + "searchCustom": "Keresés az egyéni ikonok között...", + "chooseIcon": "Válassz egy ikont...", + "selectIcon": "Ikon kiválasztása", + "customTab": "Egyéni", + "searching": "Keresés...", + "noIconsMatch": "Egyetlen ikon sem egyezik ezzel: „{query}”", + "typeToSearch": "Gépelj az összes ikon közötti kereséshez", + "noCustomIcons": "Nincsenek feltöltve egyéni ikonok", + "noIconsAvailable": "Nincsenek elérhető ikonok" + }, + "entityNotFound": { + "title": "{entity} nem található", + "description": "Ez a(z) {entity} nem létezik, vagy törölve lett.", + "goBack": "Vissza" + }, + "media": { + "volume": "Hangerő", + "mute": "Némítás", + "unmute": "Némítás feloldása" + }, + "themePicker": { + "light": "Világos", + "dark": "Sötét", + "system": "Rendszer" + }, + "radiusPicker": { + "sharp": "Egyenes sarkok", + "default": "Alapértelmezett sarkok", + "rounded": "Lekerekített sarkok", + "pill": "Kapszula alakú sarkok" + }, + "languagePicker": { + "searchPlaceholder": "Nyelvek keresése", + "suggested": "Javasolt", + "all": "Minden nyelv", + "results": "Eredmények", + "empty": "Egyetlen nyelv sem egyezik ezzel: „{query}”" + }, + "userAvatar": { + "profilePicture": "Profilkép", + "profilePictureOf": "{name} profilképe" + }, + "ui": { + "sidebar": { + "title": "Oldalsáv", + "mobileDescription": "Megjeleníti a mobilos oldalsávot.", + "toggle": "Oldalsáv be/ki", + "collapse": "Oldalsáv összecsukása", + "expand": "Oldalsáv kibontása", + "open": "Oldalsáv megnyitása", + "close": "Oldalsáv bezárása" + }, + "chipInput": { + "typeAndEnter": "Gépelj, majd a hozzáadáshoz nyomd meg az Entert", + "pressEnter": "Nyomj Entert a hozzáadáshoz", + "remove": "{value} eltávolítása" + }, + "tokenSelect": { + "remove": "{value} eltávolítása", + "noMatches": "Nincs találat", + "showOptions": "Beállítások megjelenítése" + } + }, + "entityIndex": { + "sortBy": "Rendezés módja", + "sort": { + "custom": "Egyéni sorrend", + "name": "Név", + "bookCount": "Könyvek száma", + "showCount": "Darabszám megjelenítése" + }, + "ascending": "Növekvő", + "descending": "Csökkenő", + "clearSearch": "Keresés törlése", + "resultCount": "{shown}/{total}", + "noMatches": "Nincs találat", + "noMatchesHint": "Próbálkozz egy másik keresőkifejezéssel.", + "bookCount": "Könyvek: {count}", + "showCount": "Műsorok: {count}", + "librariesEmptyHint": "Hozz létre egy könyvtárat a könyvek hozzáadásának megkezdéséhez.", + "podcastLibrariesEmptyHint": "Hozz létre egy podcastkönyvtárat a műsorok követésének megkezdéséhez.", + "smartScopesEmptyHint": "Az okosgyűjtemények elmentik a gyakran használt szűrők egy-egy csoportját.", + "collectionsEmptyHint": "A gyűjtemények a manuálisan kiválasztott könyveket csoportosítják." + }, + "legalNotices": { + "about": "BookOrbit névjegye", + "trigger": "Jogi nyilatkozatok", + "title": "BookOrbit névjegye", + "description": "A BookOrbit közreműködői, licencfeltételei és forráskódja.", + "poweredBy": "A BookOrbit támogatásával", + "originalDevelopment": "Ez a szoftver eredetileg a BookOrbit részeként kifejlesztett anyagokat tartalmaz.", + "copyright": "Copyright (C) 2025-2026 neon.", + "contributors": "A további szerzői jogok a BookOrbit mindenkori közreműködőit illetik.", + "licenseSummary": "A GNU Affero General Public License 3-as verziója (kizárólag) és további feltételek szerint licencelve. Ez a szoftver garancia nélkül kerül átadásra. Ezen feltételek betartásával szabadon terjeszthető és módosítható.", + "sourceCode": "Forráskód", + "license": "AGPLv3 license", + "additionalTerms": "További feltételek" + }, + "confirmDialog": { + "typeToConfirm": "Írd be ezt a megerősítéshez: \"{phrase}\"" + }, + "formSheet": { + "discardTitle": "Módosítások elvetése?", + "discardDescription": "A nem mentett módosításaid el fognak veszni.", + "discardConfirm": "Elvetés" } }, + "customIcons": { + "dialogTitle": "Egyéni ikonok feltöltése", + "dialogDescription": "Ellenőrizd a neveket, mielőtt hozzáadnád őket a könyvtáradhoz.", + "readingFiles": "Fájlok olvasása...", + "dropPrompt": "Húzd ide az SVG-fájlokat, vagy kattints a böngészéshez", + "fileLimit": "Legfeljebb {max} fájl, egyenként maximum 128 KB", + "namePlaceholder": "Név", + "nameRequired": "A név megadása kötelező", + "invalidSvg": "Érvénytelen SVG", + "invalidSvgFile": "Érvénytelen SVG fájl", + "identicalTo": "Megegyezik ezzel: „{name}”", + "uploadAnyway": "Feltöltés mindenképp", + "skipThisOne": "Hagyja ki ezt", + "readyToUpload": "{count} feltöltésre kész", + "noIconsStaged": "Még nincsenek ikonok előkészítve", + "uploading": "Feltöltés...", + "upload": "Feltöltés", + "uploadCount": "{count} feltöltése", + "onlySvgSupported": "Kizárólag SVG-fájlok támogatottak", + "maxStaged": "Egyszerre legfeljebb {max} ikon készíthető elő", + "onlyMoreCanStage": "{count, plural, =0 {Több ikon nem készíthető elő} one {Már csak # ikon készíthető elő} other {Már csak # ikon készíthető elő}}", + "readFailed": "Nem sikerült beolvasni az SVG-fájlokat", + "uploadedCount": "{count, plural, =0 {Nincs ikon feltöltve} one {# ikon feltöltve} other {# ikon feltöltve}}", + "uploadedPartial": "Feltöltve {created}, {failed} sikertelen", + "noIconsUploaded": "Nincsenek ikonok feltöltve", + "uploadFailed": "Nem sikerült feltölteni az ikonokat", + "uploadFailedEntry": "Feltöltés sikertelen" + }, "dashboard": { "common": { - "untitled": "Névtelen" + "failedToLoad": "Betöltés sikertelen", + "retry": "Újra", + "untitled": "Névtelen", + "cover": "Borító", + "bookCover": "Könyvborító" + }, + "libraryLoad": { + "errorTitle": "Nem sikerült betölteni a könyvtáraidat", + "errorDescription": "A BookOrbit nem tudta lekérni a könyvtáraidat. A könyvtáradatai nem törlődtek." + }, + "scroller": { + "failedToLoad": "Betöltés sikertelen.", + "empty": { + "continueReading": "Még nincsenek folyamatban lévő könyvek. Kezdj el olvasni egyet, hogy lásd itt.", + "continueListening": "Még nincsenek folyamatban lévő hangoskönyvek. Kezdj el hallgatni egyet, hogy lásd itt.", + "continuePodcasts": "Még nincsenek folyamatban lévő podcast-epizódok. Indíts el egyet, hogy lásd itt.", + "wantToRead": "Még nincsenek elolvasandó könyvek.", + "upNextInSeries": "Még nincsenek következő kötetajánlatok. Fejezz be egy kötetet, hogy megjelenjen a következő.", + "recentlyAdded": "Még nincsenek könyvek a könyvtáradban.", + "smartScope": "Egyetlen könyv sem egyezik ezzel az okosgyűjteménnyel.", + "default": "Nem találhatók könyvek." + } + }, + "settings": { + "title": "Irányítópult testreszabása", + "tabs": { + "widgets": "Widgetek", + "shelves": "Polcok" + }, + "widgetNames": { + "readingStreak": "Olvasási sorozat", + "currentlyReading": "Jelenleg olvasott", + "readingGoal": "Olvasási cél", + "readingDna": "Olvasási DNS", + "monthlyChallenge": "Havi kihívás", + "highlightOfTheDay": "A nap kiemelése", + "neglectedGems": "Elfeledett gyöngyszemek", + "readingRhythm": "Olvasási ritmus", + "diversityScore": "Sokszínűségi mutató", + "libraryOverview": "Könyvtár áttekintése", + "yearProjection": "Éves előrejelzés", + "longWait": "A hosszú várakozás" + }, + "shelfNames": { + "recentlyAdded": "Legutóbb hozzáadva", + "continueReading": "Olvasás folytatása", + "continueListening": "Hallgatás folytatása", + "continuePodcasts": "Podcast folytatása", + "wantToRead": "El akarom olvasni", + "upNextInSeries": "Következő sorozatrész", + "random": "Fedezz fel valami újat", + "smartScope": "Okosgyűjtemény" + }, + "shelfLayout": { + "title": "Polc elrendezése", + "description": "Válaszd ki, hogyan rendeződjenek el a polcok a nagyobb képernyőkön.", + "wide": "Széles sorok", + "wideDescription": "Egy polc megjelenítése soronként.", + "twoColumns": "Két oszlop", + "twoColumnsDescription": "Két polc megjelenítése soronként." + }, + "libraryScope": { + "title": "Könyvtárak az irányítópulton", + "description": "Válaszd ki, mely könyvtárak adjanak hozzá könyveket és olvasási adatokat ehhez az irányítópulthoz.", + "allLibraries": "Minden elérhető könyvtár", + "summaryNone": "Nincsenek könyvtárak kiválasztva", + "summaryCount": "{count, plural, one {# könyvtár} other {# könyvtár}}", + "required": "Válassz ki legalább egy könyvtárat." + }, + "shelfRows": { + "label": "Könyvsorok", + "option": "{count, plural, one {Egy könyvsor} other {# könyvsor}}", + "hint": "Állítsd be, hány könyvsort jelenítsen meg az egyes polcok mindegyike. Keskeny képernyőkön legfeljebb kettő jelenik meg." + }, + "reorderHintWidget": "Húzd az átrendezéshez. Kapcsold be vagy ki a widgetek megjelenítéséhez, illetve elrejtéséhez.", + "reorderHintShelf": "Húzd az átrendezéshez. Kapcsold be vagy ki a polc megjelenítéséhez, illetve elrejtéséhez.", + "smartScope": "Okosgyűjtemény", + "noSmartScopes": "Még nincsenek okosgyűjtemények. Hozz létre egyet az oldalsávból.", + "addShelf": "Polc hozzáadása", + "resetToDefaults": "Alapbeállítások visszaállítása" + }, + "welcome": { + "emptyTitle": "A könyvtárad üres", + "noLibrariesTitle": "Még nincsenek könyvtárak", + "emptyDescription": "Hozz létre egy könyvtárat a könyveid rendszerezésének és olvasásának megkezdéséhez. Irányítsd egy mappára, és a rendszer elvégzi a többit.", + "noLibrariesDescription": "A adminisztrátorod még nem állított be könyvtárakat. Fordulj hozzá a kezdéshez.", + "createFirstLibrary": "Hozd létre az első könyvtáradat" + }, + "widgets": { + "currentlyReading": { + "title": "Jelenleg olvasott", + "empty": "Nincsenek folyamatban lévő könyvek. Kezdj el olvasni egyet, hogy lásd itt.", + "continueReading": "Olvasás folytatása" + }, + "diversityScore": { + "title": "Sokszínűségi mutató", + "notEnoughData": "Olvass el legalább 3 könyvet a sokszínűségi mutatód megtekintéséhez", + "booksAnalyzed": "{count, plural, =0 {nincs elemzett könyv} one {# elemzett könyv} other {# elemzett könyv}}", + "subScores": { + "genre": "Műfaj", + "author": "Szerző", + "era": "Korszak", + "language": "Nyelv" + } + }, + "highlightOfTheDay": { + "title": "A nap kiemelése", + "empty": "Emelj ki szövegrészleteket olvasás közben, hogy lásd őket itt" + }, + "libraryOverview": { + "title": "Könyvtár áttekintése", + "empty": "A könyvtárad üres. A kezdéshez adj hozzá néhány könyvet.", + "addedThisYear": "+{count} hozzáadva idén", + "stats": { + "books": "Könyvek", + "authors": "Szerzők", + "series": "Sorozat", + "storage": "Tárhely" + } + }, + "longWait": { + "title": "A hosszú várakozás", + "empty": "Nincsenek várakozó könyvek. Már mindegyiket elkezdted!", + "daysWaiting": "napja várakozik", + "pages": "{count, plural, =0 {nincs oldal} one {# oldal} other {# oldal}}", + "startReading": "Olvasás megkezdése" + }, + "monthlyChallenge": { + "title": "Havi kihívás", + "complete": "Kész!" + }, + "neglectedGems": { + "title": "Elfeledett gyöngyszemek", + "empty": "Az összes legjobb értékelésű könyvedet elolvastad!", + "rating": "{rating}/5", + "daysWaiting": "{count} napja várakozik", + "queued": "Sorba állítva", + "addToQueue": "Sorba tesz", + "shuffle": "Keverés" + }, + "readingDna": { + "title": "Olvasási DNS", + "notEnoughData": "Olvass el legalább 5 könyvet az Olvasási DNS-ed feloldásához", + "basedOn": "{count, plural, =0 {Egy könyv alapján sem} one {# könyv alapján} other {# könyv alapján}}", + "traits": { + "length": "Hossz", + "variety": "Változat", + "rhythm": "Ritmus", + "time": "Idő", + "speed": "Tempó" + } + }, + "readingGoal": { + "title": "Olvasási cél {year}", + "setGoalPrompt": "Állíts be egy olvasási célt a haladásod követéséhez", + "setGoal": "Cél beállítása", + "booksPerYear": "Könyvek száma évente", + "ofGoal": "{goal}-ból", + "percentComplete": "{percentage}% kész", + "editGoal": "Cél szerkesztése" + }, + "readingRhythm": { + "title": "Olvasási ritmus", + "empty": "Kezdj el olvasni, hogy lásd a ritmusod kialakulását", + "activeDays": "{count, plural, =0 {nincs aktív nap} one {# aktív nap} other {# aktív nap}}", + "consistency": "{activeDays} · {percent}%-os rendszeresség", + "avgPerDay": "átlag {time}/nap" + }, + "readingStreak": { + "title": "Olvasási sorozat", + "empty": "Olvass ma is a sorozatod elindításához", + "streakLabel": "{count, plural, =0 {napos sorozat} one {napos sorozat} other {napos sorozat}}", + "best": "{count, plural, =0 {Legjobb: # nap} one {Legjobb: # nap} other {Legjobb: # nap}}", + "lastSevenDays": "Utolsó 7 nap" + }, + "yearProjection": { + "title": "Éves előrejelzés", + "books": "könyv", + "trendUp": "Emelkedő trend", + "trendDown": "Csökkenő trend", + "trendSteady": "Stabil tempó", + "pages": "oldal", + "hours": "óra", + "readCount": "{count} elolvasva", + "daysLeft": "{count}n van hátra" + } } }, "email": { + "title": "Email", + "subtitle": "Küldj könyveket az e-olvasódra emailben.", + "loadFailed": "Betöltés sikertelen", + "saveFailed": "Mentés sikertelen", + "deleteFailed": "Törlés sikertelen", + "setDefaultFailed": "Alapértelmezés beállítása sikertelen", + "setAsDefault": "Beállítása alapértelmezettként", + "saving": "Mentés...", + "update": "Frissítés", + "create": "Létrehozás", "deleteConfirm": "\"{name}\" törlése. Ez a művelet nem vonható vissza.", + "badge": { + "default": "Alapértelmezett", + "shared": "Megosztva", + "system": "Rendszer" + }, + "tabs": { + "providers": "Szolgáltatók", + "recipients": "Címzettek", + "groups": "Csoportok", + "templates": "Sablonok", + "preferences": "Beállítások", + "history": "Előzmények" + }, "providers": { - "deleted": "\"{name}\" törölve" + "heading": "SMTP szolgáltatók", + "add": "Szolgáltató hozzáadása", + "newTitle": "Új szolgáltató", + "editTitle": "Szolgáltató szerkesztése", + "name": "Név", + "namePlaceholder": "pl. Gmail", + "host": "Kiszolgáló", + "port": "Port", + "username": "Felhasználónév", + "password": "Jelszó", + "passwordEdit": "Jelszó (a jelenlegi megtartásához hagyd üresen)", + "fromName": "Feladó neve", + "fromNamePlaceholder": "Könyvtáram", + "fromAddress": "Feladó címe", + "authentication": "Hitelesítés", + "verifyTls": "TLS-tanúsítvány ellenőrzése", + "tlsWarning": "A TLS-ellenőrzés ki van kapcsolva. A szerver tanúsítványa nem lesz érvényesítve – kizárólag megbízható belső szerverekhez használd.", + "noFromAddress": "nincs feladó címe", + "emptyManage": "Még nincsenek szolgáltatók. Adj hozzá egy SMTP-szolgáltatót az e-mailek küldésének megkezdéséhez.", + "emptyReadonly": "Nem érhetők el szolgáltatók. Kérd meg az adminisztrátort, hogy adjon hozzá egyet.", + "setSystemTooltip": "Beállítás rendszerszintű e-mail-szolgáltatóként", + "removeSystemTooltip": "Rendszerszintű e-mail-szolgáltató törlése", + "testTooltip": "Kapcsolat tesztelése", + "toggleSharing": "Megosztás ki-/bekapcsolása", + "removeSystemBeforeDelete": "Törlés előtt távolítsd el a rendszerszintű kijelölést", + "notesHeading": "Szolgáltatói megjegyzések", + "notesBody": "A {system} szolgáltató (kizárólag szuperfelhasználó) a jelszó-visszaállító e-mailekhez használatos. A {defaultProvider} szolgáltató lép életbe, ha a könyvek küldésekor nincs kifejezetten szolgáltató kiválasztva. A {shared} jelöléssel ellátott szolgáltatók minden felhasználó számára elérhetők.", + "deleteTitle": "Szolgáltató törlése?", + "nameHostRequired": "A név és a kiszolgáló megadása kötelező", + "created": "Szolgáltató létrehozva", + "updated": "Szolgáltató frissítve", + "deleted": "\"{name}\" törölve", + "setDefaultSuccess": "\"{name}\" beállítva alapértelmezettként", + "unshared": "A szolgáltató nincs megosztva", + "sharedWithAll": "A szolgáltató megosztva minden felhasználóval", + "updateSharingFailed": "Nem sikerült frissíteni a megosztást", + "systemRemoved": "\"{name}\" eltávolítva, mint rendszerszintű e-mail-szolgáltató", + "systemSet": "\"{name}\" beállítva, mint rendszerszintű e-mail-szolgáltató", + "updateSystemFailed": "Nem sikerült frissíteni a rendszerszintű szolgáltatót", + "connectionSuccess": "Csatlakozás sikeres", + "connectionFailed": "Csatlakozás sikertelen", + "testFailed": "Teszt sikertelen" }, "recipients": { + "heading": "Címzettek", + "add": "Címzett hozzáadása", + "newTitle": "Új címzett", + "editTitle": "Címzett szerkesztése", + "name": "Név", + "namePlaceholder": "Kindle-eszközöm", + "emailAddress": "Email cím", + "deviceType": "Eszköz típusa", "deviceNone": "Egyik sem", - "deleted": "\"{name}\" törölve" + "deviceOther": "Egyéb", + "preferredFormat": "Előnyben részesített formátum", + "formatAuto": "Automatikus", + "defaultTemplate": "Alapértelmezett sablon", + "useAccountDefault": "Fiók alapértelmezés használata", + "kindleNote": "A Kindle-címzettek automatikusan „convert” tárgyú emaileket kapnak a formátumkonverzió elindításához.", + "empty": "Még nincsenek címzettek.", + "prefersFormat": "{format} előnyben részesítése", + "deleteTitle": "Címzett törlése?", + "nameEmailRequired": "A név és az email megadása kötelező", + "created": "Címzett létrehozva", + "updated": "Címzett frissítve", + "deleted": "\"{name}\" törölve", + "setDefaultSuccess": "\"{name}\" beállítva alapértelmezettként" }, "groups": { - "deleted": "\"{name}\" törölve" + "heading": "Címzettcsoportok", + "create": "Csoport létrehozása", + "newTitle": "Új csoport", + "name": "Csoport neve", + "namePlaceholder": "pl. Könyvklub", + "creating": "Létrehozás...", + "empty": "Még nincsenek csoportok. Hozz létre egy csoportot, hogy egyszerre több címzettnek is küldhess tartalmat.", + "memberCount": "{count, plural, =0 {nincs tag} one {egy tag} other {# tag}}", + "deleteTooltip": "Csoport törlése", + "noMembers": "Még nincsenek tagok.", + "removeMember": "Eltávolítás", + "selectRecipient": "Címzett kiválasztása...", + "add": "Hozzáad", + "addMember": "Tag hozzáadása", + "allRecipientsInGroup": "Az összes címzett már szerepel ebben a csoportban.", + "deleteTitle": "Csoport törlése?", + "created": "Csoport létrehozva", + "createFailed": "Csoport létrehozása sikertelen", + "deleted": "\"{name}\" törölve", + "memberAdded": "Tag hozzáadva", + "addMemberFailed": "Tag hozzáadása sikertelen", + "memberRemoved": "Tag eltávolítva", + "removeMemberFailed": "Tag eltávolítása sikertelen" }, "templates": { - "deleted": "\"{name}\" törölve" + "heading": "Email sablonok", + "new": "Új sablon", + "newTitle": "Új sablon", + "editTitle": "Sablon szerkesztése", + "name": "Név", + "namePlaceholder": "Alapértelmezett", + "subject": "Tárgy", + "body": "Törzs", + "availableVariables": "Elérhető változók", + "editTemplate": "Sablon szerkesztése", + "empty": "Még nincsenek sablonok.", + "notesHeading": "Sablon megjegyzések", + "notesBody": "A rendszersablonok nem törölhetők. Az adminisztrátorok szerkeszthetik őket. Használj olyan változókat a tárgyban és a törzsben, mint a {variable} – ezek a küldéskor a könyv adataira cserélődnek.", + "deleteTitle": "Sablon törlése?", + "nameSubjectRequired": "A név és a tárgy megadása kötelező", + "created": "Sablon létrehozva", + "updated": "Sablon frissítve", + "deleted": "\"{name}\" törölve", + "setDefaultSuccess": "\"{name}\" beállítva alapértelmezettként" }, "preferences": { - "none": "Egyik sem" + "heading": "E-mail beállítások", + "defaultProvider": "Alapértelmezett szolgáltató", + "defaultProviderHint": "Akkor használatos, ha nincs szolgáltató megadva. Ha üresen marad, a fiók alapértelmezése lép érvénybe.", + "noneAccountDefault": "Nincs (a fiók alapértelmezése szerint)", + "defaultRecipient": "Alapértelmezet címzett", + "defaultRecipientHint": "A gyors küldéshez használatos. Megadása kötelező a könyvkártyákon található gyors küldés funkció használatához.", + "none": "Egyik sem", + "defaultTemplate": "Alapértelmezett sablon", + "defaultTemplateHint": "Akkor használatos, ha nincs sablon megadva. Ha üresen marad, a rendszer alapértelmezése lép érvénybe.", + "noneSystemDefault": "Nincs (a rendszer alapértelmezés szerint)", + "save": "Beállítások mentése", + "saved": "Beállítások mentve" + }, + "history": { + "heading": "Küldési előzmények", + "empty": "Még nincsenek elküldött emailek.", + "noSubject": "(nincs tárgy)", + "loadMore": "Több betöltése", + "resend": "Újraküldés", + "deleteTitle": "Előzménysor törlése?", + "entryDeleted": "Bejegyzés törölve", + "queuedForResend": "Újraküldési sorba állítva", + "resendFailed": "Újraküldés sikertelen", + "statusSent": "Elküldve", + "statusFailed": "Sikertelen", + "statusQueued": "Sorba állítva", + "statusPending": "Függőben" + }, + "send": { + "title": "Küldés emailben", + "bookCount": "{count, plural, =0 {nincs könyv} one {egy könyv} other {# könyv}}", + "recipients": "Címzettek", + "noRecipients": "Nincsenek címzettek beállítva. Adj hozzá egyet az Email-beállításokban.", + "groups": "Csoportok", + "options": "Beállítások", + "fileFormat": "Fájlformátum", + "autoRecipientPreference": "Automatikus (a címzett beállításai szerint)", + "unknownFormat": "Ismeretlen", + "primarySuffix": "(elsődleges)", + "provider": "Szolgáltató", + "template": "Sablon", + "default": "Alapértelmezett", + "send": "Küldés", + "sending": "Küldés...", + "queued": "{count, plural, =0 {nincs email a sorban} one {egy email a sorban} other {# email a sorban}}", + "failed": "Küldés sikertelen" + } + }, + "errors": { + "network": "A BookOrbit nem érhető el. Ellenőrizd a kapcsolatot, majd próbáld újra.", + "codes": { + "PODCAST_LOCAL_NO_REFRESH": "Ez a műsor nem rendelkezik hírfolyammal, így nincs mit frissíteni.", + "PODCAST_LOCAL_NO_DOWNLOAD": "Ez az epizód a saját fájljaid egyike, így nincs mit letölteni. A te példányod az egyetlen.", + "PODCAST_LOCAL_FILE_NOT_REMOVABLE": "Ez az epizód a saját fájljaid egyike, így a BookOrbit nem fogja törölni. Távolítsd el magad a mappából.", + "PODCAST_LOCAL_MEDIA_MISSING": "Az epizód egyetlen példánya már nem található meg a lemezen, így nem játszható le.", + "PODCAST_LOCAL_FOLDER_EMPTY": "Ez a mappa nem tartalmaz a BookOrbit számára importálható hanganyagot, így nem hozható létre belőle műsor.", + "PODCAST_STORAGE_FULL": "Ez a podcastkönyvtár kifogyott a tárhelyből. Szabadíts fel helyet, vagy emeld meg a kvótáját, majd próbáld újra. A helyi műsorokhoz tartozó fájlok sosem törlődnek a helyfelszabadítás érdekében." } }, "hardcover": { + "settings": { + "subtitle": "Szinkronizáld az olvasási haladásodat, státuszodat és értékeléseidet a Hardcover felületével." + }, + "bookSync": { + "label": "Hardcover-szinkronizálás", + "toggleAriaLabel": "Könyv szinkronizálása a Hardcover-rel", + "syncNow": "Szinkronizálás most" + }, + "connection": { + "title": "Kapcsolat", + "description": "Kapcsold össze a Hardcover-fiókodat az olvasási adatok szinkronizálásához.", + "connected": "Csatlakoztatva", + "apiToken": "API-token", + "tokenPlaceholder": "Illeszd be a Hardcover API-tokenedet", + "show": "Megjelenítés", + "hide": "Elrejtés", + "findTokenAt": "A tokenedet itt találod", + "validateToken": "Token érvényesítése", + "valid": "Érvényes ({username})", + "invalidToken": "Érvénytelen token", + "syncOptions": "Szinkronizálási beállítások", + "syncInfo": "A szinkronizálás kizárólag a nem olvasatlan státuszú könyvekre fut le. Ez a státusz-, haladás- és értékelésalapú indítófeltételekre egyaránt vonatkozik. Ezek a kapcsolók szabályozzák, hogy mikor fusson le a szinkronizálás.", + "syncScope": { + "title": "Könyvszinkronizálási hatókör", + "allEligible": { + "label": "Minden jogosult könyv", + "description": "Mindent szinkronizál, kivéve ha kizársz egy könyvet." + }, + "selectedOnly": { + "label": "Kizárólag a kijelölt könyvek", + "description": "Kizárólag azokat a könyveket szinkronizálja, amelyeket kifejezetten beveszel a hatókörbe." + } + }, + "enableSync": { + "title": "Szinkronizálás engedélyezése", + "description": "A Hardcover-szinkronizálás szüneteltetése a kapcsolat megszakítása nélkül." + }, + "syncOnStatus": { + "title": "Szinkronizálás az állapot változásakor", + "description": "Frissítések küldése, amikor egy könyvet olvasás alatt állóként, elolvasottként stb. jelölsz meg." + }, + "syncOnProgress": { + "title": "Szinkronizálás a haladás frissítésekor", + "description": "Az olvasási haladás és a dátumok elküldése, amikor a BookOrbit vagy a KOReader felületén változik a haladás." + }, + "syncOnRating": { + "title": "Szinkronizálás az értékelés változásakor", + "description": "Küldd el a csillagos értékeléseidet a Hardcover felületére." + }, + "privacy": { + "title": "Láthatóság", + "description": "A szinkronizált könyvek alapértelmezett láthatósága a Hardcover felületén.", + "public": "Nyilvános", + "followersOnly": "Csak követők", + "private": "Privát" + }, + "disconnect": "Lecsatlakozás", + "toast": { + "enterToken": "Először add meg a Hardcover API-tokenedet", + "saved": "Hardcover beállítások mentve", + "saveFailed": "Nem sikerült menteni a beállításokat", + "disconnected": "Hardcover lecsatlakozva" + } + }, + "sync": { + "title": "Kézi szinkronizálás", + "description": "{scope} küldése a Hardcoverre most.", + "scope": { + "selected": "kiválasztott könyvek", + "eligible": "jogosult könyvek" + }, + "checkingPending": "Függőben lévő elemek ellenőrzése...", + "pendingOf": "{pending}/{total} függőben lévő könyv.", + "noBooksInScope": "Nincs könyv a szinkronizálási hatókörben.", + "allSynced": "Minden könyv szinkronizálva van.", + "lastSyncedLabel": "Utoljára szinkronizálva", + "lastSuccessfulSync": "Legutóbbi sikeres szinkronizálás", + "syncing": "Szinkronizálás...", + "progressCount": "{synced} / {total} könyv", + "unavailable": { + "permissionDenied": "Nincs jogosultságod a Hardcover-szinkronizálás használatára.", + "userDisabled": "A szinkronizálás szüneteltetve van a Hardcover-beállításaidban." + }, + "button": { + "unavailable": "Szinkronizálás nem érhető el", + "syncNow": "Szinkronizálás most", + "syncNowCount": "Szinkronizálás most ({count})" + }, + "lastSynced": { + "justNow": "Épp most", + "minutesAgo": "{count} perce", + "hoursAgo": "{count, plural, =0 {# órája} one {# órája} other {# órája}}", + "daysAgo": "{count, plural, =0 {# napja} one {# napja} other {# napja}}" + } + }, "import": { + "title": "Olvasási állapot lekérése", + "description": "A Hardcover-találatok előnézetének megtekintése az üres BookOrbit-állapotok kitöltése előtt.", + "clear": "Törlés", + "preview": "Előnézet", + "importProgress": "Haladások importálása", + "reviewMatches": "Találatok ellenőrzése", + "importReady": "Importálás kész", + "exactMatches": "{count, plural, =0 {nincs ellenőrzés nélkül importálható pontos találat} one {# pontos találat importálható ellenőrzés nélkül} other {# pontos találat importálható ellenőrzés nélkül}}", + "progressAvailable": "{count, plural, =0 {nincs elérhető haladásfrissítés} one {# elérhető haladásfrissítés} other {# elérhető haladásfrissítés}}", + "progressConflicts": "{count, plural, =0 {nincs ütközés} one {# ütközés} other {# ütközés}}", + "unavailable": { + "permissionDenied": "Nincs jogosultságod a Hardcover-szinkronizálás használatára.", + "missingToken": "Az importálás előtt kapcsold össze a Hardcover-fiókodat.", + "userDisabled": "A szinkronizálás szüneteltetve van a Hardcover-beállításaidban." + }, "summary": { - "unmatched": "Párosítatlan" + "ready": "Kész", + "review": "Áttekintés", + "conflicts": "Ütközések", + "unmatched": "Párosítatlan", + "skipped": "Átugorva" + }, + "result": { + "summary": "{applied} importálva{progress}, {failed} sikertelen", + "progressUpdated": "{count} haladásfrissítés" + }, + "toast": { + "importFailed": "Nem sikerült importálni a Hardcover olvasási állapotot", + "imported": "{count, plural, =0 {nem történt olvasási állapot-importálás{progress}} one {# olvasási állapot importálva{progress}} other {# olvasási állapot importálva{progress}}}", + "progressUpdates": "{count, plural, =0 {nincs haladásfrissítés} one {# haladásfrissítés} other {# haladásfrissítés}}" } }, "review": { + "title": "Hardcover-import áttekintése", + "subtitle": "{total} Hardcover-könyv, {matched} egyeztetve.", + "closeAriaLabel": "Importálás áttekintésének bezárása", + "searchPlaceholder": "Cím vagy szerző keresése", + "importProgress": "Haladás importálása", "untitled": "Névtelen", + "blank": "üres", + "noRows": "Egyetlen sor sem felel meg a jelenlegi szűrőknek.", + "selectRowAriaLabel": "{title} kiválasztása", + "selectionSummary": "{count} kiválasztva: {ready} kész, {reviewed} áttekintve.", + "selectedProgress": "{count, plural, =0 {nincs haladásfrissítés} one {# haladásfrissítés} other {# haladásfrissítés}}", + "selectReady": "Kiválasztás kész", + "selectPage": "Oldal kiválasztása", + "clearPage": "Oldal törlése", + "clearSelection": "Kiválasztás törlése", + "importSelected": "Kijelöltek importálása", + "previousPage": "Előző oldal", + "nextPage": "Következő oldal", + "pageRange": "{start}-{end}/{total}", "tabs": { - "unmatched": "Párosítatlan" + "all": "Összes", + "ready": "Kész", + "review": "Áttekintés", + "conflicts": "Ütközések", + "unmatched": "Párosítatlan", + "skipped": "Átugorva" }, "summary": { - "unmatched": "Párosítatlan" + "ready": "Kész", + "review": "Áttekintés", + "conflicts": "Ütközések", + "unmatched": "Párosítatlan", + "skipped": "Átugorva" + }, + "matchOptions": { + "all": "Minden egyezéstípus" + }, + "matchMethod": { + "hardcoverId": "Hardcover-azonosító", + "isbn": "ISBN", + "titleAuthor": "Cím + szerző" }, "outcome": { - "unmatched": "Párosítatlan" + "ready": "Kész", + "review": "Áttekintés", + "conflict": "Ütközés", + "unmatched": "Párosítatlan", + "skipped": "Átugorva" + }, + "column": { + "progress": "Előrehaladás" } }, "linkedBooks": { - "untitled": "Névtelen" + "title": "Összekapcsolt könyvek", + "description": "Az éppen olvasás alatt álló könyveket jeleníti meg. Amint egy könyv párosítása megtörténik a Hardcover-fiókkal, válassz egy másik kiadást (nyomtatott, e-könyv, hangoskönyv) itt, ha módosítani szeretnéd, hogy az olvasási haladásod melyik változattal szinkronizáljon.", + "loading": "Könyvek betöltése...", + "loadError": "Nem sikerült betölteni a könyveket.", + "retry": "Újra", + "empty": "Jelenleg nincsenek olvasás alatt álló könyvek.", + "untitled": "Névtelen", + "unknownAuthor": "Ismeretlen szerző", + "matchMethod": { + "isbn": "ISBN", + "title": "Cím", + "cached": "Gyorsítótárazott", + "manual": "Kézi", + "metadata_id": "Metaadat-egyezés" + }, + "status": { + "error": "Hiba: {error}", + "linked": "Összekapcsolva", + "linkedWithMethod": "Összekapcsolva ({method})", + "notLinked": "Még nincs összekapcsolva" + }, + "unmatchedHint": "Ez a könyv még nincs egyeztetve a Hardcover felületével. A következő szinkronizálás alkalmával automatikusan megtörténik a párosítása.", + "editionsLoadError": "Nem sikerült betölteni a kiadásokat.", + "viewEditions": "Kiadások megjelenítése", + "noEditionsFound": "Nem találhatók kiadások.", + "booksTruncated": "Az első {count} olvasás alatt álló könyv megjelenítése.", + "editionsTruncated": "Az első {count} kiadás megjelenítése.", + "pages": "{count, plural, one {# oldal} other {# oldal}}", + "isbn": "ISBN {isbn}", + "current": "Jelenlegi", + "useThis": "Használd ezt", + "toast": { + "switched": "Átváltva {format} formátumra", + "switchFailed": "Nem sikerült átváltani a kiadásra" + } } }, "library": { + "creator": { + "createTitle": "Könyvtár létrehozása", + "editTitle": "Szerkesztés: {name}", + "stepOf": "{current}/{total} lépés", + "unsaved": "Nincs mentve", + "required": "Kötelező", + "closeAria": "Könyvtárlétrehozó bezárása", + "progressAria": "Könyvtárbeállítás folyamata", + "sectionsAria": "Könyvtárbeállítások szakaszai", + "loadingAria": "Könyvtárbeállítások betöltése", + "sections": { + "details": "Részletek", + "folders": "Mappák", + "scanner": "Lapolvasó", + "metadata": "Metaadatok", + "fileWrite": "Fájlírás", + "reading": "Olvasás", + "schedule": "Ütemezés", + "access": "Hozzáférés" + }, + "actions": { + "saving": "Mentés…", + "saveChanges": "Változások mentése", + "creating": "Létrehozás…", + "createLibrary": "Könyvtár létrehozása" + }, + "details": { + "libraryName": "Könyvtár neve", + "namePlaceholder": "Könyvtáram", + "coverStyle": { + "title": "Borító stílusa", + "portrait": "Álló", + "square": "Négyzet", + "hint": "Álló tájolás az e-könyveket tartalmazó vagy vegyes könyvtárakhoz. Négyzetes a kizárólag hangoskönyveket tartalmazó könyvtárakhoz.", + "hintSlots": "Álló tájolás az e-könyveket tartalmazó vagy vegyes könyvtárakhoz, négyzetes a kizárólag hangoskönyveket tartalmazó könyvtárakhoz. Az e-könyv és hangoskönyv formátummal egyaránt rendelkező könyvek esetében álló könyvtárban a könyvborító, négyzetes könyvtárban pedig a hangoskönyv-borító jelenik meg." + }, + "icon": { + "label": "Ikon", + "placeholder": "Válassz egy ikont...", + "selected": "Kiválasztva" + } + }, + "folders": { + "title": "Mappák beolvasása", + "description": "Adj hozzá egy vagy több mappát a könyvek beolvasásához.", + "browseAdd": "Mappa tallózása és hozzáadása", + "browseTitle": "Szervermappák tallózása", + "browseDescription": "Válassz ki egy vagy több mappát a böngésző elhagyása nélkül.", + "selectedTitle": "Mappák kiválasztása", + "addFolders": "Mappák hozzáadása", + "manualEntry": "Elérési út megadása manuálisan", + "absolutePath": "Abszolút szerverútvonal", + "addFolder": "Mappa hozzáadása", + "removeFolder": "{folder} törlése", + "manualCheckHint": "A manuálisan megadott elérési utak ellenőrzése a többi kiválasztott mappával együtt történik.", + "pathPlaceholder": "/könyvek/elérési/útja", + "test": "Teszt", + "add": "Hozzáad", + "pathNotAccessible": "Az elérési út nem érhető el a szerveren.", + "pathAccessible": "Az elérési út elérhető.", + "pathNotAccessibleShort": "Az elérési út nem elérhető", + "overlapsWith": "Átfedésben van a(z) „{library}” könyvtárral", + "noneAdded": "Még nincsenek mappák hozzáadva", + "runPrescanHint": "Futtass egy előzetes beolvasást az elérési utak ellenőrzéséhez a mentés előtt.", + "scanning": "Beolvasás...", + "prescan": "Előzetes beolvasás", + "local": { + "title": "Meglévő podcastmappák", + "optional": "Opcionális", + "description": "Olyan mappák, amelyekben már tárolsz podcastokat. A BookOrbit az eredeti helyükön olvassa be őket, és soha nem nevezi át, nem mozgatja és nem törli a bennük lévő tartalmakat.", + "addTitle": "Meglévő podcastmappák hozzáadása", + "addDescription": "Minden közvetlenül benne található mappa külön műsorrá válik.", + "add": "Másik mappa hozzáadása", + "remove": "{folder} törlése" + } + }, + "scanner": { + "scanMode": { + "title": "Beolvasási mód", + "lockedAria": "Rendszerezési mód zárolva", + "lockTooltip": "A rendszerezési mód a könyvtár létrehozása után rögzített, mivel annak módosítása duplikált vagy hiányzó könyvbejegyzéseket eredményezhet. Másik mód használatához hozz létre egy új könyvtárat, és futtasd újra a beolvasást.", + "recommended": "Ajánlott", + "folderAsBook": { + "title": "Mappa könyvként", + "hint": "Egy mappában található összes fájl egy könyvvé lesz csoportosítva. Kiválóan működik, ha a különböző formátumokat – például az EPUB és MOBI fájlokat – együtt tárolod." + }, + "fileAsBook": { + "title": "Fájl könyvként", + "hint": "Minden fájlt külön könyvként kezel. Leginkább olyan könyvtárakhoz alkalmas, ahol címenként csak egy formátum található. Kerülendő, ha a hangoskönyvek több fájlból állnak." + } + }, + "addedAt": { + "title": "Hozzáadás dátuma", + "hint": "Válaszd ki, mit tükrözzön a könyv „hozzáadás dátuma”. Ez a mostantól importált könyvekre vonatkozik.", + "options": { + "imported": { + "title": "Az importálás időpontja", + "hint": "Az a dátum, amikor a BookOrbit legelőször importálta a könyvet. Ez az alapértelmezett beállítás." + }, + "file_modified": { + "title": "A fájl módosítási időpontja", + "hint": "A fájl legutóbbi módosítási időpontja (mtime), amely fájlmásoláskor gyakran megőrződik." + }, + "file_created": { + "title": "A fájl létrehozási időpontja", + "hint": "Az az időpont, amikor a fájl legelőször a lemezre került (birthtime). Ha a fájlrendszer nem rögzíti a létrehozási időpontot, a módosítási időpont lép érvénybe." + } + }, + "recompute": "Újraszámítás most", + "recomputing": "Újraszámítás...", + "recomputeHint": "Frissítsd a meglévő könyvek hozzáadási dátumát ezen beállítás alapján.", + "recomputeSaveFirst": "Először mentsd el a változtatásokat, majd számítsd újra a meglévő könyveket.", + "backgroundConfirm": "Újraszámítod a meglévő könyvek dátumait? A folyamat a háttérben fut, ezt a szerkesztőt bezárhatod. Az olvashatatlan fájlokkal rendelkező könyvek megtartják a jelenlegi dátumukat.", + "progressSummary": "Feldolgozva {processed}/{total}: {updated} frissítve, {unchanged} változatlan, {skipped} átugorva, {failed} sikertelen.", + "failedBooksHint": "A hibás könyvek megtartották a dátumukat. Ellenőrizd a fájlhozzáférést, majd az ismételt megkísérléshez futtasd újra az újraszámítást.", + "jobStatus": { + "running": "A dátumok újraszámítása a háttérben zajlik.", + "completed": "A dátumok újraszámítása befejeződött.", + "failed": "Az újraszámítás leállt a befejezés előtt. Az elkészült változtatások megmaradtak; biztonságosan futtathatod újra." + }, + "errors": { + "sourceImported": "Az újraszámítás előtt mentsd el a fájl-időbélyeg forrását.", + "alreadyRunning": "Ehhez a könyvtárhoz már fut egy újraszámítás.", + "busy": "Más újraszámítások is folyamatban vannak. Próbáld meg újra rövidesen.", + "requestFailed": "Nem sikerült elérni az újraszámítási szolgáltatást. Az állapot ellenőrzéséhez zárd be, majd nyisd meg újra ezt a szerkesztőt.", + "interrupted": "A feladat állapota már nem érhető el. Lehetséges, hogy megszakadt egy szerverújraindítás miatt. Biztonságosan futtathatod újra az újraszámítást." + }, + "failureSample": "Könyv {bookId}: {reason}", + "failureReasons": { + "file_unavailable": "Egy tartalomfájl nem olvasható.", + "unsafe_path": "Egy tartalomfájl a megengedett könyvtár-mappáján kívül található.", + "database_error": "Az adatbázis frissítése sikertelen." + } + }, + "allowedFormats": { + "title": "Engedélyezett formátumok", + "allowAll": "Összes engedélyezése", + "allAllowed": "Minden formátum engedélyezett.", + "onlySelected": "Kizárólag a kijelölt formátumok kerülnek importálásra.", + "warning": "A könyvtárban már meglévő, más formátumú könyvek a következő beolvasáskor hiányzóként lesznek megjelölve." + }, + "excludePatterns": { + "title": "Minták kizárása", + "hintBefore": "A beolvasás során kihagyandó glob-minták (pl. ", + "hintAfter": ").", + "add": "Hozzáad", + "empty": "Nincsenek minták hozzáadva." + } + }, + "metadata": { + "sourcePrecedence": { + "title": "Forrás elsőbbsége", + "hint": "Ha több forrás is elérhető, a lista legtetején szereplő élvez elsőbbséget." + }, + "formatPriority": { + "title": "Formátumprioritás", + "hint": "Ha egy könyv több formátummal is rendelkezik, a listában legfelül szereplő formátum élvez elsőbbséget." + }, + "moveUp": "{item} mozgatása felfelé", + "moveDown": "{item} mozgatása lefelé" + }, + "fileWrite": { + "maxFileSizeMb": "Maximális fájlméret (MB)", + "formatLimits": "Formátumkorlátok", + "rename": { + "title": "Fájlok átnevezése a metaadatok változásakor", + "hint": "A cím, szerző, sorozat vagy év változásakor átnevezi a fizikai fájlokat a könyvtár elnevezési mintája alapján." + }, + "write": { + "title": "Metaadatok fájlokba írása", + "hint": "Ha engedélyezve van, a metaadatok mentésekor a változások a lemezen található fizikai fájlba is visszaírásra kerülnek." + }, + "cover": { + "title": "Borítókép mellékelése", + "hint": "A tárolt borítót visszaírja a támogatott fájlformátumokba." + }, + "epub": { + "title": "EPUB", + "hint": "A metaadatokat az EPUB-archívumban található OPF-fájlba írja be.", + "toggleAria": "EPUB-metaadatok beírása" + }, + "fb2": { + "title": "FictionBook (FB2)", + "hint": "Újraírja az FB2-fájlokban található leírásblokkot, érintetlenül hagyva a könyv szövegét.", + "toggleAria": "FB2-metaadatok beírása" + }, + "pdf": { + "title": "PDF", + "hint": "Beágyazza a metaadatokat a PDF Info szótárba és az XMP-adatfolyamba.", + "toggleAria": "PDF-metaadatok beírása" + }, + "cbx": { + "title": "Képregény-archívumok (CBX)", + "hint": "A ComicInfo.xml fájlt a CBZ- és CB7-archívumokba írja be.", + "toggleAria": "Képregényarchívum-metaadatok beírása" + }, + "kindle": { + "title": "Kindle (MOBI, AZW3)", + "hint": "A metaadatokat a MOBI-, AZW3- és AZW-fájlok EXTH-fejlécébe írja be.", + "toggleAria": "Kindle-metaadatok beírása" + }, + "audio": { + "title": "Hang", + "hint": "Beágyazza a tárolt borítót az M4B-, M4A-, MP3- és FLAC-fájlokba.", + "toggleAria": "Hangfájl-borítóképek beírása" + } + }, + "reading": { + "readingStart": { + "title": "Olvasás kezdete", + "hint": "A könyv „olvasás alatt” megjelölést kap, amint a haladás eléri ezt a százalékos értéket." + }, + "markAsFinished": { + "title": "Megjelölés befejezettként", + "hint": "A könyv automatikusan „olvasott” megjelölést kap, amint a haladás eléri ezt a százalékos értéket.", + "invalidThreshold": "A befejezési haladás értékének 90% és 100% között kell lennie." + } + }, + "schedule": { + "fileWatching": "Fájlfigyelés", + "autoScanSchedule": "Automatikus beolvasás ütemezése", + "timezoneHint": "Az ütemezések a szerver időzónája szerint futnak.", + "cronExpression": "Cron-kifejezés", + "cronInvalid": "Érvénytelen cron-kifejezés.", + "cronFormat": "Formátum: perc óra nap hónap a hét napja", + "watchFolders": { + "title": "Mappák figyelése", + "hint": "A könyvtár mappáihoz hozzáadott új fájlok automatikus észlelése." + }, + "presets": { + "never": "Soha", + "hourly": "Minden órában", + "every6Hours": "6 óránként", + "every12Hours": "12 óránként", + "daily": "Naponta", + "weekly": "Hetente", + "custom": "Egyéni" + }, + "human": { + "disabled": "Automatikus beolvasás letiltva", + "invalid": "Adj meg egy érvényes ütemezést az előnézet megtekintéséhez", + "hourly": "Minden órában", + "every6Hours": "6 óránként", + "every12Hours": "12 óránként", + "dailyMidnight": "Naponta éjfélkor", + "weeklyMonday": "Hetente, hétfőn éjfélkor", + "cron": "Cron: {cron}" + } + }, + "access": { + "title": "Hozzáférés vezérlés", + "description": "A szuperfelhasználók mindig teljes hozzáféréssel rendelkeznek. Adj hozzáférést más felhasználóknak alább.", + "notYetCreated": "A hozzáférés a könyvtár létrehozása után állítható be.", + "selectUser": "Felhasználó kiválasztása...", + "grant": "Engedélyezés", + "empty": "Még egyetlen felhasználónak sem lett hozzáférés megadva.", + "loading": "Hozzáférés-beállítások betöltése...", + "userSelectAria": "Engedélyezendő felhasználó", + "levelSelectAria": "Engedélyezendő hozzáférési szint", + "levels": { + "viewer": "Megtekintő", + "editor": "Szerkesztő", + "owner": "Tulajdonos" + }, + "columns": { + "user": "Felhasználó", + "accessLevel": "Hozzáférési szint" + }, + "errors": { + "grant": "A hozzáférés engedélyezése sikertelen", + "updateLevel": "A hozzáférési szint frissítése sikertelen", + "revoke": "Nem sikerült visszavonni a hozzáférést" + } + } + }, + "folderPicker": { + "title": "Szervermappák tallózása", + "description": "Válassz ki egy vagy több mappát ehhez a könyvtárhoz.", + "closeAria": "Mappaböngésző bezárása", + "currentFolderAria": "Jelenlegi mappa", + "parentFolder": "Vissza a szülőkönyvtárba", + "newFolder": "Új mappa", + "goUp": "Ugrás fel", + "filterPlaceholder": "Mappák szűrése...", + "clearFilterAria": "Mappaszűrő törlése", + "newFolderNamePlaceholder": "Új mappa neve", + "create": "Létrehozás", + "loading": "Mappák betöltése...", + "selectCurrent": "Jelenlegi mappa kiválasztása", + "noMatches": "Nincsenek megfelelő mappák", + "noMatchesHint": "Próbálkozz egy másik szűrővel.", + "empty": "Ez a mappa üres", + "emptyHint": "Kiválaszthatod a jelenlegi mappát, vagy létrehozhatsz egy újat.", + "openFolderAria": "{name} megnyitása", + "selectedCount": "{count, plural, =0 {nincs kiválasztott mappa} one {# kiválasztott mappa} other {# kiválasztott mappa}}", + "noFolders": "Nem találhatók mappák", + "selectFolder": "Ezen mappa kiválasztása", + "errors": { + "readDirectory": "A könyvtár nem olvasható", + "connect": "Nem sikerült csatlakozni", + "invalidName": "Adj meg egyetlen mappanevet, perjelek és kezdő pontok nélkül", + "createFolder": "Mappa létrehozása sikertelen" + } + }, "upload": { + "library": "Könyvtár", + "selectLibrary": "Válassz egy könyvtárat...", + "targetFolder": "Célmappa", + "addMoreFiles": "További fájlok hozzáadása", + "clearAll": "Összes törlése", + "done": "Kész", + "retry": "Újra", + "upload": "Feltöltés", + "uploadWithCount": "Feltöltés ({count})", + "viewInLibrary": "Megtekintés a könyvtárban", + "fileCount": "{count, plural, =0 {nincs fájl} one {# fájl} other {# fájl}}", + "booksAdded": "{count, plural, =0 {nincs hozzáadott könyv} one {# hozzáadott könyv} other {# hozzáadott könyv}}", + "uploadedFailed": "{done} feltöltve, {failed} sikertelen", + "progress": "{done}/{total} feltöltése...", + "header": { + "uploading": "Feltöltés...", + "complete": "Sikeres feltöltés", + "uploadTo": "Feltöltés ide: {library}", + "uploadBooks": "Könyvek feltöltése" + }, "dropzone": { + "title": "Húzz ide fájlokat vagy kattints a kiválasztáshoz", "hint": "{formats} - egyenként legfeljebb {size} MB" } } }, + "metadataScore": { + "missingFields": "{count, plural, =0 {nincs hiányzó mező – metaadatok szerkesztése} one {# hiányzó mező – metaadatok szerkesztése} other {# hiányzó mező – metaadatok szerkesztése}}" + }, "migration": { + "sidebarTitle": "Importálás a Booklore-ból", + "importTitle": "Könyvtár importálása", + "status": { + "done": "Kész", + "saved": "Mentve", + "running": "Folyamatban", + "failed": "Sikertelen" + }, + "badge": { + "validated": "Ellenőrizve", + "upToDate": "Naprakész", + "completed": "Befejezett" + }, + "steps": { + "source": { + "short": "Forráskapcsolat", + "title": "Forráskapcsolat", + "subtitle": "Konfiguráld az adatbázis-kapcsolatot a forrás Booklore-példányhoz.", + "genericSubtitle": "Konfiguráld a kapcsolatot a forrás könyvtári alkalmazásodhoz." + }, + "mappings": { + "short": "Felhasználó és elérési út leképzése", + "title": "Felhasználó és elérési út leképzése", + "subtitle": "Forrásfelhasználók és célfelhasználók közötti megfeleltetés, valamint fájlelérési utak lefordítása." + }, + "dryRun": { + "short": "Próbaüzem", + "title": "Próbaüzem", + "subtitle": "Az élő migráció futtatása előtt tekintsd meg az importálni kívánt elemek előnézetét." + }, + "migration": { + "short": "Migrálás futtatása", + "title": "Migrálás futtatása", + "subtitle": "Indítsd el az élő importálást, és figyeld a folyamatot." + }, + "report": { + "short": "Jelentés", + "title": "Migrálási jelentés", + "subtitle": "Tekintsd át az importált adatokat, és exportálj részletes jelentést." + } + }, + "footer": { + "continueToMappings": "Tovább a leképzéshez", + "continueToDryRun": "Tovább a próbaüzemhez", + "continueToMigration": "Tovább a migráláshoz", + "viewReport": "Jelentés megtekintése", + "resetSetup": "Beállítások alaphelyzetbe állítása", + "stepOf": "{current}/{total} lépés", + "backToSetup": "Vissza a beállításokhoz" + }, + "stages": { + "init": "Inicializálás", + "sharedOverlays": "Metaadatok importálása", + "bookCovers": "Borítók importálása", + "userState": "Felhasználói adatok importálása" + }, + "source": { + "testConnection": "Kapcsolat tesztelése", + "saveAndValidate": "Mentés és ellenőrzés", + "validatedWithWarnings": "Forrás érvényesítve figyelmeztetésekkel", + "types": { + "booklore": "Booklore", + "grimmory": "Grimmory", + "audiobookshelf": "Audiobookshelf", + "calibreWebAutomated": "Automatizált Calibre-Web" + }, + "fields": { + "type": "Forrás típusa", + "name": "Forrás neve", + "namePlaceholder": "Könyvtár importálása", + "host": "Kiszolgáló", + "port": "Port", + "user": "Felhasználó", + "password": "Jelszó", + "passwordSaved": "Mentve - változatlanul hagyva", + "passwordNotSet": "Nincs beállítva jelszó", + "showSecret": "Titok megjelenítése", + "hideSecret": "Titok elrejtése", + "database": "Adatbázis", + "mediaRootPath": "Média gyökérútvonala", + "ssl": "TLS/SSL használata", + "connectionMode": "Kapcsolat módja", + "apiMode": "Élő API", + "backupMode": "Biztonsági mentési fájl", + "baseUrl": "Audiobookshelf URL", + "apiToken": "API-token", + "apiTokenPlaceholder": "Adj meg egy adminisztrátori API-tokent", + "secretSaved": "Mentve - változatlanul hagyva", + "allowPrivateNetwork": "Privát hálózati hozzáférés engedélyezése", + "allowPrivateNetworkHint": "Ezt kizárólag akkor engedélyezd, ha az Audiobookshelf megbízható helyi vagy privát hálózaton fut.", + "backupPath": "Biztonsági mentés fájlútvonala", + "backupPathHint": "Adj meg egy abszolút szerverútvonalat a konfigurált migrációs importkönyvtáron belül.", + "cwaAppDatabasePath": "Automatizált Calibre-Web app.db-pillanatképe", + "cwaAppDatabasePathPlaceholder": "/imports/calibre-web-automated/app.db", + "cwaMetadataDatabasePath": "Calibre metadata.db-pillanatképe", + "cwaMetadataDatabasePathPlaceholder": "/imports/calibre-web-automated/metadata.db" + }, + "validation": { + "nameRequired": "A forrás nevének megadása kötelező", + "databaseFieldsRequired": "A kiszolgáló, a felhasználó, az adatbázis és a forrás nevének megadása kötelező", + "apiFieldsRequired": "Az Audiobookshelf URL, az API-token és a forrás nevének megadása kötelező", + "baseUrlInvalid": "Az Audiobookshelf URL-nek egy útvonal nélküli, tiszta HTTP- vagy HTTPS-forrásnak kell lennie", + "backupPathRequired": "A biztonsági mentés fájlútvonalának és a forrás nevének megadása kötelező", + "backupPathAbsolute": "A biztonsági mentés fájlútvonalának abszolút útvonalnak kell lennie", + "cwaAppDatabasePathRequired": "Az Automatizált Calibre-Web app.db-pillanatkép útvonalának megadása kötelező", + "cwaAppDatabasePathAbsolute": "Az Automatizált Calibre-Web app.db-pillanatkép útvonalának abszolút útvonalnak kell lennie", + "cwaMetadataDatabasePathRequired": "A Calibre metadata.db-pillanatkép útvonalának megadása kötelező", + "cwaMetadataDatabasePathAbsolute": "A Calibre metadata.db-pillanatkép útvonalának abszolút útvonalnak kell lennie" + }, + "cwa": { + "snapshotTitle": "Pillanatkép-mód leállítva", + "stoppedWarning": "A két adatbázis másolása előtt állítsd le az Automatizált Calibre-Webet. A BookOrbit nem tudja ellenőrizni, hogy a két pillanatkép pontosan ugyanabban a pillanatban lett-e átmásolva.", + "importRootGuidance": "Mindkét pillanatkép-fájlnak olvasható szerverútvonalnak kell lennie a beállított MIGRATION_IMPORT_ROOT könyvtáron belül.", + "logicalRootGuidance": "A könyv-útvonalak hozzárendelése az app.db fájlban tárolt logikai Calibre könyvtárgyökeret használja, nem pedig azt a kiszolgáló-mappát, amely ezeket az adatbázis-pillanatképeket tartalmazza.", + "compatibilityNote": "A sémaműködés ellenőrzése az Automatizált Calibre-Web v4.0.6-os verziójával történt. Az adatbázisai nem tesznek elérhetővé megbízható alkalmazáskiadási verziót." + }, + "mediaPath": { + "hintRequired": "A könyvborítók migrálásához szükséges.", + "hintAbsolute": "Használj abszolút elérési utat (például: /books). A relatív elérési utak nem támogatottak.", + "hintConfigured": "Borító importálási útvonal konfigurálva. A Kapcsolat tesztelése funkcióval ellenőrizhető a hozzáférés és a Booklore képek mappaszerkezete.", + "buttonOk": "Útvonal rendben", + "buttonIssue": "Probléma az útvonallal", + "buttonTest": "Útvonal tesztelése" + }, + "compatibility": { + "title": "Tesztelt kompatibilitás", + "verifiedAgainst": "Ellenőrizve a következővel:", + "note": "A későbbi verziók valószínűleg kompatibilisek, de még nem lettek ellenőrizve. Az adatok véglegesítése előtt futtass először egy tesztüzemet a megerősítéshez." + }, + "snapshot": { + "title": "Utolsó érvényesítési pillanatkép", + "sourceVersion": "Forrás verzió: {version}", + "unknown": "Ismeretlen", + "missingTables": "Hiányzó kötelező táblák: {tables}" + } + }, + "mappings": { + "suggestionsAutoLoad": "A felhasználói javaslatok automatikusan betöltődnek a forrás ellenőrzése után.", + "refresh": "Frissítés", + "sourceUser": "Forrásfelhasználó", + "targetUser": "Célfelhasználó", + "doNotImport": "Ne importálja ezt a felhasználót", + "noSourceUsersLoaded": "Még nincsenek betöltve forrásfelhasználók.", + "noActiveTargetUsers": "Nem találhatók aktív célfelhasználók. Hozzon létre vagy engedélyezzen újra egy BookOrbit felhasználót a leképezés előtt.", + "pathPrefixMappings": "Útvonal-előtag-megfeleltetések", + "addMapping": "Megfeleltetés hozzáadása", + "pathMappingsExplanation": "Az útvonal-megfeleltetések a forrásfájlok elérési útjait fordítják le célútvonalakra, hogy a könyveket a fájl helye alapján lehessen párosítani. A könyvek párosítása – az útvonal-megfeleltetésektől függetlenül – ISBN-szám, fájl-hash, valamint cím és szerző alapján is megtörténik.", + "noPrefixesFound": "Nem találhatók előtagok - először ellenőrizd a forrást", + "selectSourcePrefix": "Forrás előtag kiválasztása...", + "selectTargetFolder": "Célmappa kiválasztása...", + "remove": "Eltávolítás", + "saveMappings": "Leképezés mentése", + "pathValidation": { + "title": "Útvonal-érvényesítés", + "mappedSummary": "{total} forráskönyvből {mapped} rendelkezik leképezett útvonallal", + "unmatched": "{count} hozzárendelt útvonal nem található a lemezen", + "allMatched": "Mind a {count} leképezett elérési út megtalálható a lemezen" + } + }, + "dryRun": { + "run": "Próbaüzem futtatása", + "matched": "Egyező:", + "unresolved": "Megoldatlan:", + "duplicates": "Duplikátumok:", + "unresolvedSummary": "Megoldatlan összefoglaló" + }, + "duplicates": { + "title": "Ismétlődő célpont-egyezések feloldása", + "explanation": "Minden célkönyvhöz válassz ki egy forráskönyvet, amelyet megtartasz. Az ajánlott opciók előre kiválasztottak, ha van egyetlen legerősebb egyezés.", + "remainingGroups": "Fennmaradó csoportok:", + "ofCount": "{total}-ból", + "targetBookId": "Célkönyv #{id}", + "recommended": "Ajánlott", + "resolveButton": "{count, plural, =0 {# duplikátum feloldása} one {# duplikátum feloldása} other {# duplikátum feloldása}}", + "sourceRecordId": "Forrásrekord-azonosító #{id}", + "byAuthor": "{author} által (Azonosító: {id})", + "byFilePath": "{filePath} (Azonosító: {id})", + "bookloreSourceId": "Booklore forrásazonosító: {id}", + "libraryBookId": "Könyvtári könyv #{id}" + }, + "preflight": { + "title": "Előzetes ellenőrzések", + "allPassed": "Minden ellenőrzés sikeresen megtörtént – migrálásra kész", + "sourceValidated": "Forrás ellenőrizve", + "saveAndValidateSource": "Forráskapcsolat mentése és ellenőrzése", + "validateSourceConnection": "Forráskapcsolat ellenőrzése", + "mappingsSaved": "Leképezések mentve", + "saveUserAndPathMappings": "Felhasználói és útvonal-leképzések mentése", + "pathMappingsValidated": "Útvonal-leképezések ellenőrizve", + "savePathMappingsToValidate": "Mentsd el az útvonal-leképzéseket az érvényesítéshez", + "dryRunUpToDate": "A próbaüzem naprakész", + "runFreshDryRun": "Új próbaüzem futtatása", + "issues": { + "saveSource": "Forráskapcsolat-beállítások mentése", + "validateSource": "Forráskapcsolat ellenőrzése", + "saveMappings": "Felhasználói és útvonal-leképzések mentése", + "savePathMappings": "Mentsd el az útvonal-leképzéseket az érvényesítéshez", + "freshDryRun": "Új próbaüzem futtatása", + "resolveDuplicates": "Ismétlődő célkönyv-egyezések feloldása a próbaüzemben", + "waitForRun": "Várd meg, amíg az aktív futtatás befejeződik" + } + }, + "run": { + "confirmPrompt": "Ez elindítja az élő migrálást. Biztos vagy benne?", + "confirmStart": "Indítás megerősítése", + "startMigration": "Migrálás indítása", + "cancelRun": "Futtatás megszakítása", + "refreshStatus": "Állapot frissítése", + "pollingStopped": "Az állapotlekérdezés hiba miatt leállt.", + "retry": "Újra", + "stage": "Szakasz: {stage}", + "initializing": "inicializálás", + "ended": "Befejezve {time}" + }, "report": { - "annotations": "Annotációk" + "noRunYet": "Még nem futott migrálás. A kezdéshez hajtsd végre a fenti lépéseket.", + "runNumber": "#{id} futtatása", + "notStarted": "Nincs elkezdve", + "reloadReport": "Jelentés újratöltése", + "loadFullReport": "Teljes jelentés betöltése", + "exportJson": "JSON exportálása", + "exportCsv": "CSV exportálása", + "migrationFailed": "Migrálás sikertelen", + "retryFromLastStage": "Újrapróbálkozás az utolsó befejezett szakasztól", + "booksSection": "Könyvek", + "metadataOverlays": "Metaadat-átfedések alkalmazva", + "authorMappings": "Szerzői leképezések cserélve", + "narratorMappings": "Narrátor leképezések cserélve", + "genreMappings": "Műfaj leképezések cserélve", + "tagMappings": "Címke leképezések cserélve", + "coversImported": "Borítók importálva", + "coverImportSkipped": "A borító importálása kihagyva - a média gyökérútvonala nincs konfigurálva", + "couldNotMatch": "Nem sikerült egyeztetni", + "userDataSection": "Felhasználói adatok", + "readingStatuses": "Olvasási állapotok", + "readingProgressEntries": "Olvasási folyamat bejegyzései", + "audiobookProgressEntries": "Hangoskönyv állapotának bejegyzései", + "readingSessions": "Olvasási munkamenetek", + "bookmarks": "Könyvjelzők", + "annotations": "Annotációk", + "collectionEntries": "Gyűjtemény bejegyzések", + "loadFullReportHint": "Kattints a „Teljes jelentés betöltése” gombra, ha a próbaüzem összefoglalóját szeretnéd belefoglalni az exportált jelentésbe.", + "completedNoIssues": "A migrálás megoldatlan könyvek vagy hibák nélkül befejeződött.", + "matchedBooks": "Egyező könyvek ({count})", + "matchedBooksExplanation": "Ezeket a próbaegyeztetések voltak felhasználva annak eldöntésére, hogy mely könyvtári könyvek kapják meg az importált adatokat.", + "sourceBook": "Forrás könyv {id}", + "libraryBook": "Könyvtári könyv {id}", + "unresolvedBooks": "Megoldatlan könyvek ({count})", + "unresolvedBooksExplanation": "Ezek a könyvek léteznek a forrásban, de nem sikerült őket a könyvtáradban található könyvekkel összepárosítani.", + "mappedUsers": "({count}) társított felhasználó", + "mappedUsersExplanation": "A felhasználónkénti összesítések a migrálási tervvel gyorsítótárazott próbafutásból származnak.", + "coverFailures": "{count} borító importálása sikertelen. A részletes hibasorok nem tárolódnak.", + "userPreviewCounts": "{statuses} állapot, {progress} előrehaladási bejegyzés, {sessions} olvasási munkamenet, {bookmarks} könyvjelző, {annotations} annotáció, {collections} gyűjtemény bejegyzés" + }, + "unresolvedReason": { + "noTitleAuthorMatch": "Nincs találat a cím vagy a szerző alapján", + "noFilePathMatch": "A fájl elérési útja nem egyezik egyetlen könyvvel sem ebben a könyvtárban", + "noFileHashMatch": "A fájl-hasítóérték nem egyezik egyetlen könyvvel sem ebben a könyvtárban", + "noIsbnMatch": "Az ISBN-szám nem egyezik egyetlen könyvvel sem ebben a könyvtárban", + "noAsinMatch": "Az ASIN-szám nem egyezik egyetlen könyvvel sem ebben a könyvtárban", + "insufficientSourceData": "Nincs elég metaadat az egyeztetés megkísérléséhez", + "ambiguousIsbnMatch": "Több könyv is megegyezett ugyanazzal az ISBN-számmal", + "ambiguousAsinMatch": "Több könyv is megegyezett ugyanazzal az ASIN-számmal", + "ambiguousFileHashMatch": "Több könyv is megegyezett ugyanazzal a fájl-hasítóértékkel", + "ambiguousFilePathMatch": "Több könyv is megegyezett ugyanazzal a fájlelérési úttal", + "ambiguousTitleAuthorMatch": "Több könyv is megegyezett ugyanazzal a címmel és szerzővel", + "unknown": "Nem sikerült megállapítani az okot" + }, + "matchStrategy": { + "isbn": "ISBN-szám alapján egyeztetve", + "asin": "ASIN-szám alapján egyeztetve", + "fileHash": "Fájl-hasítóérték alapján egyeztetve", + "pathMapping": "A leképezett fájlútvonal alapján egyeztetve", + "titleAuthor": "Cím és szerző alapján egyeztetve", + "unavailable": "Egyeztetési stratégia nem elérhető" + }, + "connectionError": { + "unreachable": "Nem sikerült elérni az adatbázis-kiszolgálót. Ellenőrizze a kiszolgálót és a portot.", + "authFailed": "A hitelesítés sikertelen. Ellenőrizze a felhasználónevet és a jelszót.", + "databaseNotFound": "Az adatbázis nem található. Ellenőrizd az adatbázis nevét.", + "timeout": "Időtúllépés történt a kapcsolat során. Ellenőrizd a kiszolgáló és a tűzfal beállításait.", + "generic": "Csatlakozás teszt sikertelen" + }, + "userSelect": { + "placeholder": "Felhasználó kiválasztása", + "noUsersFound": "Nem találhatóak felhasználók" + }, + "toast": { + "initFailed": "Nem sikerült inicializálni a migrálási beállításokat", + "loadSupportedTypesFailed": "Nem sikerült betölteni a támogatott migrálási forrástípusokat", + "loadTargetUsersFailed": "Nem sikerült betölteni a célfelhasználókat", + "loadTargetFoldersFailed": "Nem sikerült betölteni a célkönyvtár mappáit", + "noSourceUsers": "Nem találtunk forrásfelhasználókat", + "suggestionsLoaded": "Felhasználói hozzárendelési javaslatok betöltve", + "loadSuggestionsFailed": "Nem sikerült betölteni a felhasználói hozzárendelési javaslatokat", + "sourceFieldsRequired": "A kiszolgáló, a felhasználó, az adatbázis és a forrás nevének megadása kötelező", + "connectionPassedWithWarnings": "A kapcsolatteszt figyelmeztetésekkel sikerült", + "connectionPassedWithWarningCount": "A kapcsolatteszt {count} figyelmeztetéssel sikerült. Első: {warning}", + "connectionPassed": "Csatlakozási teszt sikeres", + "connectionMissingTables": "A kapcsolat rendben van, de {count} szükséges tábla hiányzik", + "cannotTestMediaWhileRunning": "Nem lehet tesztelni az adathordozó elérési útját, amíg egy futtatás aktív", + "mediaPathRequired": "A borító importálásához média gyökérkönyvtárának megadása szükséges.", + "mediaPathAbsolute": "Használjon abszolút elérési utat (például: /books).", + "mediaPathVerified": "Médiaútvonal ellenőrizve.", + "mediaPathValid": "A média elérési útja érvényes és olvasható", + "mediaPathValidationFailed": "A média elérési útjának érvényesítése sikertelen.", + "connectionFailedBeforeMedia": "A csatlakozási teszt sikertelen volt a médiaútvonal-érvényesítés befejezése előtt.", + "cannotModifySourceWhileRunning": "A forrás nem módosítható, amíg egy futtatás aktív", + "sourceSavedWithWarnings": "Forrás mentve és validálva {count} figyelmeztetéssel", + "sourceSaved": "Forrás mentve és érvényesítve", + "saveSourceFailed": "Nem sikerült menteni vagy érvényesíteni a forrást", + "cannotSaveMappingsWhileRunning": "Nem lehet menteni a hozzárendeléseket, amíg egy futtatás aktív", + "saveSourceFirst": "Először mentsd el a forrást", + "mapAtLeastOneUser": "Legalább egy forrásfelhasználó leképezése egy célfelhasználóhoz", + "mapEveryUser": "Minden forrásfelhasználó leképezése mentés előtt", + "pathValidationFailedButSaved": "Az útvonal ellenőrzése sikertelen, de a profil mentésre került", + "mappingsSaved": "Leképezések mentve", + "saveMappingsFailed": "Nem sikerült menteni a leképezéseket", + "cannotDryRunWhileRunning": "Nem futtatható próbafuttatás, amíg egy futtatás aktív", + "saveMappingsFirst": "Először mentsd el a leképezéseket", + "dryRunCompleted": "Próbafuttatás befejezve: {matched} egyezik, {unresolved} feloldatlan", + "dryRunFailed": "Próbafuttatás sikertelen", + "selectSourceForDuplicates": "Válassz ki egy forráskönyvet az összes {count} ismétlődő csoporthoz", + "duplicatesResolved": "Ismétlődő egyezések megoldva", + "resolveDuplicatesFailed": "Nem sikerült feloldani az ismétlődéseket", + "preflightNotReady": "A migrálás elővizsgálata nem áll készen", + "runDryRunFirst": "Először próbafuttatás futtatása", + "runStarted": "Migrálás futtatása elkezdve", + "startFailed": "Migrálás indítása sikertelen", + "runCancelled": "Migrálás futtatása megszakítva", + "cancelFailed": "Migrálás megszakítása sikertelen", + "runRetried": "Migrálás futtatása újrapróbálva - folytatás az utolsó befejezett szakasztól", + "retryFailed": "Migrálás újrapróbálása sikertelen", + "loadProgressFailed": "Nem sikerült betölteni a futási folyamatot", + "startMigrationFirst": "Először migrálás futtatása", + "reportRefreshed": "Futási jelentés frissítve", + "loadReportFailed": "Futási jelentés betöltése sikertelen", + "reportExported": "Jelentés exportálva az alábbi formátumba: {format}", + "exportFailed": "Nem sikerült exportálni a migrálási jelentést" + } + }, + "notifications": { + "title": "Értesítések", + "description": "Tekintsd át és kezeld az értesítéseidet.", + "markAllRead": "Összes megjelölése olvasottként", + "clear": "Törlés", + "empty": "Még nincsenek értesítések", + "loadMore": "Több értesítés betöltése", + "dismiss": "Értesítés elvetése", + "occurrences": "{count} alkalommal történt meg", + "occurrencesShort": "x{count}", + "preferences": { + "title": "Értesítések", + "subtitle": "Válaszd ki, milyen értesítési kategóriákat szeretnél kapni.", + "saving": "Mentés...", + "unsavedChanges": "Nem mentett módosítások", + "saved": "Az értesítési beállítások mentve", + "saveFailed": "Nem sikerült menteni a beállításokat", + "savePreferenceFailed": "Nem sikerült menteni a beállítást", + "whatsNewToggle": "Az „Újdonságok” megjelenítése frissítések után", + "whatsNewToggleHint": "Egy felugró ablak, amely kiemeli az új funkciókat az alkalmazás frissítése után. Az archívum mindkét esetben elérhető marad.", + "groups": { + "library": "Könyvtár", + "files": "Fájlok", + "integrations": "Bővítmények", + "personal": "Személyes", + "app": "Alkalmazásfrissítések" + }, + "enabledCount": "{enabled}/{total} engedélyezve", + "levels": { + "off": { + "short": "Ki", + "description": "Soha ne értesítsen erről." + }, + "problems": { + "short": "Problémák", + "description": "Kizárólag akkor értesítsen, ha valami sikertelen, vagy figyelmet igényel." + }, + "all": { + "short": "Összes", + "description": "Minden alkalommal értesítsen, a sikeres műveleteket is beleértve." + } + }, + "categories": { + "scanning": { + "label": "Könyvtár beolvasása", + "description": "Amikor a könyvtár beolvasása befejeződik, sikertelen lesz, vagy hiányzó könyveket talál." + }, + "metadata": { + "label": "Metaadatok lekérése", + "description": "Amikor a könyveidhez kapcsolódó metaadat-keresések befejeződnek vagy sikertelenek lesznek." + }, + "authorEnrichment": { + "label": "Szerző bővítése", + "description": "Amikor a szerzői életrajzok és fényképek lekérése befejeződik." + }, + "fileWriteBack": { + "label": "Fájl-visszaírás", + "description": "Amikor a szerkesztett metaadatok visszaírása megtörténik a lemezen található könyvfájlokba." + }, + "fileRename": { + "label": "Fájlátnevezés", + "description": "Amikor egyetlen könyvfájl átnevezése megtörténik, hogy illeszkedjen az elnevezési mintádhoz." + }, + "bulkRename": { + "label": "Csoportos átnevezés", + "description": "Amikor a könyvek könyvtárak közötti csoportos átnevezése vagy áthelyezése befejeződik vagy sikertelen lesz." + }, + "migration": { + "label": "Adatmigráció", + "description": "Amikor egy másik könyvtárkezelő eszközből való importálás befejeződik vagy sikertelen lesz." + }, + "bookDock": { + "label": "Könyvdokk", + "description": "Amikor a Könyvdokk véglegesítése befejeződik, vagy problémákba ütközik." + }, + "koboSync": { + "label": "Kobo-szinkronizálás", + "description": "Amikor egy Kobo-eszköz szinkronizálása befejeződik a könyvtáraddal." + }, + "email": { + "label": "Email kézbesítés", + "description": "Amikor egy könyv elküldése egy email címre sikeres vagy sikertelen lesz." + }, + "achievements": { + "label": "Trófeák", + "description": "Amikor feloldasz egy új olvasási trófeát." + }, + "bookRequests": { + "label": "Könyvkérések", + "description": "Amikor egy könyvkérést beküldenek, elbírálnak, vagy a könyv elérhetővé válik." + } + } } }, "reader": { - "settings": { - "pageWidthMedium": "Közepes" - }, - "selection": { - "styles": { - "underline": "Aláhúzott" + "retry": "Újra", + "pdf": { + "openError": "Nem sikerült megnyitni ezt a PDF-fájlt", + "preparing": "PDF-olvasó előkészítése", + "opening": "PDF megnyitása", + "loading": "PDF betöltése", + "loadFallback": "Nem sikerült betölteni a dokumentumot.", + "requestFailed": "A PDF-kérés sikertelen volt a következő állapottal: {status}.", + "emptyDocument": "A PDF-kérés egy üres dokumentumot adott vissza.", + "managerError": "Nem sikerült inicializálni a PDF-dokumentumkezelőt.", + "engineNoPages": "A PDF-motor oldalak nélkül nyitotta meg ezt a dokumentumot.", + "engineOpenError": "A dokumentummotor nem tudta megnyitni a PDF-fájlt.", + "noPages": "Ez a PDF-fájl oldalak nélkül nyílt meg", + "noPagesHint": "Töltsd be újra a dokumentumot, hogy helyreálljon a kapcsolat a PDF-motor hiányos válasza után.", + "externalLinkTitle": "Külső hivatkozás megnyitása?", + "externalLinkDescription": "Ez a PDF meg akarja nyitni a(z) {host} oldalt egy új lapon.", + "openLink": "Hivatkozás megnyítása", + "annotationsLoadError": "Nem sikerült betölteni a kiemeléseket ehhez a PDF-fájlhoz.", + "loadingAnnotations": "PDF-kiemelések betöltése", + "loadMoreAnnotations": "Több kiemelés betöltése", + "loadingMoreAnnotations": "Több kiemelés betöltése...", + "sidebar": { + "pages": "Oldalak", + "contents": "Tartalom", + "search": "Keresés", + "tabsLabel": "PDF-navigáció", + "closeNavigation": "Navigáció bezárása", + "goToPage": "Ugrás erre az oldalra: {page}", + "noOutline": "Ez a PDF-fájl nem tartalmaz dokumentum-vázlatot.", + "searchPlaceholder": "Keresés ebben a PDF-ben", + "clearSearch": "Keresés törlése", + "matchCase": "Betűméret-egyezés", + "wholeWord": "Egész szó", + "resultPosition": "{current}/{total}", + "previousResult": "Előző eredmény", + "nextResult": "Következő eredmény", + "searchingPage": "Keresés {page}/{total} oldalon", + "searchPrompt": "Írj be egy kifejezést a PDF-ben való kereséshez.", + "searchTooShort": "A PDF-ben való kereséshez írj be legalább {min} karaktert.", + "noSearchResults": "Egyetlen kereshető szöveg sem felel meg a lekérdezésnek.", + "page": "{page}. oldal", + "filterOutline": "Vázlat szűrése", + "noOutlineMatch": "Egyetlen vázlatbejegyzés sem felel meg a szűrőnek.", + "loadingOutline": "Vázlat betöltése", + "expandSection": "{title} kibontása", + "collapseSection": "{title} összecsukása", + "jumpToPage": "Oldalra ugrás", + "resizePanel": "Navigációs panel átméretezése" + }, + "toolbar": { + "navigation": "Dokumentum-navigáció", + "previousPage": "Előző oldal", + "currentPage": "Jelenlegi oldal", + "nextPage": "Következő oldal", + "zoomOut": "Kicsinyítés", + "zoomIn": "Nagyítás", + "panTool": "Kéz eszköz", + "pan": "Mozgatás", + "selectTool": "Szövegkijelölő eszköz", + "selectText": "Szöveg kijelölése", + "pinHeader": "Olvasófejléc rögzítése", + "unpinHeader": "Olvasófejléc rögzítésének feloldása", + "pinHeaderShort": "Fejléc kitűzése", + "unpinHeaderShort": "Fejléc rögzítésének feloldása", + "moreTools": "További PDF-eszközök", + "settings": "PDF-beállítások" } }, + "loadingBook": "Könyv betöltése...", + "failedToLoadBook": "Nem sikerült betölteni a könyvet", + "chapterNumber": "{number}. fejezet", + "peek": { + "badge": "Betekintés", + "startReading": "Olvasás indítása" + }, + "toast": { + "linkedHighlightError": "Nem sikerült megnyitni a hivatkozott kiemelési pozíciót", + "resumed": "Folytatva {pct}%-nál - {label}" + }, + "header": { + "goBack": "Vissza", + "tableOfContents": "Tartalomjegyzék", + "toggleBookmark": "Könyvjelző ki-/bekapcsolása", + "cycleFooterMode": "Lábléc-információs mód váltása", + "keyboardShortcutsHint": "Gyorsbillentyűk (?)", + "enterFullscreen": "Belépés teljes képernyős módba", + "exitFullscreen": "Kilépés a teljes képernyős módból", + "narrationPlaying": "Narráció lejátszása", + "ttsPlaying": "TTS lejátszása", + "listenWithNarrationShort": "Hallgatás (narráció)", + "listen": "Hallgatás", + "listenWithNarration": "Hallgatás narrációval", + "listenWithTts": "Hallgatás TTS-sel", + "footerMode": { + "pageProgress": "Lábléc-információ: oldalszám + haladás", + "sessionTimeLeft": "Lábléc-információ: olvasási munkamenet + hátralévő idő", + "chapterTimeLeft": "Lábléc-információ: fejezet + fejezetből hátralévő idő" + } + }, + "footer": { + "previousSection": "Előző szakasz", + "nextSection": "Következő szakasz", + "goToPlaceholder": "45 vagy p123", + "jumpToLocation": "Ugrás a pozícióra", + "jumpTooltip": "Ugrás %-ra vagy oldalra (pl. 45 vagy p123)", + "go": "Mehet" + }, + "settings": { + "title": "Beállítások", + "ariaLabel": "Olvasó beállításai", + "close": "Beállítások bezárása", + "reset": "Alapbeállítások visszaállítása", + "modeLabel": "Színmód", + "mode": { + "light": "Világos", + "dark": "Sötét" + }, + "textSize": "Betűméret", + "textSizeSmaller": "Kisebb szöveg", + "textSizeLarger": "Nagyobb szöveg", + "pixels": "{value} px", + "percent": "{value}%", + "pageColor": "Oldalszín", + "font": "Betűtípus", + "fontBuiltIn": "Beépített", + "fontServer": "Szerver betűtípusok", + "fontYours": "Betűtípusaid", + "fontStyle": "Stílus", + "fontStyleItalicOf": "{style} dőlt", + "lineSpacing": "Sorköz", + "paragraphSpacing": "Bekezdés térköze", + "paragraphSpacingDefault": "Alapértelmezett", + "paragraphSpacingValue": "{value} em", + "letterSpacing": "Betűköz", + "wordSpacing": "Szóköz", + "textIndent": "Első sor behúzása", + "bookDefault": "Könyv", + "custom": "Egyéni", + "emValue": "{value} em", + "pageWidth": "Oldal szélessége", + "pageWidthNarrow": "Keskeny", + "pageWidthMedium": "Közepes", + "pageWidthWide": "Széles", + "pageWidthFull": "Teljes", + "readingFlow": "Olvasási folyamat", + "flow": { + "paginated": "Oldalak", + "scrolled": "Görgetés" + }, + "pageSpreads": "Oldalpárok", + "pageSpreadsHint": "Válaszd ki, hogyan képezzen oldalpárokat ez a képalapú EPUB.", + "spread": { + "bookDefault": "Könyv alapértelmezése", + "singlePage": "Egyetlen oldal" + }, + "advanced": "Haladó elrendezés", + "columns": "Oszlopok", + "columnsFewer": "Kevesebb oszlop", + "columnsMore": "Több oszlop", + "columnGap": "Oszloptávolság", + "justifyText": "Sorkizárt", + "hyphenation": "Elválasztás", + "themes": { + "default": "Alapértelmezett", + "gray": "Szürke", + "sepia": "Szépia", + "crimson": "Karmazsin", + "meadow": "Mező", + "rosewood": "Rózsafa", + "azure": "Azúr", + "dawnlight": "Hajnali fény", + "ember": "Parázs", + "aurora": "Auróra", + "ocean": "Óceán", + "mist": "Köd", + "amoled": "AMOLED" + }, + "fonts": { + "bookDefault": "Könyv alapértelmezése", + "serif": "Talpas", + "sansSerif": "Talpatlan", + "monospace": "Fix szélességű" + } + }, + "search": { + "placeholder": "Keresés a könyvben (legalább {min} karakter)...", + "searching": "Keresés…", + "tooShort": "Írj be legalább {min} karaktert", + "noResults": "Nincs találat", + "prompt": "Írj ide a kereséshez", + "resultCount": "{count, plural, =0 {nincs találat} one {# találat} other {# találat}}" + }, + "sidebar": { + "tabs": { + "chapters": "Fejezetek", + "bookmarks": "Könyvjelzők", + "highlights": "Kiemelések", + "toc": "Tartalomjegyzék", + "tocShort": "TJ", + "marksShort": "Jelölések", + "notesShort": "Jegyzetek" + }, + "pin": "Oldalsáv rögzítése", + "unpin": "Oldalsáv rögzítésének feloldása", + "close": "Oldalsáv bezárása", + "noChapters": "Nem találhatók fejezetek", + "noBookmarks": "Még nincsenek könyvjelzők", + "noBookmarksMatch": "Egyetlen könyvjelző sem felel meg a szűrőknek", + "noHighlights": "Még nincsenek kiemelések", + "noHighlightsMatch": "Egyetlen kiemelés sem felel meg a szűrőknek", + "searchBookmarks": "Könyvjelzők keresése...", + "searchHighlights": "Kiemelések keresése...", + "bookmarkFallback": "Könyvjelző", + "locationUnavailable": "A hely nem elérhető", + "customColor": "Egyéni ({color})", + "allColors": "Összes szín", + "allChapters": "Összes fejezet", + "notesOnly": "Csak jegyzetek", + "deleteBookmark": "Könyvjelző törlése", + "deleteHighlight": "Kiemelés törlése", + "approximatePosition": "Eszközről szinkronizálva; a pontos pozíció nem érhető el, ugrás a fejezethez", + "sort": { + "readingOrder": "Olvasási sorrend", + "newest": "Legújabb elől", + "oldest": "Legrégebbi elől" + } + }, + "selection": { + "copy": "Másolás", + "copied": "Másolva!", + "highlight": "Kiemelés", + "translate": "Fordítás", + "define": "Meghatározás", + "deleteAnnotation": "Annotáció törlése", + "apply": "Alkalmaz", + "color": "Kiemelés színe: {color}", + "style": "Kiemelés stílusa: {style}", + "styles": { + "highlight": "Kiemelés", + "underline": "Aláhúzott", + "strikethrough": "Áthúzott", + "squiggly": "Hullámos aláhúzás" + } + }, + "note": { + "title": "Jegyzet hozzáadása", + "placeholder": "Írd ide a jegyzeted…" + }, + "dictionary": { + "noDefinition": "Nem található meghatározás", + "loadError": "Nem sikerült betölteni a meghatározást" + }, + "translation": { + "original": "Eredeti", + "translation": "Fordítás", + "translating": "Fordítás...", + "noTranslation": "Még nincs fordítás", + "viaProvider": "ezen keresztül: {provider}", + "copyTranslation": "Fordítás másolása" + }, + "shortcuts": { + "title": "Gyorsbillentyűk", + "groups": { + "panels": "Panelek", + "reading": "Olvasás", + "actions": "Műveletek" + }, + "toggleToc": "Tartalomjegyzék ki-/bekapcsolása", + "toggleSearch": "Keresés ki-/bekapcsolása", + "toggleHelp": "Súgó megjelenítése/elrejtése", + "closePanel": "Panel bezárása", + "prevNextPage": "Előző/következő oldal", + "goToStart": "Ugrás a könyv elejére", + "goToEnd": "Ugrás a könyv végére", + "toggleBookmark": "Könyvjelző ki-/bekapcsolása", + "toggleFullscreen": "Teljes képernyős mód ki-/bekapcsolása", + "cycleFooterMode": "Lábléc-információs mód váltása" + }, "cbz": { + "fitMode": "Illesztés módja", + "background": "Háttér", + "scrollMode": "Görgetési mód", + "scrollModeHint": "Használd a „Rések nélkül” opciót webtoonokhoz és függőleges képsorokhoz.", + "readingDirection": "Olvasási irány", + "autoAdvance": "Automatikus továbblépés", + "autoAdvanceHint": "Az utolsó oldalon való továbblapozás megnyitja a sorozat következő könyvét.", + "autoAdvancePagedOnly": "Az automatikus továbblépés kizárólag oldalas módban érvényes.", + "pageView": "Oldalnézet", + "twoPagePagedOnly": "Két oldal kizárólag oldalas módban jelenik meg.", + "spreadSection": "Kétoldalas lapelrendezés", + "spreadFallbackHint": "Ez a képernyő túl keskeny a kétoldalas nézethez, ezért egyoldalas megjelenítés látható.", + "spreadAlignmentLabel": "Oldalpár-igazítás", + "spreadGap": "Kétoldalas rés", + "spreadGapValue": "{value}px", + "forceTwoPage": "Kétoldalas nézet kényszerítése", + "widePages": "Széles oldalak", + "firstPage": "Első oldal", + "lastPage": "Utolsó oldal", + "zoomControls": "Nagyításvezérlők", + "zoomOut": "Kicsinyítés", + "zoomIn": "Nagyítás", + "fit": { + "page": "Ablakhoz igazítás", + "width": "Oldalszélesség", + "height": "Oldalmagasság", + "actual": "Tényleges méret" + }, + "view": { + "single": "Egyoldalas", + "twoPage": "Kétoldalas" + }, + "scroll": { + "paged": "Oldalankénti", + "infinite": "Végtelen", + "noGaps": "Rések nélkül" + }, + "direction": { + "ltr": "B - J", + "rtl": "J - B" + }, + "spreadAlignment": { + "normal": "Normál", + "shifted": "Eltolt" + }, + "widePage": { + "auto": "Automatikus", + "inSpreads": "Oldalpárokban" + }, + "bg": { + "black": "Fekete", + "gray": "Szürke", + "white": "Fehér" + }, "nextIssue": { + "eyebrow": "Következő a sorozatban", + "action": "Következő olvasmány", + "open": "Következő olvasmány: {title}", "numbered": "#{index} {title}", - "untitled": "Névtelen" + "untitled": "Névtelen", + "autoAdvanceHint": "Lapozz még egyet a folytatáshoz" } }, "audiobook": { - "untitled": "Névtelen" + "untitled": "Névtelen", + "loading": "Hangoskönyv betöltése...", + "loadError": "Nem sikerült betölteni a hangoskönyvet", + "noAudioFiles": "Nem találhatók hangfájlok ehhez a könyvhöz.", + "speed": "Tempó", + "chapters": "Fejezetek", + "bookmarks": "Könyvjelzők", + "volume": "Hangerő", + "muted": "Némítva", + "sleep": "Alvás", + "chapterAbbrev": "Fej.", + "sleepTimer": "Alvásidőzítő", + "minutes": "{count, plural, one {# perc} other {# perc}}", + "endOfChapter": "Fejezet vége", + "noChaptersAvailable": "Nem érhetők el fejezetek", + "extend15": "+ 15 perc", + "timeLeft": "({time} van vissza)", + "playbackSpeed": "Lejátszási sebesség", + "noChapters": "Nem érhetők el fejezetek.", + "noBookmarks": "Még nincsenek könyvjelzők.", + "noBookmarksHint": "A jelenlegi pozíciód mentéséhez koppints a felül található könyvjelző ikonra.", + "playerSettings": "Lejátszó beállításai", + "skipBack": "Ugrás vissza", + "skipForward": "Ugrás előre" + }, + "sheet": { + "expand": "Panel kinyitása", + "collapse": "Panel összecsukása" + }, + "narration": { + "fallbackTitle": "Narráció", + "meta": "Hangos narráció – {speed}x", + "openControls": "Narrációvezérlők megnyitása", + "previousSentence": "Előző mondat", + "nextSentence": "Következő mondat", + "play": "Narráció lejátszása", + "pause": "Narráció szüneteltetése", + "showControls": "Vezérlők megjelenítése", + "hideControls": "Vezérlők elrejtése", + "stop": "Narráció leállítása", + "error": "Narráció-lejátszási hiba" } }, + "scanner": { + "filesProgress": "{processed}/{total} fájl", + "booksFound": "{count, plural, =0 {nem található könyv} one {# talált könyv} other {# talált könyv}}" + }, "series": { + "completion": { + "readOfTotal": "{read}/{total} elolvasva ({percentage}%)" + }, + "ownership": { + "label": "A könyvtárban", + "ownedOfExpected": "{owned}/{expected} a könyvtárban" + }, + "gaps": { + "label": "Hiányzó kötetek:", + "missingCount": "{count, plural, one {# hiányzik} other {# hiányzik}}", + "missingList": "Hiányzó: {list}", + "previewMore": "{shown} +{count}" + }, "filters": { - "clearAll": "Összes törlése" + "title": "Sorozatszűrők", + "clearAll": "Összes törlése", + "allLibraries": "Összes könyvtár", + "allCompletion": "Összes teljesített", + "notStarted": "Nincs elkezdve", + "inProgress": "Folyamatban", + "complete": "Kész" + }, + "list": { + "title": "Sorozat", + "showControlsAria": "Sorozatvezérlők megjelenítése", + "searchPlaceholder": "Sorozat vagy szerző keresése", + "sortButton": "Rendezés", + "sortBy": "Rendezés módja", + "ascending": "Növekvő", + "descending": "Csökkenő", + "ascShort": "Növ", + "descShort": "Csökk", + "filters": "Szűrők", + "clear": "Törlés", + "noMatch": "Egyetlen sorozat sem felel meg a szűrőknek.", + "empty": "Nem találhatók sorozatok a könyvtáraidban.", + "sort": { + "name": "Név", + "bookCount": "Könyvek száma", + "recentAdditions": "Legutóbb hozzáadottak", + "readingProgress": "Olvasási haladás" + }, + "clearSearch": "Keresés törlése", + "noMatchHint": "Próbálkozz egy másik könyvtárral, vagy töröld a beállításokat.", + "emptyHint": "A sorozatok akkor jelennek meg, ha a könyveid tartalmaznak sorozat-metaadatokat." }, "detail": { + "pageTitle": "Sorozat", + "pageTitleNamed": "Sorozat · {name}", + "pageTitleWithId": "Sorozat #{id}", + "entityName": "Sorozat", + "bookCount": "{count, plural, =0 {nincs könyv} one {# könyv} other {# könyv}}", + "byAuthors": "{authors} által", + "moreAuthors": "+ további {count}", + "preparingEditor": "Szerkesztő előkészítése...", + "editMetadata": "Metaadatok szerkesztése", + "firstInSeries": "Első a sorozatban", "untitled": "Névtelen", - "synopsis": "Fülszöveg" + "loadingFirstBook": "Első könyv előnézetének betöltése...", + "showLess": "Kevesebb megjelenítése", + "showMore": "Több megjelenítése", + "moreGenres": "+ további {count}", + "synopsis": "Fülszöveg", + "noDescription": "Nincs elérhető leírás.", + "updatingPreview": "Előnézet frissítése...", + "noBooksToPreview": "Nem érhetők el könyvek az előnézethez.", + "loadingSeries": "Sorozat betöltése...", + "booksHeading": "Könyvek", + "allLibraries": "Összes könyvtár", + "groupByMedia": "Csoportosítás médiatípus szerint", + "noBooksFound": "Nem találhatók könyvek ebben a sorozatban", + "trySelectingLibrary": "Próbálj meg egy másik könyvtárat választani.", + "allBooksLoaded": "Mind a(z) {count} könyv betöltve", + "leadBookLoadError": "Nem sikerült betölteni a vezető könyv részletes adatait", + "noBooksToEdit": "Ez a sorozat nem tartalmaz szerkeszthető könyveket.", + "loadFullSeriesError": "Nem sikerült betölteni a teljes sorozatot a szerkesztéshez.", + "sort": { + "seriesOrder": "Sorozat-sorrend", + "title": "Cím", + "recentlyAdded": "Legutóbb hozzáadva" + }, + "order": { + "ascending": "Növekvő", + "descending": "Csökkenő" + } }, + "authorsPlus": "{authors} +{count}", "track": { + "readCount": "{count, plural, one {# elolvasva} other {# elolvasva}}", + "readingCount": "{count, plural, one {# folyamatban} other {# folyamatban}}", + "unreadCount": "{count, plural, one {# nincs elolvasva} other {# nincs elolvasva}}", + "missingCount": "{count, plural, one {# hiányzik} other {# hiányzik}}", + "slotMissing": "{number} nincs a könyvtárban", "untitled": "Névtelen" + }, + "legend": { + "read": "Elolvasva", + "reading": "Olvasás", + "unread": "A könyvtárban", + "missing": "Hiányzik" + }, + "status": { + "label": "Sorozatok szűrése olvasási állapot szerint", + "all": "Összes", + "reading": "Olvasás", + "unread": "Nem olvasott", + "complete": "Kész", + "gaps": "Rések", + "read": "Elolvasva", + "inProgress": "Folyamatban", + "hasGaps": "Hiányos", + "notStarted": "Nincs elkezdve" + }, + "index": { + "columnSeries": "Sorozat", + "columnVolumes": "Kötetek", + "columnRead": "Elolvasva", + "columnNext": "Következő", + "columnAdded": "Hozzáadva", + "percent": "{value}%", + "captionReading": "{base} · {count, plural, one {# folyamatban} other {# folyamatban}}", + "finished": "Végigolvasott", + "reading": "Olvasás", + "next": "Következő", + "start": "Eleje" + }, + "grouping": { + "label": "Csoportosítás módja", + "none": "Nincs csoportosítás", + "letter": "Kezdőbetű szerint", + "library": "Könyvtár szerint", + "status": "Állapot szerint" + }, + "libraries": { + "more": "+{count}" + }, + "card": { + "oneVolume": "Egy kötet", + "oneVolumeShort": "1 köt", + "volumeCount": "{count, plural, one {# kötet} other {# kötet}}", + "readSummary": "{base} · {read} elolvasva", + "publishedOf": "{owned}/{total} publikálva", + "complete": "Kész", + "moreVolumes": "{count, plural, one {# további kötet} other {# további kötet}}", + "label": "{name}, {read}/{total} kötet elolvasva" } }, "smartScope": { + "syncToKobo": "Szinkronizálás Kobo-val", + "syncToKoboHint": "Az ezen körnek megfelelő könyvek meg fognak jelenni a Kobo eszközödön", + "visibleToAll": "Minden felhasználó számára látható", + "visibleToAllHint": "Minden felhasználó láthatja és használhatja ezt az okosgyűjteményt", + "dialog": { + "name": "Név", + "namePlaceholder": "pl. Olvasatlan Sci-Fi", + "icon": "Ikon", + "iconPlaceholder": "Válassz egy ikont...", + "nameRequired": "A név megadása kötelező", + "iconRequired": "Válassz egy ikont", + "create": "Létrehozás", + "creating": "Létrehozás...", + "saving": "Mentés..." + }, + "createDialog": { + "title": "Új okosgyűjtemény", + "podcastTitle": "Új okos lejátszólista", + "createFailed": "Nem sikerült létrehozni az okosgyűjteményt" + }, + "saveAsDialog": { + "title": "Mentés okosgyűjteményként", + "save": "Okosgyűjtemény mentése", + "saveFailed": "Nem sikerült menteni az okosgyűjteményt" + }, "editorPanel": { - "untitled": "Névtelen okos gyűjtemény" + "untitled": "Névtelen okosgyűjtemény", + "subtitle": "Okosgyűjtemény-beállítások konfigurálása", + "counting": "számolás...", + "bookCount": "{count, plural, =0 {nincs könyv} one {egy könyv} other {# könyv}}", + "identity": "Azonosítók", + "filters": "Szűrők", + "noFilters": "Nincsenek beállítva szűrők. Minden elérhető könyv bekerül ebbe az okosgyűjteménybe.", + "buildFromScratch": "Létrehozás alapoktól", + "replaceWithTemplate": "Felülírás sablonnal:", + "defaultSort": "Alapértelmezett rendezés", + "saveChanges": "Változások mentése", + "saveFailed": "Mentés sikertelen", + "templates": { + "hasSeries": "Sorozat része", + "addedRecently": "Legutóbb hozzáadott", + "pdfOnly": "Csak PDF", + "noGenres": "Nincs műfaj", + "epubOnly": "Csak EPUB" + } + }, + "errors": { + "load": "Nem sikerült betölteni az okosgyűjteményeidet", + "loadEpisodes": "Nem sikerült betölteni az epizódokat ehhez az okoslejátszási listához", + "save": "Nem sikerült menteni az okosgyűjteményt", + "delete": "Nem sikerült törölni az okosgyűjteményt", + "reorder": "Nem sikerült átrendezni az okosgyűjteményeidet", + "koboSync": "Nem sikerült frissíteni a Kobo-szinkronizálást ehhez az okosgyűjteményhez" + } + }, + "statistics": { + "tabs": { + "library": "Könyvtárstatisztika", + "user": "Olvasmányaim" + }, + "filter": { + "allLibraries": "Összes könyvtár", + "librarySelection": "{count}/{total} könyvtár" + }, + "config": { + "button": "Beállítás", + "title": "Diagramok konfigurálása", + "description": "Húzd az átrendezéshez, kattints a megjelenítéshez vagy elrejtéshez.", + "reset": "Alapbeállítások visszaállítása" + }, + "summary": { + "books": "Könyvek", + "authors": "Szerzők", + "series": "Sorozat", + "publishers": "Kiadók", + "storage": "Tárhely", + "genres": "Műfajok", + "languages": "Nyelvek", + "published": "Publikálva", + "thisYear": "Idén", + "started": "Elkezdve", + "inProgress": "Folyamatban", + "completed": "Befejezett", + "avgProgress": "Átl. haladás" + }, + "card": { + "loadError": "Nem sikerült betölteni az adatokat", + "emptyTitle": "Még nincs adat", + "emptyDescription": "Nem állnak rendelkezésre adatok ehhez a diagramhoz", + "unknownField": "{count, plural, =0 {nincs adat ehhez a mezőhöz} one {# könyvnek nincs adata ehhez a mezőhöz} other {# könyvnek nincs adata ehhez a mezőhöz}}" + }, + "breakdown": { + "ariaLabel": "Lebontás forrás vagy formátum szerint" + }, + "empty": { + "notEnoughData": "Még nincs elég adat" + }, + "charts": { + "acquisitionLag": { + "title": "Beszerzési időrés" + }, + "booksAddedOverTime": { + "title": "Hozzáadott könyvek idővonala", + "monthly": "Havi", + "yearly": "Éves", + "allTime": "Összes", + "last5Years": "Elmúlt 5 év", + "lastYear": "Múlt év" + }, + "formatDistribution": { + "title": "Formátumeloszlás" + }, + "formatShareOverTime": { + "title": "Formátumarányok időbeli alakulása" + }, + "genreCooccurrence": { + "title": "Műfaji átfedések" + }, + "genreDistribution": { + "title": "Műfaji megoszlás" + }, + "languageDistribution": { + "title": "Nyelvi megoszlás" + }, + "largestBooks": { + "title": "Az 50 leghosszabb könyv" + }, + "libraryIntegrity": { + "title": "Könyvtár épsége" + }, + "libraryMetadataCompleteness": { + "title": "Könyvtár metaadatainak kitöltöttsége" + }, + "metadataCompleteness": { + "title": "Metaadatok kitöltöttsége" + }, + "metadataFreshness": { + "title": "Metaadatok frissessége" + }, + "metadataScoreDistribution": { + "title": "Metaadat-pontszámok megoszlása" + }, + "pageCountDistribution": { + "title": "Oldalszámok megoszlása" + }, + "publicationDecade": { + "title": "Kiadási évtized" + }, + "publicationYearTimeline": { + "title": "Kiadási évek idővonala" + }, + "storageByFormat": { + "title": "Tárhelyformátumok szerinti megoszlás" + }, + "topAuthors": { + "title": "A 25 legnépszerűbb szerző" + }, + "topSeries": { + "title": "Az 50 legjobb sorozat" + }, + "booksCompleted": { + "title": "Befejezett könyvek", + "notEnoughData": "Legalább {count} elolvasott könyv szükséges ehhez a diagramhoz." + }, + "completionLatency": { + "title": "Olvasási időtartam", + "notEnoughData": "Legalább {count} elolvasott könyv szükséges ehhez a diagramhoz." + }, + "completionTimeline": { + "title": "Befejezések idővonala", + "notEnoughData": "Legalább {count} elolvasott könyv szükséges ehhez a diagramhoz." + }, + "favoriteReadingDays": { + "title": "Kedvenc olvasási napok", + "notEnoughData": "Legalább {count} olvasási esemény szükséges ehhez a diagramhoz." + }, + "genreReadingTime": { + "title": "Műfajonkénti olvasási idő", + "notEnoughData": "Legalább {count} olvasási idővel rendelkező műfaj szükséges ehhez a diagramhoz." + }, + "goalTrajectory": { + "title": "Tempó és cél összehasonlítása", + "noCompletedTitle": "Még nincsenek befejezett könyvek", + "noCompletedDescription": "Fejezz be egy könyvet ebben az időszakban, hogy összehasonlíthasd a tempódat az éves céloddal.", + "notEnoughData": "Legalább {count} elolvasott könyv szükséges ehhez a diagramhoz." + }, + "peakReadingHours": { + "title": "Legaktívabb olvasási időszakok", + "notEnoughData": "Legalább {count} olvasási esemény szükséges ehhez a diagramhoz." + }, + "progressFunnel": { + "title": "Haladási tölcsér", + "modePercent": "Százalék", + "modeCounts": "Darabszámok", + "modeDropoff": "Abbahagyva", + "started": "{count} elkezdve", + "notEnoughData": "Legalább {count} elkezdett könyv szükséges ehhez a diagramhoz.", + "noDropOffTitle": "Nincs abbahagyott", + "noDropOffDescription": "Ebben az időszakban minden elkezdett könyv végighaladt a tölcsér összes szakaszán." + }, + "readingClock": { + "title": "Olvasási óra", + "notEnoughData": "Legalább {count} olvasási munkamenet szükséges ehhez a diagramhoz." + }, + "readingHeatmap": { + "title": "Olvasási hőtérkép", + "notEnoughData": "Legalább {count} napon szükség van aktivitásra ehhez a diagramhoz." + }, + "readingPace": { + "title": "Olvasási tempó", + "notEnoughData": "Legalább {count} haladási adatokkal rendelkező munkamenet szükséges ehhez a diagramhoz." + }, + "readingSessionTimeline": { + "title": "Olvasási munkamenetek idővonala", + "dragOn": "Húzás: Be", + "dragOff": "Húzás: Ki", + "prev": "Előző", + "next": "Következő", + "week": "{week} hét", + "dragHint": "A munkamenetek mozgatásához húzd a sávokat. Az időtartam rögzített, az egymást átfedő munkamenetek elutasításra kerülnek.", + "noSessionsTitle": "Ezen a héten nincsenek munkamenetek", + "noSessionsDescription": "Másik hét megtekintéséhez használd az Előző/Következő gombokat vagy a hétválasztót.", + "overlapError": "A munkamenet egy másik munkamenettel fedi egymást ebben az ablakban", + "moveError": "A munkamenet mozgatása sikertelen" + }, + "sessionArchetypes": { + "title": "Olvasói archetípusok" + }, + "sourceDistribution": { + "title": "Hol olvasol", + "emptyTitle": "Még nincs olvasási aktivitás", + "emptyDescription": "Olvass weben, KOReaderen vagy Kobón, hogy lásd a forrásaid megoszlását.", + "emptyDescriptionWithAppleClients": "Olvass weben, iOS-alkalmazásban, Apple Watchon, KOReaderen vagy Kobón, hogy lásd a forrásaid megoszlását.", + "emptyDescriptionWithNativeClients": "Olvass weben, iOS-alkalmazásban, Android-alkalmazásban, Apple Watchon, KOReaderen vagy Kobón, hogy lásd a forrásaid megoszlását." + } } }, "tools": { + "header": { + "entityManager": "Entity Manager", + "bulkRename": "Csoportos átnevezés", + "duplicateBooks": "Duplikált könyvek", + "missingResources": "Hiányzó erőforrások" + }, + "entityTypes": { + "authors": "Szerzők", + "genres": "Műfajok", + "tags": "Címkék", + "narrators": "Narrátorok", + "publishers": "Kiadók", + "languages": "Nyelvek", + "series": "Sorozat" + }, "bulkRename": { - "openBookDetails": "Könyv részleteinek megnyitása" + "library": "Könyvtár", + "selectLibraryPlaceholder": "Válassz egy könyvtárat...", + "noEligibleLibraries": "Egyik könyvtárban sincs engedélyezve a fájlok átnevezése. Engedélyezd a Könyvtárbeállításokban.", + "refresh": "Frissítés", + "previewFailed": "Nem sikerült betölteni az előnézetet", + "executionFailed": "Csoportos átnevezés sikertelen", + "openBookDetails": "Könyv részleteinek megnyitása", + "openBook": "Könyv megnyitása", + "toRenameCount": "{count, plural, =0 {nincs mit átnevezni} one {# átnevezendő} other {# átnevezendő}}", + "applyCount": "{count, plural, one {# átnevezés alkalmazása} other {# átnevezés alkalmazása}}", + "search": { + "placeholder": "Könyv vagy elérési út keresése", + "label": "Könyv keresése", + "clear": "Keresés törlése" + }, + "filter": { + "all": "Összes", + "changes": "Változások", + "conflicts": "Ütközések", + "unchanged": "Változatlan" + }, + "status": { + "willRename": "Át lesz nevezve", + "unchanged": "Változatlan", + "collision": "Ütközés", + "noPattern": "Nincs minta", + "error": "Hiba" + }, + "group": { + "collision": "Célhely-ütközés", + "unchanged": "Már megfelelő", + "noPattern": "Nincs elnevezési minta", + "error": "Hibára futott", + "includeAll": "Összes {kind} átnevezése", + "expand": "{kind} kibontása", + "collapse": "{kind} összecsukása", + "heldBack": "Ezek nem nevezhetők át" + }, + "changeKind": { + "ungroup": "Sorozatcsoportosítás törölve", + "flatten": "Duplikált mappaszint törölve", + "yearRemoved": "Kiadás éve törölve", + "yearAdded": "Kiadás éve hozzáadva", + "yearCorrected": "Kiadás éve kijavítva", + "authorSpelling": "Szerző nevének írásmódja", + "capitalisation": "Kis- és nagybetűk, valamint szóközök", + "unsafeCharacters": "Nem biztonságos karakterek kicserélve", + "filenameRebuilt": "Fájlnév újraépítve a metaadatokból", + "folderRenamed": "Mappa átnevezve", + "rebuilt": "Mappa és fájlnév újraépítve", + "restructured": "Elérési út átstrukturálva", + "multiple": "Több változás" + }, + "select": { + "ofSelected": "a {total}-ból kiválasztva", + "toggleAll": "Összes átnevezés kijelölése vagy törlése", + "toggleGroup": "Összes {kind}-átnevezés kijelölése vagy törlése", + "toggleBook": "{title} átnevezése" + }, + "review": { + "loadMore": "Több betöltése", + "queue": "Függőben lévő átnevezések", + "position": "{index}/{total}", + "previous": "Előző könyv", + "next": "Következő könyv", + "keyboardHint": "mozgatás", + "keyboardSkip": "kihagy", + "skip": "Kihagy", + "include": "Belefoglal", + "excluded": "Kizárva", + "back": "Vissza a listához" + }, + "detail": { + "whatChanges": "Mi változik", + "foldedFolders": "{count, plural, one {# változatlan mappa} other {# változatlan mappa}}", + "onDisk": "A lemezen", + "today": "Ma", + "afterRename": "Átnevezés után", + "showLibraryFolders": "Könyvtármappák megjelenítése", + "hideLibraryFolders": "Könyvtármappák elrejtése", + "currentPath": "Jelenlegi elérési út", + "whyItMoves": "Miért helyeződik át", + "levelTop": "Gyökérmappa", + "levelFolder": "{depth}. szintű mappa", + "levelFilename": "Fájlnév", + "levelRemoved": "Eltávolítva", + "tokenCount": "{count, plural, one {# token} other {# token}}", + "optionalLevel": "Egy opcionális mappaszint, amelyet a mintában szereplő egyik csoport hoz létre.", + "removedExplainer": "Az elnevezési mintában ezen a szinten nem szerepel mappa, így a(z) {folder} mappa elvetésre kerül, a tartalma pedig feljebb kerül.", + "conflictTitle": "Egy másik fájl már lefoglalta ezt a célhelyet.", + "conflictBody": "Az átnevezés felülírná a fájlt, így ez a könyv visszatartásra kerül az ütközés feloldásáig.", + "siblings": "{count, plural, one {# további ugyanazzal a változással} other {# további ugyanazzal a változással}}", + "siblingsMore": "+ további {count}" + }, + "empty": { + "title": "A kezdéshez válassz ki egy könyvtárat", + "description": "Válassz ki egy könyvtárat az átnevezési módosítások előnézetéhez, ellenőrizd őket egyenként, majd alkalmazd a futtatást.", + "chooseLibrary": "Válassz könyvtárat", + "noneTitle": "Nincs mit ellenőrizni", + "noneDescription": "Egyetlen könyv sem felel meg a jelenlegi szűrőnek. Töröld a keresést, vagy válts az Összes lehetőségre.", + "noMatch": "Egyetlen könyv sem felel meg a keresésnek." + }, + "confirmDialog": { + "title": "{count, plural, one {# fájl átnevezése a lemezen?} other {# fájl átnevezése a lemezen?}}", + "body": "Ez valódi fájlokat mozgat a(z) {library} könyvtárban. A BookOrbit minden mozgatást rögzít, de a visszavonás az eredeti névre való visszanevezést jelenti.", + "willRename": "Át lesz nevezve", + "skippedByYou": "Általad kihagyva", + "heldBack": "Ütközések miatt visszatartva", + "untouched": "Érintetlenül hagyva", + "confirm": "{count, plural, one {# fájl átnevezése} other {# fájl átnevezése}}", + "cannotRename": "Nem nevezhető át" + }, + "run": { + "preparing": "Előkészítés…", + "preparingHint": "Minden fájl ellenőrzése az elnevezési mintához képest, mielőtt bármi elmozdulna.", + "title": "{done}/{total} átnevezése", + "runningHint": "A fájlok átnevezése folyamatban van. A leállítást az aktuális fájl befejeződése után teheted meg.", + "stop": "Leállítás a jelenlegi fájl után", + "resultTitle": "{done, plural, one {#/{total} fájl átnevezve} other {#/{total} fájl átnevezve}}", + "resultFailed": "{count, plural, one {# sikertelen} other {# sikertelen}}", + "resultSkipped": "{count, plural, one {# kihagyva} other {# kihagyva}}", + "dismiss": "Elvetés" + }, + "executionError": { + "incomplete": "A kapcsolat megszakadt az átnevezés befejeződése előtt. Előfordulhat, hogy néhány fájl nem lett átnevezve.", + "unknown": "Az átnevezést nem sikerült befejezni." + } }, "bookDuplicates": { - "none": "Egyik sem" + "title": "Duplikált könyvek", + "scope": "Könyvtári hatókör", + "allLibraries": "Minden elérhető könyvtár", + "similarity": "Hasonló címek", + "explainSimilarity": "Hasonló címek küszöbértékének magyarázata", + "similarityHelp": "Kizárólag a hasonló című és szerzőjű egyezésekre vonatkozik. Legalább egy szerzőnek és a könyvtípusnak is egyeznie kell. Az alacsonyabb érték több lehetséges duplikátumot talál; a magasabb közelebbi egyezést vár el a címek között. Az azonos fájlokat, az ISBN-számot és a pontos metaadatokat a rendszer külön ellenőrzi.", + "runScan": "Keresés futtatása", + "rescan": "Újrakeresés", + "status": { + "queued": "Keresés a várakozási sorban", + "running": "Könyvek beolvasása" + }, + "filter": "Szűrés az egyezés típusa szerint", + "allReasons": "Minden egyezéstípus", + "reasons": { + "file_hash": "Azonos fájlkészlet", + "isbn": "Azonos ISBN-szám", + "exact_metadata": "Azonos cím és szerző", + "fuzzy_metadata": "Hasonló cím és szerző" + }, + "notDuplicates": "Nincsenek duplikátumok", + "unknownAuthor": "Ismeretlen szerző", + "unknown": "Ismeretlen", + "none": "Egyik sem", + "accessDenied": "Nincs jogosultságod a duplikált könyvek eszközének használatához.", + "pairDetails": "Miért egyeznek", + "pairLabel": "{first} és {second}", + "fields": { + "library": "Könyvtár", + "isbn": "ISBN", + "formats": "Formátumok", + "collections": "Gyűjtemények", + "added": "Hozzáadva", + "size": "Méret", + "metadata": "Metaadatok", + "reading": "Olvasás", + "folder": "Mappa", + "noIsbn": "Nincs beállítva", + "notStarted": "Nincs elkezdve", + "outOfHundred": "/100", + "percentRead": "{percent} elolvasva", + "fileCount": "{count, plural, one {# fájl} other {# fájl}}" + }, + "initial": { + "title": "Duplikált könyvek keresése", + "description": "Válassz ki egy könyvtári hatókört és hasonlósági szintet, majd futtasd a beolvasást. A rendszer egyetlen könyvet sem módosít, amíg kifejezetten meg nem erősíted a törlést." + }, + "empty": { + "title": "Nem találhatók duplikált csoportok", + "description": "Egyetlen könyv sem felelt meg a jelenlegi hatókörnek, hasonlósági szintnek és egyezési szűrőnek." + }, + "deleteDialog": { + "warning": "A metaadatok, a gyűjtemények, az olvasási adatok és az eszközállapot nem mennek át a megtartott könyvre. A többi felhasználóhoz kapcsolódó adatok szintén eltávolításra kerülnek.", + "confirm": "{count, plural, =0 {# könyv törlése} one {# könyv törlése} other {# könyv törlése}}", + "success": "{count, plural, =0 {Nincs törölt könyv} one {Egy duplikált könyv törölve} other {# duplikált könyv törölve}}" + }, + "errors": { + "start": "A duplikátumkeresés indítása sikertelen.", + "status": "Nem sikerült betölteni a beolvasás haladási állapotát.", + "scan": "A duplikátumkeresés sikertelen. Próbáld meg újra futtatni.", + "results": "Nem sikerült betölteni a duplikált csoportokat.", + "delete": "Nem sikerült törölni a kijelölt duplikált könyveket." + }, + "pagination": { + "page": "{page}/{total} oldal" + }, + "keeper": { + "formats": "{count} formátum", + "isbn": "van ISBN-száma", + "added": "hozzáadva {date}", + "riskReading": "egy olyan példányt töröl, amelynek a {percent}-ánál jársz", + "riskCollection": "töröl egy pldányt innen: {name}" + }, + "selection": { + "summary": "{groups} csoport kiválasztva, {copies} példány törlése, {size} felszabadítása", + "clear": "Törlés", + "review": "{count, plural, one {# példány áttekintése} other {# példány áttekintése}}", + "hint": "Jelöld be a megbízhatónak ítélt csoportokat, vagy nyiss meg egyet a példányok összehasonlításához." + }, + "keys": { + "move": "mozgatás", + "expand": "kibont", + "keep": "megtartás", + "select": "kiválaszt" + }, + "review": { + "title": "{count, plural, one {# példány törlése} other {# példány törlése}}", + "description": "{groups} csoportban, felszabadítva {size}. Semmi sem törlődik, amíg meg nem erősíted.", + "riskWarning": "{count, plural, one {# csoport olyan példányt töröl, amely az olvasási adataidat tartalmazza.} other {# csoport olyan példányt töröl, amely az olvasási adataidat tartalmazza.}}", + "footer": "{size} felszabadítása" + }, + "dismissed": { + "show": "{count, plural, one {# mellőzött pár megjelenítése} other {# mellőzött pár megjelenítése}}", + "hide": "Mellőzött párok elrejtése", + "restore": "Pár visszaállítása", + "restored": "A pár visszaállításra került. A következő beolvasáskor újra egyezést találhat." + } }, "entityManager": { + "unknown": "Ismeretlen", + "bookCount": "{count, plural, =0 {nincs könyv} one {# könyv} other {# könyv}}", + "sortPrefix": "· rendezés: {sortName}", + "selectTargetToKeep": "A megtartandó példány kijelölése", + "writeToFiles": "Írás fájlokba", + "writeChangesToFiles": "Módosítások mentése a fájlokba", + "mergeIntoTarget": "{count} példány beolvasztása a célpontba", + "modes": { + "browse": "Böngészés és kezelés", + "duplicates": "Duplikátumok keresése" + }, + "actions": { + "rename": "Átnevezés", + "split": "Szétválasztás", + "merge": "Egyesítés" + }, + "duplicates": { + "similarity": "Hasonlóság:", + "scan": "Beolvasás", + "scanning": "Beolvasás...", + "computing": "Jelöltek kiszámítása...", + "computedAt": "Jelöltek kiszámítva {date}", + "recompute": "Újraszámolás", + "noneComputed": "Még nincsenek jelöltek kiszámítva.", + "computeNow": "Kiszámítás most", + "emptyTitle": "Duplikált entitások keresése", + "emptyDescription": "Állítsd be a hasonlósági küszöbértéket, majd kattints a Beolvasás gombra a lehetséges duplikátumok felkutatásához." + }, "browse": { "density": { "compact": "Kompakt" }, - "range": "Mutatva {from}-{to} ennyiből: {total}", + "range": "Megjelenítve {from}-{to} ennyiből: {total}", + "goToPage": "Ugrás erre az oldalra: {page}", "clearFilters": "Szűrők törlése" }, "deleteModal": { @@ -6730,13 +10270,19 @@ } }, "missingResources": { - "untitled": "Névtelen" + "untitled": "Névtelen", + "pagination": { + "page": "{page}/{total} oldal" + } } }, "views": { "bookView": { "clearAllFilters": "Összes szűrő törlése" }, + "notFound": { + "title": "Az oldal nem található" + }, "library": { "empty": { "clearFilters": "Szűrők törlése" @@ -6750,8 +10296,18 @@ } }, "podcast": { + "labels": { + "durationHoursMinutes": "{hours}ó {minutes}p", + "durationMinutes": "{minutes}p", + "durationSeconds": "{seconds}mp" + }, "fullPlayer": { "startingPlayback": "Lejátszás indítása" } + }, + "tts": { + "sleepTimer": { + "remaining": "Leállás {minutes}p {seconds}mp múlva" + } } } diff --git a/client/src/locales/it.json b/client/src/locales/it.json index afd98ab8a..d77cb7e2d 100644 --- a/client/src/locales/it.json +++ b/client/src/locales/it.json @@ -17,7 +17,10 @@ "no": "No", "show": "Mostra", "hide": "Nascondi", - "undo": "Annulla" + "undo": "Annulla", + "pagination": { + "pageOf": "Pagina {page} di {totalPages}" + } }, "settings": { "privacySharing": { @@ -421,6 +424,9 @@ "collapseSeries": { "label": "Comprimi le serie per impostazione predefinita", "hint": "Raggruppa i libri della stessa serie in un'unica scheda nelle visualizzazioni della biblioteca e della raccolta" + }, + "bookRequests": { + "label": "Mostra le richieste di libri" } }, "icons": { @@ -3338,14 +3344,22 @@ "autoRetryShort": "A failed download falls through to the runner-up.", "maxAttemptsShort": "Il primo tentativo e tutti i successivi tentativi vengono conteggiati ai fini di questo limite.", "noSourcesConfigured": "Nessuna fonte di ricerca è impostata, quindi non verrà cercato nulla e ogni richiesta approvata tornerà indietro. Aggiungine una sotto Fonti.", + "maxAttempts": "Tentativi per richiesta", + "maxAttemptsHint": "Ogni versione che BookOrbit invia ad un client di download per questa richiesta conta verso questo limite: il primo tentativo automatico, qualsiasi cosa provata dopo che una fonte ha rifiutato, e qualsiasi cosa provata dopo che un download non è riuscito. Impostare a 1 per rinunciare dopo il primo tentativo.", + "autoSearchIntervalShort": "Contato dall'ultima ricerca, e allungato con l'invecchiare della richiesta.", "autoSearchMaxAgeUnit": "giorni", "verify": "Controllare le importazioni in relazione alla domanda", + "verifyOnHint": "Ogni file scaricato viene confrontato con il libro che è stato richiesto prima di essere archiviato. Tutto ciò che non ha una corrispondenza sufficiente attende nel Book Dock che qualcuno lo controlli.", "verificationEnabled": "Il controllo dell'importazione è attivo", "destinationUnset": "Nessun predefinito", "destinationHiddenLibrary": "Una libreria che non puoi vedere", "destinationHiddenFolder": "Una cartella che non puoi vedere", "selectFolder": "Scegli una cartella", + "destinationLibraryFor": "Libreria predefinita per richieste di {medium}", "importFormats": "Formato di importazione" + }, + "profiles": { + "howProfiles": "Come funzionano i profili di rilascio" } } }, diff --git a/client/src/locales/pt.json b/client/src/locales/pt.json index bdf43b9af..9f43e6e3c 100644 --- a/client/src/locales/pt.json +++ b/client/src/locales/pt.json @@ -17,7 +17,14 @@ "no": "Não", "show": "Mostrar", "hide": "Ocultar", - "undo": "Desfazer" + "undo": "Desfazer", + "pagination": { + "label": "Paginação", + "pageOf": "Página {page} de {totalPages}", + "previousPage": "Página anterior", + "nextPage": "Próxima página", + "goToPage": "Ir para a página {page}" + } }, "settings": { "privacySharing": { @@ -421,6 +428,11 @@ "collapseSeries": { "label": "Recolher séries por padrão", "hint": "Agrupar livros da mesma série em um único cartão nas visualizações de biblioteca e coleção" + }, + "bookRequests": { + "label": "Mostrar solicitações de livros", + "hint": "Mostrar páginas, avisos e configurações desta conta. Requisições existentes continuam sendo executadas quando ocultas.", + "saveFailed": "Não foi possível atualizar a visibilidade de solicitações de livros" } }, "icons": { @@ -1504,6 +1516,7 @@ "subtitle": "Subtítulo", "description": "Descrição", "cover": "Capa", + "audioCover": "Capas de audiolivros", "authors": "Autores", "publisher": "Editora", "publishedYear": "Ano de publicação", @@ -1688,6 +1701,7 @@ "clearAllProviders": "Limpar Todos os Provedores", "clearAll": "Limpar Tudo", "resetToDefault": "Restaurar Padrão", + "bookCover": "Capa do livro", "reset": "Restaurar", "dragProvidersHint": "Arraste os provedores daqui para qualquer campo para adicioná-los", "dragProviderHere": "arraste um provedor para cá", @@ -1822,6 +1836,7 @@ "makeFirst": "Tornar-se primeiro em todos os lugares", "makeLast": "Tornar durável em todos os lugares", "removeEverywhere": "Remover de todos os campos", + "audioCoverOrderKept": "Reordenar ignora a regra do Audiobook que mantém as fontes do audiolivro primeiro.", "allFields": "Todos os campos", "overridesOnly": "Substituir apenas", "clearFilters": "Limpar filtros" @@ -4781,6 +4796,26 @@ "primary": "Primário", "audiobook": "Audiolivro" }, + "formats": { + "epub": "EPUB e-book", + "kepub": "KEPUB e-book", + "pdf": "Documento em PDF", + "cbz": "Quadrinhos CBZ", + "cbr": "CBR quadrinhos", + "cb7": "CBR quadrinhos", + "mobi": "MOBI e-book", + "azw3": "AZW3 e-book", + "azw": "AZW e-book", + "fb2": "FictionBook", + "m4b": "Áudio M4B", + "mp3": "Áudio MP3", + "m4a": "Áudio M4A", + "opus": "Áudio Opus", + "ogg": "Áudio OGG", + "flac": "Áudio FLAC", + "readAlong": "Leitura de EPUB", + "primary": "Formato principal" + }, "actions": { "read": "Ler", "listen": "Ouvir", @@ -4804,6 +4839,12 @@ "openAs": "Abrir como {format}", "openReadAlong": "Abrir leitura ao longo do EPUB" }, + "coverRegeneration": { + "failed": "Não foi possível regerar a capa", + "bulkInProgress": "Reextração de capas", + "bulkFailed": "Não foi possível re-extrair as capas", + "bulkCompleted": "Reextraído {updated} de {processed, plural, one {# capa} other {# capas}}" + }, "readStatus": { "unread": "Não Lido", "wantToRead": "Quero Ler", @@ -4824,7 +4865,10 @@ "progressPercent": "Baixando {percent} do {total}", "progressBytes": "Baixando {transferred}", "failed": "Falha no download", - "exportFailed": "Falha na exportação" + "exportFailed": "Falha na exportação", + "audiolessEpub": "EPUB do KOReader", + "audiolessEpubHint": "Baixar EPUB para o KOReader com arquivos de áudio removidos", + "noAudio": "sem áudio" }, "sort": { "moveUp": "Mover para cima", @@ -4896,6 +4940,7 @@ "isbn": "ISBN", "metadataScore": "Pontuação de Metadados", "cover": "Capa", + "audioCover": "Capa de Audiobook", "lockStatus": "Status de bloqueio", "seriesStatus": "Status da Série" }, @@ -5199,7 +5244,32 @@ "saving": "Salvando...", "saveCover": "Salvar capa", "revertToOriginal": "Reverter para o original", - "regenerateCover": "Gerar Capa Novamente" + "regenerateCover": "Gerar Capa Novamente", + "slotsLabel": "Capa a editar", + "slotEbook": "Livro", + "slotAudio": "Audiobook", + "slotEbookName": "Capa do Livro", + "slotAudioName": "Capa de Audiobook", + "editingEbook": "Editando a capa do livro", + "editingAudio": "Editando a capa de audiolivro", + "lockEbookCover": "Travar capa do livro", + "unlockEbookCover": "Desbloquear capa do livro", + "lockAudioCover": "Travar capa do audiobook", + "unlockAudioCover": "Desbloquear capa do audiobook", + "viewLarger": "Ver maior", + "viewLargerEbook": "Ver capa de livro maior", + "viewLargerAudio": "Ver capa do audiobook maior", + "sourceMode": "Origem da imagem", + "urlLabel": "URL da Imagem", + "saveFailed": "Não foi possível salvar a capa", + "revertFailed": "Não foi possível reverter a capa" + }, + "coverLightbox": { + "title": "Pré-visualização da capa", + "description": "Capa completa. Pressione Escape para fechar.", + "switchLabel": "Capa a ser exibida", + "ebook": "Livro", + "audio": "Audiobook" }, "coverSearch": { "title": "Busca Online", @@ -5240,8 +5310,10 @@ "cancelEditAria": "Cancelar edição da revisão pessoal" }, "editCover": "Editar capa", + "viewCover": "Ver capa maior", "finished": "Concluído", "resetFileProgress": "Redefinir progresso do arquivo", + "resetEditionProgress": "Redefinir progresso para {format}", "resetting": "Redefinindo...", "resetProgressConfirm": "Redefinir progresso de leitura armazenado para {label}?", "moreCount": "+{count} mais", @@ -5379,6 +5451,7 @@ "loadFromFileTooltip": "Carregar metadados do arquivo primário do livro", "writeToFile": "Gravar no arquivo", "autoFill": "Preenchimento automático", + "autoFillFailed": "Auto-preenchimento falhou", "fetchingMetadata": "Buscando metadados...", "noExistingProviderIds": "Nenhum metadados buscado: nenhum dos provedores da regra de campo ativo tem um ID armazenado neste livro.", "allFieldsLocked": "Todos os campos estão bloqueados", @@ -5448,9 +5521,19 @@ "hideUnchanged": "Ocultar inalterados", "showUnchanged": "Mostrar inalterados", "current": "Atual", + "new": "Novo", "noMetadata": "Nenhum metadado disponível desta fonte.", "noChangedFields": "Nenhum campo alterado ou ausente. Use Mostrar inalterados para inspecionar tudo.", - "applyToForm": "Aplicar ao formulário" + "applyToForm": "Aplicar ao formulário", + "secondCover": { + "audioResults": "Os resultados da capa do Audiobook", + "bookResults": "Os resultados da capa do livro", + "showCover": "Exibir a capa {provider}, {index} de {total}", + "searchingAudio": "Pesquisando edições de audioobook...", + "searchingBook": "Procurando edições de livros...", + "noAudio": "Nenhuma capa de audiobook foi encontrada.", + "noBook": "Nenhuma capa de livro encontrada." + } }, "diff": { "locked": "Bloqueado", @@ -5459,8 +5542,14 @@ "newCoverAlt": "Nova capa", "pickCoverFromProvider": "Escolher capa de outro provedor", "pickCoverSource": "Escolher fonte da capa", + "coverShapeHint": { + "portraitForAudio": "Imagem em retrato. Capas de audiobooks são quadradas.", + "squareForBook": "Imagem quadrada. Capas de livro são em formato retrato." + }, "pickFromProvider": "Escolher de outro provedor", "pickSource": "Escolher fonte", + "useNew": "Use o novo {field}", + "keepCurrent": "Manter a atual {field}", "genreWriteMode": { "label": "Como aplicar gêneros", "merge": "Mesclar", @@ -5469,7 +5558,57 @@ "empty": "vazio", "showLess": "Mostrar menos", "showMore": "Mostrar mais", - "coverPreviewAlt": "Pré-visualização da capa" + "coverPreviewAlt": "Pré-visualização da capa", + "fields": { + "coverUrl": "Capa", + "bookCover": "Capa do Livro", + "audioCover": "Capa de Audiobook", + "title": "Título", + "subtitle": "Subtítulo", + "authors": "Autores", + "description": "Descrição", + "publisher": "Editora", + "publishedDate": "Publicado", + "language": "Idioma", + "pageCount": "Número de páginas", + "communityRating": "Avaliação da comunidade", + "seriesName": "Séries", + "seriesIndex": "Índice da série", + "isbn13": "ISBN-13", + "isbn10": "ISBN-10", + "genres": "Gêneros", + "narrators": "Narradores", + "durationSeconds": "Duração (segundos)", + "abridged": "Resumido", + "hardcoverEditionId": "ID da edição Hardcover", + "comicIssueNumber": "Número de emissão", + "comicVolumeName": "Volume", + "comicPencillers": "Desenhistas", + "comicInkers": "Colaboradores", + "comicColorists": "Coloristas", + "comicLetterers": "Letristas", + "comicCoverArtists": "Artistas da capa", + "comicCharacters": "Personagens", + "comicTeams": "Equipes", + "comicLocations": "Localizações", + "comicStoryArcs": "Arcos de História", + "sourceUrl": "URL de origem" + }, + "providerIds": { + "google": "ID Google Books", + "goodreads": "ID Goodreads", + "amazon": "ID da Amazon", + "hardcover": "ID do Hardcover", + "openLibrary": "ID do Open Library", + "itunes": "ID do iTunes", + "audible": "ID do Audible", + "librofm": "Libro.fm ISBN", + "comicvine": "ID da ComicVine", + "ranobedb": "ID do RanobeDB", + "kobo": "ID do KOBO", + "lubimyczytac": "ID do LubimyCzytac", + "aladin": "ID do Aladin" + } }, "searchDrawer": { "searchTitle": "Buscar Metadados", @@ -6146,6 +6285,15 @@ "chips": { "addPlaceholder": "Adicionar..." }, + "quickFilter": { + "presentFiles": "Filtrar para apresentar arquivos", + "missingFiles": "Filtrar para arquivos ausentes", + "withCovers": "Filtrar para livros com capas", + "missingCovers": "Filtrar por livros sem capas", + "missingAudioCovers": "Filtrar para livros com capas de audiolivro faltando", + "withValues": "Filtro para linhas com valores", + "emptyRows": "Filtro para linhas vazias" + }, "cover": { "previewDescription": "Pré-visualização da capa do livro", "editDescription": "Editar capa do livro", @@ -6192,6 +6340,8 @@ "read": { "play": "Ouvir", "read": "Ler", + "readFormat": "Ler {format}", + "playFormat": "Reproduzir {format}", "primary": "Primário", "peekFormat": "Espiar {format}", "chooseFormat": "Escolha o formato para ler ou ouvir", @@ -8323,7 +8473,8 @@ "title": "Estilo da capa", "portrait": "Retrato", "square": "Quadrado", - "hint": "Retrato para e-books ou bibliotecas mistas. Quadrado para bibliotecas exclusivas de audiolivros." + "hint": "Retrato para e-books ou bibliotecas mistas. Quadrado para bibliotecas exclusivas de audiolivros.", + "hintSlots": "Retrato para livros ebook ou bibliotecas mistas, quadrado para bibliotecas somente de audiolivro. Um livro com um ebook e um audiobook mostra sua capa de livro em uma biblioteca como retrato e sua capa de audiolivro em um quadrado." }, "icon": { "label": "Ícone", @@ -8446,7 +8597,9 @@ "formatPriority": { "title": "Prioridade de formato", "hint": "Quando um livro possui vários formatos, o formato mais alto na lista é o preferido." - } + }, + "moveUp": "Mover {item} para cima", + "moveDown": "Mover {item} para baixo" }, "fileWrite": { "maxFileSizeMb": "Tamanho máx. do arquivo (MB)", @@ -8501,7 +8654,8 @@ }, "markAsFinished": { "title": "Marcar como concluído", - "hint": "Um livro é automaticamente marcado como \"lido\" quando atingir esta porcentagem de progresso." + "hint": "Um livro é automaticamente marcado como \"lido\" quando atingir esta porcentagem de progresso.", + "invalidThreshold": "O progresso concluído deve situar-se entre 90% e 100%." } }, "schedule": { @@ -10325,10 +10479,21 @@ "extracted": "Extraído", "custom": "Personalizado" }, + "brokenSlot": { + "ebookExtracted": "Capa de livros, extraída", + "ebookCustom": "Capa de livro, personalizada", + "audioExtracted": "Capa de audioobook extraída", + "audioCustom": "Capa personalizada de audioobook" + }, "table": { "selectPage": "Selecionar tudo nesta página", "coverFolder": "Pasta de capa do livro #{bookId}", - "fileCount": "{count, plural, one {# arquivo} other {# arquivos}}" + "fileCount": "{count, plural, one {# arquivo} other {# arquivos}}", + "orphanMedia": { + "ebook": "Capa do Livro", + "audio": "Capa de Audiobook", + "both": "Capas de livro e audiobooks" + } }, "confirm": { "title": "Limpar recursos que faltam?", diff --git a/client/src/locales/ru.json b/client/src/locales/ru.json index 3e6008bf2..bc2802c4c 100644 --- a/client/src/locales/ru.json +++ b/client/src/locales/ru.json @@ -15,7 +15,16 @@ "retry": "Повторить", "yes": "Да", "no": "Нет", - "show": "Показать" + "show": "Показать", + "hide": "Скрыть", + "undo": "Отменить", + "pagination": { + "label": "Нумерация страниц", + "pageOf": "Страница {page} из {totalPages}", + "previousPage": "Предыдущая страница", + "nextPage": "Следующая страница", + "goToPage": "Перейти на страницу {page}" + } }, "settings": { "privacySharing": { @@ -418,6 +427,11 @@ "collapseSeries": { "label": "Свернуть по умолчанию", "hint": "Группируйте книги одной и той же серии в одну карту в библиотеке и коллекциях" + }, + "bookRequests": { + "label": "Показать запросы на книгу", + "hint": "Показывать страницы запросов, подсказки и настройки для этой учетной записи. При скрытии все запросы сохраняются.", + "saveFailed": "Не удалось обновить отображение запросов на книгу" } }, "icons": { @@ -731,6 +745,8 @@ "test": { "connected": "Подключено - {issuer}", "connectionFailed": "Не удалось подключиться", + "privateIssuerAddress": "URL-адрес эмитента приходит к частному или локальному сетевому адресу, поэтому сервер отказал в подключении. Установите OIDC_ALLOW_LOCAL_ISSUERS=true на сервере BookOrbit, чтобы разрешить его.", + "tlsCertificateUntrusted": "BookOrbit не смог проверить TLS сертификат OIDC провайдера. Если провайдер использует частные сертификаты, установите его PEM сертификат, установите путь к сертификату NODE_EXTRA_CA_CERTS в контейнере и перезапустите BookOrbit.", "hide": "Скрыть", "details": "Детали", "supported": "поддерживается", @@ -781,10 +797,12 @@ "updatesGroup": "Обновления", "bookloreImportConfigured": "Буккорный импорт настроен", "importLibraryData": "Импорт данных библиотеки", + "migrationConfigured": "Сконфигурирован источник миграции", "migrationRunning": "Миграция запущена", "migrationCompleted": "Миграция завершена", "migrationFailed": "Сбой миграции", "importDescription": "Единоразовый импорт книг, метаданных и прогресс чтения из предыдущей установки Booklore.", + "migrationDescription": "Единоразовый импорт книг, метаданных и прогресс чтения из другого библиотечного приложения.", "configuredDescription": "Источник: {name}. Переход пока не запущен - продолжайте установку для импорта.", "runningDescription": "Этап: {stage} - начато {started}", "completedDescription": "От {name} - завершено {date}", @@ -836,6 +854,7 @@ "stepReport": "Отчет", "stepReportTitle": "Отчет о миграции", "subtitleSource": "Настройте подключение к базе данных к исходному экземпляру Booklor.", + "genericSubtitleSource": "Настройте подключение к источнику исходной библиотеки.", "subtitleMappings": "Сопоставление пользователей с исходными кодами целевым пользователям и перевод файлов.", "subtitleDryRun": "Предпросмотр того, что будет импортировано до выполнения миграции в реальном времени.", "subtitleRun": "Начните импорт в реальном времени и отслеживайте его прогресс.", @@ -920,13 +939,16 @@ "reasonNoFilePathMatch": "Путь к файлу не соответствует ни одной книге в этой библиотеке", "reasonNoFileHashMatch": "Файл с хэшем не совпадает ни с одной книгой в этой библиотеке", "reasonNoIsbnMatch": "ISBN не совпадает ни с одной книгой в этой библиотеке", + "reasonNoAsinMatch": "ASIN не совпадает ни с одной книгой в этой библиотеке", "reasonInsufficientSourceData": "Недостаточно метаданных для поиска", "reasonAmbiguousIsbnMatch": "Несколько книг совпало с ISBN", + "reasonAmbiguousAsinMatch": "Несколько книг совпадает с одним и тем же ASIN", "reasonAmbiguousFileHashMatch": "Несколько книг соответствует одному и тому же хешу файла", "reasonAmbiguousFilePathMatch": "Несколько книг соответствует тому же пути к файлу", "reasonAmbiguousTitleAuthorMatch": "Несколько книг совпало с одним и тем же названием и автором", "reasonUnknown": "Не удалось определить причину", "strategyIsbn": "Соответствует ISBN", + "strategyAsin": "Совпало с ASIN", "strategyFileHash": "Совпадает с хэшем файла", "strategyPathMapping": "Соответствует указанному пути файла", "strategyTitleAuthor": "Соответствует названию и автору", @@ -962,6 +984,7 @@ "refresh": "Обновить", "sourceUser": "Исходный пользователь", "targetUser": "Целевой пользователь", + "doNotImport": "Не импортировать этого пользователя", "noSourceUsersLoaded": "Исходные пользователи еще не загружены.", "noActiveTargetUsers": "Не найдено активных пользователей. Создайте или повторно включите пользователя BookOrbit перед сопоставлением.", "pathPrefixMappings": "Сопоставление префиксов", @@ -1096,11 +1119,26 @@ "refreshingCovers": "Обновление покрытий {pct}% ({processed}/{total})", "coversRefreshed": "Обложки обновлены ( Обработано{count})", "onDiskUnit": "{size} На диске", + "noFilesIndexed": "Нет индексированных файлов", + "formatEntry": "{format} {count}", "openLibrary": "Открыть {name}", "moreActions": "Больше действий {name}", + "statsFailed": "Не удалось загрузить количество библиотек. Всё остальное на этой странице продолжает работать.", "filterLabel": "Фильтровать библиотеки", "filterPlaceholder": "Фильтр по названию или пути", "filterClear": "Сбросить фильтр", + "sortLabel": "Сортировка", + "noMatchesTitle": "Нет библиотек, соответствующих этому фильтру", + "noMatchesHint": "Ничего не соответствует \"{query}\" по имени или пути к папке.", + "neverScanned": "Никогда не сканировалась", + "neverScannedHint": "Запустите сканирование, чтобы индексировать папки", + "scanFailedAt": "Сбой {time}", + "scanningPercent": "Сканирование {pct}%", + "scanCounting": "Подсчёт файлов", + "scanCounts": "{processed} из {total}", + "scanNoChange": "без изменений", + "outcomeSeparator": ", ", + "syncConfirmBody": "Это перезапишет метаданные во всех поддерживаемых файлах непосредственно в папке {name} на диске. Это действие нельзя отменить.", "columns": { "library": "Библиотека", "contents": "Содержимое", @@ -1116,6 +1154,19 @@ "size": "Размер на диске", "lastScan": "Последнее сканирование" }, + "trigger": { + "manual": "Вручную", + "watcher": "Наблюдение", + "schedule": "Расписание" + }, + "capability": { + "watch": "Следить за папками", + "schedule": "Сканирование по расписанию", + "fileWrite": "Записать в файл", + "fileRename": "Переименовать файлы", + "on": "{name}: вкл", + "off": "{name}: выкл" + }, "durationSeconds": "{seconds} с", "durationMinutes": "{minutes}м {seconds}с", "history": { @@ -1184,9 +1235,52 @@ "howItWorks": { "title": "Как это работает." }, + "compositionTitle": "Источник оценки", + "compositionHint": "Проценты всегда складываются до 100.", + "searchFields": "Фильтр полей", + "clearSearch": "Очистить поиск", + "noMatches": "Нет полей, соответствующих запросу.", + "totalSummary": "{scoring} из 24 очков за поле, всего {total}", + "countGroups": "Подсчитать результат", + "notScored": "Не оценено", "notScoredHeading": "Не оценено ({count})", + "decreaseWeight": "Уменьшить вес {field}", + "increaseWeight": "Увеличить вес {field}", "revertField": "Вернуть {field} к сохраненному весу", + "table": { + "field": "Поле", + "weight": "Вес", + "share": "Поделиться результатом", + "versusDefault": "Изменить" + }, + "groups": { + "core": "Основное", + "publishing": "Издательство", + "classification": "Классификация", + "enrichment": "Заполненность", + "providers": "ID провайдера" + }, + "rules": { + "text": "Учитывать, когда не пусто", + "positive": "Учитывать, когда выше нуля", + "count": "Учитывать, когда задан хотя бы один", + "cover": "Учитывать, когда есть обложка", + "providerId": "Учитывать, когда есть ID", + "seriesIndex": "Учитывается при значении больше нуля, поэтому пустые серии не учитываются" + }, "rail": { + "title": "Распределение книг", + "description": "Цвет бейджа, который читатель видит на карточке книги, относительно всех доступных сегодня книг.", + "bandsLabel": "Цвет значка", + "bands": { + "poor": "ДО 50", + "fair": "50-69", + "good": "70-89", + "great": "90+" + }, + "median": "Среднее", + "belowFifty": "До 50", + "ninetyPlus": "90 и более", "noBooks": "Еще нет оцененных книг. Запустите переоценку, как только ваша библиотека закончит импорт." } }, diff --git a/client/src/locales/zh.json b/client/src/locales/zh.json index f6ca0ad16..7db2410af 100644 --- a/client/src/locales/zh.json +++ b/client/src/locales/zh.json @@ -7,7 +7,7 @@ "edit": "编辑", "close": "关闭", "confirm": "确认", - "loading": "加载中…", + "loading": "加载中……", "search": "搜索", "back": "返回", "next": "下一个", @@ -17,7 +17,14 @@ "no": "否", "show": "显示", "hide": "隐藏", - "undo": "撤销" + "undo": "撤销", + "pagination": { + "label": "分页", + "pageOf": "第 {page} 页,共 {totalPages} 页", + "previousPage": "上一页", + "nextPage": "下一页", + "goToPage": "前往第 {page} 页" + } }, "settings": { "privacySharing": { @@ -73,8 +80,8 @@ "empty": "没有管理员查看您共享的阅读资料。", "paginationLabel": "个人资料访问历史页面" }, - "durationMinutes": "{count, plural, one {# 分钟} other {# 分钟}}", - "durationHours": "{count, plural, one {# 小时} other {# 小时}}", + "durationMinutes": "{count, plural, other {# 分钟}}", + "durationHours": "{count, plural, other {# 小时}}", "unknownTitle": "无标题书", "errors": { "load": "加载共享设置失败。", @@ -86,7 +93,7 @@ "language": { "title": "语言", "description": "选择整个界面使用的语言。", - "label": "界面语言", + "label": "语言", "loadError": "加载所选语言失败", "saveError": "保存语言首选项失败" }, @@ -171,7 +178,8 @@ "blush": "腮红" }, "accentColor": { - "label": "主题色" + "label": "主题色", + "hint": "控制高亮和交互元素的颜色" }, "cornerRadius": { "label": "圆角半径", @@ -420,6 +428,11 @@ "collapseSeries": { "label": "默认折叠系列", "hint": "在书库和收藏视图中,将同一系列的书分组为一张卡片" + }, + "bookRequests": { + "label": "显示书籍请求", + "hint": "在此账户中显示请求页面、提示和设置。隐藏后,已有的请求仍会继续运行。", + "saveFailed": "无法更新书籍请求的可见性" } }, "icons": { @@ -536,7 +549,7 @@ "formatHint": "PNG/JPEG/WEBP,最大 {size} MB", "upload": "上传图片", "replace": "替换图片", - "uploading": "正在上传……\n", + "uploading": "正在上传……", "remove": "移除图片", "removing": "正在删除……", "updated": "个人资料图片已更新", @@ -703,7 +716,7 @@ "issuerUri": "发行商URI", "issuerUriHint": "提供者的基础 URL。", "test": "测试", - "testing": "测试中…", + "testing": "正在测试……", "clientId": "客户端ID", "clientSecret": "客户端密钥", "clientSecretPlaceholder": "留空以保留现有值", @@ -726,7 +739,7 @@ "defaultPermissionsHint": "首次 OIDC 登录时授予新用户的权限。", "createProvider": "创建提供商", "saveChanges": "保存更改", - "saving": "保存中……", + "saving": "正在保存……", "deleteProvider": "删除提供商", "deleting": "删除中……" }, @@ -742,6 +755,7 @@ }, "groupMappings": { "title": "群组映射", + "description": "将 OIDC 群组声明映射到 BookOrbit 权限。每次登录时同步。", "noPermission": "无权限", "empty": "未配置组映射。", "addMapping": "添加映射", @@ -783,6 +797,7 @@ "recommendationsGroup": "建议", "achievementsGroup": "成就", "updatesGroup": "更新", + "importFromBooklore": "从 Booklore 导入", "bookloreImportConfigured": "已配置 Booklore 导入", "importLibraryData": "导入书库数据", "migrationConfigured": "迁移源配置", @@ -1069,16 +1084,16 @@ "title": "库", "subtitle": "管理您的媒体库并触发内容扫描。", "scanAll": "扫描全部", - "scanning": "扫描中…", + "scanning": "扫描中……", "addLibrary": "添加库", "scan": "扫描", "editLibrary": "编辑库", "refreshCovers": "刷新封面", "syncMetadataToFiles": "同步元数据到文件", "deleteLibrary": "删除库", - "bookCount": "{count, plural, =0 {没有书籍} one {# 书} other {# 书}}", - "booksUnit": "{count, plural, other {Move # books}}", - "folderCount": "{count, plural, =0 {没有文件夹} one {# 文件夹} other {# 文件夹}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", + "booksUnit": "{count, plural, other {本书}}", + "folderCount": "{count, plural, =0 {没有文件夹} other {# 文件夹}}", "fileMode": "文件模式", "folderMode": "文件夹模式", "emptyTitle": "还没有库", @@ -1087,7 +1102,7 @@ "deleteConfirmTitle": "确定要删除 “{name}” 吗?", "deleteConfirmBody": "这将永久移除此库中的所有书籍、元数据、阅读进度、书签和批注。无法撤消。", "deleteConfirmTypeName": "输入要确认的库名称:", - "deleting": "删除中...", + "deleting": "删除中……", "deleteLibraryButton": "删除库", "syncConfirmTitle": "同步元数据到文件?", "syncFiles": "同步文件", @@ -1098,7 +1113,7 @@ "scanStartFailed": "“{name}” 扫描任务启动失败", "refreshCoversFailed": "“{name}” 封面刷新失败", "scanStartedAll": "开始扫描所有库", - "librariesFailedToStart": "{count, plural, =0 {没有任何库未能启动} one {# 库未能启动} other {# 库未能启动}}", + "librariesFailedToStart": "{count, plural, =0 {没有任何库未能启动} other {# 库未能启动}}", "scansStartFailed": "启动扫描失败", "libraryCreated": "书库 “{name}” 创建成功", "libraryUpdated": "书库 “{name}” 更新成功", @@ -1132,6 +1147,7 @@ "scanMissing": "{count, plural, one {# 字段} other {# 字段}}", "scanNoChange": "无更改", "outcomeSeparator": ", ", + "scanOutcome": "{trigger}:{outcome}", "syncConfirmBody": "这将直接写入磁盘上 {name} 中每个受支持文件的元数据。该操作无法被撤回。", "columns": { "library": "书库", @@ -1185,6 +1201,7 @@ "metadataTitle": "元数据与读取", "accessTitle": "访问权限", "historyTitle": "扫描历史", + "path": "路径 {index}", "organization": "发布机构", "excludePatterns": "排除模式", "precedence": "源优先级", @@ -1200,10 +1217,13 @@ }, "none": "无", "allSupported": "所有支持的格式", + "patternCount": "{count, plural, other {# 个模式}}", + "peopleCount": "{count, plural, =0 {无显式授权} other {# 人}}", "historyEmpty": "此书库从未被扫描过。", "historyFailed": "无法加载此书库的扫描历史记录。" }, - "scannedAt": "上次同步:{time}" + "scannedAt": "上次同步:{time}", + "detailRegion": "{name} 的详情" }, "authorEnrichment": { "configuration": "配置", @@ -1270,7 +1290,7 @@ "recalcFailed": "重新计算失败", "resetToDefaults": "权重已重置为默认值。保存后生效。", "howItWorks": { - "title": "运作方式", + "title": "运作方式。", "summary": "每本书都会根据其元数据的完整程度获得一个满分 100 的评分。权重只有与其他权重放在一起比较才有意义,因此下方每个字段显示的是它在最终评分中所占的份额。将所有权重同时翻倍不会改变任何结果。" }, "readOnly": "你可以查看评分是如何计算的,但更改权重需要“应用设置”权限。", @@ -1334,7 +1354,7 @@ "dismiss": "忽略" }, "save": { - "upToDate": "所有更改已保存", + "upToDate": "所有更改已保存。", "unsaved": "{count, plural, one {# 个字段已更改} other {# 个字段已更改}}", "totalShift": "总分从 {from} 变为 {to} 分", "rescores": "保存后将在后台重新评分 {count, plural, one {# 本书} other {# 本书}}。", @@ -1354,7 +1374,7 @@ }, "tts": { "title": "提供者", - "subtitle": "Speech engines available to readers. Voices are curated per provider.", + "subtitle": "可供阅读器使用的语音引擎。语音按提供方分别维护。", "summary": "{providers, plural, one {# provider} other {# providers}} · {enabled} enabled · {voices, plural, one {# voice curated} other {# voices curated}}", "addProvider": "添加提供商", "loadFailed": "加载文本到语音配置失败", @@ -1397,7 +1417,7 @@ "testPassed": "已连接 · {count, plural, other {# 声音找到}}", "testFailed": "连接失败", "delete": "删除", - "deleteConfirm": "Delete the provider \"{name}\"? Readers using its voices fall back to another provider.", + "deleteConfirm": "删除提供方“{name}”?使用其语音的阅读器将回退到其他提供方。", "deleteFailed": "删除 {name} 失败", "deleted": "提供商已删除", "saveFailed": "保存 {name} 失败", @@ -1410,15 +1430,20 @@ "formBaseUrlPlaceholder": "http://localhost:8880/v1", "formApiKey": "API 密钥", "formApiKeyOptional": "可选", - "formApiKeyPlaceholder": "sk-...", + "formApiKeyPlaceholder": "sk-……", "formApiKeyKeep": "留空以保留当前密钥", "formModel": "默认模型", "formModelPlaceholder": "tts-1", "formDiscovery": "此提供商可以列出自己的音频", "formRequired": "名称和基础 URL 为必填项", "curation": { + "title": "管理语音 - {provider}", "summary": "{count, plural, other {# 音频配置}}", + "summaryUnsaved": "{count, plural, other {已配置 # 个语音}} - 有未保存的更改", "importFromProvider": "从提供商导入", + "loadPreset": "加载 {preset} 预设", + "importUnsupported": "该提供商不支持语音发现。", + "importUnsupportedWithPreset": "该提供商不支持语音发现。请改用“加载 {preset} 预设”按钮。", "discoveryUnsupported": "此提供商没有显示音色列表端点。", "discoverFailed": "无法发现声音", "emptyImportOrPreset": "未配置声音。从提供商导入或加载预设。", @@ -1541,8 +1566,8 @@ "autoFetch": { "globalSettings": "全局设置", "perLibraryOverrides": "超媒体库覆盖", - "saving": "保存中", - "running": "运行中", + "saving": "保存中……", + "running": "运行中……", "runNow": "立即运行", "runForEligible": "为合格的书籍运行", "enable": { @@ -1559,7 +1584,7 @@ "eligible": "约 {count} 项符合条件" }, "trigger": { - "queued": "{count, plural, one {排队# 书} other {排队# 书}}", + "queued": "{count, plural, other {排队# 书}}", "noneFound": "没有找到合格的书" }, "lastRun": { @@ -1567,7 +1592,7 @@ "minutesAgo": "{count} 分钟前", "hoursAgo": "{count} 小时前", "yesterday": "昨天", - "daysAgo": "{count, plural, one {#天前} other {#天前}}", + "daysAgo": "{count, plural, other {#天前}}", "label": "上次执行:{when}", "labelQueued": "上次执行:{when} - 已将 {count} 本书籍加入队列", "labelNoneEligible": "上次执行:{when} - 无符合条件的书籍" @@ -1590,7 +1615,7 @@ "missingFields": { "label": "缺少字段", "hint": "获取所选字段为空。", - "summary": "{count, plural, one {缺少# 字段} other {缺少# 字段}}" + "summary": "{count, plural, other {缺少# 字段}}" } }, "library": { @@ -1606,7 +1631,7 @@ "discard": "放弃", "configure": "配置", "test": "测试", - "testing": "测试中…", + "testing": "测试中……", "testHint": "根据在线服务检查这些凭据。没有保存任何凭据。", "enabled": "已启用", "retryIn": "{duration} 后重试", @@ -1650,7 +1675,7 @@ }, "hints": { "google": "谷歌的书索引覆盖面更广。谷歌书现在需要一个 API 密钥才能启用该提供商。", - "amazon": "推荐使用会话 Cookie,请仅粘贴 Cookie 取值(不要携带 “Cookie:” 前缀)", + "amazon": "推荐使用会话 Cookie,请仅粘贴 Cookie 取值(不要携带 “Cookie:” 前缀)。", "goodreads": "网络上最大的阅读社区。无需安装。", "hardcover": "从硬cover.app/account/api获取的代币。\"持卡人\" 前缀是可选的。", "openLibrary": "Internet Archive免费书库。无需设置。", @@ -1710,7 +1735,7 @@ "title": "获取高级行为", "combineGenres": { "label": "从所有选定的提供商合并类型", - "hint": "从指定给流派到流派字段的每个提供商收集和移除基因组,而不是停止第一次结果。" + "hint": "从分配给体裁字段的每个提供商收集并去重体裁,而不是停在第一个结果。" }, "maxGenres": { "label": "每本书的最大流派数", @@ -1729,7 +1754,7 @@ }, "library": { "primary": "首选:", - "overrideCount": "{count, plural, one {# 覆盖} other {# 覆盖}}", + "overrideCount": "{count, plural, other {# 覆盖}}", "unsavedSuffix": "(未保存)", "unsavedChanges": "未保存的更改", "globalDefaults": "全局默认值", @@ -1738,7 +1763,7 @@ "subHint": "未覆盖的字段继承全局默认值。", "resetTooltip": "删除所有覆盖并继承全局默认值", "clearAllConfirm": "是否清除「{library}」内所有字段绑定的全部有效数据源?", - "resetConfirm": "是否将「{library}」恢复为全局默认配置?该书库所有自定义覆盖项将会被清除" + "resetConfirm": "是否将「{library}」恢复为全局默认配置?该书库所有自定义覆盖项将会被清除。" }, "groups": { "core": "核心文件", @@ -1803,7 +1828,7 @@ "searchFields": "搜索区域", "clearSearch": "清空搜索内容", "provider": "提供商", - "anyProvider": "任何 ", + "anyProvider": "任何", "providerMenuTitle": "按提供商筛选和批量编辑", "usedIn": "{count, plural, =0 {未使用} one {# 个字段} other {# 个字段}}", "showOnlyThese": "仅显示使用该提供商的字段", @@ -1811,6 +1836,7 @@ "makeFirst": "全部设为第一", "makeLast": "全部设为最后", "removeEverywhere": "从所有字段删除", + "audioCoverOrderKept": "重新排序不会调整有声书封面规则,该规则会让有声书来源始终排在最前。", "allFields": "所有区域", "overridesOnly": "仅覆盖", "clearFilters": "清除筛选" @@ -1828,26 +1854,49 @@ "moveDown": "下移 {provider}", "result": "结果", "resultHint": "在下次刷新时,此字段将按以下顺序解析:", - "noUsableProviders": "没有可用的提供商 - 此字段将无法填充。" + "noUsableProviders": "没有可用的提供商 - 此字段将无法填充。", + "skippedSummary": "{count, plural, other {{providers} 在顺序中,但将被跳过。}}", + "appliesTo": "应用于 {scope}。", + "inheritGlobal": "继承全局规则", + "inheritingGlobal": "正在继承全局规则。", + "collapse": "收起" }, "save": { - "upToDate": "没有未保存的更改" + "upToDate": "没有未保存的更改", + "unsaved": "{scope} 中有 {count, plural, other {# 处未保存的更改}}", + "discard": "放弃", + "action": "保存 {scope}" + }, + "confirm": { + "clearProviders": { + "title": "移除所有提供商?", + "description": "这会清空 {scope} 中全部 16 个字段的提供商列表。在你选择“保存”之前,不会写入任何内容。" + }, + "resetScope": { + "title": "恢复默认设置?", + "globalDescription": "这会用系统默认值替换你的全局字段规则,并立即保存。", + "libraryDescription": "这会移除 {scope} 上的所有覆盖,使其重新继承全局规则,并立即保存。" + }, + "removeProvider": { + "title": "从所有字段中移除 {provider}?", + "description": "这会将 {provider} 从 {scope} 中所有字段的提供商顺序里移除。在你选择“保存”之前,不会写入任何内容。" + } } }, "genreBlocklist": { "heading": "全局题材屏蔽列表", - "hint": "此列表中的精确流派值在元数据写入之前从提供商的结果中删除。", + "hint": "在元数据写入之前,列表中的精确体裁值会先从提供商结果中剔除。", "saving": "正在保存", - "genreValueLabel": "流派值", - "addPlaceholder": "添加流派值,例如Audiobook", - "duplicate": "这种流派已经被屏蔽。", + "genreValueLabel": "体裁值", + "addPlaceholder": "添加体裁值,例如 Audiobook", + "duplicate": "该体裁已在屏蔽列表中。", "add": "添加", - "filterPlaceholder": "过滤块列表", - "entryCount": "{count, plural, one {# 条目} other {# 条目}}", + "filterPlaceholder": "过滤屏蔽列表", + "entryCount": "{count, plural, other {# 条}}", "filteredCount": "已展示:{shown} / 总计:{total}", - "noFilterMatch": "没有与当前过滤器匹配的阻止的流派。", - "emptyTitle": "没有屏蔽的类型", - "emptyHint": "添加精确的值,如音频簿或成人,以使它们不再被获取的元数据。", + "noFilterMatch": "当前过滤条件下没有匹配的已屏蔽体裁。", + "emptyTitle": "没有已屏蔽的体裁", + "emptyHint": "添加 Audiobook、Adult 等精确值,使它们不会进入抓取的元数据。", "removeLabel": "移除 {genre}" }, "customFields": { @@ -1856,7 +1905,7 @@ "labelTooLong": "标签必须是255个或更少的字符", "labelDuplicate": "带有此标签的字段已存在", "type": "类型", - "usage": "{count, plural, one {被# 书使用} other {被# 书使用}}", + "usage": "{count, plural, other {被# 书使用}}", "newField": { "title": "新建字段", "hint": "定义一个自定义元数据字段,并选择哪个库使用它。" @@ -1878,7 +1927,7 @@ "unsaved": "未保存", "archive": "存档", "archivedFields": "存档的字段", - "archivedSummary": "{count, plural, one {# 存档字段 - 还原或永久删除。} other {# 存档字段 - 还原或永久删除。}}", + "archivedSummary": "{count, plural, other {# 存档字段 - 还原或永久删除。}}", "archivedAt": "归档时间:{when}", "restore": "恢复", "deleteForever": "永久删除", @@ -1904,8 +1953,8 @@ "providers": "提供商", "field-rules": "字段规则", "custom-fields": "自定义字段", - "genre-blocklist": "Genre Blocklist", - "score": "得分", + "genre-blocklist": "体裁屏蔽列表", + "score": "置信评分", "auto-fetch": "书籍", "authors": "作者" }, @@ -1913,19 +1962,28 @@ "providers": "提供商", "field-rules": "字段级规则", "custom-fields": "自定义元数据", - "genre-blocklist": "Genre Blocklist", + "genre-blocklist": "体裁屏蔽列表", "score": "自信得分", - "auto-fetch": "预约自动获取", + "auto-fetch": "书籍自动获取", "authors": "作者自动获取" }, "tabSubtitles": { "providers": "启用外部元数据源并配置他们的凭据。", "field-rules": "控制哪个提供商提供每个元数据字段以及如何在您的库里合并值。", "custom-fields": "定义自定义元数据字段,并选择哪个库使用它们。", - "genre-blocklist": "防止不想要的提供者流派值被写入书中。", - "score": "分配元数据字段的权重来计算多少信任已获取的结果。", + "genre-blocklist": "防止提供商返回的多余体裁值被写入书籍。", + "score": "各元数据字段对每本书所显示完整度评分的贡献方式。", "auto-fetch": "当新书被添加到您的书库时,自动获取封面、描述和其他详细信息。", "authors": "当新作者出现在您的库中时,自动获取个人简历和个人资料照片。" + }, + "preferences": { + "toast": { + "saved": "元数据偏好已保存", + "saveFailed": "无法保存元数据偏好。请检查网络连接后重试。", + "globalReset": "全局字段规则已恢复为系统默认值", + "libraryReset": "书库已重置为全局规则", + "resetFailed": "无法重置元数据偏好。请检查网络连接后重试。" + } } }, "reader": { @@ -1963,7 +2021,7 @@ "scrolled": "已滚动", "fixedLayoutSpread": "固定的布局页面扩展", "fixedLayoutSpreadHint": "Manga、连环画和基于图像的 EPUBs 的默认值", - "bookDefault": "预约默认", + "bookDefault": "书籍默认", "singlePage": "单页", "columns": "列", "columnsHint": "每页文本列数", @@ -1974,17 +2032,25 @@ "font": "字体", "fontHint": "正文使用的类型", "fontStyle": "字体样式", + "fontStyleHint": "正文的字重和倾斜程度。书中的粗体和斜体都相对它而言。", "builtInFonts": "内置字体", "yourFonts": "您的字体", "fontSize": "字号", "fontSizeHint": "基本文本像素大小", "lineHeight": "行高度", "lineHeightHint": "线之间的垂直间距", + "paragraphSpacing": "段落间距", + "paragraphSpacingHint": "段落之间的间距。“书籍默认”会保留出版商设置的间距。", + "paragraphSpacingDefault": "书籍默认", + "paragraphSpacingValue": "{value} em", + "letterSpacing": "字符间距", "letterSpacingHint": "字母之间的间距。预定默认保存发布者的间距。", "wordSpacing": "单词间距", "wordSpacingHint": "单词之间的间距。预约默认保存发布者的间距。", "textIndent": "首行缩进", - "textIndentHint": "在普通段落开头缩进。预约默认保存发布者的缩进.", + "textIndentHint": "在普通段落开头缩进。预约默认保存发布者的缩进.。", + "custom": "自定义", + "emValue": "{value} em", "justify": "对齐文本", "justifyHint": "将文本对齐到两个边距", "hyphenation": "连字符断字", @@ -2012,7 +2078,7 @@ "defaultFit": "默认适配性", "defaultFitHint": "打开 PDF 时如何缩放页面", "fitPage": "适合页面", - "fitWidth": "Fit Width", + "fitWidth": "适应宽度", "custom": "自定义", "zoomLevel": "缩放级别", "zoomLevelHint": "自定义缩放模式" @@ -2033,7 +2099,7 @@ "fitMode": "适合模式", "fitModeHint": "页面如何缩放以适应屏幕", "fitPage": "页", - "fitWidth": "Width", + "fitWidth": "宽度", "fitHeight": "高度", "fitActual": "实际的", "readingDirection": "阅读方向", @@ -2044,7 +2110,7 @@ "spreadAlignmentHint": "在隔一张扫描封面后移一页的配对", "alignmentNormal": "普通的", "alignmentShifted": "已移转", - "spreadGap": "2. 扩大差距", + "spreadGap": "跨页间距", "spreadGapHint": "两页视图中页面间的间距", "spreadGapValue": "{value}px", "widePageHandling": "跨页面处理", @@ -2083,16 +2149,16 @@ "subtitle": "上传自定义字体以供eBook 阅读器使用。", "uploadFonts": "上传字体", "notAvailableDemo": "演示账户不可用", - "uploading": "上传中…", + "uploading": "上传中……", "dropFilesHere": "将文件拖放到这里", "dragFontsPrefix": "拖动字体文件到此处或", "browse": "浏览", - "fileTypesHint": "TTF, OTF, WOFFF, WOFF2 - 每最大10MB", + "fileTypesHint": "TTF, OTF, WOFFF, WOFF2 - 每个最大50MB", "yourFonts": "您的字体", "fontsUsed": "已使用:{count}/{max}", "noFontsYet": "尚未上传字体", "noFontsHint": "拖动字体文件以开始操作。", - "fileCount": "{count, plural, =0 {没有文件} one {# 文件} other {# 文件}}", + "fileCount": "{count, plural, =0 {没有文件} other {# 文件}}", "pangram": "飞速的棕色恐龙跳过已经落后的狗龙", "renameFamily": "重命名品类", "deleteFamily": "删除品类", @@ -2134,7 +2200,7 @@ "containerPathHint": "复制或移动书卷文件到此文件夹,它们将被书签自动提取和处理。支持子目录。", "changePathPrefix": "要改变这条道路,请设置", "changePathMiddle": "在您的", - "changePathSuffix": "文件", + "changePathSuffix": "文件。", "metadata": "元数据", "autoFetch": "从提供商自动获取元数据", "autoFetchHint": "在一个文件添加到书架后,自动从配置的提供商(Google Books, iTunes, Open Library等)获取元数据。", @@ -2144,13 +2210,13 @@ "confidenceThreshold": "置信度阈值:{value}%", "thresholdIgnored": "(在内嵌模式中忽略)", "destinationLibrary": "目标库", - "selectLibrary": "选择书库…", + "selectLibrary": "选择书库……", "metadataMode": "元数据模式", "metadataModeSafeMerge": "安全合并 (推荐)", "metadataModeFetchedOnly": "仅获取", "metadataModeEmbeddedOnly": "仅嵌入", "destinationFolder": "目标文件夹", - "selectFolder": "选择文件夹…", + "selectFolder": "选择文件夹……", "saveSettingFailed": "保存设置失败", "updateSettingFailed": "更新设置失败", "autoFetchEnabled": "自动获取已启用", @@ -2169,51 +2235,51 @@ "previewLabel": "预览:", "globalDefaults": "全局默认值", "crossPlatform": "跨平台路径净化", - "crossPlatformHint": "通过替换无效字符和保留名称,并删除尾随点和空格,使生成的文件和文件夹名称安全。 仅禁用有意保留这些字符的 Linux-only 设置。", - "fileAsBookDefault": "文件为预设书", - "fileAsBookDefaultHint": "上传图案作为书模式使用文件库。每个文件都是一本书。", - "folderAsBookDefault": "文件夹为预设书", - "folderAsBookDefaultHint": "使用文件夹作为书模式上传库图案。每个书都必须在自己的文件夹中。", + "crossPlatformHint": "通过替换无效字符和保留名称、并移除末尾的点和空格,让生成的文件与文件夹名在 Windows 上安全可用。仅当你的环境只在 Linux 上运行且有意保留这些字符时才禁用它。", + "fileAsBookDefault": "文件即书籍默认值", + "fileAsBookDefaultHint": "“文件即书籍”模式书库使用的上传模式。每个文件即一本书。", + "folderAsBookDefault": "文件夹即书籍默认值", + "folderAsBookDefaultHint": "“文件夹即书籍”模式书库使用的上传模式。每本书必须位于各自的文件夹中。", "downloadPattern": "下载模式", - "downloadPatternHint": "导出ZIP中单文件下载和文件的建议文件名。", - "libraryOverrides": "媒体库覆盖", + "downloadPatternHint": "为单文件下载和导出 ZIP 内的文件建议的文件名。", + "libraryOverrides": "书库覆盖", "noLibraries": "未配置库。在库设置中创建一个库来设置自定义命名模式。", "badgeCustom": "自定义", "badgeDefault": "默认设置", - "orgFolderAsBook": "文件夹作为书", - "orgFileAsBook": "文件为 Book", + "orgFolderAsBook": "文件夹即书籍", + "orgFileAsBook": "文件即书籍", "resetToDefault": "重置为默认值", - "tokens": "令牌", + "tokens": "标记", "clickTokenHint": "点击任意标记复制到剪贴板。", "copyValue": "复制 {value}", "modifiers": "修饰符", - "modifiersExplain": "在令牌内附加一个修饰符来转换其值:", + "modifiersExplain": "在标记内附加修饰符即可转换其值:", "modFirst": "仅第一个值", - "modSort": "最后, 第一个格式", + "modSort": "“姓, 名”格式", "modInitial": "仅第一个字母", "modFixed2": "两个十进制位置", "modMax3": "最多三个值,否则留空", - "folderOnlyPrefix": "结束图案以", - "folderOnlySuffix": "只指定文件夹。原始文件名将保存在文件夹内。", + "folderOnlyPrefix": "在模式末尾加上", + "folderOnlySuffix": "即可只指定文件夹。原始文件名会保留在该文件夹内。", "conditionalLogic": "条件逻辑", - "conditionalPart1": "换行", - "conditionalPart2": "当它的令牌为空时跳过一个分段。请使用", - "conditionalPart3": "默认值。", + "conditionalPart1": "用", + "conditionalPart2": "包裹后,若其中的标记为空则跳过该片段。使用", + "conditionalPart3": "设置默认值。", "examples": "示例", "exCalibre": "Calibre风格默认", "exSeriesReader": "系列阅读器", - "exCleanDownload": "清除下载文件名", - "exAlphabetical": "按字母顺序分组", - "exSeriesFallback": "系列或独立后退", + "exCleanDownload": "简洁的下载文件名", + "exAlphabetical": "按字母顺序分组并包含系列", + "exSeriesFallback": "系列或单本兜底", "exOptionalSubtitle": "下载可选副标题", "exMultilingual": "多语言库", "exPublisher": "出版社组织", - "exStacked": "叠放的可选文件夹", - "exFolderDrop": "文件夹排序名称", - "caseWithYear": "与年份", + "exStacked": "可叠加的可选文件夹", + "exFolderDrop": "按排序名放入文件夹", + "caseWithYear": "含年份", "caseNoYear": "无年份", - "caseInSeries": "按系列", - "caseStandalone": "独立的", + "caseInSeries": "属于系列", + "caseStandalone": "单本", "caseNoSeries": "无系列", "caseFull": "满的", "caseMinimal": "最小值", @@ -2258,7 +2324,7 @@ "tokenLibrary": "书库名称", "tokenOriginalFilename": "原始文件名 (无扩展名)", "tokenExtension": "文件扩展名 (无点)", - "patternHelpIntro": "命名模板可使用 {titleToken}、{authorsToken} 这类占位标识,同时支持修饰符与可选片段", + "patternHelpIntro": "命名模板可使用 {titleToken}、{authorsToken} 这类占位标识,同时支持修饰符与可选片段。", "browseTokensAndExamples": "浏览令牌和示例", "subtitleShort": "存储文件的文件夹和文件名模式。", "rule": { @@ -2277,7 +2343,7 @@ "unsavedMarker": "有未保存的更改", "backToRules": "返回命名规则", "appliesToLibraries": "{count, plural, =0 {没有书库使用此默认值} one {应用于 # 个书库} other {应用于 # 个书库}}", - "downloadScope": "下载并导出为 ZIP 文件", + "downloadScope": "下载与导出 ZIP", "badgeInherits": "继承默认值", "badgeUnsaved": "未保存", "patternLabel": "模式", @@ -2302,10 +2368,10 @@ "paletteSeparatorHint": "开始新的文件夹层级", "modUpper": "大写", "modLower": "小写", - "recipesLabel": "或从配方开始", + "recipesLabel": "或从预设开始", "recipe": { "seriesShelf": "系列书架", - "calibre": "Calibre style", + "calibre": "Calibre 风格", "alphabetical": "按字母顺序", "flat": "平整无文件夹", "originalName": "原始文件名", @@ -2313,7 +2379,7 @@ "titleOnly": "仅限标题", "seriesOrdered": "系列已排序" }, - "resultPanel": "已解决结果", + "resultPanel": "解析结果", "resultFor": "结果:{rule}", "copyResult": "复制已解决的结果", "resultCopied": "解析结果已复制到剪贴板", @@ -2323,14 +2389,43 @@ "caseNoSeriesLabel": "无系列", "caseNoYearLabel": "无年份", "caseNoAuthorLabel": "无作者", + "previewEmpty": "此模式解析结果为空,将改用原始文件名。", + "previewEmptyShort": "解析结果为空", + "crossPlatformShortHint": "替换 Windows 不接受的字符。预览会反映此设置。", + "rulesSaved": "{count, plural, other {已保存 # 条命名规则}}", + "rulesSaveFailed": "{count, plural, other {无法保存 # 条命名规则}}", + "rulesPartiallySaved": "已保存 {saved},失败 {failed}。保存失败的规则仍有未保存的更改。", "save": { + "unsaved": "{count, plural, other {# 项未保存的更改}}", "upToDate": "无未保存的更改", "discard": "放弃", - "action": "保存更改" - } + "action": "保存更改", + "blocked": "请先修正无效的模式再保存" + }, + "examplesDescription": "预设示例未涵盖的惯用写法。以斜杠结尾的模式会解析为一个文件夹,并在其中保留上传时的文件名。", + "examplesApply": "应用", + "examplesApplyAria": "应用 {label} 模式", + "examplesUploadOnly": "这些是上传模式,此处仅供参考。切换到“文件即书籍”或“文件夹即书籍”规则后即可应用。", + "examplesFileModeOnly": "“文件夹即书籍”需要独立的文件名字段,因此此写法仅适用于“文件即书籍”模式的库。", + "example": { + "seriesOrStandalone": "系列,或“单本”文件夹", + "optionalSubtitle": "可选副标题", + "languageFolder": "语言文件夹", + "publisherFolder": "出版社文件夹", + "stackedOptional": "可叠加的可选文件夹", + "folderDrop": "仅文件夹,保留上传时的文件名" + }, + "exampleCase": { + "complete": "完整", + "noSeries": "无系列", + "noSubtitle": "无副标题", + "noLanguage": "无语言", + "noPublisher": "无出版社" + }, + "unknownModifier": "未知的修饰符“{modifier}”。它会被忽略,值保持不变。" }, "kobo": { - "title": "Kobo Sync", + "title": "Kobo 同步", "subtitle": "配对您的 Kobo 设备以同步您的库。", "copy": "复制", "never": "从不使用", @@ -2347,7 +2442,7 @@ "addDevice": "添加设备", "deviceName": "设备名称", "deviceNamePlaceholder": "例如:我的 Kobo Libra", - "creating": "创建中...", + "creating": "创建中……", "createDevice": "创建设备", "createDeviceFailed": "创建设备失败", "deviceRegistered": "设备 \"{name}\" 已注册\t", @@ -2358,7 +2453,7 @@ "revokeAccess": "撤销访问", "deviceRenamed": "设备已重命名", "renameDeviceFailed": "重命名设备失败", - "revokeConfirm": "确定要解除 \"{name}\" 的访问权限吗?设备需重新配对后才可恢复同步功能", + "revokeConfirm": "确定要解除 \"{name}\" 的访问权限吗?设备需重新配对后才可恢复同步功能。", "accessRevoked": "已解除 \"{name}\" 的访问权限\t", "revokeFailed": "吊销访问失败", "syncUrlCopied": "同步URL已复制到剪贴板", @@ -2383,7 +2478,7 @@ "kepubLimit": "KEPUB 转换限制", "kepubLimitHint": "超过此限制的书本将作为常规的 EPUBs发送,所以BookOrbit 将不会将其阅读器位置同步到 Kobo。", "changesMustBeSaved": "更改必须保存才能生效。", - "saving": "正在保存…", + "saving": "正在保存……", "saveSyncSettings": "保存同步设置", "thresholdOrderError": "读取阈值必须小于完成阈值", "saveSettingsFailed": "保存设置失败", @@ -2396,7 +2491,7 @@ "never": "从不使用", "none": "无", "unknown": "未知的", - "failureCount": "{count, plural, one {# 失败} other {# 失败}}", + "failureCount": "{count, plural, other {# 失败}}", "noActivityRecorded": "未记录 Kobo 同步活动。", "lastSuccess": "上次成功时间:{time}\t", "lastFailure": "上次失败时间:{time}\t", @@ -2430,7 +2525,7 @@ "chip": { "morePending": "更多待处理", "noUpdatesPending": "没有未处理的更新", - "bookCount": "{count, plural, one {# 书} other {# 书}}", + "bookCount": "{count, plural, other {# 书}}", "deletedAnnotations": "已删除批注 {count} 条", "deviceAlreadyCurrent": "设备已经存在", "freshHighlightData": "新鲜摘录数据", @@ -2442,31 +2537,31 @@ "readingPositionSyncedTitle": "阅读进度已同步:{title}", "readingPositionSynced": "已同步阅读位置", "labelWithTitle": "{label}:{title}", - "updateCount": "{count, plural, one {# 更新} other {# 更新}}", + "updateCount": "{count, plural, other {# 更新}}", "directionToKobo": "BookOrbit -> Kobo", "directionToBookOrbit": "Kobo -> BookOrbit", "twoWaySyncEnabled": "启用双向同步", "deviceProgressSaved": "设备进度已保存", "summary": { "noLibraryUpdatesPending": "此设备没有未处理的库更新", - "libraryUpdatesPrepared": "{count, plural, one {# 为设备准备的库更新} other {# 为设备准备的库更新}}", + "libraryUpdatesPrepared": "{count, plural, other {# 为设备准备的库更新}}", "bookDownloadedBy": "{title} 已由设备 {device} 下载", - "booksDownloaded": "{count, plural, one {# 书已下载} other {# 书已下载}}", - "progressUpdatesSyncedFor": "{count, plural, one {# 进度更新同步为 {title}} other {# 进度更新同步为 {title}}}", - "progressUpdatesSynced": "{count, plural, one {# 进度更新同步} other {# 进度更新同步}}", + "booksDownloaded": "{count, plural, other {# 书已下载}}", + "progressUpdatesSyncedFor": "{count, plural, other {# 进度更新同步为 {title}}}", + "progressUpdatesSynced": "{count, plural, other {# 进度更新同步}}", "newReadingPositionFor": "Kobo 同步上报 {title} 最新阅读进度", "newReadingPosition": "Kobo报告了一个新的阅读位置", "noHighlightChangesNeededFor": "{title} 的摘录内容无需调整", "noHighlightChangesNeeded": "无需摘录更改", "highlightsSentToKoboFor": "{count, plural, one {# 条摘录已同步至Kobo:{title}} other {# 条摘录已同步至Kobo:{title}}}", - "highlightsSentToKobo": "{count, plural, one {# 摘录发送到 Kobo} other {# 摘录发送到 Kobo}}", + "highlightsSentToKobo": "{count, plural, other {# 摘录发送到 Kobo}}", "noKoboHighlightChangesFor": "{title} 的 Kobo 端无摘录内容变更", "noKoboHighlightChanges": "没有 Kobo 摘录更改", "highlightsImportedFromKoboFor": "{count, plural, one {# 条高亮从Kobo导入:{title}} other {# 条摘录从Kobo导入:{title}}}", - "highlightsImportedFromKobo": "{count, plural, one {# 高亮从 Kobo 导入} other {# 从Kobo 导入的摘录内容}}" + "highlightsImportedFromKobo": "{count, plural, other {# 从Kobo 导入的摘录内容}}" }, "timeRange": "{from} 至 {to}", - "eventsGrouped": "{count, plural, one {# 事件被分组} other {# 事件被分组}}", + "eventsGrouped": "{count, plural, other {# 事件被分组}}", "removedDevice": "移除设备", "loadMoreFailed": "加载更多历史记录失败", "historyRefreshed": "Kobo同步历史已刷新", @@ -2475,20 +2570,20 @@ "filterAll": "所有的", "filterFailures": "失败", "refresh": "刷新", - "loadingActivity": "正在加载 Kobo 同步记录…", + "loadingActivity": "正在加载 Kobo 同步记录……", "noActivityHint": "最近的同步活动将在配对的 Kobo 联系人 BookOrbit 后出现。", "error": "错误", - "loading": "加载中…", + "loading": "加载中……", "loadMore": "加载更多活动" }, "howBooksSynced": { "title": "书籍是如何同步的", - "body": "如需将书籍推送至 Kobo 设备,必须在对应合集开启{syncToKobo}开关:在侧边栏打开任意合集,点击编辑图标切换{syncToKobo}状态;未加入已开启同步合集的书籍不会执行同步" + "body": "如需将书籍推送至 Kobo 设备,必须在对应合集开启{syncToKobo}开关:在侧边栏打开任意合集,点击编辑图标切换{syncToKobo}状态;未加入已开启同步合集的书籍不会执行同步。" }, "nextSteps": { "title": "以后的步骤", "step1": "1. 配置您的 Kobo 设备与上面的同步 URL。", - "step2": "2. 在 BookOrbit 中,通过侧边栏进入任意合集、点击编辑图标并开启{syncToKobo};仅已开启同步的合集内书籍可下载至设备" + "step2": "2. 在 BookOrbit 中,通过侧边栏进入任意合集、点击编辑图标并开启{syncToKobo};仅已开启同步的合集内书籍可下载至设备。" }, "syncToKobo": "同步到 Kobo", "tabs": { @@ -2513,7 +2608,7 @@ "saveAccount": "保存账户默认", "deviceTitle": "覆盖 KOReader 设备", "deviceDescription": "自定义默认、序列和独立路径的任何组合。空设备特定行继承设备默认值,它本身可以继承账户默认的 KOReader 模式。", - "noDevices": "设备与 BookOrbit 完成同步后,将在此处展示", + "noDevices": "设备与 BookOrbit 完成同步后,将在此处展示。", "customOrganization": "自定义组织", "usingAccountDefault": "使用账户默认", "deviceDefaultHelp": "备份此设备。自动继承未来的更改将等于账户默认值。", @@ -2533,7 +2628,7 @@ "deviceSaveFailed": "无法保存设备覆盖", "deviceResetFailed": "重置设备覆盖失败" }, - "loadingSettings": "正在加载 KOReader 设置项…", + "loadingSettings": "正在加载 KOReader 设置项……", "loadFailed": "加载 KOReader 设置失败", "never": "从不使用", "justNow": "刚刚", @@ -2570,23 +2665,23 @@ "showPassword": "显示新密码", "hidePassword": "隐藏新密码", "save": "保存登录凭据", - "saving": "保存中", + "saving": "保存中……", "updated": "已更新 KOReader 凭据", "updateFailed": "更新 KOReader 凭据失败" }, - "creating": "创建中...", + "creating": "创建中……", "create": "创建", "credentialsCreated": "创建了 KOReader 同步凭据", "createCredentialsFailed": "创建凭据失败", "status": "KO阅读器状态", "refresh": "刷新", "progressSync": "进度同步", - "progressSyncHint": "允许 KOReader 设备与 BookOrbit 同步阅读进度、阅读动态、摘录内容以及批注删除记录", + "progressSyncHint": "允许 KOReader 设备与 BookOrbit 同步阅读进度、阅读动态、摘录内容以及批注删除记录。", "lastSync": "上次同步", "syncedBooks": "同步的书", - "bookCount": "{count, plural, =0 {没有书籍} one {# 书} other {# 书}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", "devices": "设备", - "deviceCount": "{count, plural, =0 {没有设备} one {# 设备} other {# 设备}}", + "deviceCount": "{count, plural, =0 {没有设备} other {# 设备}}", "credentialsCreatedLabel": "证书已创建", "setup": "设置", "pluginServerUrl": "插件服务器 URL", @@ -2597,8 +2692,8 @@ "preconfiguredPlugin": "预配置的 BookOrbit 插件", "preconfiguredPluginHintPrefix": "下载带有服务器URL的zip和您的同步登录已配置。插件包括目录浏览和同步。复制文件夹到", "preconfiguredPluginHintSuffix": "并重启 KOReader。", - "latestPluginNote": "{label}。设备更新请在 KOReader 内的 BookOrbit 菜单执行", - "preparing": "准备中...", + "latestPluginNote": "{label}。设备更新请在 KOReader 内的 BookOrbit 菜单执行。", + "preparing": "准备中……", "downloadPlugin": "下载插件", "noDevicesSynced": "尚未同步设备", "noDevicesSyncedHint": "安装完整同步的 BookOrbit 插件,或者配置 KOReader 的库存进度同步以便只进行进度更新。", @@ -2614,8 +2709,8 @@ "highlights": "高亮", "syncedTotals": "已同步总计", "trashedHighlights": "回收站突出显示", - "pendingDeletes": "{count, plural, =0 {没有删除等待KOReader 插件确认的摘录内容。} one {# 删除了等待KOReader 插件确认的摘录内容。} other {# 删除了等待KOReader 插件确认的高亮内容。}}", - "failedPositions": "{count, plural, =0 {不需要关注高亮位置。} one {# 摘录位置需要关注。} other {#摘录位置需要关注。}}", + "pendingDeletes": "{count, plural, =0 {没有删除等待KOReader 插件确认的摘录内容。} other {# 删除了等待KOReader 插件确认的高亮内容。}}", + "failedPositions": "{count, plural, =0 {不需要关注高亮位置。} other {#摘录位置需要关注。}}", "setupGuide": "设置指南", "setupSteps": "KOReader 设置步骤", "setupStepsHint": "使用 BookOrbit 插件进行目录浏览、下载、进度、读取事件和高亮。仅使用库存插件进行进度操作。", @@ -2629,7 +2724,7 @@ "pluginStep4Suffix": "搜索、下载并链接书籍到同步。", "stockGuideTitle": "库存进度同步插件", "stockStep1Prefix": "在您的 KOReader 设备上,跳转至", - "stockStep1Suffix": ".", + "stockStep1Suffix": "。", "stockStep2": "设置自定义同步服务器到上面显示的 URL。", "stockStep2InlineUrl": "设置自定义同步服务器到以下网址:", "stockStep3": "输入您创建的用户名和密码,然后点击登录。", @@ -2665,8 +2760,8 @@ "linked": "链接:", "updated": "已更新:", "linkedTo": "已关联至 {title}", - "loadingUnmatched": "正在加载未匹配书籍…", - "loadingManual": "正在加载手动哈希链接...", + "loadingUnmatched": "正在加载未匹配书籍……", + "loadingManual": "正在加载手动哈希链接……", "noUnmatched": "没有未匹配的 KOReader 书。", "noManual": "没有手动的 KOReader 链接。", "pageOf": "第 {page} 页 / 共 {total} 页", @@ -2687,7 +2782,7 @@ "unlinkFailed": "取消链接簿失败", "unmatchedDismissed": "不匹配的书被拒绝", "dismissFailed": "关闭不匹配的书失败", - "allDismissed": "{count, plural, =0 {丢失没有匹配的书} one {丢失#不匹配的书} other {丢失#不匹配的书}}", + "allDismissed": "{count, plural, =0 {丢失没有匹配的书} other {丢失#不匹配的书}}", "dismissAllFailed": "关闭所有未匹配的书籍失败" }, "modal": { @@ -2696,7 +2791,7 @@ "bookOrbitBook": "书架环绕书", "searchPlaceholder": "搜索您的 BookOrbit 库", "minChars": "输入至少 2 个字符。", - "searching": "搜索中...", + "searching": "搜索中……", "noBooksFound": "未找到书籍。", "untitledBook": "无标题书", "selected": "已选择", @@ -2708,43 +2803,43 @@ "bookId": "书籍 ID:{id}", "syncedStatsNote": "已经同步的统计数据将保留在他们当前的 BookOrbit 书中。", "chooseDifferent": "选择不同的", - "saving": "保存中...", + "saving": "保存中……", "confirmLink": "确认链接", "unlinkTitle": "取消链接 KOReader 簿?", - "unlinkBody": "解除关联后,该哈希后续同步将不再匹配 {title};已同步完成的数据仍留存于当前 BookOrbit 书籍中", - "unlinking": "正在解绑..." + "unlinkBody": "解除关联后,该哈希后续同步将不再匹配 {title};已同步完成的数据仍留存于当前 BookOrbit 书籍中。", + "unlinking": "正在解绑……" }, "dismiss": "关闭", "dismissAll": "关闭所有", - "dismissing": "正在丢弃...", - "unlinking": "正在解绑...", + "dismissing": "正在丢弃……", + "unlinking": "正在解绑……", "unlinkConfirmTitle": "取消链接 KOReader 簿?", - "unlinkConfirmBody": "解除关联后,该哈希值后续同步将不再匹配 {title};已同步完成的数据仍留存于当前 BookOrbit 书籍中", + "unlinkConfirmBody": "解除关联后,该哈希值后续同步将不再匹配 {title};已同步完成的数据仍留存于当前 BookOrbit 书籍中。", "dismissConfirmTitle": "是否关闭 {title}?", "dismissConfirmBody": "这将把它从您不匹配的书籍列表中移除。如果任何设备再次报告这个哈希,它将作为一个新条目重新出现。", - "dismissAllConfirmTitle": "{count, plural, =0 {没有不匹配的书} one {丢弃所有# 不匹配的书?} other {丢弃所有# 不匹配的书?}}", + "dismissAllConfirmTitle": "{count, plural, =0 {没有不匹配的书} other {丢弃所有# 不匹配的书?}}", "dismissAllConfirmBody": "这将清除您整个无匹配的书籍列表,而不仅仅是当前页面。 如果任何设备再次报告这些哈希之一,它将重新显示为一个新条目。", "changeLinkTitle": "更改 KOReader 链接", "linkBookTitle": "链接 KOReader 书", "bookOrbitBook": "书架环绕书", "searchLibraryPlaceholder": "搜索您的 BookOrbit 库", "enterMinChars": "输入至少 2 个字符。", - "searching": "搜索中…", + "searching": "搜索中……", "noBooksFound": "未找到书籍。", "untitledBook": "无标题书", "selected": "已选择", "select": "选择", "loadMore": "加载更多", - "loadingMore": "加载中…", + "loadingMore": "加载中……", "confirmLinkTitle": "确认 KOReader 链接", "bookId": "书籍 ID:{id}", "syncedStatsNote": "已经同步的统计数据将保留在他们当前的 BookOrbit 书中。", "chooseDifferent": "选择不同的", - "saving": "保存中...", + "saving": "保存中……", "confirmLink": "确认链接" }, "remove": "删除", - "removing": "正在删除...", + "removing": "正在删除……", "unmatchedBooks": "不匹配的书", "deviceRemoved": "设备已删除", "removeDeviceFailed": "移除设备失败", @@ -2754,11 +2849,11 @@ "deleteDeviceDataConfirmBody": "此操作将永久删除该设备同步的阅读进度、逐页阅读活动记录,以及不再被其他设备上报的、无法匹配的书籍条目。已计入统计中的阅读时段不受影响。如果该设备后续再次同步,它将作为一个新条目重新出现。", "devicesHint": "停用设备会将其隐藏,并保留所有已同步的内容。删除其同步数据的操作不可撤销。", "retire": "停用", - "retiring": "停用中", + "retiring": "停用中……", "restore": "恢复", - "restoring": "恢复中...", + "restoring": "恢复中……", "deleteSyncedData": "删除数据", - "deletingSyncedData": "正在删除…", + "deletingSyncedData": "正在删除……", "deviceRetired": "设备已停用", "deviceRestored": "设备已恢复", "retireDeviceFailed": "停用设备失败", @@ -2774,7 +2869,7 @@ "server": "服务器", "catalogServer": "OPDS目录服务器", "catalogServerHint": "允许OPDS客户端浏览和下载书", - "endpoint": "Endpoint", + "endpoint": "端点", "accounts": "OPDS账户", "add": "添加", "addAccount": "添加帐户", @@ -2785,7 +2880,7 @@ "passwordPlaceholder": "最小8个字符", "defaultSort": "默认排序", "sortLabel": "排序", - "creating": "创建中...", + "creating": "创建中……", "create": "创建", "noAccounts": "暂无OPDS帐户。创建一个以开始使用OPDS客户端。", "hideDetails": "隐藏详细信息", @@ -2794,10 +2889,10 @@ "notes": "OPDS注释", "notesBody": "在阅读器应用中使用OPDS帐户。如果意外共享,请保持凭据私密并旋转密码。", "deleteConfirmTitle": "删除OPDS帐户吗?", - "deleteConfirmBody": "删除用户 “{username}”,该操作不可撤销", + "deleteConfirmBody": "删除用户 “{username}”,该操作不可撤销。", "sortRecent": "最近添加", "sortTitleAsc": "标题 (A-Z)", - "sortTitleDesc": "Title (Z-A)", + "sortTitleDesc": "书名(Z-A)", "sortAuthorAsc": "作者 (A-Z)", "sortAuthorDesc": "作者 (Z-A)", "sortSeriesAsc": "系列(A-Z)", @@ -2835,9 +2930,26 @@ }, "requests": { "title": "请求信息", + "subtitle": "在哪里查找资源、由什么抓取它们,以及下载完成后会发生什么。", "tabs": { - "clients": "下载客户端" + "sources": "来源", + "clients": "下载客户端", + "automation": "自动化" }, + "loading": "正在加载下载客户端……", + "clients": "下载客户端", + "addClient": "添加客户端", + "editClient": "编辑客户端", + "deleteClient": "删除 {name}", + "clientsEmpty": { + "title": "还没有下载客户端", + "body": "直接通过 HTTP 下载不需要客户端。连接一个客户端后,BookOrbit 也能获取通过 BT 或 Usenet 分发的发布。", + "note": "支持 qBittorrent、Transmission、Deluge、NZBGet 和 SABnzbd。" + }, + "summary": "{type} - 分类 {category},优先级 {priority}", + "disabled": "已禁用", + "test": "测试连接", + "testSaveFirst": "请先保存更改再测试", "testOk": "已连接到 {client} {version}", "testOkNoVersion": "已连接到 {client}", "lastTestOk": "上次测试 {time}:已连接", @@ -2847,11 +2959,13 @@ "clientTypes": { "qbittorrent": "qBittorrent", "transmission": "Transmission", - "deluge": "Deluge" + "deluge": "Deluge", + "nzbget": "NZBGet", + "sabnzbd": "SABnzbd" }, "color": { "label": "颜色", - "hint": "用于在传输详情中标记此客户端。传输协议会保留其自身的颜色", + "hint": "用于在传输详情中标记此客户端。传输协议会保留其自身的颜色。", "none": "无颜色" }, "fields": { @@ -2860,19 +2974,23 @@ "baseUrl": "基础 URL", "username": "用户名", "password": "密码", + "apiKey": "API 密钥", "passwordKeep": "留空以保持已存储的密码", + "apiKeyKeep": "留空以保持已存储的 API 密钥", "passwordClear": "清除", "passwordKeepAction": "保留", "passwordWillClear": "保存后已存储的密码将被移除", + "apiKeyWillClear": "保存后已存储的 API 密钥将被移除", "category": "分类", - "categoryHint": "为 BookOrbit 添加的 BT种子 打上标签,因此它只会作用于自己的 BT种子。", + "categoryHint": "为 BookOrbit 添加的下载打上标签,使其只处理自己添加的下载。", "priority": "优先级", "enabled": "已启用", "useHardlinks": "使用硬链接", "allowPrivateAddress": "允许私有地址", "allowPrivateAddressHint": "当客户端运行在本地网络或同一台机器上时需要。", "passwordBrief": "已加密存储。", - "useHardlinksBrief": "做种时无需二次占用磁盘空间。跨文件系统时回退为复制。" + "apiKeyBrief": "在 SABnzbd 的 Config > General 下可以找到。已加密存储。", + "useHardlinksBrief": "导入时不占用双倍磁盘空间。跨文件系统时回退为复制。" }, "mappings": { "title": "路径映射", @@ -2886,7 +3004,7 @@ }, "hardlink": { "test": "测试硬链接", - "checking": "正在检查...", + "checking": "正在检查……", "works": "此处硬链接可用:导入时不会占用双倍磁盘空间。", "unavailable": "此处硬链接不可用:导入时将复制文件,从而占用双倍空间。", "link_refused": "该文件系统拒绝了链接 ({code}):导入时将复制文件,从而占用双倍空间。", @@ -2920,28 +3038,109 @@ "nameTaken": "已存在同名下载客户端", "urlUnsafe": "无法访问该基础 URL。请检查地址,并确保其使用 http 或 https。", "urlPrivate": "该地址位于私有或本地网络中。如果客户端在此网络运行,请开启“允许私有地址”。", - "encryptionKeyMissing": "在保存密码之前,请设置 BOOK_REQUEST_ENCRYPTION_KEY。可使用以下命令生成:openssl rand -hex 32", - "encryptionKeyChanged": "无法读取已存储的密码。BOOK_REQUEST_ENCRYPTION_KEY 可能在保存后发生了更改。", + "encryptionKeyMissing": "保存客户端凭据前需设置 BOOK_REQUEST_ENCRYPTION_KEY。可用以下命令生成:openssl rand -hex 32", + "encryptionKeyChanged": "无法读取已存储的客户端凭据。BOOK_REQUEST_ENCRYPTION_KEY 可能在保存后已被更改。", "pathNotAbsolute": "路径映射两侧都必须使用绝对路径", "nameRequired": "请为此客户端命名。", "urlRequired": "请输入 BookOrbit 连接此客户端所用的地址。", - "mappingRequired": "请至少添加一个路径映射,以便 BookOrbit 知道可以从哪个目录导入。" + "mappingRequired": "请至少添加一个路径映射,以便 BookOrbit 知道可以从哪个目录导入。", + "apiKeyRequired": "请输入 SABnzbd 的 Config > General 下的 API 密钥。" }, - "encryptionKeyMissing": "BOOK_REQUEST_ENCRYPTION_KEY 未设置,因此无法保存客户端密码。可使用以下命令生成:openssl rand -hex 32", + "encryptionKeyMissing": "未设置 BOOK_REQUEST_ENCRYPTION_KEY,无法保存客户端凭据。可用以下命令生成:openssl rand -hex 32", "confirmDelete": { "title": "移除此下载客户端?", - "description": "{name} 的地址和已存储的密码将被删除,正在该客户端下载的请求也将停止更新。若要保留这些详情,请改为将其关闭。", + "description": "将删除 {name} 的地址和已存储的凭据,正在该客户端下载的请求将停止更新。如需保留这些信息,请改为停用。", "confirm": "移除客户端" }, "indexers": { - "title": "Torrent 索引器", - "hint": "通过 Torznab 使用你自己的 Prowlarr、Jackett 或 NZBHydra。每个想要搜索的 Torznab 源都需添加一个。", + "title": "直接订阅源", + "hint": "连接单独的 Torznab 订阅源(种子)或 Newznab 订阅源(Usenet 发布)。", "allDisabled": "下方的所有源均已关闭,因此任何请求搜索都不会找到任何结果。请至少重新开启一个。", + "loading": "正在加载索引器……", + "empty": { + "title": "尚未添加来源", + "body": "BookOrbit 本身不内置任何来源,因此在添加来源之前,请求搜索不会找到任何内容。请选择适合你索引器的方案。", + "bodyOneWay": "BookOrbit 自身不内置任何源,因此在添加源之前,请求搜索不会找到任何内容。", + "responsibility": "你添加的源所索引的内容由你自行负责。", + "prowlarrTitle": "连接 Prowlarr", + "prowlarrBody": "通过一个连接管理多个 Torrent 和 Usenet 索引器。", + "recommended": "推荐", + "pluginTitle": "安装插件", + "pluginBody": "一个文件,用于让 BookOrbit 学会搜索某个特定站点。由你提供该文件,然后填写它的设置。", + "torznabTitle": "添加 Torznab 索引器", + "torznabBody": "指向你已在运行的 Prowlarr、Jackett 或 NZBHydra 源。每个源添加一个。", + "builtInTitle": "添加索引器", + "builtInBody": "指向你已在使用的 Torznab 或 Newznab feed。每条 feed 一个配置。" + }, + "add": "添加索引器", + "edit": "编辑索引器", + "delete": "删除 {name}", + "none": "还没有索引器。", + "disabled": "已禁用", + "test": "测试连接", + "testSaveFirst": "请先保存更改再测试", + "testOk": "已连接到 {name}", + "toggleAria": "使用 {name} 搜索", + "enabledNotice": "将使用 {name} 搜索", + "disabledNotice": "不会使用 {name} 搜索", + "lastTestOk": "上次测试 {time}:已连接", + "lastTestFailed": "上次测试 {time}:{error}", + "saved": "索引器已保存", + "deleted": "源已删除", + "unavailable": "此安装没有“{type}”索引器类型。请更改类型,或删除它的插件和已保存的配置。", + "pluginFailed": "“{directory}”中的插件未能加载:{reason}", + "sources": { + "title": "来源", + "hint": "BookOrbit 能搜索的所有来源,按连接分组。", + "add": "添加来源", + "prowlarr": "连接 Prowlarr", + "prowlarrHint": "统一管理多个 Torrent 和 Usenet 索引器。", + "direct": "添加 Torznab 或 Newznab", + "directHint": "直接连接一条兼容的 feed。", + "plugin": "安装插件", + "pluginHint": "添加专用的来源实现。", + "activeSummary": "{count, plural, other {# 个活跃来源}}:{torrent} 个 Torrent、{usenet} 个 Usenet、{direct} 个直连来源" + }, + "network": { + "title": "高级网络", + "hint": "仅当该源的默认访问路径不可用时才需要。允许的范围不变:无论最终访问到哪个地址,仍会按相同方式校验。", + "resolvers": "DNS 服务器", + "proxyUrl": "代理 URL", + "proxyHint": "用于发送该源请求的 http 或 https 代理。不支持 SOCKS。", + "brief": "仅当该源的默认访问路径不可用时才需要。", + "resolversBrief": "以逗号分隔。仅对该源替代系统解析器使用;留空则使用系统解析器。", + "proxyBrief": "用于该源的 http 或 https 代理。不支持 SOCKS。" + }, + "types": { + "torznab": "Torznab(Jackett、Prowlarr、NZBHydra)", + "newznab": "Newznab" + }, "fields": { + "name": "名称", + "type": "索引器类型", + "baseUrl": "基础 URL", + "baseUrlHint": { + "torznab": "Torznab 源 URL,不含查询字符串。Jackett 会在每个索引器上以“Torznab Feed”显示它。", + "newznab": "Newznab 站点 URL 或 API 端点,不含搜索查询参数。" + }, + "credential": { + "apiKey": "API 密钥", + "sessionId": "会话 ID" + }, + "credentialKeep": "留空以保持已存储的凭据", + "credentialClear": "清除", + "credentialKeepAction": "保留", + "credentialWillClear": "保存后已存储的凭据将被移除", + "enabled": "已启用", + "allowPrivateAddress": "允许私有地址", + "credentialBrief": "已加密存储。", + "allowPrivateAddressBrief": "默认关闭。仅当源位于本地网络时才需要。", + "searchByIsbn": "按 ISBN 搜索", "searchByIsbnBrief": "默认开启。 如果这个源返回一个确切的 ISBN 的错误簿,请关闭它,它将被标题和作者搜索。" }, "color": { "label": "颜色", + "hint": "用于在该源返回的每个发布上标记它,这样不必看名称就能分辨结果来自哪里。传输协议会保留自己的颜色,因此这里不提供那些颜色。", "none": "不指定颜色", "options": { "blue": "蓝", @@ -2957,17 +3156,44 @@ } }, "mediaKinds": { - "label": "搜索此来源" + "label": "搜索此来源", + "hint": "不值得查询的媒体类型可以关闭。只收录有声书的 Tracker 挂在通用代理后面时,仍会声称什么都有,而每次搜索都拿电子书去问它只会白白消耗一次请求。", + "notCarried": "该源不提供此类型。" }, "categories": { - "title": "类别" + "title": "类别", + "brief": "索引器自身的类别编号,以逗号分隔。" }, "settings": { "restoreDefault": "恢复默认设置" }, + "seeding": { + "applyTracker": "应用 Tracker 做种目标", + "applyTrackerBrief": "手动值为空时,使用 Tracker 报告的有效目标。关闭此项时,空值将使用下载客户端的默认值。手动值始终生效。", + "ratio": "分享率", + "ratioBrief": "正小数。留空则继承 Tracker 或客户端的设置。", + "time": "做种时间(分钟)", + "timeBrief": "正整数。留空则继承 Tracker 或客户端的设置。", + "clientSupport": "qBittorrent 接受分享率和总做种时间。Deluge 和 Transmission 仅接受分享率。客户端的全局规则和先到达的那个限制都可能停止做种,因此这些值不保证满足每个 Tracker 的最低要求。", + "futureGrabs": "更改仅对之后的下载任务生效。已有的或被认领的种子可以保留客户端各自的限制。关闭 Tracker 回退会让客户端默认值继续生效;这不代表无限做种。", + "reset": "重置做种设置", + "summary": { + "title": "策略摘要", + "ratio": "分享率", + "time": "做种时间", + "manual": "手动:{value}", + "tracker": "Tracker 回退", + "client": "客户端默认" + }, + "errors": { + "ratio": "请输入大于零的有限数字,或留空。", + "minutes": "请输入 1 到 2,147,483,647 之间的整数,或留空。" + } + }, "confirmDelete": { "title": "删除此源?", - "confirm": " 删除源" + "description": "将删除 {name} 的地址、设置和已存储的凭据。若只是想停止搜索它,请改用关闭,这样不会丢失这些内容。", + "confirm": "删除源" }, "errors": { "loadFailed": "无法加载索引器", @@ -2977,37 +3203,210 @@ "nameAndUrlRequired": "名称和基础 URL 为必填项", "nameTaken": "已存在同名索引器", "urlUnsafe": "无法访问该基础 URL。请检查地址,并确保其使用 http 或 https。", - "nameRequired": "请为该索引器命名。" + "urlPrivate": "该地址位于私有或本地网络。如果索引器就运行在那里,请开启“允许私有地址”。", + "credentialRequired": "该索引器需要先配置凭据才能使用", + "invalidSettings": "一个或多个源设置无效。请检查可用的选项。", + "nameRequired": "请为该索引器命名。", + "urlRequired": "请输入 BookOrbit 应搜索的地址。" }, "editName": "编辑 {name}", "editorDescription": "设置该索引器。", "chooseType": "请选择索引器类型", + "chooseTypeHint": "选择 BookOrbit 应在哪里搜索。表单随后只会询问该源所需的内容。", "builtIn": "内置", "plugin": "插件", + "typeDescriptions": { + "torznab": "你自己的 Jackett、Prowlarr 或 NZBHydra。使用类别和做种目标。", + "newznab": "兼容 Newznab 的 Usenet 索引器。使用类别并需要 API 密钥。" + }, "plugins": { "title": "插件", + "hint": "BookOrbit 可以搜索的网站,以单个插件文件添加。", + "directoryLink": "浏览开放图书馆插件", + "none": "尚未安装插件。安装一个即可搜索内置协议未覆盖的网站。", "install": "安装插件", "installed": "{label} 已安装。", "installFailed": "无法安装该插件。", - "inspectFailed": "该文件不能作为插件读取。" + "inspectFailed": "该文件不能作为插件读取。", + "removeAction": "删除插件", + "removed": "已删除 {type} 及其源。", + "removeFailed": "无法删除该插件。", + "confirmRemove": "删除 {label} 插件?", + "replaces": "这将替换已安装的 {type} 插件。", + "restartRequired": "插件更改需重启 BookOrbit 后才能生效。", + "confirmInstall": "安装插件", + "configure": "设置", + "notSetUp": "尚未设置", + "brokenTitle": "有一个插件未能加载", + "managedHint": "安装在本服务器上。更新会替换其代码。删除将永久移除该插件以及此类型的所有源。", + "missingHint": "插件文件已经不存在。删除此插件条目即可移除该类型剩余的所有源、设置和已存储的凭据。", + "removeWarning": "{count, plural, other {# 个源及其保存的设置和凭据将随此插件一并永久删除。}}", + "configureAria": "设置 {label}", + "usedBy": "{count, plural, other {被 # 个源使用}}", + "unused": "尚无源使用", + "update": "更新插件", + "checkUpdates": "检查更新", + "updateCheckComplete": "插件更新检查完成。", + "updateCheckFailed": "无法检查插件更新。", + "updateInspectFailed": "无法验证已发布的插件更新。", + "reviewUpdate": "审查更新", + "updated": "已将 {label} 更新到 {version}。", + "autoUpdate": "自动安装签名更新", + "autoUpdateFailed": "无法更改此插件的自动更新设置。", + "installedVersion": "已安装版本", + "updateChannel": "签名更新通道", + "signatureVerified": "下载的源与发布者的 Ed25519 签名相符。", + "updateStates": { + "unsupported": "手动更新", + "unchecked": "尚未检查", + "current": "已是最新", + "available": "有 {version} 可用", + "custom": "自定义构建", + "failed": "更新检查失败" + }, + "wrongType": "该文件是 {found} 插件,而不是 {expected}。", + "replaceTitle": "替换此插件?", + "replace": "替换插件", + "reviewTitle": "安装此插件?", + "reviewDescription": "文件自述的信息,以及它将运行的代码。", + "declares": "其声明的内容", + "source": "其将运行的代码", + "type": "类型", + "version": "版本", + "versionLabel": "插件版本 {version}", + "versionUnknown": "插件版本未知", + "versionUnknownValue": "未知", + "media": "媒体", + "credential": "凭据", + "credentialRequired": "必填", + "credentialNone": "无", + "trustWarning": "插件在 BookOrbit 内部运行,可以访问你的数据库、书库文件和加密密钥。只从你信任的来源安装,并先阅读其内容。", + "sectionTitle": "插件", + "removeUnusedWarning": "该插件将从服务器上永久删除。" + }, + "posture": "BookOrbit 不提供也不认可任何索引器来源。这里的每个来源都由你自己配置,你需要对自己通过它搜索和下载的内容负责。" + }, + "managers": { + "add": "添加 Prowlarr", + "loading": "正在加载 Prowlarr 连接……", + "managedSources": "{count, plural, other {# 个托管的索引器}}", + "protocol": { + "torrent": "Torrent", + "usenet": "Usenet" + }, + "saved": "Prowlarr 设置已保存", + "deleted": "已移除 Prowlarr", + "synced": "Prowlarr 来源已同步", + "test": "测试连接", + "sync": "同步", + "testOk": "已连接到 Prowlarr {version}。找到 {count, plural, other {# 个源}}。", + "unavailable": "不可用", + "priority": "Prowlarr 优先级 {priority}", + "toggleSource": "用 {name} 搜索", + "changeColor": "更改 {name} 的颜色", + "sourceColor": "来源颜色", + "sourceColorHint": "在 BookOrbit 全局标记 {name} 返回的发布。", + "noSources": "未发现兼容的 Torrent 或 Usenet 索引器。在 Prowlarr 中添加后请再同步。", + "unknown": "未知", + "editorDescription": "Prowlarr 的连接和来源同步设置。", + "confirmDelete": "移除此 Prowlarr 连接?", + "deleteConsequence": "连接、加密的 API 密钥和所有已同步的来源都会被删除。已经在进行中的下载不会被移除。", + "fields": { + "name": "名称", + "color": "连接颜色", + "colorHint": "在此处标记该 Prowlarr 连接。每个托管的索引器都有自己的发布颜色。", + "baseUrl": "基础 URL", + "apiKey": "API 密钥", + "apiKeyHint": "在 Prowlarr 的 Settings > General > Security 下可以找到。已加密存储。", + "syncNew": "自动启用新发现的源", + "syncNewHint": "新发现的 Prowlarr 索引器立即可搜索。在这里关闭的源,在之后的同步中保持关闭。", + "autoExpand": "不带类别过滤器重试", + "autoExpandHint": "当某个索引器成功响应但没有结果时,去掉 BookOrbit 的书籍类别过滤器重试一次。", + "inheritSeedLimits": "使用 Prowlarr 做种限制", + "inheritSeedLimitsHint": "在 BookOrbit 未另行覆盖时,将每个 Torrent 索引器配置的分享率和做种时间应用到之后的下载。", + "perIndexerTimeout": "索引器超时(秒)", + "perIndexerTimeoutHint": "单个已同步的源允许耗用的时间。慢速的 FlareSolverr 后端索引器可能需要更长时间。", + "overallBudget": "Prowlarr 总预算(秒)", + "overallBudgetHint": "一次搜索期间,该 Prowlarr 连接的所有源共享的最大实际耗时。" + }, + "errors": { + "load": "无法加载索引器管理器", + "nameTaken": "已存在同名的 Prowlarr 连接", + "urlPrivate": "该地址位于私有或本地网络。如果 Prowlarr 就运行在那里,请开启“允许私有地址”。", + "required": "请输入名称、基础 URL 和 API 密钥。", + "save": "无法保存 Prowlarr 连接", + "delete": "无法移除 Prowlarr 连接", + "test": "无法连接到 Prowlarr", + "sync": "无法同步 Prowlarr 来源", + "source": "无法更改该源" } }, "automation": { "title": "自动操作", + "pipeline": "下载完成后会经过 Book Dock,在那里读取书名和作者,以便正确命名和归档文件,然后自动移入该请求的目标库。只有当导入检查开启且文件与请求内容不符时,它才会停下来等你处理。", "groupDownloads": "自动下载", + "groupImports": "导入检查", "stateOn": "开", "stateOff": "关", + "summaryOff": "每条已批准的请求都会等待人工打开发布选择器进行挑选。", + "summaryNoRetry": "已批准的请求会自动下载其评分达到 {score} 或以上的最佳发布。如果失败,请求将等待人工处理。", + "summaryRetry": "已批准的请求会自动下载其评分达到 {score} 或以上的最佳发布。{count, plural, other {在请求等待人工处理之前,最多会尝试 # 个发布。}}", "howDownloads": "自动下载工作方式", + "howImports": "导入检查的工作方式", + "minScoreShort": "低于此评分的任何发布都不会被自动下载。", + "autoRetryShort": "下载失败时会自动改试次优发布。", + "maxAttemptsShort": "首次尝试和每次重试都计入此限制。", + "verificationShort": "低于此值时,文件会在 Book Dock 中等待审查。", + "loading": "正在加载自动化设置……", + "loadFailed": "无法加载自动化设置", "saveFailed": "无法保存设置", "saved": "自动化设置已保存", + "autoGrab": "自动下载最佳发布", + "noSourcesConfigured": "尚未设置任何搜索源,因此不会执行任何搜索,每条已批准的请求都会直接退回人工处理。请在“来源”下添加一个。", + "noSourcesEnabled": "所有搜索源均已关闭,因此不会执行任何搜索,每条已批准的请求都会直接退回人工处理。请在“来源”下重新开启一个。", + "autoGrabHint": "请求获批后,评分最高的发布直接交给下载客户端,无需任何人打开发布选择器。默认关闭,因为把一本书匹配到正确的发布很难,人工通常是更好的判断者。", "autoGrabEnabled": "自动下载已开启", "autoGrabDisabled": "自动下载已关闭", - "minScore": "最低发行评分", + "minScore": "自动下载的最低评分", + "minScoreHint": "评分低于此值的发布永远不会被自动下载。评分最高为 100 分,书名和作者的匹配程度占大头,其后依次是格式、文件大小、做种人数和来源优先级。如果没有发布达到足够高的评分,请求会等待人工挑选发布,并说明停止的原因。", + "minScoreHintV2": "评分低于此值的发布永远不会被自动下载。评分最高为 100 分:书名和作者的相关度贡献最大,其次是格式和合理的文件大小,来源提供时还会参考种子健康度和 Freeleech。如果没有发布达到足够高的评分,请求会等待人工挑选发布,并说明停止的原因。", + "autoRetry": "失败后尝试下一个发布", + "autoRetryHint": "自动下载失败时,会改试次优发布而不是直接放弃。这涵盖来源拒绝交出文件和中途断掉的下载两种情况。它只对 BookOrbit 自己选中的发布生效:由审批者手动挑选的发布失败后仍保持失败,等待其处理。", "maxAttempts": "每个请求尝试次数", + "maxAttemptsHint": "BookOrbit 为该请求发给下载客户端的每个发布都计入此限制:首次自动尝试、来源拒收后的重试、下载失败后的重试。设为 1 即在首次尝试后停止。", + "autoSearch": "持续查找没有找到结果的请求", + "autoSearchShort": "没有匹配到任何内容的已批准请求会在之后重新搜索。", + "autoSearchHint": "请求在获批时会搜索一次。如果没有找到足够好的结果,或者书尚未发布,请求会停留在已批准状态,不会再有东西去查找它。开启此项后,BookOrbit 会持续自行检查,因此下个月才发布的资源仍会被找到。它只在自动下载开启时运行,因为对搜索结果不做任何处理的搜索只会白白消耗你的来源流量。", + "autoSearchEnabledToast": "将会重新搜索请求", + "autoSearchDisabledToast": "请求仅在获批时搜索一次", "autoSearchInterval": "搜索间隔", + "autoSearchIntervalShort": "自上次搜索起算,并随请求等待的时间拉长。", + "autoSearchIntervalHint": "对没有找到结果的请求,再次查找前要等待多久。请求每等待一周,间隔翻一倍,最多可达此数值的八倍,避免积压的旧请求变成对每个来源的每日流量冲击。", "autoSearchIntervalUnit": "小时", + "autoSearchMaxAge": "停止查找时限", + "autoSearchMaxAgeShort": "自请求发起时起算。", + "autoSearchMaxAgeHint": "超过此时间的请求不再被自动查找。它仍保持已批准状态,随时可以人工挑选发布;只是不再自动查找。", "autoSearchMaxAgeUnit": "天", + "verify": "对照请求检查导入", + "verifyOnHint": "每个下载的文件在入库前都会与所请求的书籍比对。匹配度不够的内容会在 Book Dock 中等待人工查看。", + "verifyOffHint": "没有任何内容会被留下审查。每个下载只要读出了书名和作者就会立即入库,标错的发布会在毫无预警的情况下进入你的书库。", + "verificationEnabled": "导入检查已开启", + "verificationDisabled": "导入检查已关闭。下载将不经审查直接入库", + "verification": "校验阈值", + "verificationHint": "下载的文件必须与请求匹配到什么程度才会自动入库。低于此值的内容会在 Book Dock 中等待审查。这适用于所有请求,包括人工挑选的发布。", + "destinations": "默认目的地", + "destinationsHint": "没有人指定库时,书籍会被归入哪里。每种媒体类型各有一个默认值,因为媒体类型在搜索开始之前就已确定,是当时唯一能确定的信息。请求者固定指定的目的地或批准时选择的目的地优先于这些默认值。", + "destinationUnset": "无默认", + "destinationHiddenLibrary": "一个你看不到的库", + "destinationHiddenFolder": "一个你看不到的文件夹", + "selectFolder": "选择文件夹", + "destinationLibraryFor": "{medium} 请求的默认库", + "destinationFolderFor": "{medium} 请求的默认文件夹", + "destinationClearFor": "清除 {medium} 请求的默认目的地", + "importFormats": "导入格式", + "importFormatsHint": "当一个发布同时带有多格式的同一本书时(例如 EPUB 和 PDF),要保留什么。这绝不适用于分卷有声书,因为它的各卷是一本书,而不是相互竞争的版本。", "importFormatsOption": { + "all": "全部可用", "allHint": "保留发布的每种格式。", "preferred": "仅偏好的", "preferredHint": "只保留目标库格式优先级中的最高格式。" @@ -3015,16 +3414,27 @@ }, "profiles": { "title": "发布配置文件", + "effectiveRule": "自动下载规则:先取第一个匹配的层级,再取最高评分(下限 {score})。", + "summary": "配置文件之外的发布仍可手动选择。没有层级时,发布仅按评分排序。", + "howProfiles": "发布配置文件的工作方式", + "hint": "发布自上而下逐层匹配层级,并归入它符合的第一层。存在配置文件时,自动下载只考虑有层级的发布。手动选择仍会在层级结果之后包含未分层的发布。", + "bitrateNote": "码率下限会淘汰声明码率低于它的发布。大多数源只测量极少数发布的码率,而未测量的发布不会被淘汰,所以它的收窄作用没有看上去那么大。", + "empty": "没有配置文件。该媒体类型的发布仅按评分排序。", "addTier": "添加层级", "removeTier": "删除此层", "moveUp": "上移此层", "moveDown": "下移此层", "tierName": "层级名称", + "newTier": "层级 {position}", "formats": "格式", "files": "文件", "anyLayout": "任意", "minBitrate": "最小 kbps", "minSeeders": "最小做种数", + "torrentConditions": "Torrent 条件", + "nonTorrentConditions": "做种人数、Freeleech 和 VIP 条件不适用于所选的源。", + "incompatibleTorrentConditions": "这个非 Torrent 层级仍保存有 Torrent 条件。它们可能被忽略,或导致该层级无法匹配。", + "removeTorrentConditions": "移除 Torrent 条件", "channels": "频道", "anyChannels": "任意", "mono": "单声道", @@ -3040,14 +3450,17 @@ "failed": "无法连接", "untested": "从未测试", "disabled": "已禁用", + "testedAt": "测试于 {time}", "failedAt": "执行失败:{time}\t" }, "categoryLabel": "类别 {category}", + "priorityLabel": "优先级 {priority}", "editClientName": "编辑 {name}", "sections": { "connection": "连接", "search": "搜索内容", "access": "访问权限", + "seeding": "做种", "availability": "可用性", "behaviour": "行为" }, @@ -3055,8 +3468,18 @@ "external": "外部储存", "editorDescription": "此下载客户端的设置。", "chooseClientType": "选择客户端类型", + "chooseClientTypeHint": "选择把下载交给哪个程序。", + "clientTypeDescriptions": { + "qbittorrent": "你自己的 qBittorrent。需要地址和账号。", + "transmission": "你自己的 Transmission。它没有分类功能,因此分类会成为其下载目录中的子文件夹。", + "deluge": "你自己的 Deluge。使用 Web UI 密码登录;分类需要开启 Label 插件。", + "nzbget": "你自己的 NZBGet。BookOrbit 通过其 JSON-RPC API 发送 NZB 文件。", + "sabnzbd": "你自己的 SABnzbd。BookOrbit 使用其 API 密钥发送 NZB 文件。" + }, "searchHealth": { - "failingOnce": "上次搜索失败" + "failingOnce": "上次搜索失败", + "failingStreak": "连续 {count} 次搜索失败", + "lastSearchAt": "上次搜索 {time}" } } }, @@ -3065,14 +3488,15 @@ "ariaLabel": "设置部分", "searchPlaceholder": "搜索设置", "clearSearch": "清空搜索内容", - "noResults": "没有设置匹配{query}", + "noResults": "没有与 {query} 匹配的设置。", + "shortcutHint": "按 {shortcut} 可跳转到任意设置", "status": { "scanning": "扫描中" }, "groups": { "you": "个人", "library": "书库", - "devices": "设备与同步", + "devices": "设备", "accounts": "账号", "server": "服务器" }, @@ -3107,7 +3531,8 @@ "oidc": "单一签字提供者、索偿和预留。", "serverFonts": "在此服务器上为每个读者安装字体。", "bookDock": "在书页上显示快速操作。", - "auditLog": "谁改变了什么,什么时候改变。" + "auditLog": "谁改变了什么,什么时候改变。", + "requests": "来源、下载客户端,以及书籍下载完成后的处理方式。" }, "backToApp": "返回图书馆" }, @@ -3115,13 +3540,15 @@ "required": "(必填)" }, "editor": { + "discardTitle": "放弃更改?", + "discardDescription": "此编辑器中有尚未保存的更改。现在关闭将丢弃这些更改。", "discardConfirm": "放弃更改", "moreActions": "更多操作", "removeQuestion": "删除它?" } }, "achievements": { - "title": "1. 成就", + "title": "成就", "tiersCount": "已达成等级:{earned}/{total}", "loadFailed": "加载成就失败", "tryAgain": "再试一次", @@ -3213,8 +3640,8 @@ "auditNotice": "此配置文件的访问权已被录制并对用户可见。", "period": "报告期间", "periodDays": "近 {count} 天", - "durationMinutes": "{count, plural, one {# 分钟} other {# 分钟}}", - "durationHours": "{count, plural, one {# 小时} other {# 小时}}", + "durationMinutes": "{count, plural, other {# 分钟}}", + "durationHours": "{count, plural, other {# 小时}}", "metrics": { "sessions": "二. 会议", "readingTime": "阅读时间", @@ -3225,18 +3652,22 @@ "trend": "每日阅读趋势", "emptyTitle": "在此期间没有读取活动", "noData": "此期间没有记录的阅读数据。", + "sessionCount": "{count, plural, other {# 次会话}}", "sourceNames": { "web": "网页阅读器", + "ios": "iOS 应用", + "watchos": "Apple Watch", + "android": "Android 应用", "koreader": "KOReader", "manual": "手动模式", "kobo": "Kobo", "unknown": "未知的" }, "formats": "格式", - "genres": "Genres", + "genres": "体裁", "broadGenres": { "science_fiction": "科学虚拟化", - "fantasy": "Fantasy", + "fantasy": "奇幻", "mystery_thriller": "神秘和推神器", "romance": "罗曼文", "horror": "恐怖的", @@ -3304,13 +3735,17 @@ "presetClearAll": "全部清除", "permissionGroups": { "content": "内容", + "podcasts": "播客", "devicesAccess": "设备与访问", "email": "电子邮件地址", "administration": "行政管理", "notifications": "通知", "restrictions": "限制", - "libraryBooks": "馆藏图书 ", + "libraryBooks": "馆藏图书", + "bookRequests": "书籍请求", + "bookDock": "Book Dock", "devices": "设备", + "readingIntegrations": "阅读集成", "emailNotifications": "邮件 & 通知", "libraryConfiguration": "书库配置", "usersSecurity": "用户 & 安全", @@ -3321,14 +3756,25 @@ "manage": "管理" }, "accountRestrictions": "账号限制", - "superuserTarget": "Superuser Target", + "demoRestrictedHint": "将此账户限制在受限的演示体验中。", + "superuserTarget": "目标超级用户", "superuserTargetHint": "内容限制不能适用于超级用户。", "superuserAccess": { "title": "超级用户访问权限", "enabled": "已启用", "disabled": "已禁用", + "enabledHint": "此账户拥有不受限的服务器访问权限。降级后其保存的权限、书库和限制将重新生效。", + "disabledHint": "提权后拥有不受限的服务器访问权限,并绕过权限、书库分配和内容限制。", + "selfHint": "您不能更改自己的超级用户权限。", + "sharedHint": "共享账户不能提升为超级用户。", + "promote": "提升为超级用户", + "demote": "移除超级用户权限", + "promoteDialogTitle": "提升为超级用户?", + "promoteDialogBody": "授予 {name} 不受限的服务器访问权限。其当前会话将结束,需要重新登录。", "demoteDialogTitle": "确认移除超级用户访问权限?", - "changing": "更新访问权限..." + "demoteDialogBody": "移除 {name} 的不受限访问权限。其保存的权限、书库和限制将生效,且需要重新登录。", + "changing": "更新访问权限……", + "changeError": "更新超级用户权限失败。请重新加载该账户后重试。" }, "noRestrictions": "没有内容限制", "noRestrictionsHint": "此用户可以完全访问其指定的库中的所有书籍。", @@ -3343,9 +3789,11 @@ "includeGenresHint": "(只显示带有这些基因的书籍)", "excludeGenres": "排除流体", "excludeGenresHint": "(带这些基因的书籍)", - "searchTagsPlaceholder": "搜索标签…", - "searchGenresPlaceholder": "搜索题材…", - "saving": "保存中...", + "seeOwnRequestedBooks": "允许该用户看到自己请求的书籍", + "seeOwnRequestedBooksHint": "通过该用户自己的书籍请求入库的书籍不受上述规则限制。默认关闭。", + "searchTagsPlaceholder": "搜索标签……", + "searchGenresPlaceholder": "搜索题材……", + "saving": "保存中……", "errors": { "updateUser": "更新用户失败", "updatePermissions": "更新权限失败", @@ -3357,6 +3805,8 @@ "nameRequired": "姓名为必填项", "usernameRequired": "用户名为必填项" }, + "drawerDescription": "编辑此账户的资料、书库访问、权限和限制。", + "createHint": "新账户在您授予权限之前没有任何权限。", "sectionsLabel": "账号设置", "sections": { "profile": "个人资料", @@ -3366,11 +3816,16 @@ }, "sectionSummary": { "newAccount": "尚未创建的", + "libraries": "{total} 中的 {selected} 个", + "permissions": "{count, plural, =0 {无权限} other {已授予 # 项}}", "restrictionsNone": "无", - "restrictionsContent": "内容过滤器" + "restrictionsContent": "内容过滤器", + "restrictionsDemo": "演示受限", + "restrictionsBoth": "筛选与演示模式" }, "account": "账号", "status": "状态", + "statusHint": "被停用的用户无法登录或同步设备。", "signInMethod": "登录", "signInMethods": { "password": "密码", @@ -3378,9 +3833,15 @@ "shared": "魔法链接" }, "created": "创建于", + "lockedUntil": "锁定至 {time}", + "lockedHint": "登录失败次数过多。请在用户列表中解锁。", "usernameFixedHint": "无法更改用户名。", + "emailHint": "用于密码重置和通知。", + "libraryAccessHint": "这些书库之外的书籍对该用户不可见。", "selectAll": "全选", "clearAll": "清除", + "permissionsHint": "此账户可以执行的操作。已授予 {total} 项中的 {granted} 项。", + "groupLegend": "{group}:已授予 {total} 项中的 {granted} 项", "presets": { "label": "预设权限", "none": "无", @@ -3391,8 +3852,16 @@ }, "filterPermissions": "过滤权限", "grantedOnly": "仅允许", + "noPermissionMatches": "没有权限符合该筛选。", "clearFilters": "清除筛选器", - "dangerZone": "危险操作区" + "filteredNotice": "筛选中。被隐藏的权限保持当前设置。", + "contentRestrictionsHint": "按标签或体裁限制该用户可以看到的书籍。", + "contentRestrictionsAfterCreate": "账户创建后即可设置内容限制。", + "unsavedChanges": "{count, plural, other {# 项未保存的更改}}", + "libraryBookCount": "{count, plural, =0 {无书籍} other {# 本书}}", + "dangerZone": "危险操作区", + "deleteUserHint": "永久移除此账户及其阅读数据。书库中的书籍不受影响。", + "libraryReach": "此账户可以看到 {total} 本书中的 {selected} 本。" }, "usersPage": { "usersTitle": "用户", @@ -3410,7 +3879,7 @@ "lastActive": "上次活跃" }, "adminBadge": "管理员", - "permissionCount": "{count, plural, =0 {没有权限} one {一个权限} other {# 权限}}", + "permissionCount": "{count, plural, =0 {没有权限} other {# 权限}}", "filteredBadge": "已过滤", "contentRestrictionsActive": "内容限制已启用", "statusActive": "已启用", @@ -3424,10 +3893,11 @@ "resetPasswordSharedHint": "共享账户没有密码", "resetPasswordOidcHintFull": "OIDC 用户重置身份提供者中的密码。", "resetPasswordSharedHintFull": "共享账户没有密码。", + "resetPasswordDisabledHintFull": "服务器配置已禁用密码认证。", "deleteUserAction": "删除用户", "deleteDialogTitle": "删除用户?", "deleteDialogBody": "删除用户 “{username}”,该操作不可撤销。", - "deleting": "删除中...", + "deleting": "删除中……", "errors": { "load": "加载失败", "deleteUser": "删除用户失败", @@ -3449,7 +3919,7 @@ "description": "选择自动分配给新用户的库。", "noLibraries": "没有可用的库。", "save": "保存默认值", - "saving": "保存中...", + "saving": "保存中……", "saveError": "保存默认库访问失败" }, "filters": { @@ -3470,14 +3940,17 @@ }, "pagination": { "label": "用户分页", - "page": "第 {page} 页 / 共 {totalPages} 页" + "page": "第 {page} 页 / 共 {totalPages} 页", + "showing": "显示 {total} 个账户中的 {shown} 个" }, "editUserAria": "编辑用户 {name}", "resetPasswordAria": "重置 {name} 的密码", "deleteUserAria": "删除 {name}", "moreActionsAria": "{name} 更多操作", + "headerSummary": "{count, plural, =0 {暂无账户} other {# 个账户}} · {admins} 位拥有管理员权限", "noEmail": "没有访问地址", "editAccount": "编辑用户信息", + "cardMeta": "{access} · {libraries} · {lastActive}", "accessTier": { "superuser": "超级用户", "admin": "管理员", @@ -3485,6 +3958,10 @@ "custom": "自定义", "none": "无访问权限" }, + "libraries": { + "all": "全部 {total} 个", + "some": "{total} 个中的 {granted} 个" + }, "statusLocked": "已锁定", "status": { "never": "永不", @@ -3494,8 +3971,20 @@ "unlocksIn": "解锁于 {when}" }, "attention": { + "title": "需要关注", + "count": "{count, plural, other {# 个账户}}", + "filter": "{count, plural, other {# 个需要关注}}", + "more": "还有 {count} 个未在此显示", + "reason": { + "locked": "{name} 因多次登录失败已被锁定", + "neverSignedIn": "{name} 从未登录过", + "defaultPassword": "{name} 仍在使用创建账户时的初始密码" + }, "detail": { - "created": "创建于 {when}" + "unlocksIn": "将于 {when} 自动解锁", + "created": "创建于 {when}", + "linkExpired": "创建于 {when} · 登录链接已过期", + "linkValid": "创建于 {when} · 登录链接有效期至 {expiry}" }, "action": { "unlock": "立即解锁", @@ -3506,7 +3995,10 @@ "expand": "显示" }, "defaults": { - "title": "新用户默认值" + "title": "新用户默认值", + "appliesTo": "适用于自主注册和 OIDC", + "startingLibraries": "初始书库", + "startingLibrariesHint": "自动为每个新账户授予查看者权限。" } } }, @@ -3515,19 +4007,19 @@ "styles": { "highlight": "摘录", "underline": "下划线", - "strike": "击杀数", - "squiggle": "方形", - "invert": "Invert" + "strike": "删除线", + "squiggle": "波浪线", + "invert": "反色" }, "combobox": { "filterByBook": "按书过滤", "allBooks": "所有书", "clearBookFilter": "清除书籍过滤器", - "searching": "搜索中…", + "searching": "搜索中……", "noBooksFound": "未找到书" }, "bulk": { - "countSelected": "{count, plural, one {# 选择了} other {# 选择了}}", + "countSelected": "{count, plural, other {# 选择了}}", "pageSelected": "选择页面", "selectPage": "选择页面", "clear": "清空", @@ -3541,7 +4033,7 @@ }, "filters": { "colors": "颜色", - "dateRange": "Date range", + "dateRange": "日期范围", "fromDate": "从日期", "toDate": "截止日期", "to": "到", @@ -3613,8 +4105,8 @@ "hub": { "title": "批注", "totalCount": "共计 {count} 条", - "bookCount": "{count, plural, =0 {没有书籍} one {# 书} other {# 书}}", - "noteCount": "{count, plural, =0 {没有便笺} one {# 笔记} other {# 笔记}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", + "noteCount": "{count, plural, =0 {没有便笺} other {# 笔记}}", "export": "导出", "exportMarkdown": "Markdown", "exportCsv": "CSV", @@ -3633,18 +4125,88 @@ "resetFilters": "重置过滤器", "trashEmpty": "垃圾桶为空", "noAnnotations": "暂无批注。突出显示您在网页上创建的内容或您的电子阅读器出现在这里。", - "readHere": "此处了解详情" + "noMatchHint": "试试更短的词句,或清除颜色和书籍筛选。", + "noAnnotationsBody": "您在任何书籍、任何设备上做的标注都会汇集到这里。", + "readHere": "此处了解详情", + "readHereBody": "在阅读器中选中文字并选择颜色。", + "syncKobo": "同步 Kobo", + "syncKoboBody": "在设备上做的标注会在下次同步时传来。", + "syncKoreader": "同步 KOReader", + "syncKoreaderBody": "插件会上传带位置的批注。", + "goToLibrary": "前往书库" }, "toast": { "movedToTrash": "移动到回收站", "annotationRestored": "注释已恢复", "annotationDeletedForever": "批注被永久删除", "failedToDelete": "删除失败", - "bulkTrashed": "{count, plural, =0 {移动没有注释到回收站} one {移动# 注释到回收站} other {移动# 注释到回收站}}", - "bulkRestored": "{count, plural, =0 {恢复没有批注} one {恢复# 批注} other {恢复# 批注}}", - "bulkRecolored": "{count, plural, =0 {没有批注} one {重新批发批注} other {重新批发批注#}}", - "bulkRestyled": "{count, plural, =0 {恢复无批量} one {恢复# 批注} other {恢复# 批注}}" - } + "bulkTrashed": "{count, plural, =0 {移动没有注释到回收站} other {移动# 注释到回收站}}", + "bulkRestored": "{count, plural, =0 {恢复没有批注} other {恢复# 批注}}", + "bulkRecolored": "{count, plural, =0 {没有批注} other {重新批发批注#}}", + "bulkRestyled": "{count, plural, =0 {恢复无批量} other {恢复# 批注}}", + "noteSaved": "笔记已保存" + }, + "railTitle": "{marks} 处标注 · {books} 本书", + "lastTwelveMonths": "最近 12 个月", + "colour": "颜色", + "whereFrom": "来源", + "theShelf": "书架", + "devices": "设备", + "allBooks": "全部 {count} 本书", + "behindCount": "{count, plural, other {落后 # 条}}", + "busiestWeek": "最繁忙的一周", + "longestQuiet": "最长的空窗期", + "mostMarked": "标注最多", + "weekCount": "{count, plural, other {# 周}}", + "anchorsUnplaced": "{count, plural, other {# 个锚点无法定位}}", + "reviewThem": "去核查", + "anchorLost": "锚点丢失", + "anchorRepaired": "已修复", + "notes": "笔记", + "review": "待核查", + "viewLabel": "分组与排序", + "views": { + "newest": "最新在前", + "oldest": "最早在前", + "book": "按书籍", + "color": "按颜色", + "source": "按来源" + }, + "matchCount": "{total} 条中的 {shown} 条", + "moreActions": "更多操作", + "loadMore": "{count, plural, other {加载 # 条}}", + "openBook": "打开书籍", + "noteLabel": "笔记", + "yourNote": "您的笔记", + "notePlaceholder": "写下这条高亮为什么重要。", + "openAtThisPage": "打开到这一页", + "positionAndSync": "位置与同步", + "loadFailed": "无法加载您的高亮。请稍后重试。", + "chips": { + "dateBetween": "{from} 至 {to}", + "dateFrom": "自 {from} 起", + "dateUntil": "至 {to}" + }, + "activitySummary": "{count, plural, other {{from} 至 {to} 之间有 # 处高亮}}", + "book": "书籍", + "needsReview": "需要核查" + }, + "sources": { + "web": "网页", + "koreader": "KOReader", + "kobo": "Kobo" + }, + "colors": { + "yellow": "黄色", + "green": "绿色", + "blue": "蓝色", + "pink": "粉色", + "orange": "橙色", + "red": "红色", + "olive": "橄榄色", + "cyan": "青色", + "purple": "紫色", + "gray": "灰色" } }, "audit": { @@ -3666,7 +4228,7 @@ "allActors": "所有行为者", "noActionsFound": "没有匹配的操作", "noActorsFound": "没有匹配的演员", - "noResourcesFound": "No matching target types", + "noResourcesFound": "没有匹配的目标类型", "unknownAction": "未知动作", "unknownResource": "其他目标类型", "allResources": "所有资源", @@ -3677,8 +4239,8 @@ "thirtyDays": "30 天", "userId": "用户 #{id}", "userIdCompact": "#{id}", - "targetAdditional": "和 {count, plural, one {# 更多目标} other {# 更多目标}}", - "bookImpact": "{count, plural, one {# 书} other {# 书}}", + "targetAdditional": "和 {count, plural, other {# 更多目标}}", + "bookImpact": "{count, plural, other {# 书}}", "entryDetailsLabel": "审计事件 #{id} 详情", "detailEventId": "事件 ID", "detailOccurredAt": "发生了", @@ -3689,8 +4251,8 @@ "detailIpLabel": "IP 地址", "detailResourceLabel": "资源", "detailResourceIdLabel": "资源 ID", - "detailTargetTypeLabel": "Target type", - "detailTargetIdLabel": "Target ID", + "detailTargetTypeLabel": "目标类型", + "detailTargetIdLabel": "目标 ID", "detailAction": "操作:{value}", "detailIp": "IP:{value}", "detailResource": "资源:{value}", @@ -3698,7 +4260,7 @@ "deletedBooks": "已删除的书", "deletedBookDetail": "《{title}》(书籍编号 #{id})", "untitledBook": "无标题", - "deletedBooksOmitted": "{count, plural, one {# 额外的书被遗漏} other {# 额外的书被遗漏}}", + "deletedBooksOmitted": "{count, plural, other {# 额外的书被遗漏}}", "showing": "展示 {from}–{to} 条,共 {total} 条", "prev": "上一个", "chips": { @@ -3707,7 +4269,7 @@ "eventType": "事件类型:{value}", "actor": "操作人:{value}", "resource": "资源:{value}", - "targetType": "Target type: {value}", + "targetType": "目标类型:{value}", "user": "用户:{value}", "from": "起始时间:{value}", "to": "结束时间:{value}" @@ -3733,7 +4295,7 @@ "when": "时间", "actor": "执行者", "event": "事件", - "target": "Target", + "target": "目标", "impact": "影响", "user": "用户", "action": "行 动", @@ -3754,19 +4316,24 @@ "User": "用户", "Library": "书库", "Book": "书", + "Podcast": "播客", + "PodcastEpisode": "播客单集", "Collection": "收藏", "SmartScope": "智能书架", "BookDockFile": "Book Dock 文件", + "BookRequest": "书籍请求", + "DownloadClient": "下载客户端", + "RequestIndexer": "索引器", "Author": "作者", "AppSettings": "应用程序设置", - "Genre": "流派数", + "Genre": "体裁", "Tag": "标签", "KoboDevice": "Kobo设备", "EmailProvider": "电子邮件提供商", "EmailTemplate": "电子邮件模板", "EmailRecipient": "电子邮件收件人", "EmailRecipientGroup": "电子邮件收件人组", - "Narrator": "Narrator", + "Narrator": "朗读者", "Publisher": "出版社", "Language": "语言", "Series": "系列", @@ -3814,6 +4381,18 @@ "LibraryAccessRevoke": "撤销库访问权限", "LibraryWriteMetadataToFiles": "将元数据写入文件", "LibraryBulkRename": "重命名库文件", + "LibraryRecomputeAddedAt": "重新计算添加日期", + "PodcastCreate": "创建播客", + "PodcastUpdate": "更新播客", + "PodcastArchive": "归档播客", + "PodcastRestore": "恢复播客", + "PodcastPurge": "清除播客", + "PodcastMerge": "合并播客", + "PodcastDownload": "下载播客单集", + "PodcastDownloadRemove": "移除播客下载", + "PodcastRetentionUpdate": "更新播客保留策略", + "PodcastOpmlImport": "导入播客 OPML", + "PodcastOpmlExport": "导出播客 OPML", "BookUpload": "上传书", "BookMetadataUpdate": "更新书籍元数据", "BookMetadataLocksUpdate": "更新元数据锁", @@ -3839,6 +4418,24 @@ "SmartScopeUpdate": "更新智能书架", "SmartScopeDelete": "删除智能书架", "BookDockFinalize": "完成书停靠文件", + "BookRequestCreate": "创建书籍请求", + "BookRequestApprove": "批准书籍请求", + "BookRequestReject": "拒绝书籍请求", + "BookRequestCancel": "取消书籍请求", + "BookRequestFulfill": "完成书籍请求", + "BookRequestGrab": "将书籍请求发送到下载客户端", + "BookRequestImport": "导入书籍请求的下载", + "BookRequestRemoveDownload": "从下载客户端移除书籍请求的下载", + "BookRequestDelete": "删除书籍请求", + "DownloadClientCreate": "创建下载客户端", + "DownloadClientUpdate": "更新下载客户端", + "DownloadClientDelete": "删除下载客户端", + "RequestIndexerCreate": "已添加索引器", + "RequestIndexerUpdate": "已更新索引器", + "RequestIndexerDelete": "已删除源", + "RequestIndexerPluginInspect": "已查看索引器插件", + "RequestIndexerPluginInstall": "已安装索引器插件", + "RequestIndexerPluginRemove": "已删除索引器插件", "AuthorUpdate": "更新作者", "AuthorDelete": "删除作者", "AuthorMerge": "合并作者", @@ -3847,7 +4444,7 @@ "AuthorEnrichmentResume": "恢复作者补充信息功能", "AuthorEnrichmentCancel": "取消作者信息补充", "EntityManagerMerge": "合并实体", - "EntityManagerRename": "Rename entity", + "EntityManagerRename": "重命名条目", "EntityManagerDelete": "删除实体", "EntityManagerSplit": "拆分实体", "EntityManagerDismiss": "清除重复", @@ -3873,7 +4470,10 @@ "EmailRecipientGroupUpdate": "更新收件人组", "EmailRecipientGroupDelete": "删除接收组", "EmailRecipientGroupMemberAdd": "将收件人添加到组", - "EmailRecipientGroupMemberRemove": "从群组中删除收件人" + "EmailRecipientGroupMemberRemove": "从群组中删除收件人", + "MaintenanceMissingBooksClean": "清理缺失书籍", + "MaintenanceBrokenCoversClean": "清理损坏封面", + "MaintenanceOrphanedCoversClean": "清理孤立封面文件夹" } }, "auth": { @@ -3904,7 +4504,7 @@ "login": { "subtitle": "登录到您的帐户", "signIn": "登录", - "signingIn": "登录中…", + "signingIn": "登录中……", "orDivider": "或", "forgotPassword": "忘记密码?", "noAccount": "还没有账户?", @@ -3913,14 +4513,16 @@ "errors": { "invalidCredentials": "无效的用户名或密码", "tooManyAttempts": "登录尝试次数太多。请等待一分钟后重试。", + "passwordDisabled": "密码登录已禁用。请使用单点登录提供方。", + "optionsUnavailable": "无法加载登录选项。请刷新页面或联系管理员。", "accountLocked": "密码正确,但该账户在登录尝试失败次数过多后被暂时锁定。 请在 {minutes, plural, other {# 分钟}}后重试或重置您的密码以立即解锁账户。" } }, "oidc": { "loginFailed": "OIDC 登录失败", - "redirecting": "正在跳转授权…", + "redirecting": "正在跳转授权……", "signInWith": "使用 {provider} 账号登录", - "completingSignIn": "正在完成登录…", + "completingSignIn": "正在完成登录……", "tryAgain": "再试一次", "errors": { "stateExpired": "您的登录会话已过期。请尝试再次登录。", @@ -3939,7 +4541,7 @@ "forgotPassword": { "subtitle": "重置您的密码", "submitted": "如果存在该电子邮件的帐户,已发送重置链接。请检查您的收件箱。", - "sending": "发送中...", + "sending": "发送中……", "sendResetLink": "发送重置链接", "errors": { "emailUnavailable": "通过电子邮件重置密码不可用。请联系您的管理员。" @@ -3947,7 +4549,7 @@ }, "resetPassword": { "subtitle": "设置新密码", - "saving": "保存中…", + "saving": "保存中……", "setNewPassword": "设置新密码", "errors": { "invalidLink": "无效的重置链接。请申请一个新链接。", @@ -3982,7 +4584,7 @@ "subtitle": "创建第一个管理员帐户。", "setupToken": "设置令牌", "setupTokenHint": "(生产所需)", - "creatingAccount": "账号创建中…", + "creatingAccount": "账号创建中……", "createAccount": "创建管理员帐户", "errors": { "failed": "无法完成设置" @@ -3997,7 +4599,7 @@ } }, "magicLink": { - "signingIn": "正在登录...", + "signingIn": "正在登录……", "loginFailed": "登录失败", "goToLogin": "转到登录", "errors": { @@ -4013,7 +4615,15 @@ "deleteAuthor": "删除作者" }, "filters": { - "allLibraries": "所有库" + "allLibraries": "所有库", + "chips": { + "groupLabel": "筛选作者", + "all": "全部", + "noPortrait": "无肖像", + "multipleBooks": "2 本以上", + "recentlyAdded": "本周添加", + "noSortName": "无排序名" + } }, "header": { "never": "从不使用", @@ -4028,7 +4638,7 @@ "showMore": "显示更多", "lookingUpMetadata": "查找作者元数据中……", "noBiography": "没有可用的传记。使用菜单刷新元数据。", - "previewFrom": "来自 {provider} 的预览结果,保存元数据方可持久生效", + "previewFrom": "来自 {provider} 的预览结果,保存元数据方可持久生效。", "booksLabel": "书籍", "lastAdded": "最后添加", "born": "出生日期", @@ -4045,8 +4655,8 @@ "sortBy": "排序方式", "ascending": "升序", "descending": "降序", - "asc": "Asc", - "desc": "Desc", + "asc": "升序", + "desc": "降序", "filters": "筛选器", "clear": "清空", "allLoaded": "所有 {total} 个作者已被加载", @@ -4083,7 +4693,7 @@ "bulkRefreshPartial": "成功刷新 {updated} 位作者元数据,{failed} 位刷新失败", "bulkRefreshSuccess": "已为 {updated} 位作者刷新元数据", "bulkRefreshFailed": "刷新选中作者失败", - "deleteSuccess": "{count, plural, =0 {删除了# 作者; 影响了 {books} 书籍} one {删除了# 作者; 影响了 {books} 书籍} other {删除了# 作者; 影响了 {books} 书籍}}", + "deleteSuccess": "{count, plural, =0 {删除了# 作者; 影响了 {books} 书籍} other {删除了# 作者; 影响了 {books} 书籍}}", "deleteFailed": "删除作者失败 (s)" } }, @@ -4103,21 +4713,21 @@ "replaceImage": "替换图像", "uploadImage": "上传图片", "removing": "移除中……", - "removeImage": "Remove image", + "removeImage": "移除图片", "imageHint": "PNG/JPEG/WEBP/GIF/BMP,最大 {size} MB", "saving": "保存中……" }, "merge": { "searchPlaceholder": "搜索作者以合并到此作者", "searching": "搜索中……", - "bookCount": "{count, plural, =0 {没有书籍} one {# 书} other {# 书}}", - "selectedSummary": "已选中 {count} 位作者,预计影响 {books} 本图书", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", + "selectedSummary": "已选中 {count} 位作者,预计影响 {books} 本图书。", "merging": "合并中……", "mergeSelected": "合并选中的", "confirmLabel": "合并" }, "mergeDialog": { - "title": "是否将 {count} 位作者合并至“{name}”", + "title": "是否将 {count} 位作者合并至“{name}”?", "titleFallback": "合并选中的作者?", "description": "这将把选中的作者合并到当前作者并重新链接关联的书籍。此操作不能撤消。", "descriptionEmpty": "此操作不能撤消。" @@ -4129,8 +4739,8 @@ "books": { "heading": "书籍", "allLibraries": "所有库", - "asc": "Asc", - "desc": "Desc", + "asc": "升序", + "desc": "降序", "ascending": "升序", "descending": "降序", "allLoaded": "所有 {total} 本书籍已被加载", @@ -4160,6 +4770,16 @@ "deleteSuccess": "作者已删除,涉及 {books} 本书籍", "deleteFailed": "删除作者失败" } + }, + "portrait": { + "fromTheirBook": "其某本书的封面;暂无肖像" + }, + "index": { + "bookCount": "{count, plural, =0 {无书籍} other {# 本书}}", + "rowLabel": "{name},{count, plural, =0 {无书籍} other {# 本书}}", + "actionsFor": "{name} 的操作", + "refreshing": "正在刷新 {name} 的元数据", + "deleting": "正在删除 {name}" } }, "book": { @@ -4167,7 +4787,7 @@ "unknownFormat": "未知", "collapsedSeries": { "label": "系列", - "bookCount": "{count, plural, =0 {没有书籍} one {# 书} other {# 书}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", "readCount": "{count} 本已读" }, "card": { @@ -4177,9 +4797,33 @@ "primary": "主要的", "audiobook": "音频簿" }, + "formats": { + "epub": "EPUB 电子书", + "kepub": "KEPUB 电子书", + "pdf": "PDF 文档", + "cbz": "CBZ 漫画", + "cbr": "CBR 漫画", + "cb7": "CB7 漫画", + "mobi": "MOBI 电子书", + "azw3": "AZW3 电子书", + "azw": "AZW 电子书", + "fb2": "FictionBook", + "m4b": "M4B 有声书", + "mp3": "MP3 音频", + "m4a": "M4A 音频", + "opus": "Opus 音频", + "ogg": "OGG 音频", + "flac": "FLAC 音频", + "readAlong": "跟读 EPUB", + "primary": "主格式" + }, "actions": { "read": "阅读", "listen": "听书", + "startReading": "开始阅读", + "continueReading": "继续阅读", + "startListening": "开始收听", + "continueListening": "继续收听", "peek": "快速预览", "quickView": "快速视图", "details": "详细信息", @@ -4193,7 +4837,14 @@ "setStatus": "设置状态", "sendViaEmail": "通过电子邮件发送", "rate": "评分 {star}", - "openAs": "以 {format} 格式打开" + "openAs": "以 {format} 格式打开", + "openReadAlong": "打开跟读 EPUB" + }, + "coverRegeneration": { + "failed": "无法重新生成封面", + "bulkInProgress": "正在重新提取封面", + "bulkFailed": "无法重新提取封面", + "bulkCompleted": "已重新提取 {processed, plural, other {# 个封面}} 中的 {updated} 个" }, "readStatus": { "unread": "未读", @@ -4209,7 +4860,16 @@ "action": "下载", "audiobookZip": "音频簿 (ZIP)", "allFormatsZip": "所有格式 (ZIP)", - "primaryOnlyZip": "仅主(ZIP)" + "primaryOnlyZip": "仅主(ZIP)", + "preparing": "正在准备下载……", + "preparingExport": "正在准备下载 {count, plural, other {# 本书}}……", + "progressPercent": "已下载 {total} 中的 {percent}", + "progressBytes": "已下载 {transferred}", + "failed": "下载失败", + "exportFailed": "导出失败", + "audiolessEpub": "KOReader EPUB", + "audiolessEpubHint": "下载移除音频文件的 KOReader EPUB", + "noAudio": "无音频" }, "sort": { "moveUp": "上移", @@ -4217,6 +4877,7 @@ "ascending": "升序", "descending": "降序", "fields": { + "relevance": "相关度", "author": "作者", "title": "标题", "series": "系列", @@ -4261,23 +4922,26 @@ "publishedYear": "发布年份", "pageCount": "页面计数", "author": "作者", - "genre": "流派数", + "genre": "体裁", "tag": "标签", "collection": "收藏", "library": "书库", "format": "格式", + "fileSize": "主文件大小", "addedAt": "添加日期", "startedAt": "开始日期", "finishedAt": "完成日期", "fileAvailability": "文件可用性", "rating": "评分", "communityRating": "社区评分", + "communityRatingCount": "社区评价数", "readProgress": "阅读进度", "readStatus": "阅读状态", "description": "描述", "isbn": "ISBN", "metadataScore": "元数据分数", "cover": "封面", + "audioCover": "有声书封面", "lockStatus": "锁定状态", "seriesStatus": "系列赛状态" }, @@ -4324,7 +4988,8 @@ "unit": { "days": "天", "weeks": "周", - "months": "月" + "months": "月", + "megabytes": "MB" }, "scorePreset": { "outstanding": "待定", @@ -4333,6 +4998,9 @@ "poor": "差的" }, "scoreRangePlaceholder": "0-100", + "fileSizePlaceholder": "例如 10", + "fileSizeValueAria": "主文件大小(MB)", + "fileSizeMaximumAria": "最大主文件大小(MB)", "valuePlaceholder": "值", "maxPlaceholder": "最大值", "to": "到", @@ -4346,11 +5014,11 @@ "description": "这将永久删除该书及其所有元数据、文件、阅读进度和书签。无法撤消。" }, "bulkEdit": { - "title": "{count, plural, =0 {编辑元数据-# 书} one {编辑元数据-# 书} other {编辑元数据-# 书}}", + "title": "{count, plural, =0 {编辑元数据-# 书} other {编辑元数据-# 书}}", "instructions": "切换要编辑的字段,然后配置值。仅切换的字段将被更改。", "invalidYear": "输入一个有效的年份(仅限数字)", - "clearWarning": "该操作将清除选中图书内全部 {field} 字段内容", - "searchPlaceholder": "搜索:{field}...", + "clearWarning": "该操作将清除选中图书内全部 {field} 字段内容。", + "searchPlaceholder": "搜索:{field}……", "enterPlaceholder": "请输入{field}", "yearPlaceholder": "例如:2024", "leaveEmptyHint": "留空以在所有选定的书中清除此字段。", @@ -4382,24 +5050,24 @@ "includeContextMeta": "包含上下文元数据", "preflight": "预览", "scopeLabel": "导出范围:{summary}", - "calculatingSize": "正在计算导出文件大小…", + "calculatingSize": "正在计算导出文件大小……", "estimatedSize": "预计大小:", "fileLabel": "文件:{fileName}\t", "exportAction": "导出", - "selectedRowsSummary": "{count, plural, =0 {# 选定行} one {# 选定行} other {# 选定行}}", - "matchingRowsSummary": "{count, plural, =0 {# 匹配行} one {# 匹配行} other {# 匹配行}}", + "selectedRowsSummary": "{count, plural, =0 {# 选定行} other {# 选定行}}", + "matchingRowsSummary": "{count, plural, =0 {# 匹配行} other {# 匹配行}}", "prepareFailed": "准备导出失败", "exportStarted": "元数据已开始导出:{fileName}", "exportFailed": "元数据导出失败" }, "columnPanel": { "columnsHeading": "列", - "reset": "Reset", + "reset": "重置", "tableDensity": "表密度", "density": { "compact": "紧凑的", "comfortable": "舒适的", - "roomy": "Roomy" + "roomy": "宽松" }, "presets": "预设值", "exportBackup": "导出预设和保存的视图", @@ -4422,7 +5090,7 @@ "shortcuts": { "title": "键盘快捷键", "navigation": { - "title": "Navigation", + "title": "导航", "moveFocusVertical": "焦点向上/向下移动", "moveFocusHorizontal": "向左/向右移动焦点", "jumpFirstColumn": "跳转到第一列", @@ -4454,7 +5122,7 @@ "titleFor": "{title} 快速预览\t", "description": "预览书详细信息并运行快速操作。", "openIn": "在 {provider} 中打开", - "pages": "{count, plural, =0 {# 页面} one {# 页面} other {# 页面}}", + "pages": "{count, plural, =0 {# 页面} other {# 页面}}", "primaryFile": "主文件", "fileNumber": "文件 #{id}", "showLess": "显示更少的", @@ -4470,7 +5138,7 @@ "openBookDetails": "打开书的详细信息", "openSeries": "开放系列", "metadataRefreshFailed": "元数据刷新失败", - "booksSelected": "{count, plural, =0 {# 选择的书} one {# 选择的书} other {# 选择的书}}", + "booksSelected": "{count, plural, =0 {# 选择的书} other {# 选择的书}}", "loadingMoreBooks": "正在加载更多书", "sort": "排序", "refreshingMetadata": "元数据刷新进度:{processed}/{total}", @@ -4485,7 +5153,7 @@ "selectedStatus": "已选中 {count} 条", "filtered": "已过滤", "loadedStatus": "已加载 {loaded}/{total} 条", - "bookCount": "{count, plural, =0 {# 书} one {# 书} other {# 书}}", + "bookCount": "{count, plural, =0 {# 书} other {# 书}}", "keyboardShortcutsTitle": "键盘快捷键 (?)", "showKeyboardShortcuts": "显示桌面快捷键", "copyHint": "复制单元格: Ctrl/Cmd+C · 复制行: Ctrl/Cmd+Shift+C" @@ -4518,7 +5186,7 @@ "moreInSeries": "该丛书还有更多作品:{series}" }, "writeRename": { - "written": "{count, plural, =0 {没有字段写入} one {写入(一个字段)} other {写入(# 字段)}}", + "written": "{count, plural, =0 {没有字段写入} other {写入(# 字段)}}", "writeFailed": "写入失败", "skipped": "跳过", "renamedTo": "已重命名为 {name}", @@ -4539,13 +5207,13 @@ "hint": "支持 epub、pdf、mobi、cbz、m4b 等格式,单文件上限 {size} MB" }, "addMore": "添加更多文件", - "fileCount": "{count, plural, =0 {没有文件} one {一个文件} other {# 文件}}", + "fileCount": "{count, plural, =0 {没有文件} other {# 文件}}", "clearAll": "全部清除", "done": "完成", "retry": "重试", - "filesAdded": "{count, plural, =0 {没有文件添加} one {一个文件添加} other {# 文件添加}}", + "filesAdded": "{count, plural, =0 {没有文件添加} other {# 文件添加}}", "uploadedFailed": "成功上传 {done} 个,{failed} 个上传失败", - "uploadingProgress": "上传进度:{done}/{total},上传中…", + "uploadingProgress": "上传进度:{done}/{total},上传中……", "renameAfter": "上传后重命名所有书文件", "uploadCount": "上传({count})", "upload": "上传" @@ -4564,7 +5232,7 @@ "optional": "可选的", "format": "格式", "noFormat": "没有特定格式", - "saving": "保存中…", + "saving": "保存中……", "submit": "添加会话" }, "coverEditor": { @@ -4572,12 +5240,37 @@ "lockCover": "锁定封面", "fileTab": "文件", "urlTab": "网址", - "chooseImage": "选择图片…", + "chooseImage": "选择图片……", "findCoverOnline": "在线查找封面", - "saving": "保存中…", + "saving": "保存中……", "saveCover": "保存封面", "revertToOriginal": "还原到原始的", - "regenerateCover": "重新生成封面" + "regenerateCover": "重新生成封面", + "slotsLabel": "要编辑的封面", + "slotEbook": "书籍", + "slotAudio": "有声书", + "slotEbookName": "书籍封面", + "slotAudioName": "有声书封面", + "editingEbook": "正在编辑书籍封面", + "editingAudio": "正在编辑有声书封面", + "lockEbookCover": "锁定书籍封面", + "unlockEbookCover": "解锁书籍封面", + "lockAudioCover": "锁定有声书封面", + "unlockAudioCover": "解锁有声书封面", + "viewLarger": "查看大图", + "viewLargerEbook": "查看书籍封面大图", + "viewLargerAudio": "查看有声书封面大图", + "sourceMode": "图片来源", + "urlLabel": "图片地址", + "saveFailed": "无法保存封面", + "revertFailed": "无法还原封面" + }, + "coverLightbox": { + "title": "封面预览", + "description": "全尺寸封面。按 Esc 关闭。", + "switchLabel": "要显示的封面", + "ebook": "书籍", + "audio": "有声书" }, "coverSearch": { "title": "在线搜索", @@ -4588,7 +5281,7 @@ "allSources": "所有来源", "audiobookCovers": "音频簿封面", "squareHint": "(平方)", - "searching": "搜索中…", + "searching": "搜索中……", "findCovers": "查找封面", "selectCover": "选择封面", "noResultsTitle": "未找到结果", @@ -4618,14 +5311,38 @@ "cancelEditAria": "取消个人评论编辑" }, "editCover": "编辑封面", + "viewCover": "查看更大封面", "finished": "已完成", "resetFileProgress": "重置文件进度", - "resetting": "正在重置...", + "resetEditionProgress": "重置 {format} 的进度", + "resetting": "正在重置……", "resetProgressConfirm": "确定重置 {label} 对应的阅读进度吗?", "moreCount": "另有 {count} 项", "untitled": "无标题", "metadataScore": "元数据分数", "primaryFormat": "主要格式", + "readAloudSync": { + "title": "朗读进度同步", + "state": { + "enabled": "已启用", + "disabled": "已禁用", + "unavailable": "不可用", + "epubCopiesOnly": "仅限 EPUB 副本" + }, + "enabledDescription": "有声书、网页阅读器、Kobo 和 KOReader 的进度保持同步。", + "disabledDescription": "每种格式各自保留自己的阅读位置。", + "epubCopiesDescription": "网页阅读器、Kobo 和 KOReader 的进度会在各 EPUB 副本之间保持同步。添加匹配的有声书文件后,有声书也会同步。", + "reason": { + "no_media_overlay_epub": "需要带媒体叠加层的伴读 EPUB。", + "no_audio_files": "需要匹配的独立有声书文件。", + "missing_duration": "音频时长元数据不完整。", + "durationMismatch": "时长差距过大:有声书 {audio},伴读 EPUB {overlay}。" + }, + "enable": "启用", + "disable": "禁用", + "saving": "正在保存……", + "saveFailed": "无法更新朗读进度同步。" + }, "openIn": "使用 {provider} 打开", "showLess": "显示更少", "showMore": "显示更多", @@ -4644,7 +5361,7 @@ "cancelDateAddedEdit": "取消添加日期编辑", "editDateAdded": "编辑添加日期", "dateStarted": "开始日期", - "saving": "保存中…", + "saving": "保存中……", "cancelDateStartedEdit": "取消日期开始编辑", "editDateStarted": "编辑开始日期", "dateFinished": "完成日期", @@ -4653,13 +5370,14 @@ "customMetadata": "自定义元数据", "synopsis": "简述", "noDescription": "无可用描述。", - "dateStartedFutureError": "开始阅读日期不能选择未来日期", - "dateAddedRequiredError": "添加日期为必填项", - "dateAddedFutureError": "添加日期不能选择未来日期", - "dateFinishedFutureError": "读完日期不能选择未来日期", + "dateStartedFutureError": "开始阅读日期不能选择未来日期。", + "dateAddedRequiredError": "添加日期为必填项。", + "dateAddedFutureError": "添加日期不能选择未来日期。", + "dateFinishedFutureError": "读完日期不能选择未来日期。", "dateFinishedBeforeStartedError": "完成日期必须是开始日期或之后。", + "dateFinishedBeforeStartedErrorWithDate": "完成日期必须不早于开始日期({date})。", "saveReadingDatesError": "无法保存阅读日期。", - "saveAddedDateError": "添加日期保存失败", + "saveAddedDateError": "添加日期保存失败。", "koboPendingDelete": "等待从设备删除", "koboPendingDeleteTooltip": "Kobo将在下次同步时移除。", "koboRemovedByDevice": "被设备删除", @@ -4667,23 +5385,53 @@ "koboNotSynced": "未同步", "koboNotSyncedTooltip": "下一个 Kobo 同步队列。", "filesNotFound": "找不到文件", - "filesNotFoundDescription": "无法在磁盘上找到此书的文件(s)。 元数据仍然可用。运行库扫描以确认或删除记录。" + "filesNotFoundDescription": "无法在磁盘上找到此书的文件(s)。 元数据仍然可用。运行库扫描以确认或删除记录。", + "resetHoldNotice": "{device} 仍停留在旧位置({percent})", + "resetHoldRelease": "使用此设备的位置", + "resetHoldReleasing": "正在切换……", + "resetHoldReleaseFailed": "无法使用该位置。请重试。", + "editions": "版本", + "editionsSummary": "{count} · {size}", + "moreFormats": "还有 {count} 个", + "filesOnDisk": "磁盘上的文件", + "yourReading": "您的阅读", + "lastRead": "上次阅读于 {when}", + "notStarted": "未开始", + "noSessionsYet": "暂无阅读会话。在阅读器中打开本书即可记录时长、速度和各设备的进度。", + "activitySessions": "会话", + "activityTime": "时长", + "activityAverage": "平均", + "activityProgress": "进度", + "activityDayTooltip": "{day}:{minutes} 分钟", + "activityReached": "已达到 {percent}", + "durationS": "{seconds} 秒", + "durationM": "{minutes} 分", + "durationHm": "{hours} 小时 {minutes} 分", + "yourReview": "您的书评", + "reviewNotWritten": "尚未撰写", + "writeReview": "撰写", + "collections": "收藏夹", + "noCollections": "无", + "onDisk": "在磁盘上", + "detailsHeading": "详情", + "percentUnderOne": "<1%", + "percentOverNinetyNine": ">99%" }, "editMetadata": { - "fieldCount": "{count, plural, =0 {没有字段} one {一个字段} other {# 字段}}", + "fieldCount": "{count, plural, =0 {没有字段} other {# 字段}}", "bookFilesTarget": "书文件", "formatFilesTarget": "{formats} 格式文件", "noPrimaryFile": "没有可用的主文件", "formatNotSupported": "此文件格式不支持回写", "formatDisabled": "此格式已禁用回写", "fileExceedsSizeLimit": "这个文件超过了回记大小限制", - "writing": "写入中…", + "writing": "写入中……", "saveInProgress": "正在保存", "writeManualLibraryDisabled": "将元数据写入文件并在磁盘上重命名;此库的自动回写功能被禁用", "writeManualTooltip": "将 {fields} 字段写入 {target},并同步修改磁盘内文件名", "applyResult": "跳过 {skipped} 条,更新 {updated} 条", - "skippedLockedFields": "{count, plural, =0 {跳过没有锁定的字段} one {跳过了一个锁定的字段} other {跳过# 锁定的字段}}", - "updatedFields": "{count, plural, =0 {未更新字段} one {更新一个字段} other {更新# 字段}}", + "skippedLockedFields": "{count, plural, =0 {跳过没有锁定的字段} other {跳过# 锁定的字段}}", + "updatedFields": "{count, plural, =0 {未更新字段} other {更新# 字段}}", "wroteFieldsToFile": "已将 {fields} 字段写入文件", "fileWriteFailedReason": "文件写入失败:{reason}", "fileWriteFailed": "文件写入失败", @@ -4698,20 +5446,22 @@ "saveFailed": "无法保存更改。", "saveFailedWithStatus": "无法保存更改(HTTP {status})", "loadFromFileFailed": "从文件加载元数据失败", - "loadedFieldsFromFile": "{count, plural, =0 {从文件中加载没有字段} one {从文件中加载一个字段} other {从文件中加载# 字段}}", + "loadedFieldsFromFile": "{count, plural, =0 {从文件中加载没有字段} other {从文件中加载# 字段}}", "noMetadataInFile": "文件中未找到元数据", "loadFromFile": "从文件加载", "loadFromFileTooltip": "从主书文件加载元数据", "writeToFile": "写入文件", "autoFill": "自动填充", - "fetchingMetadata": "拉取元数据中…", + "autoFillFailed": "自动填充失败", + "fetchingMetadata": "拉取元数据中……", + "noExistingProviderIds": "未获取元数据:当前启用的字段规则提供方都没有在此书上存储 ID。", "allFieldsLocked": "所有字段都被锁定", "autoFillTooltip": "使用您的元数据首选项自动填充字段", "lockAll": "锁定所有", "lockAllTooltip": "锁定所有字段", "unlockAll": "解锁所有", "unlockAllTooltip": "解锁所有字段", - "saving": "保存中…", + "saving": "保存中……", "fileWriteBackDetails": "文件回写详细信息", "fileWriteBack": "文件回写", "enabled": "已启用", @@ -4723,7 +5473,7 @@ "subtitleLabel": "副标题", "authorsLabel": "作者", "narratorsLabel": "神秘者", - "genresLabel": "Genres", + "genresLabel": "体裁", "tagsLabel": "标签", "ratingLabel": "评分", "rateStar": "评分 {star} 星", @@ -4743,8 +5493,8 @@ "comicDetails": "漫画详情", "comicIssueNumberLabel": "问题编号", "comicVolumeLabel": "音量", - "comicStoryArcsLabel": "Story Arcs", - "comicPencillersLabel": "Pencillers", + "comicStoryArcsLabel": "故事线", + "comicPencillersLabel": "画师", "comicInkersLabel": "墨盒", "comicColoristsLabel": "着色", "comicLetterersLabel": "信标", @@ -4759,7 +5509,7 @@ "diffPanel": { "untitled": "无标题", "noFieldsSelected": "没有选定字段", - "fieldsSelected": "{count, plural, =0 {没有选择字段} one {选择一个字段} other {# 字段选择}}", + "fieldsSelected": "{count, plural, =0 {没有选择字段} other {# 字段选择}}", "results": "成果", "providerMatches": "来自 {provider} 的匹配结果", "selectedOf": "已选择 {selected}/{total}", @@ -4772,9 +5522,19 @@ "hideUnchanged": "隐藏未更改", "showUnchanged": "显示未更改", "current": "当前的", + "new": "新", "noMetadata": "此源没有可用的元数据。", "noChangedFields": "没有更改或缺失字段。使用显示未修改以检查所有内容。", - "applyToForm": "申请到表单" + "applyToForm": "申请到表单", + "secondCover": { + "audioResults": "有声书封面结果", + "bookResults": "书籍封面结果", + "showCover": "显示 {provider} 封面({total} 中的第 {index} 个)", + "searchingAudio": "正在搜索有声书版本……", + "searchingBook": "正在搜索书籍版本……", + "noAudio": "未找到有声书封面。", + "noBook": "未找到书籍封面。" + } }, "diff": { "locked": "已锁定", @@ -4783,12 +5543,73 @@ "newCoverAlt": "新的封面", "pickCoverFromProvider": "从另一个提供商选择封面", "pickCoverSource": "选择封面源", + "coverShapeHint": { + "portraitForAudio": "纵向图片。有声书封面为方形。", + "squareForBook": "方形图片。书籍封面为纵向。" + }, "pickFromProvider": "从另一个提供商中选择", "pickSource": "选择源", + "useNew": "使用新的 {field}", + "keepCurrent": "保留当前 {field}", + "genreWriteMode": { + "label": "体裁应用方式", + "merge": "合并", + "replace": "替换" + }, "empty": "空的", "showLess": "显示更少的", "showMore": "显示更多", - "coverPreviewAlt": "封面预览" + "coverPreviewAlt": "封面预览", + "fields": { + "coverUrl": "封面", + "bookCover": "书籍封面", + "audioCover": "有声书封面", + "title": "书名", + "subtitle": "副标题", + "authors": "作者", + "description": "简介", + "publisher": "出版社", + "publishedDate": "出版日期", + "language": "语言", + "pageCount": "页数", + "communityRating": "社区评分", + "seriesName": "系列", + "seriesIndex": "系列序号", + "isbn13": "ISBN-13", + "isbn10": "ISBN-10", + "genres": "体裁", + "narrators": "朗读者", + "durationSeconds": "时长(秒)", + "abridged": "删减版", + "hardcoverEditionId": "Hardcover 版本 ID", + "comicIssueNumber": "期号", + "comicVolumeName": "卷", + "comicPencillers": "铅笔稿画师", + "comicInkers": "墨线画师", + "comicColorists": "上色师", + "comicLetterers": "文字排版师", + "comicCoverArtists": "封面画师", + "comicCharacters": "角色", + "comicTeams": "团队", + "comicLocations": "地点", + "comicStoryArcs": "故事线", + "sourceUrl": "来源 URL" + }, + "providerIds": { + "google": "Google Books ID", + "goodreads": "Goodreads ID", + "amazon": "Amazon ID", + "hardcover": "Hardcover ID", + "openLibrary": "Open Library ID", + "itunes": "iTunes ID", + "audible": "Audible ID", + "librofm": "Libro.fm ISBN", + "comicvine": "ComicVine ID", + "ranobedb": "RanobeDB ID", + "kobo": "Kobo ID", + "lubimyczytac": "LubimyCzytac ID", + "aladin": "Aladin ID" + } }, "searchDrawer": { "searchTitle": "搜索元数据", @@ -4801,7 +5622,7 @@ "titlePlaceholder": "标题", "authorPlaceholder": "作者", "isbnPlaceholder": "ISBN", - "searching": "搜索中…", + "searching": "搜索中……", "activeQuery": "活动查询", "searchScope": "搜索范围", "allEnabled": "全部启用", @@ -4810,17 +5631,64 @@ "custom": "自定义", "providerNotInFieldRules": "已启用 {provider},但该数据源未配置字段规则", "notInFieldRulesLabel": "不在字段规则中:", - "notInFieldRulesText": "{providers}:开启全部数据源时可参与手动搜索,不会用于自动拉取元数据", + "notInFieldRulesText": "{providers}:开启全部数据源时可参与手动搜索,不会用于自动拉取元数据。", "noResults": "未找到结果", "noResultsHint": "尝试调整标题或作者", + "searchInterrupted": "搜索未完成", + "searchIncomplete": "部分结果可能缺失", + "providerTimedOut": "{provider} 响应超时。", + "providerThrottled": "{provider} 已达到速率上限。请稍候重试。", + "providerFailed": "无法连接到 {provider}。", + "searchInterruptedHint": "请重试,或缩小搜索范围。", "searchPrompt": "在上方搜索,然后点击结果开始比较元数据。" }, "writeAndRename": "写入文件并重命名", - "writeAndRenameShort": "写入并重命名" + "writeAndRenameShort": "写入并重命名", + "identityCard": "身份信息", + "catalogCard": "目录信息", + "sourceCard": "来源信息", + "score": "评分", + "scoreTooltip": "元数据得分 {score}/100", + "emptyFields": "{count, plural, other {# 个空字段}}", + "emptyFieldsTooltip": "尚未填写:{fields}。可在线搜索查询。", + "libraryRow": "书库", + "primaryRow": "主要", + "writeBackRow": "回写", + "writeBackOff": "关闭", + "lastWrittenRow": "上次写入", + "neverWritten": "从未", + "fileCount": "{count, plural, =0 {无文件} other {# 个文件}}", + "unknownFormat": "未知" }, "files": { "title": "预订文件", - "fileCount": "{count, plural, =0 {没有文件} one {# 文件} other {# 文件}}", + "stats": { + "files": "文件", + "total": "总计", + "runtime": "总时长", + "formats": "格式" + }, + "filesHeading": "文件", + "allPresent": "全部就绪", + "groupedByReader": "按阅读器分组", + "thisFile": "此文件", + "writeBackShort": "回写", + "fieldsSet": "已填 {filled} / {total}", + "writtenSummary": "{fields} 及 {count, plural, other {# 个其他字段}} 已写入 {format}。", + "writtenSummaryAll": "{fields} 已写入 {format}。", + "writtenNothing": "{total} 个可写字段均未填值。", + "writeBackOff": "本书已关闭回写。", + "editMetadata": "编辑元数据", + "showAllTracks": "显示全部", + "collapseTracks": "收起", + "moreTracks": "{count, plural, other {还有 # 条音轨}}", + "tracksRolled": "{count, plural, other {# 条音轨}}", + "fileDetails": "文件详情", + "openDetails": "打开文件详情", + "closeDetails": "关闭文件详情", + "trackFrom": "第 {track} 条音轨,共 {total} 条,从 {time} 开始", + "throughCopy": "您已读到此副本的 {percent}", + "fileCount": "{count, plural, =0 {没有文件} other {# 文件}}", "synced": "上次同步:{time}", "sortAria": "排序文件", "syncHistory": "同步历史记录", @@ -4847,7 +5715,7 @@ "hideLog": "隐藏日志", "viewSyncLog": "查看同步日志", "noWriteHistory": "尚无写入历史记录。", - "fieldsWritten": "{count, plural, =0 {没有字段} one {一个字段} other {# 字段}}", + "fieldsWritten": "{count, plural, =0 {没有字段} other {# 字段}}", "track": "音轨 {number}", "primary": "主要的", "read": "阅读", @@ -4865,16 +5733,102 @@ "description": "重命名磁盘上的物理文件。", "placeholder": "新文件名" }, - "saving": "保存中…", + "saving": "保存中……", "deleteModal": { "title": "删除文件?", "description": "确定要删除「{filename}」吗?该操作不可撤销。" }, - "deleting": "删除中..." + "deleting": "删除中……", + "folderAria": "文件夹位置", + "folderContents": "文件夹内容", + "inspectorAria": "所选文件", + "libraryRoot": "书库根目录", + "onDisk": "在磁盘上", + "missing": "缺失", + "backToFolder": "返回文件夹", + "copyPath": "复制完整路径", + "pathCopied": "路径已复制到剪贴板", + "resume": "继续", + "audiobook": "有声书", + "writeTarget": "写入目标", + "enabled": "已启用", + "disabled": "关闭", + "notSet": "未设置", + "sortAdded": "已添加", + "formatCount": "{count, plural, other {# 种格式}}", + "trackCount": "{count, plural, other {# 条音轨}}", + "formatsInFolder": "{count, plural, other {此处 # 种格式}}", + "compositionAria": "各格式占文件夹大小的比例", + "percentRead": "已读 {percent}", + "trackOf": "第 {track} 条音轨,共 {total} 条", + "groups": { + "ebook": "电子书", + "document": "文档", + "comic": "漫画", + "audio": "音频", + "extras": "附加内容" + }, + "roles": { + "primary": "主要", + "content": "备用", + "supplement": "补充", + "cover": "封面" + }, + "reader": { + "none": "无阅读器", + "ebook": "电子书阅读器", + "document": "PDF 阅读器", + "comic": "漫画阅读器", + "audio": "音频播放器" + }, + "spec": { + "format": "格式", + "role": "角色", + "size": "大小", + "length": "时长", + "added": "已添加", + "indexed": "已索引", + "opensIn": "打开方式", + "writeBack": "回写", + "track": "音轨", + "targetFile": "目标文件", + "notWritten": "未写入" + }, + "duration": { + "hoursMinutes": "{hours} 小时 {minutes} 分", + "minutes": "{minutes} 分", + "minutesSeconds": "{minutes} 分 {seconds} 秒", + "seconds": "{seconds} 秒" + }, + "positionHeading": "您在此副本中的位置", + "copiesStarted": "{total} 个副本中已开始 {started} 个", + "nothingStarted": "尚未开始任何阅读", + "throughFile": "已读此文件的 {percent}", + "notOpened": "尚未打开", + "lastRead": "上次阅读于 {time}", + "noPosition": "未存储阅读位置", + "trackPositionHeading": "此音轨所在位置", + "totalRuntime": "总时长 {duration}", + "startsAt": "从 {time} 开始", + "trackLength": "时长 {duration}", + "switchFileHeading": "切换文件", + "writeBackHeading": "已写入此文件的内容", + "fieldsWithValue": "{total} 个字段中有 {filled} 个已填值", + "lastRun": "上次运行 {time}", + "neverRun": "从未运行", + "historyHeading": "历史记录", + "timeline": { + "written": "元数据已写入 {format}", + "writtenMany": "元数据已写入 {format} ×{count}", + "writeDetail": "{count, plural, other {# 个字段}} · {ms} 毫秒 · {trigger}", + "failed": "写入失败", + "indexed": "{name} 已索引", + "indexedMany": "已索引 {count} 个 {format} 文件" + } }, "highlights": { "note": { - "placeholder": "添加笔记...", + "placeholder": "添加笔记……", "saving": "正在保存" }, "export": { @@ -4889,9 +5843,9 @@ "oldest": "最旧的在前" }, "summary": { - "highlights": "{count, plural, =0 {没有高亮} one {一个高亮} other {# 高亮}}", - "notes": "{count, plural, =0 {没有便笺} one {一个便笺} other {# 笔记}}", - "chapters": "{count, plural, =0 {没有章节} one {一章} other {# 章节}}" + "highlights": "{count, plural, =0 {没有高亮} other {# 高亮}}", + "notes": "{count, plural, =0 {没有便笺} other {# 笔记}}", + "chapters": "{count, plural, =0 {没有章节} other {# 章节}}" }, "filterByChapter": "按章节筛选", "allChapters": "所有章节", @@ -4904,33 +5858,271 @@ "hint": "在阅读时选择文本以创建高亮显示" }, "uncategorized": "未分类", - "paginationUnit": "高亮显示" + "paginationUnit": "高亮显示", + "rail": { + "title": "标注", + "unit": "{count, plural, other {# 处高亮}}", + "withNotes": "带笔记", + "chaptersMarked": "个章节有标注", + "ofChaptersMarked": "{total} 章中有标注", + "colour": "颜色", + "showOnly": "仅显示 {colour}", + "source": "来源", + "health": "位置状态", + "needsAttention": "{count, plural, other {# 个需要关注}}", + "anchorLost": "{count, plural, other {# 个因文件变更丢失了锚点}}", + "reAnchored": "{count, plural, other {# 个已自动重新锚定}}", + "reviewPositions": "核查位置", + "span": "跨度", + "firstMark": "首次标注", + "lastMark": "最近标注", + "markingDays": "标注天数", + "exportCount": "导出 {count} 条" + }, + "row": { + "select": "选择此高亮", + "showMore": "展开", + "showLess": "收起", + "note": "笔记", + "addNote": "添加笔记", + "page": "第 {page} 页", + "anchorLost": "锚点丢失", + "reAnchored": "已重新锚定" + }, + "stream": { + "title": "标注流", + "searchPlaceholder": "搜索 {count} 条高亮和笔记", + "all": "全部", + "notes": "笔记", + "review": "待核查", + "density": "在宽松和紧凑行距之间切换", + "matchCount": "{total} 条中有 {shown} 条匹配", + "textChip": "文本“{query}”", + "marks": "{count, plural, other {# 处标注}}", + "loadingMore": "正在加载更多" + }, + "bulk": { + "selected": "已选 {count} 条", + "selectAll": "全选 {count} 条", + "recolour": "更改所选标注的颜色", + "recolourTo": "改为 {colour}", + "clear": "清除所选" + }, + "index": { + "title": "索引", + "groupBy": "列表分组方式", + "byChapter": "章节", + "byColour": "颜色", + "byDay": "日期" + }, + "activity": { + "title": "标注活动", + "days": "{count, plural, other {# 天}}", + "showAll": "显示全部 {count} 天", + "showFewer": "收起部分" + }, + "inspector": { + "title": "高亮详情", + "back": "返回索引", + "counter": "第 {position} 处标注,共 {total} 处", + "previous": "上一处标注", + "next": "下一处标注", + "notePrompt": "这条高亮为什么重要?笔记可被搜索,并会随导出一并保留。", + "style": "样式", + "position": "位置与同步", + "openHere": "在此打开" + }, + "band": { + "title": "标注分布", + "subtitle": "按阅读顺序展示每个有标注的章节,颜色与您标注时一致", + "barTitle": "{chapter},{count} 处标注", + "start": "开头", + "densest": "最密集", + "marks": "{count, plural, other {# 处标注}}", + "longestGap": "最长的无标注区间", + "chapters": "{count, plural, other {# 个章节}}", + "end": "结尾" + }, + "emptyStage": { + "title": "{title} 中还没有高亮", + "body": "高亮来自三个来源,此页面将它们汇总在同一处展示。", + "openReader": "打开阅读器", + "web": { + "title": "在此阅读", + "body": "在内置阅读器中选中文字并选择颜色。" + }, + "kobo": { + "title": "同步 Kobo", + "body": "在设备上做的高亮会在下次同步时传来。" + }, + "koreader": { + "title": "同步 KOReader", + "body": "插件会上传带精确位置的批注。" + } + }, + "shortcuts": { + "title": "键盘", + "description": "高亮列表的键盘快捷键。", + "move": "下一处 / 上一处标注", + "open": "打开详情面板", + "back": "返回索引", + "search": "搜索", + "note": "写笔记", + "recolour": "更改颜色", + "select": "选择此标注", + "regroup": "重新分组列表", + "copy": "复制原文", + "reader": "在阅读器中打开" + }, + "railTitle": "{marks} 处标注 · {chapters} 个章节", + "whenMarked": "标注时间", + "chapters": "章节", + "noChapter": "无章节", + "views": { + "position": "按阅读顺序", + "newest": "最新在前", + "oldest": "最早在前", + "colour": "按颜色", + "source": "按来源" + } }, "readingLog": { + "resetReadingState": "重置阅读状态", + "vitals": { + "aria": "阅读摘要", + "notSet": "未设置", + "started": "开始", + "finished": "完成", + "editStarted": "修改您开始阅读本书的日期", + "editFinished": "修改您读完本书的日期", + "totalTime": "总时长", + "sessions": "会话", + "avgSession": "平均会话时长", + "activeDays": "活跃天数", + "activeDaysOf": "{total} 天中的 {active} 天", + "pace": "速度", + "pacePerHour": "{percent}%/小时", + "lastRead": "上次阅读", + "whereYouRead": "您在哪里读的", + "addSession": "添加会话", + "durationHm": "{hours} 小时 {minutes} 分", + "durationM": "{minutes} 分", + "durationS": "{seconds} 秒" + }, + "ledger": { + "title": "会话", + "none": "无", + "colDay": "日期", + "colTime": "时间", + "colLength": "时长", + "colChange": "进度变化", + "colPosition": "书中位置", + "colReached": "读到", + "colSource": "来源", + "colFormat": "格式", + "gapDays": "{count, plural, other {# 天未阅读}}", + "attemptBegan": "第 {index} 次阅读开始", + "attemptOutsideAny": "不属于任何阅读尝试", + "empty": "尚未记录任何会话", + "emptyHint": "在阅读器中打开本书、同步设备,或手动添加会话。" + }, + "attempts": { + "title": "阅读尝试", + "none": "无", + "ordinal": "第 {index} 次阅读", + "addPast": "添加过去的阅读尝试", + "reread": "重读", + "rereadPrompt": "开始一次新的阅读尝试?", + "rereadResetProgress": "将阅读位置重置到开头。已同步的设备可能会收到此重置。", + "rereadConfirm": "开始重读", + "fieldStarted": "开始", + "fieldEnded": "结束", + "fieldOutcome": "结果", + "outcome": { + "completed": "已读完", + "skimmed": "略读", + "abandoned": "弃读", + "inProgress": "进行中" + }, + "spanRange": "{from} 至 {to}", + "spanSince": "自 {from} 起", + "spanEnded": "于 {to} 结束", + "spanUnknown": "未记录日期", + "sessionCount": "{count, plural, other {# 次会话}}", + "endBeforeStart": "结束日期不能早于开始日期。", + "editAria": "编辑此阅读尝试", + "deleteAria": "删除此阅读尝试", + "cancelDeleteAria": "取消删除此阅读尝试", + "confirmDeleteAria": "确认删除此阅读尝试", + "empty": "未记录阅读尝试", + "emptyHint": "开始一次重读,或添加本书库建立之前完成的阅读。" + }, + "records": { + "title": "纪录", + "longestSession": "最长会话", + "bestDay": "最佳单日", + "longestStreak": "最长连续天数", + "streakDays": "{count, plural, other {# 天}}", + "pace": "阅读速度", + "jumpedBack": "回跳", + "jumpedBackTimes": "{count, plural, other {# 次}}", + "firstOpened": "首次打开", + "empty": "本书有会话记录后就会显示各项纪录。" + }, + "band": { + "curve": "曲线", + "trace": "轨迹", + "switchAria": "图表视图", + "curveTitle": "进度随时间变化", + "traceTitle": "您在书中的位置", + "curveSubDays": "{total} 天中的 {active} 个活跃天", + "curveSubSitting": "一次连续阅读,逐会话展示", + "traceSub": "每根柱代表一次会话覆盖的段落", + "traceSubWithBacktracks": "{count, plural, other {每根柱代表一次会话,# 次回跳}}", + "legendPosition": "到达位置", + "legendMinutes": "阅读分钟数", + "legendBacktrack": "回跳", + "traceEmpty": "暂无轨迹", + "traceEmptyHint": "有会话后,这里会显示每次会话覆盖的段落,以及您回读的位置。", + "tooltipCovered": "覆盖 {from}% 至 {to}%", + "tooltipMinutes": "{minutes} 分钟" + }, + "emptyStage": { + "title": "本书还没有任何记录", + "description": "阅读日志由会话构成。您在 BookOrbit 网页阅读器中的每次阅读都会被记录,其余部分则从您同步的设备获取。", + "readerTitle": "在此阅读", + "readerBody": "在 BookOrbit 阅读器中的每一分钟都会自动记录。", + "koreaderTitle": "同步 KOReader", + "koreaderBody": "插件会把每次阅读连同您读到的页码一并推送回来。", + "koboTitle": "同步 Kobo", + "koboBody": "插入设备后,BookOrbit 会读取其自带的阅读时长计数。", + "addSession": "手动添加会话", + "recordPast": "记录过去的阅读" + }, "moreActionsAria": "更多阅读日志操作", "export": { "button": "导出" }, "weekdays": { "sun": "周日", - "mon": "Mon", + "mon": "周一", "tue": "色调", "wed": "瓦德", - "thu": "Thu", - "fri": "Fri", + "thu": "周四", + "fri": "周五", "sat": "萨特" }, "months": { - "jan": "1 月", + "jan": "一月", "feb": "二月", - "mar": "马尔", + "mar": "三月", "apr": "四月", - "may": "5 月", + "may": "五月", "jun": "六月", - "jul": "7 月", + "jul": "七月", "aug": "八月", - "sep": "塞普省", - "oct": "八月", + "sep": "九月", + "oct": "十月", "nov": "十一月", "dec": "十二月" }, @@ -4948,14 +6140,15 @@ "minutes": "{count} 分钟前", "hours": "{count} 小时前", "days": "{count} 天前", - "months": "{count, plural, =0 {# 月前} one {# 月前} other {# 月前}}", - "years": "{count, plural, =0 {# 年前} one {# 年前} other {# 年前}}" + "months": "{count, plural, =0 {# 月前} other {# 月前}}", + "years": "{count, plural, =0 {# 年前} other {# 年前}}" }, "noSessions": "没有会话", "dateErrors": { - "startFuture": "开始日期不可选择未来日期", - "finishFuture": "结束日期不可选择未来日期", - "finishBeforeStart": "结束日期需晚于或等于开始日期", + "startFuture": "开始日期不可选择未来日期。", + "finishFuture": "结束日期不可选择未来日期。", + "finishBeforeStart": "结束日期需晚于或等于开始日期。", + "finishBeforeStartWithDate": "完成日期不能早于开始日期({date})。", "saveFailed": "无法保存阅读日期。" }, "eta": { @@ -4967,8 +6160,8 @@ "momentum": { "none": "过去两周内没有活动", "new": "本周新建活动", - "up": "较近七日增长 {pct}%", - "down": "较近七日下降 {pct}%", + "up": "较近 7 日增长 {pct}%", + "down": "较近 7 日下降 {pct}%", "flat": "与前7天相比未更改" }, "stats": { @@ -5008,7 +6201,9 @@ }, "table": { "title": "二. 会议", - "sourceWeb": "Web", + "sourceWeb": "网页", + "sourceIos": "iOS 应用", + "sourceWatchos": "Apple Watch", "sourceManual": "手动模式", "colDate": "日期", "colDateMobile": "日期", @@ -5018,6 +6213,7 @@ "colProgressChangeMobile": "德尔塔", "colEndProgress": "结束进度", "colEndProgressMobile": "结束", + "jumpToProgress": "跳转到 {progress}%", "empty": "没有读取会话记录。", "emptyHint": "添加会话开始构建这本书的阅读历史。", "colPace": "配对", @@ -5035,8 +6231,8 @@ }, "richDescription": { "linkProtocolError": "使用http、https或邮件。", - "bold": "Bold", - "italic": "Italic", + "bold": "粗体", + "italic": "斜体", "underline": "下划线", "strikethrough": "删除线", "bulletList": "项目列表", @@ -5067,9 +6263,10 @@ "moveDown": "向下移动", "removeSeries": "删除系列", "seriesIndexLabel": "丛书内序号", + "invalidSeriesIndex": "请输入数字,最多包含一个小数点,例如 5.10。", "totalLabel": "丛书总册数", "totalPlaceholder": "/", - "totalHint": "该丛书的总册数信息会同步给所有收录此丛书的用户" + "totalHint": "该丛书的总册数信息会同步给所有收录此丛书的用户。" } }, "table": { @@ -5087,7 +6284,16 @@ "ariaFalse": "False - 点击清除" }, "chips": { - "addPlaceholder": "添加…" + "addPlaceholder": "添加……" + }, + "quickFilter": { + "presentFiles": "只显示有文件的行", + "missingFiles": "只显示缺文件的行", + "withCovers": "只显示有封面的书籍", + "missingCovers": "只显示缺封面的书籍", + "missingAudioCovers": "只显示缺有声书封面的书籍", + "withValues": "只显示有值的行", + "emptyRows": "只显示空行" }, "cover": { "previewDescription": "书籍封面预览", @@ -5135,6 +6341,8 @@ "read": { "play": "播放", "read": "阅读", + "readFormat": "阅读 {format}", + "playFormat": "播放 {format}", "primary": "主要的", "peekFormat": "预览 {format} 格式文件", "chooseFormat": "选择要读取或播放的格式", @@ -5144,7 +6352,8 @@ "unread": "未读" }, "series": { - "bookCount": "{count, plural, =0 {(无书)} one {(# 书)} other {(# 书)}}", + "seriesRow": "系列行", + "bookCount": "{count, plural, =0 {(无书)} other {(# 书)}}", "readOfCount": "已读 {read} 册 / 总计 {total} 册" }, "text": { @@ -5153,7 +6362,7 @@ }, "move": { "title": "{count, plural, other {Move # books}}", - "subtitle": "文件将在磁盘层面迁移至目标书库,可能变更书籍的可见权限", + "subtitle": "文件将在磁盘层面迁移至目标书库,可能变更书籍的可见权限。", "searchPlaceholder": "搜索书库", "currentLibrary": "当前书库", "folderCount": "{count, plural, other {# folders}}", @@ -5197,7 +6406,7 @@ "wrap_into_folder": "{count} 本书将各自单独创建文件夹存放", "dissolve_folder": "{count} 个书籍文件夹将拆解为独立文件" }, - "crossDevice": "跨磁盘迁移文件时,会先复制、校验文件,再删除原文件" + "crossDevice": "跨磁盘迁移文件时,会先复制、校验文件,再删除原文件。" }, "progress": { "label": "正在将书籍迁移至 {library}", @@ -5240,7 +6449,7 @@ "confirm": "确认取消", "keepRunning": "继续运行" }, - "viewFailed": "{count, plural, one {查看失败} other {查看失败}}", + "viewFailed": "{count, plural, other {查看 # 个失败项}}", "card": { "fetchingMetadata": "正在获取元数据", "enrichingAuthors": "丰富的作者", @@ -5285,21 +6494,29 @@ "apply": "应用", "done": "完成", "discard": "放弃", + "deselect": "取消选择", "finalize": "完成", "rescan": "重新扫描", "uploadAction": "上传", - "uploading": "上传中…", - "searchPlaceholder": "搜索文件…", + "uploading": "上传中……", + "searchPlaceholder": "搜索文件……", "setDestinationAction": "设定目标", "bulkEditAction": "批量编辑", "applyFetched": "应用已获取", "retryErrors": "重试错误", + "discardDialog": { + "title": "{count, plural, =0 {没有要丢弃的文件?} other {丢弃选中的 # 个文件?}}", + "description": "{count, plural, =0 {尚未选择任何文件。} other {这将从磁盘永久删除所选的 # 个文件。此操作无法撤销。}}", + "confirm": "{count, plural, other {删除 # 个文件}}", + "failed": "无法删除所选文件。请重试。" + }, "commaSeparated": "逗号分隔的", "destinationLibrary": "目标库", "destinationFolder": "目标文件夹", "nFailed": "{count} 项上传失败", "updatedOfFiles": "总计 {total} 个文件,已更新 {updated} 个", "errorStatus": "异常状态:{status}", + "invalidSeriesIndex": "请输入数字,最多包含一个小数点,例如 5.10。", "tab": { "all": "所有的", "pending": "待定", @@ -5326,8 +6543,8 @@ "isbn10": "ISBN-10", "series": "系列", "seriesIndex": "系列 #", - "genres": "Genres", - "genresCommaSeparated": "流派(逗号分隔)", + "genres": "体裁", + "genresCommaSeparated": "体裁(逗号分隔)", "description": "描述" }, "upload": { @@ -5353,7 +6570,7 @@ "newCoverAlt": "《{title}》全新封面", "unknownLibrary": "未知库", "unassigned": "未分配", - "targetPath": "Target: {library} · {path}", + "targetPath": "目标:{library} · {path}", "targetUnassigned": "目标:未分配", "targetUnknownPath": "目标书库:{library},目标路径未知" }, @@ -5367,38 +6584,38 @@ "results": "成果" }, "bulkEdit": { - "title": "{count, plural, =0 {批量编辑没有文件} one {批量编辑# 文件} other {批量编辑# 文件}}", + "title": "{count, plural, =0 {批量编辑没有文件} other {批量编辑# 文件}}", "resultTitle": "批量编辑结果", "instructions": "切换您想要更新的字段。只有启用的字段将被应用。", "mergeArrays": "合并数组 (添加到现有值而不是替换)", "failed": "批量编辑失败" }, "setDestination": { - "title": "{count, plural, =0 {为没有文件设置目标} one {为# 文件设置目标} other {为# 文件设置目标}}", + "title": "{count, plural, =0 {为没有文件设置目标} other {为# 文件设置目标}}", "resultTitle": "目标已更新", "failed": "设置目标失败" }, "finalizeDialog": { - "title": "{count, plural, =0 {完成没有文件} one {完成# 文件} other {完成# 文件}}", + "title": "{count, plural, =0 {完成没有文件} other {完成# 文件}}", "resultTitle": "完成结果", - "needDestination": "{count, plural, =0 {{without} # 选定的文件需要一个目标} one {{without} # 选定的文件需要一个目标} other {{without} 选定的文件需要一个目标}}", + "needDestination": "{count, plural, =0 {选定的 # 个文件中有 {without} 个需要指定目标} other {选定的 # 个文件中有 {without} 个需要指定目标}}", "allHaveDestination": "所有选中的文件已经设置了目标文件", "defaultDestinationLibrary": "默认目标库", "defaultDestinationFolder": "默认目标文件夹", "renamePreview": "重命名预览", "moreFiles": "另有 {count} 个文件", "start": "开始", - "filesFinalized": "{total} 个文件中 { succeeded} 个已完成定稿", - "checking": "正在校验选中文件…", - "readyCount": "{count, plural, =0 {尚未准备好文件} one {# 文件已准备好} other {# 文件已准备好}}", - "duplicateCount": "{count, plural, =0 {库里还没有存在} one {# 已经在库里} other {# 已经在库里}}", - "conflictCount": "{count, plural, =0 {没有文件名冲突} one {# 文件名冲突} other {# 文件名冲突}}", - "missingDestinationCount": "{count, plural, =0 {没有遗失的目的地} one {# 遗失目标} other {# 遗失目的地}}", - "blockedCount": "{count, plural, =0 {没有文件已屏蔽} one {# 文件已屏蔽} other {# 文件已屏蔽}}", + "filesFinalized": "{total} 个文件中 {succeeded} 个已完成定稿", + "checking": "正在校验选中文件……", + "readyCount": "{count, plural, =0 {尚未准备好文件} other {# 文件已准备好}}", + "duplicateCount": "{count, plural, =0 {库里还没有存在} other {# 已经在库里}}", + "conflictCount": "{count, plural, =0 {没有文件名冲突} other {# 文件名冲突}}", + "missingDestinationCount": "{count, plural, =0 {没有遗失的目的地} other {# 遗失目的地}}", + "blockedCount": "{count, plural, =0 {没有文件已屏蔽} other {# 文件已屏蔽}}", "moreDuplicates": "另有 {count} 个文件已存在于书库", "discardDuplicates": "丢弃重复项", - "failedCount": "{count, plural, =0 {没有文件失败} one {# 文件失败} other {# 文件失败}}", - "failedWithDuplicates": "{count, plural, =0 {{failed} 失败 (# 重复)} one {{failed} 失败 (# 重复)} other {{failed} 失败 (# 重复)}}", + "failedCount": "{count, plural, =0 {没有文件失败} other {# 文件失败}}", + "failedWithDuplicates": "{count, plural, =0 {{failed} 失败 (# 重复)} other {{failed} 失败 (# 重复)}}", "view": "查看", "viewExisting": "查看现有的", "hide": "隐藏", @@ -5445,6 +6662,7 @@ }, "empty": { "nothingToReview": "没有需要复核的内容。所有就绪的文件均已分配目标位置并确认匹配。", + "nothingReadyToFile": "没有可归档的文件。", "dropHint": "或将文件拖放到这个页面的任意位置。" }, "selectAllOnPage": "选择此页面上的所有文件", @@ -5469,21 +6687,761 @@ "access_denied": "无访问权限", "invalid_format": "格式错误", "error": "将会失败" + }, + "unit": { + "fileCount": "{count, plural, other {# 个文件}}", + "filesHeading": "{count, plural, other {此条目中有 # 个文件}}", + "role": { + "content": "书籍", + "cover": "封面", + "metadata": "元数据", + "supplement": "附加内容" + } } } }, + "bookRequests": { + "title": "请求(Beta)", + "subtitle": "请求书库还没有的书籍。此功能为实验性,可能存在小问题。", + "tabs": { + "search": "请求书籍", + "mine": "我的请求", + "all": "全部请求" + }, + "mediaKind": { + "ebook": "电子书", + "audiobook": "有声书", + "comic": "漫画" + }, + "status": { + "pending": "待处理", + "approved": "已批准", + "rejected": "已拒绝", + "cancelled": "已取消", + "searching": "搜索中", + "grabbed": "已抓取", + "downloading": "下载中", + "importing": "导入中", + "needs_review": "需要核查", + "available": "可用", + "failed": "失败" + }, + "search": { + "titleLabel": "书名", + "titlePlaceholder": "书籍标题", + "authorLabel": "作者", + "authorPlaceholder": "作者名", + "mediaKindLabel": "格式", + "libraryLabel": "添加到书库", + "libraryAny": "由批准者决定", + "libraryDefault": "默认({library})", + "libraryChoose": "选择书库", + "libraryRequired": "你的请求会在提交时立即批准,因此请选择这本书应归入的库。", + "fulfillmentLabel": "满足方式", + "fulfillmentAutomatic": "自动", + "fulfillmentChooseRelease": "选择发布", + "folderLabel": "文件夹", + "languageLabel": "请求语言", + "languageAny": "任意语言", + "languageDefaultToggleLabel": "新请求使用这个语言", + "languageDefaultSetHint": "每条新请求都请求这个语言", + "languageDefaultClearHint": "不再默认请求这个语言", + "languageDefaultSaved": "新请求将请求 {language}", + "languageDefaultCleared": "新请求将跟随你的界面语言", + "languageDefaultFailed": "无法保存你的语言偏好", + "submit": "搜索", + "searching": "正在搜索提供商……", + "noResultsTitle": "没有找到匹配的书籍", + "noResultsHint": "请尝试其他书名或作者。", + "noResultsIndexerHint": "请尝试其他书名或作者,或者搜索索引器中的“{title}”并自行挑选一个发布。", + "freeTextAction": "搜索索引器", + "manualSearchAction": "手动搜索索引器", + "yearUnknown": "年份未知", + "sourceCount": "{count, plural, other {# 个来源}}", + "sourcesLabel": "来源:{sources}", + "sourcesUnavailable": "部分来源没有响应,结果可能不完整:{sources}", + "identifiers": { + "none": "无 ISBN", + "one": "1 个 ISBN", + "confirmed": "ISBN 已确认", + "count": "{count} 个 ISBN", + "sourcesTitle": "元数据来源", + "provider": "提供商", + "providerTitle": "提供商书名", + "isbn": "ISBN", + "year": "年份", + "language": "语言", + "notProvided": "未提供", + "searchScope": "从 {count, plural, other {# 个 ISBN}}中选择一个进行搜索,或按书名和作者搜索。", + "searchScopeLimited": "请选择一个 ISBN 进行搜索。", + "titleAuthorOnly": "未提供 ISBN。BookOrbit 将按书名和作者搜索一次。", + "chooseSearch": "选择要搜索的版次", + "searchByEdition": "为某个版次查找发布", + "findRelease": "查找发布", + "primaryIsbn": "ISBN {isbn}", + "primaryTitleAuthor": "书名和作者", + "recommended": "推荐", + "recommendationHelpLabel": "BookOrbit 如何选出推荐的 ISBN", + "recommendationTitle": "推荐的搜索方式是如何选出的", + "recommendationLanguage": "优先请求的语言,其次未知语言,最后才是已知不匹配的语言。", + "recommendationAgreement": "优先选择由更多独立元数据提供商确认的 ISBN。", + "recommendationProvider": "使用 BookOrbit 稳定的元数据提供商优先级。", + "recommendationRelevance": "使用该版次在提供商结果中的位置。", + "recommendationYear": "优先选择出版年份最接近该作品最早已知年份的版次。", + "recommendationStable": "以 ISBN 本身作为最终的稳定决胜依据。", + "recommendationFallback": "如果没有有效的 ISBN,BookOrbit 会按书名和作者搜索一次。从菜单中选择一个版次时,始终以你的选择为准。", + "withoutIsbn": "按书名和作者搜索", + "action": "操作" + }, + "request": "请求", + "download": "下载", + "getAutomatically": "自动获取", + "chooseRelease": "选择发布", + "joinRequest": "我也想要", + "submitted": "请求已提交", + "joinedExisting": "已将你加入已有的请求", + "submitFailed": "无法提交这条请求", + "alreadyInLibrary": "已在你的书库中", + "alreadyRequested": "已被其他人请求", + "alreadyRequestedByYou": "你已经请求过这本书", + "preferredFormatsLabel": "偏好格式", + "preferredFormatsHint": "这些格式的发布排名更高。其他格式仍会提供。", + "noteLabel": "给审批人的备注", + "notePlaceholder": "关于这条请求任何值得说明的信息", + "moreOptions": "更多选项", + "fewerOptions": "收起选项", + "optionsSummary": "{formats} · 已添加备注", + "formatToggleAria": "优先 {format}" + }, + "card": { + "details": "详情", + "mediaKind": "格式", + "library": "书库", + "requestedBy": "请求人", + "requestedByAt": "{name} 于 {time}", + "alsoWanted": "还想要的人", + "alsoWantedCount": "{count, plural, other {还有 # 个人想要这本书}}", + "moreActions": "{title} 的更多操作", + "settledIn": "已入库到 {library},{time}", + "settledAt": "已关闭 {time}", + "dismissedBadge": "已隐藏" + }, + "detail": { + "unknownAuthor": "作者未知", + "requestedBy": "请求人", + "requestedOn": "请求时间", + "library": "库", + "series": "系列", + "isbn": "ISBN", + "decidedBy": "决定人", + "requesterNote": "请求人的备注", + "decisionNote": "决定备注", + "statusReason": "停止原因", + "alsoWanted": "其他人也想要", + "decisionNoteLabel": "备注(可选)", + "decisionNotePlaceholder": "说明做出该决定的原因", + "destinationLibraryLabel": "目标库", + "destinationLibraryPlaceholder": "选择一个库", + "destinationFolderLabel": "目标文件夹", + "languageLabel": "请求的语言", + "languageAny": "任意语言", + "destinationRequired": "批准会把这本书入库到某个库,因此批准前请先选择。", + "fulfilTitle": "关闭这条请求", + "fulfilHint": "把这条请求指向你添加的那本书,或指向等待入库的 Book Dock 文件。", + "bookIdLabel": "书籍 ID", + "bookIdPlaceholder": "例如 128", + "dockFileIdLabel": "Book Dock 文件 ID", + "dockFileIdPlaceholder": "例如 42", + "backToList": "全部请求", + "loading": "正在加载请求……", + "transfer": "传输", + "requestSection": "请求", + "decideTitle": "批准或拒绝", + "fulfilSourceLabel": "关闭此请求的方式", + "fulfilFromLibrary": "库中的一本书", + "fulfilFromDock": "一个 Book Dock 文件", + "fulfilSearchLabel": "搜索可以关闭此请求的文件", + "fulfilSearchBooks": "按书名或作者搜索你的书库", + "fulfilSearchDock": "按文件名搜索 Book Dock", + "fulfilSearching": "正在搜索……", + "fulfilNoResults": "没有匹配的结果。请换一个搜索词。", + "errors": { + "notFound": "那条请求已不存在。", + "forbidden": "那条请求属于其他人。", + "loadFailed": "无法加载那条请求" + }, + "entityName": "请求" + }, + "actions": { + "approve": "批准", + "approveAndNext": "批准并下一条", + "reject": "拒绝", + "cancel": "取消请求", + "cancelDownload": "取消下载", + "dismiss": "隐藏", + "restore": "恢复", + "delete": "删除请求", + "markFulfilled": "标记为已满足", + "grab": "查找发布", + "goToBook": "前往书籍", + "retryRelease": "换一个发布重试", + "leave": "退出请求" + }, + "filters": { + "status": "状态", + "anyStatus": "任意状态", + "mediaKind": "格式", + "anyMediaKind": "任意格式", + "requester": "请求人", + "anyRequester": "任意请求人", + "showDismissed": "显示已隐藏", + "fulfilment": "交付方式", + "anyFulfilment": "任意交付方式", + "selfServeOnly": "自助批准", + "approvedOnly": "经过审批" + }, + "list": { + "loading": "正在加载请求……", + "emptyMine": "您还没有请求过任何书籍。", + "emptyAll": "还没有书籍请求。", + "pagination": "请求分页", + "pageOf": "第 {page} 页,共 {total} 页", + "emptyHint": "搜索一本书,提出请求后它就会出现在这里。" + }, + "toasts": { + "approved": "请求已批准", + "rejected": "请求已拒绝", + "cancelled": "请求已取消", + "downloadCancelled": "下载已取消", + "dismissed": "已从你的列表中隐藏", + "restored": "已恢复到你的列表", + "deleted": "请求已删除", + "fulfilled": "请求已标记为满足", + "grabbed": "下载已开始", + "downloadRemoved": "已从下载客户端移除", + "bulkApproved": "{count, plural, other {已批准 # 条请求}}", + "bulkApprovedPartial": "已批准 {done} 条,{failed} 条未能批准", + "bulkDismissed": "{count, plural, other {已隐藏 # 条请求}}", + "bulkDismissedPartial": "已隐藏 {done} 条,{failed} 条未能隐藏", + "unitChosen": "正在导入你选择的书", + "languageChanged": "请求语言已更新", + "left": "你已退出这条请求", + "bulkRejected": "{count, plural, other {已拒绝 # 条请求}}", + "bulkRejectedPartial": "已拒绝 {done} 条,{failed} 条未能拒绝", + "importDiscarded": "导入的文件已丢弃" + }, + "errors": { + "loadFailed": "无法加载请求", + "approveFailed": "无法批准该请求", + "rejectFailed": "无法拒绝该请求", + "cancelFailed": "无法取消那条请求", + "cancelDownloadFailed": "无法取消那次下载", + "dismissFailed": "无法隐藏那条请求", + "restoreFailed": "无法恢复那条请求", + "deleteFailed": "无法删除那条请求", + "fulfilFailed": "无法关闭那条请求", + "grabFailed": "无法开始那次下载", + "removeDownloadFailed": "无法从下载客户端移除那个种子", + "bulkApproveFailed": "无法批准所选的请求", + "bulkDismissFailed": "无法隐藏所选的请求", + "selectUnitFailed": "无法导入那本书。", + "languageChangeFailed": "无法更改请求语言", + "leaveFailed": "无法退出那条请求", + "bulkRejectFailed": "无法拒绝该组请求", + "discardImportFailed": "无法丢弃那次导入" + }, + "grab": { + "title": "发送到下载客户端", + "subtitle": "为“{title}”粘贴磁力链接或上传 .torrent 文件。", + "singleFileNote": "一个发布可以是一本多格式的书、分卷的有声书,或一个压缩包:这些都会作为一本书导入。如果发布中包含多本独立的书,会询问你要保留哪一本。", + "magnet": "磁力链接", + "torrentFile": ".torrent 文件", + "client": "下载客户端", + "submit": "发送", + "errors": { + "pickOne": "请提供磁力链接或 .torrent 文件之一,不要两者都给", + "fileTooLarge": "该文件大于 {limit},因此它不是 .torrent 文件", + "fileUnreadable": "无法读取该文件" + }, + "noClientList": "BookOrbit 将使用优先级最高的已启用下载客户端。" + }, + "attempts": { + "title": "更早的尝试", + "loading": "正在加载更早的尝试……", + "loadFailed": "无法加载更早的尝试", + "refused": "已拒绝,未下载任何内容", + "handPicked": "手动发送" + }, + "download": { + "source": { + "automatic": "自动抓取", + "manual": "由审批人挑选", + "pasted": "手动粘贴" + }, + "transferred": "{done} / {total}", + "transferredUnknown": "已下载 {done}", + "progressLabel": "{title} 的下载进度", + "status": { + "queued": "已加入下载队列", + "downloading": "正在下载", + "completed": "下载完成", + "importing": "正在导入到你的书库", + "needs_review": "在 Book Dock 中等待审查", + "imported": "已加入你的书库", + "failed": "下载失败" + } + }, + "releases": { + "title": "选择一个发布", + "retryTitle": "换一个发布重试", + "subtitle": "在所有已启用的索引器中排名。", + "summaryCount": "{count, plural, other {# 个发布}}", + "allFreeleech": "全部为 Freeleech", + "allLanguage": "全部为 {language}", + "allFormat": "全部为 {format}", + "allIndexer": "全部来自 {name}", + "criteria": { + "label": "当前搜索", + "searched": "已搜索", + "searchedTitleAuthor": "已搜索书名和作者", + "nothingFound": "没有找到与 {key} 匹配的内容", + "changeSearch": "更改搜索", + "closeSearch": "关闭", + "sources": "来源", + "sourceSearchedIsbn": "已搜索该 ISBN", + "sourceSearchedTitleAuthor": "已搜索书名和作者", + "sourceNoAdapter": "没有匹配的适配器", + "sourceReleases": "{count, plural, other {# 个发布}}", + "sourceNone": "没有匹配结果", + "sourceFiltered": "{count} 个被过滤", + "sourcesSearched": "{count, plural, other {已搜索 # 个来源}}", + "showEachSource": "逐个显示", + "uncovered": "{count, plural, other {# 个已启用的源}}不收录这类书籍", + "fixSource": "在设置中修复", + "searchInstead": "改搜这个", + "keyTried": "已尝试,未找到任何内容", + "keyTriedCount": "已尝试,{count, plural, other {# 个发布}}", + "searchWithoutIsbn": "书名和作者", + "customIsbnSource": "自定义 ISBN", + "filteredLocally": "本地过滤:", + "title": "书名", + "author": "作者", + "additionalAuthors": "其他作者", + "isbn10": "ISBN-10", + "isbn13": "ISBN-13", + "isbns": "ISBN", + "mediaKind": "媒体类型", + "language": "语言", + "formats": "偏好格式", + "editFields": "编辑字段", + "closeEditor": "关闭编辑器", + "authorsEditor": "作者,每行一个", + "authorsPlaceholder": "每行一个作者", + "authorsInvalid": "作者最多 50 个,每个不超过 255 个字符。", + "languagePlaceholder": "任意语言", + "formatsPlaceholder": "epub, azw3", + "formatsInvalid": "最多 20 种格式,每种格式不超过 20 个字符。", + "isbnSelection": "搜索方式", + "isbnSelectionHint": "选择一个 ISBN、按书名和作者,或添加自定义 ISBN。", + "noIsbnSelected": "按书名和作者,不使用 ISBN", + "customIsbn": "自定义 ISBN", + "customIsbnPlaceholder": "ISBN-10 或 ISBN-13", + "addIsbn": "添加 ISBN", + "invalidIsbn": "{isbn} 不是有效的 ISBN-10 或 ISBN-13。", + "titleRequired": "请输入要搜索的书名。", + "fixedMedia": "媒体类型保持为 {media},因为它决定兼容的来源和交付路径。", + "useRequestFields": "使用请求字段", + "runSearch": "用这些字段搜索" + }, + "previousFailure": "上次尝试失败:{reason}", + "refused": { + "sourceRefused": "此源拒绝了之前的发布", + "sourceUnavailable": "此源没有响应", + "vipRequired": "需要此源的 VIP 账户", + "clientRefused": "您的下载客户端拒绝了之前的发布", + "clientUnavailable": "您的下载客户端对之前的发布没有响应" + }, + "singleFileNote": "一个发布可以是一本多格式的书、分卷的有声书,或一个压缩包:这些都会作为一本书导入。如果发布中包含多本独立的书,会询问你要保留哪一本。", + "searching": "正在搜索索引器……", + "refresh": "重新搜索", + "cached": "显示的是上次搜索的结果。重新搜索以获取最新结果。", + "sortBy": "排序方式", + "sort": { + "score": "最佳匹配", + "seeders": "做种数", + "size": "大小", + "bitrate": "比特率", + "added": "添加日期" + }, + "freeleechOnly": "仅 freeleech({count})", + "clearFilters": "清除筛选", + "filteredEmpty": "没有发布符合这些筛选。", + "grab": "下载发布", + "viewFiles": "查看文件", + "hideFiles": "隐藏文件", + "viewDetails": "内容简介", + "hideDetails": "隐藏详情", + "inspectingFiles": "正在读取发布文件列表……", + "inspectingNzb": "正在获取并校验 NZB……", + "inspectingShort": "正在检查文件……", + "inspectionFailed": "无法读取此发布的文件列表。", + "manifest": { + "ready": "{count, plural, other {此发布包含 # 个文件。支持的书籍文件可以导入。}}", + "noSupported": "此发布没有直接支持的书籍文件,无法发送。", + "contentsUnknown": "该发布打包为压缩档(RAR、ZIP 或 7z)。BookOrbit 会在下载后解压,因此目前还不知道其内容。", + "multipleBooks": "这个发布包含 {count} 本独立的书。下载完成后会询问你要导入哪一本。", + "multiPartBook": "{count, plural, other {这个发布是由 # 个文件组成的一本书,将作为一本书一起导入。}}", + "metadataUnavailable": "这是一个磁力链接。在 BT 客户端从种子群获取到元数据之前,无法知道其文件列表。", + "usenetMetadataUnavailable": "这是一个 Usenet 发布。在 NZBGet 下载并完成后期处理之前,无法确定其最终文件列表。", + "bookFile": "书籍文件", + "extraFile": "附加", + "truncated": "显示 {total} 个文件中的 {shown} 个。", + "untitledUnit": "无标题", + "unitFiles": "{count, plural, other {# 个文件}}", + "unitsTruncated": "显示 {total} 本书中的 {shown} 本。", + "ignored": "{count, plural, other {忽略 # 个示例和填充文件。}}", + "mediaKind": { + "ebook": "电子书", + "audiobook": "音频簿", + "comic": "漫画" + } + }, + "manual": "改为粘贴链接", + "manualTorrent": "改用磁力链接或 .torrent 文件", + "indexer": "索引器", + "size": "大小", + "seeders": "做种人数", + "language": "语言", + "seederCountPlural": "{count, plural, other {# 个做种人数}}", + "seederCountUnknown": "做种人数未知", + "format": "格式", + "files": "文件", + "fileLayout": { + "single": "列出单个文件", + "multi": "列出多个文件" + }, + "fileCount": "{count, plural, other {# 个文件}}", + "audio": "音频", + "bitrateAtLeast": "{rate}k+", + "channels": { + "mono": "单声道", + "stereo": "立体声" + }, + "chapterCountPlural": "{count, plural, other {# 章}}", + "durationHm": "{hours} 小时 {minutes} 分", + "durationM": "{minutes} 分", + "freeleech": "Freeleech", + "vipOnly": "仅 VIP", + "hideVipOnly": "隐藏仅 VIP 发布", + "noneMatchedProfile": "这里没有任何发布符合你为该媒体类型配置的配置文件,因此它们都不会被自动下载。你仍可以手动发送一个。要放宽条件,可以在现有层级下方添加一个条件更少的层级。", + "profileMismatch": { + "summary": "{count, plural, other {找到了 # 个发布,但自动下载会跳过它们,因为它们都不匹配 {medium} 配置文件的任何层级。}}评分与配置文件规则是两项独立的检查。你仍可以点击发送。", + "review": "检查 {medium} 配置文件", + "row": "自动下载会跳过这个发布。最接近的层级:{tier}。{reasons}", + "failures": { + "formatUnknown": "{source} 未提供格式;此层级要求 {expected}。", + "format": "格式为 {actual};此层级要求 {expected}。", + "fileLayoutUnknown": "{source} 未提供文件数量;此层级要求 {expected}。", + "fileLayout": "文件布局为 {actual};此层级要求 {expected}。", + "bitrate": "码率为 {actual} kbps;此层级要求至少 {expected} kbps。", + "channels": "声道为 {actual};此层级要求 {expected}。", + "languageUnknown": "{source} 未提供语言;此层级要求 {expected}。", + "language": "语言为 {actual};此层级要求 {expected}。", + "source": "此来源不在该层级包含的来源中。", + "seeders": "这个发布有 {actual} 个做种人数;此层级要求至少 {expected} 个。", + "sizeUnknown": "{source} 未提供大小;此层级允许最大 {expected}。", + "size": "大小为 {actual};此层级允许最大 {expected}。", + "freeleech": "此层级要求 Freeleech。", + "vipOnly": "此层级排除仅 VIP 的发布。" + } + }, + "alreadyGrabbed": "已抓取过", + "freeleechLabel": "Freeleech", + "published": "发布时间", + "scoreLabel": "匹配评分 {score} / 100", + "scoreBreakdown": "这个发布的评分构成", + "whyThisScore": "评分依据", + "failures": { + "unauthorized": "登录已过期", + "throttled": "已达速率限制", + "timeout": "已超时", + "unreachable": "无法连接", + "unsupportedMedium": "不收录这类书", + "error": "搜索失败" + }, + "reasons": { + "isbnMatch": "ISBN 匹配", + "titleMatch": "书名匹配", + "authorMatch": "书名和作者匹配", + "preferredFormat": "偏好的格式 {detail}", + "knownFormat": "格式 {detail}", + "unknownFormat": "未提供格式", + "expectedSize": "大小合理", + "suspiciousSize": "大小可疑 {detail}", + "seeders": "{detail} 个做种人数", + "freeleech": "Freeleech", + "likelySeveralBooks": "{detail} 个文件,可能是多本书" + }, + "errors": { + "loadFailed": "无法搜索发布" + }, + "backToRequest": "返回请求", + "bestMatch": "最佳匹配", + "flags": "标记", + "score": "评分", + "release": "发布", + "send": "发送", + "tableCaption": "发布(按评分排序)", + "onlyBestMatch": "这是唯一匹配的发布。", + "tiedWithBest": "{count, plural, other {# 个发布评分相同}}", + "inspectionFailedHint": "它没有被发送到下载客户端。请重试,或改用粘贴链接。", + "inspectionFailedHintGeneric": "它没有被发送到下载客户端。请重试,或选择另一个发布。", + "mediumUncovered": "没有来源收录这类书。", + "mediumUncoveredHint": "你启用的索引器都没有收录它。添加一个收录的,或自行粘贴链接。", + "noSourcesConfigured": "尚未设置任何搜索源。", + "noSourcesEnabled": "所有搜索源均已关闭。", + "noSourcesConfiguredHint": "没有执行搜索。请添加索引器或安装来源插件,或自行粘贴发布链接。", + "noSourcesEnabledHint": "没有执行搜索。请重新开启一个,或自行粘贴发布链接。", + "noSourcesAskAdmin": "没有执行搜索。请管理员设置搜索源,或自行粘贴发布链接。", + "addSource": "添加来源", + "reviewSources": "检查来源设置", + "protocol": { + "torrent": "Torrent", + "usenet": "Usenet", + "direct": "直接下载", + "directPill": "直连" + } + }, + "seed": { + "title": "下载客户端", + "automated": "这个发布由 BookOrbit 自动挑选。", + "loading": "正在读取下载客户端……", + "loadFailed": "无法连接到这条请求的下载客户端。", + "notInClient": "下载客户端中已没有这个种子。", + "state": "状态", + "seeding": "做种中", + "stopped": "已停止", + "client": "客户端", + "ratio": "分享率", + "time": "做种时间", + "uploaded": "已上传", + "hours": "{value} 小时", + "ofGoal": "{value} / {goal}", + "deleteFiles": "同时删除已下载的文件", + "remove": "从客户端移除", + "removeHint": "BookOrbit 绝不会自行停止做种。无论如何,导入的书都会留在你的书库中。", + "confirm": { + "title": "移除这个种子?", + "description": "种子将停止做种。已下载的文件保留在磁盘上。", + "descriptionWithFiles": "种子将停止做种,其已下载的文件会被删除。导入的书仍保留在你的书库中。" + } + }, + "pipeline": { + "label": "进度", + "steps": { + "asked": "已发起", + "approved": "已批准", + "release": "找到发布", + "downloading": "下载中", + "filed": "已入库" + }, + "summary": { + "waiting": "等待于:{step}", + "progress": "当前进行到:{step}", + "done": "已入库到你的书库", + "failed": "在以下步骤因失败停止:{step}", + "stopped": "已停止于:{step}" + } + }, + "density": { + "label": "列表密度", + "comfortable": "舒适", + "compact": "紧凑" + }, + "drawer": { + "label": "请求详情", + "description": "请求本身、它所处的阶段,以及尚待做出的决定。", + "previous": "上一条请求", + "next": "下一条请求", + "position": "第 {position} 条,共 {total} 条", + "shortcuts": "J / K 移动,A 批准,Esc 关闭" + }, + "table": { + "caption": "书籍请求,以及各自所处的阶段", + "cover": "封面", + "title": "书名", + "mediaKind": "格式", + "requestedBy": "请求人", + "age": "等待时长", + "state": "状态", + "outcome": "结果", + "actions": "操作", + "selectAll": "选择所有等待批准的请求", + "selectRow": "选择 {title}", + "toggleDetail": "查看 {title} 的处理过程", + "release": "发布", + "decidedBy": "决定人", + "decisionNote": "决定备注", + "requestNote": "请求备注", + "openDetail": "打开完整详情" + }, + "confirm": { + "cancelDownloadTitle": "取消这次下载?", + "cancelDownloadDescription": "正在进行的传输会停止,请求保持打开,以便选择另一个发布。客户端托管的数据会保留;直连下载的暂存文件会被删除。", + "cancelTitle": "停止这条请求?", + "cancelDescription": "请求将转为已取消。等待它的人将拿不到这本书。", + "cancelDescriptionWithDownload": "正在进行的传输会停止。下载客户端中的数据会保留;直连下载的暂存文件会被删除。", + "deleteTitle": "删除这条请求?", + "deleteDescription": "请求以及谁发起过它的记录将对所有人永久删除。仍在做种的种子会从下载客户端移除,但其文件会保留。直连下载的暂存文件会自动清理。如果只是想让它从你自己的列表里消失,请改用隐藏。", + "discardImportTitle": "丢弃这次导入?", + "discardImportDescription": "下载的文件将从 Book Dock 移除,请求会被标记为失败。种子会继续做种;如果不想让它继续,请单独停止。", + "leaveTitle": "退出这条请求?", + "leaveDescription": "你将不再关注它,也不再收到它的通知。发起请求的人不受影响,请求仍归其所有。", + "rejectDescription": "所有等待这些请求的人都会收到被拒绝的通知。不会下载任何内容。" + }, + "outcome": { + "filedIn": "已入库到 {library} {time}", + "filed": "已入库 {time}", + "rejected": "已拒绝 {time}", + "cancelled": "已取消 {time}", + "awaitingApproval": "等待批准", + "awaitingReview": "等待人工检查", + "failedUnknown": "已停止,索引器未给出原因", + "atStage": { + "asked": "刚刚发起", + "approved": "已批准,尚未搜索", + "release": "正在查找发布", + "downloading": "正在下载发布", + "filed": "正在入库" + } + }, + "handback": { + "AUTOMATION_DISABLED": "自动抓取已关闭,因此这条需要人工挑选发布", + "NO_DESTINATION": "这条请求没有目标库,因此这本书无处入库", + "ATTEMPT_LIMIT": "自动满足在 {attempts} 次尝试后放弃", + "SEARCH_FAILED": "无法搜索发布:{detail}", + "NO_SOURCES_CONFIGURED": "尚未设置任何搜索源,因此这条请求没有执行搜索", + "NO_SOURCES_ENABLED": "所有搜索源均已关闭,因此这条请求没有执行搜索", + "MEDIUM_UNCOVERED": "没有已启用的搜索源收录这类书,因此这条请求没有执行搜索", + "PROFILE_EXCLUDED_ALL": "没有发布符合该媒体类型的配置文件,因此这条需要人工挑选发布", + "ALL_TRIED": "所有够格抓取的发布都已经试过,因此这条需要人工挑选发布", + "BELOW_SCORE_FLOOR": "没有任何发布达到 {floor} 分,因此这条需要人工挑选发布", + "ALL_BLOCKED": "所有够格抓取的发布都因之前的失败被排除,因此这条需要人工挑选发布", + "ABANDONED": "没有挑选任何发布,因此这次下载没有开始" + }, + "submitError": { + "SUBMIT_TITLE_REQUIRED": "请求之前请先填写书名", + "SUBMIT_SELF_FULFIL_FORBIDDEN": "你不被允许满足自己发起的请求", + "SUBMIT_LIBRARY_FORBIDDEN": "你无权访问那个库", + "SUBMIT_FOLDER_NEEDS_LIBRARY": "请先选择目标库,再选择文件夹", + "SUBMIT_FOLDER_NOT_IN_LIBRARY": "该文件夹不属于目标库", + "SUBMIT_DEFAULT_LIBRARY_UNREACHABLE": "请选择一个你可以访问的目标库:本实例的默认库不在其中", + "SUBMIT_DESTINATION_REQUIRED": "你的请求会在提交时立即批准,因此请选择这本书应归入的库", + "SUBMIT_SELF_SERVE_LIMIT": "请先完成或取消一些下载:同时进行的下载最多 {limit} 个", + "SUBMIT_ON_BEHALF_FORBIDDEN": "你不被允许替其他人发起书籍请求", + "SUBMIT_ON_BEHALF_UNKNOWN_USER": "无法为该用户发起书籍请求" + }, + "actionError": { + "BOOK_REQUEST_NOT_PENDING": "只有待处理的请求支持此操作;该请求当前为{status}", + "BOOK_REQUEST_NOT_CANCELLABLE": "处于{status}状态的请求已无法取消", + "BOOK_REQUEST_DESTINATION_REQUIRED": "批准此请求前请先选择目标库", + "BOOK_REQUEST_ACTION_FORBIDDEN": "你不被允许对这条请求执行 {action} 操作", + "BOOK_REQUEST_STALE_TRANSITION": "操作执行期间这条请求发生了变化。它当前为{status}。" + }, + "bulk": { + "selected": "{count, plural, other {已选择 # 条请求}}", + "approveSelected": "{count, plural, other {批准全部 # 条请求}}", + "clear": "清除", + "dismissSelected": "{count, plural, other {隐藏全部 # 条请求}}", + "rejectSelected": "{count, plural, other {拒绝全部 # 条请求}}", + "rejectNoteLabel": "原因(可选)", + "rejectNotePlaceholder": "拒绝这些请求的原因", + "rejectTitle": "拒绝 {count, plural, other {# 条请求}}?", + "rejectConfirm": "拒绝" + }, + "chooser": { + "title": "选择要导入哪本书", + "hint": "这个发布实际包含 {count} 本独立的书。下载已完成;请挑选被请求的那一本,其余的会保留原处。", + "untitled": "无标题", + "files": "{count, plural, other {# 个文件}}", + "import": "导入这本书", + "mediaKind": { + "ebook": "电子书", + "audiobook": "音频簿", + "comic": "漫画" + } + }, + "review": { + "title": "为什么在等待", + "scoreShort": "导入的文件针对这条请求的得分为 {score},低于自动入库所需的 {threshold}。", + "scoreClears": "导入的文件得分为 {score},达到了自动入库所需的 {threshold}。", + "verificationOff": "导入检查已关闭,因此这个文件从未与请求进行过比对评分。", + "reason": { + "isbn_match": "它的 ISBN 正是被请求的那一个。", + "above_threshold": "看起来就是要的那本书。", + "below_threshold": "请检查下面的字段,判断它是否是正确的书。", + "author_mismatch": "书名接近,但作者是另一个人。", + "no_title": "文件中没有可读的书名,因此无法比对。" + }, + "field": { + "title": "书名", + "authors": "作者", + "isbn13": "ISBN" + }, + "verdict": { + "match": "匹配", + "mismatch": "不匹配", + "unknown": "未比对" + }, + "requested": "请求的", + "imported": "已导入", + "absent": "请求和文件都没有这一项。", + "notSet": "未设置", + "filesTitle": "实际收到的文件", + "fileCount": "{count, plural, other {# 个文件}}", + "role": { + "cover": "封面", + "metadata": "元数据", + "supplement": "附加文件" + }, + "fileAnyway": "仍然入库", + "fileAnywayHint": "将其入库到目标库,并把请求标记为可用,与评分通过时的效果完全相同。", + "noDestination": "这条请求的目标库中还没有文件夹,因此这本书暂时无处入库。", + "openDock": "打开 Book Dock", + "missingEntry": "这条请求所等待的文件已不在 Book Dock 中。它已被手动入库或丢弃,这里没有剩余内容需要审查。", + "missingEntryNext": "如果这本书已在你的书库中,请在下方将它与这条请求关联关闭。如果还没有,请取消请求并搜索另一个发布。", + "filed": "已入库到你的书库。", + "fileFailed": "无法入库这次导入", + "discard": "丢弃这次导入", + "discardHint": "当发布实际是错误的书时使用。文件将从 Book Dock 移除,请求会被标记为失败。" + }, + "sources": { + "noneConfigured": "尚未设置任何搜索源。", + "allDisabled": "所有搜索源均已关闭。", + "noneConfiguredHint": "请求可以入库,但在你添加索引器或安装来源插件之前,不会为它们执行搜索。", + "allDisabledHint": "请求可以入库,但在你重新开启一个源之前,不会为它们执行搜索。", + "askAdmin": "请求可以入库,但在管理员设置搜索源之前,不会为它们执行搜索。", + "addSource": "添加来源", + "reviewSources": "检查来源设置" + }, + "selfServeBadge": "自助获取", + "selfServeBadgeHint": "由请求人直接下载,无需批准环节" + }, "collection": { + "visibleToAll": "对所有用户可见", + "visibleToAllHint": "所有用户都能看到这个收藏夹,但只有您可以更改其中的书籍", "dialog": { "name": "名称", "icon": "图标", - "iconPlaceholder": "选择图标…", + "iconPlaceholder": "选择图标……", "nameRequired": "名称是必填项", "iconRequired": "选择一个图标", - "creating": "创建中…", + "creating": "创建中……", "createFailed": "创建收藏失败" }, "createDialog": { "title": "新建收藏", + "podcastTitle": "新建播客合集", "namePlaceholder": "例如:收藏夹" }, "editDialog": { @@ -5492,15 +7450,15 @@ "syncToKoboHint": "此收藏中的书籍将出现在您的 Kobo 设备上", "deleteCollection": "删除收藏", "confirmDelete": "确认?", - "deleting": "删除中...", - "saving": "保存中…", + "deleting": "删除中……", + "saving": "保存中……", "deleted": "“{name}” 已删除", "updateFailed": "更新收藏失败", "deleteFailed": "删除收藏失败" }, "addToSheet": { "title": "管理收藏集", - "selectedCount": "{count, plural, =0 {没有选择任何书} one {选择一本书} other {# 选择的书}}", + "selectedCount": "{count, plural, =0 {没有选择任何书} other {# 选择的书}}", "newCollection": "新建收藏", "namePlaceholder": "收藏名称", "create": "创建", @@ -5512,13 +7470,13 @@ "inCollection": "在此收藏中", "allInCollection": "本合集内共计 {total} 项", "partialInCollection": "本合集共 {total} 项,当前展示 {partial} 项", - "bookCount": "{count, plural, =0 {没有书籍} one {一张书} other {# 书}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", "loadFailed": "加载收藏失败", - "createdAndAdded": "{count, plural, =0 {创建了 \"{name}\" 且没有新增任何书籍} one {创建了 \"{name}”并添加了一本书} other {创建了“{name}”并添加了# 本书}}", + "createdAndAdded": "{count, plural, =0 {创建了 \"{name}\" 且没有新增任何书籍} other {创建了“{name}”并添加了# 本书}}", "createdButAddFailed": "已创建 \"{name}\",但书籍添加失败", "createFailed": "创建收藏失败", - "addedNewWithExisting": "{count, plural, =0 {添加一本新书到 \"{name}\" ({alreadyHad} 已经存在)} one {添加一本新书到 \"{name}\" ({alreadyHad} 已经有)} other {添加# 新书到\"{name}\" ({alreadyHad} 已经有)}}", - "addedToCollection": "{count, plural, =0 {添加没有书籍到 \"{name}\"} one {添加一本书到 \"{name}\"} other {添加# 书籍到 \"{name}\"}}", + "addedNewWithExisting": "{count, plural, =0 {添加一本新书到 \"{name}\" ({alreadyHad} 已经存在)} other {添加# 新书到\"{name}\" ({alreadyHad} 已经有)}}", + "addedToCollection": "{count, plural, =0 {添加没有书籍到 \"{name}\"} other {添加# 书籍到 \"{name}\"}}", "addFailed": "添加到收藏失败", "removedFromCollection": "{count, plural, =0 {未从\"{name}\"移除任何书籍} one {已从\"{name}\"移除1本书} other {已从\"{name}\"移除#本书籍}}", "removeFailed": "从收藏中删除失败" @@ -5526,14 +7484,14 @@ }, "components": { "appHeader": { - "searchAllBooks": "搜索全部书籍…", - "searching": "搜索中...", + "searchAllBooks": "搜索全部书籍……", + "searching": "搜索中……", "noResults": "没有结果", - "loadingMore": "加载更多…", + "loadingMore": "加载更多……", "loadMore": "加载更多({loaded}/{total})", - "allMatchesShown": "{count, plural, =0 {显示所有1场比赛} one {显示所有1场比赛} other {显示所有#场比赛}}", - "bookCount": "{count, plural, =0 {没有书籍} one {# 书} other {# 书}}", - "fileCount": "{count, plural, =0 {没有文件} one {# 文件} other {# 文件}}", + "allMatchesShown": "{count, plural, =0 {显示所有1场比赛} other {显示所有#场比赛}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", + "fileCount": "{count, plural, =0 {没有文件} other {# 文件}}", "uploadedToast": "成功上传 {uploaded} 项", "uploadFailedToast": "{failed} 上传失败", "uploadPartialToast": "成功上传 {uploaded} 项,{failed} 项上传失败", @@ -5552,7 +7510,7 @@ "whatsNew": "新功能", "documentation": "文件", "help": "帮助", - "starOnGithub": "Star on GitHub", + "starOnGithub": "在 GitHub 上加星", "new": "新的", "newReleaseNotes": "有新版本备注", "account": "账户", @@ -5582,8 +7540,16 @@ "newCollection": "新建收藏", "noCollections": "尚无收藏", "newReleaseNotes": "有新版本备注", + "requestBadge": { + "allActive": "{count, plural, other {全部用户共有 # 个进行中的请求}}", + "mineActive": "{count, plural, other {您有 # 个进行中的请求}}" + }, "support": "支持 BookOrbit", "supportAria": "支持 Ko-Fi 的 BookOrbit", + "appLinks": { + "ios": "获取 iOS 应用", + "android": "Android 应用即将推出" + }, "sectionHeader": { "add": "添加", "showAll": "显示所有", @@ -5597,14 +7563,38 @@ "clearFilter": "清除过滤器", "filterSummary": "共 {total} 条,已展示 {shown} 条", "filterLibraries": "过滤库", - "filterLibrariesPlaceholder": "筛选书库…", + "filterLibrariesPlaceholder": "筛选书库……", "filterSmartScopes": "筛选智能书架", - "filterSmartScopesPlaceholder": "筛选智能书架…", + "filterSmartScopesPlaceholder": "筛选智能书架……", "filterCollections": "筛选收藏", - "filterCollectionsPlaceholder": "筛选合集…", + "filterCollectionsPlaceholder": "筛选合集……", "seeAllLibraries": "查看全部书库({count})", "seeAllSmartScopes": "查看全部智能书架({count})", "seeAllCollections": "查看全部合集({count})", + "podcasts": "播客", + "newPodcastLibrary": "新建播客媒体库", + "noPodcastLibraries": "还没有播客媒体库", + "filterPodcastLibraries": "筛选播客媒体库", + "filterPodcastLibrariesPlaceholder": "筛选播客媒体库……", + "seeAllPodcastLibraries": "查看全部播客媒体库({count})", + "podcastScopes": "播客智能播放列表", + "newPodcastScope": "新建播客智能播放列表", + "noPodcastScopes": "还没有播客智能播放列表", + "filterPodcastScopes": "筛选播客智能播放列表", + "filterPodcastScopesPlaceholder": "筛选播客智能播放列表……", + "seeAllPodcastScopes": "查看全部播客智能播放列表({count})", + "podcastCollections": "播客合集", + "newPodcastCollection": "新建播客合集", + "noPodcastCollections": "还没有播客合集", + "filterPodcastCollections": "筛选播客合集", + "filterPodcastCollectionsPlaceholder": "筛选播客合集……", + "seeAllPodcastCollections": "查看全部播客合集({count})", + "queue": "队列", + "mode": { + "books": "书籍", + "podcasts": "播客", + "switcherAria": "在书籍和播客之间切换" + }, "updateAvailable": "发现 {version} 版本可更新", "updateTooltip": "{version} 版本更新可用", "openUpdateRelease": "在 GitHub 上打开 {version} 版本发布页", @@ -5616,9 +7606,17 @@ "lifted": "已提起 \"{name}\",共 {total} 项,当前位次 {position}。可使用方向键移动。", "moved": "\"{name}\" 位于第 {position} 位,总计 {total} 项", "dropped": "\"{name}\" 已放置至第 {position} 位(共 {total} 项)", - "cancelled": "排序操作已取消,\"{name}\" 恢复至第 {position} 位(共 {total} 项)", + "cancelled": "排序操作已取消,“{name}” 恢复至第 {position} 位(共 {total} 项)。", "filteredHint": "清除过滤器以重新排序" - } + }, + "podcastImportProgress": "已处理 {processed} / {total} 个文件", + "podcastImportCounting": "正在统计文件…", + "playlists": "智能播放列表", + "newPlaylist": "新建智能播放列表", + "noPlaylists": "还没有智能播放列表", + "filterPlaylists": "筛选智能播放列表", + "filterPlaylistsPlaceholder": "筛选智能播放列表……", + "seeAllPlaylists": "查看全部智能播放列表({count})" }, "selectionActionBar": { "setReadingStatus": "设置阅读状态", @@ -5658,7 +7656,9 @@ "displayDescription": "调整封面大小、网格间距和视图显示选项。", "columnVisibilityHint": "使用表头中的列可见面板来显示或隐藏列。", "columnVisibilityMobileHint": "列可见性可以从表头进行管理。", - "searchPlaceholder": "搜索书名、作者、丛书、朗读者…", + "searchPlaceholder": "搜索书名、作者、丛书、朗读者……", + "clearSearch": "清除搜索", + "closeSearch": "关闭搜索", "mobileSearch": { "description": "按标题、作者、序列号或语音搜索项目。", "done": "完成" @@ -5678,17 +7678,27 @@ "columnsHint": "使用表头中的列可见面板来显示或隐藏列。", "coverShape": "封面形状", "circle": "圆圈", - "square": "方形" + "square": "方形", + "rowDensity": "行高", + "densityCompact": "紧凑", + "densityComfortable": "舒适", + "densityRoomy": "宽松", + "coverFallback": "缺失肖像时使用书籍封面" + }, + "viewModes": { + "grid": "网格视图", + "list": "列表视图", + "table": "表格视图" } }, "iconPicker": { "clearSelectionAria": "清除选中的图标", - "searchLucide": "搜索 Lucide 图标…", - "searchCustom": "搜索自定义图标…", - "chooseIcon": "选择图标…", + "searchLucide": "搜索 Lucide 图标……", + "searchCustom": "搜索自定义图标……", + "chooseIcon": "选择图标……", "selectIcon": "选择图标", "customTab": "自定义", - "searching": "搜索中…", + "searching": "搜索中……", "noIconsMatch": "未找到匹配 \"{query}\" 的图标", "typeToSearch": "输入搜索所有图标", "noCustomIcons": "没有自定义图标上传", @@ -5696,9 +7706,14 @@ }, "entityNotFound": { "title": "未找到 {entity}", - "description": "该 {entity} 不存在或已被删除", + "description": "该 {entity} 不存在或已被删除。", "goBack": "后退" }, + "media": { + "volume": "音量", + "mute": "静音", + "unmute": "取消静音" + }, "themePicker": { "light": "亮色的", "dark": "深色", @@ -5723,13 +7738,23 @@ }, "ui": { "sidebar": { - "title": "Sidebar", + "title": "侧边栏", "mobileDescription": "显示移动侧边栏。", - "toggle": "切换侧边栏" + "toggle": "切换侧边栏", + "collapse": "收起侧边栏", + "expand": "展开侧边栏", + "open": "打开侧边栏", + "close": "关闭侧边栏" }, "chipInput": { "typeAndEnter": "键入并按回车键添加", - "pressEnter": "按回车键添加" + "pressEnter": "按回车键添加", + "remove": "移除 {value}" + }, + "tokenSelect": { + "remove": "移除 {value}", + "noMatches": "无匹配", + "showOptions": "显示选项" } }, "entityIndex": { @@ -5737,7 +7762,8 @@ "sort": { "custom": "自定义顺序", "name": "名称", - "bookCount": "书籍计数" + "bookCount": "书籍计数", + "showCount": "显示数量" }, "ascending": "升序", "descending": "降序", @@ -5746,15 +7772,39 @@ "noMatches": "没有匹配", "noMatchesHint": "尝试一个不同的搜索词。", "bookCount": "书籍数量:{count}", + "showCount": "显示:{count}", "librariesEmptyHint": "创建一个库开始添加书籍。", + "podcastLibrariesEmptyHint": "创建一个播客媒体库,开始订阅节目。", "smartScopesEmptyHint": "智能书架保存您经常使用的一组过滤器。", "collectionsEmptyHint": "收藏群组你手上挑选的书籍。" + }, + "legalNotices": { + "about": "关于 BookOrbit", + "trigger": "法律声明", + "title": "关于 BookOrbit", + "description": "BookOrbit 的署名、许可与源代码信息。", + "poweredBy": "由 BookOrbit 驱动", + "originalDevelopment": "本软件包含最初以 BookOrbit 之名开发的内容。", + "copyright": "版权所有 (C) 2025-2026 neon。", + "contributors": "其他版权由各 BookOrbit 贡献者持有。", + "licenseSummary": "本软件依据 GNU Affero 通用公共许可证第 3 版(仅此版本)及附加条款授权。本软件不提供任何保证。您可以在上述条款下重新分发和修改本软件。", + "sourceCode": "源代码", + "license": "AGPLv3 许可证", + "additionalTerms": "附加条款" + }, + "confirmDialog": { + "typeToConfirm": "输入“{phrase}”以确认" + }, + "formSheet": { + "discardTitle": "放弃更改?", + "discardDescription": "未保存的更改将会丢失。", + "discardConfirm": "放弃" } }, "customIcons": { "dialogTitle": "上传自定义图标", "dialogDescription": "在将名字添加到您的书库之前审查这些名字。", - "readingFiles": "正在读取文件…", + "readingFiles": "正在读取文件……", "dropPrompt": "拖放SVG文件或点击浏览", "fileLimit": "单次最多上传 {max} 个文件,单文件上限 128KB", "namePlaceholder": "名称", @@ -5766,7 +7816,7 @@ "skipThisOne": "跳过这一个", "readyToUpload": "{count} 个文件待上传", "noIconsStaged": "尚未暂存图标", - "uploading": "上传中…", + "uploading": "上传中……", "upload": "上传", "uploadCount": "上传 {count} 个", "onlySvgSupported": "仅支持 SVG 文件", @@ -5796,6 +7846,7 @@ "empty": { "continueReading": "还没有正在进行中的书籍。开始阅读一本以查看。", "continueListening": "还没有正在进行的音频书籍。开始收听一下以查看。", + "continuePodcasts": "还没有收听中的播客单集。开始收听一集,它就会出现在这里。", "wantToRead": "尚未标记要阅读的书籍。", "upNextInSeries": "还没有接下来的序列选择。完成音量到下一个音量。", "recentlyAdded": "您的书库中还没有书籍。", @@ -5827,6 +7878,7 @@ "recentlyAdded": "最近添加", "continueReading": "继续阅读", "continueListening": "继续收听中", + "continuePodcasts": "继续收听播客", "wantToRead": "想读", "upNextInSeries": "上一系列中的下一个", "random": "发现新鲜事", @@ -5840,6 +7892,14 @@ "twoColumns": "双列排布", "twoColumnsDescription": "每行展示两个书架。" }, + "libraryScope": { + "title": "仪表盘使用的库", + "description": "选择哪些库为该仪表盘提供书籍和阅读数据。", + "allLibraries": "所有可访问的库", + "summaryNone": "未选择任何库", + "summaryCount": "{count, plural, other {# 个库}}", + "required": "请至少选择一个库。" + }, "shelfRows": { "label": "书籍行数", "option": "{count, plural, one {共1行书} other {共#行书}}", @@ -5868,12 +7928,12 @@ "diversityScore": { "title": "多样性得分", "notEnoughData": "阅读至少3本书以查看您的多样性分数", - "booksAnalyzed": "{count, plural, =0 {没有分析过的书籍} one {# 分析过的书} other {# 分析过的书}}", + "booksAnalyzed": "{count, plural, =0 {没有分析过的书籍} other {# 分析过的书}}", "subScores": { - "genre": "流派数", + "genre": "体裁", "author": "作者", - "era": "Era", - "language": "Lang" + "era": "年代", + "language": "语言" } }, "highlightOfTheDay": { @@ -5895,7 +7955,7 @@ "title": "长等待", "empty": "没有正在等待的书籍。你已经开始了一切!", "daysWaiting": "等待天数", - "pages": "{count, plural, =0 {没有页面} one {# 页面} other {# 页面}}", + "pages": "{count, plural, =0 {没有页面} other {# 页面}}", "startReading": "开始阅读" }, "monthlyChallenge": { @@ -5914,7 +7974,7 @@ "readingDna": { "title": "阅读 DNA", "notEnoughData": "阅读至少5本书解锁你的阅读DNA", - "basedOn": "{count, plural, =0 {基于没有书籍} one {基于# 本} other {基于# 本}}", + "basedOn": "{count, plural, =0 {基于没有书籍} other {基于# 本}}", "traits": { "length": "时长", "variety": "多样性", @@ -5929,21 +7989,21 @@ "setGoal": "设置目标", "booksPerYear": "每年的书", "ofGoal": "目标值:{goal}", - "percentComplete": "{percentage}% complete", + "percentComplete": "已完成 {percentage}%", "editGoal": "编辑目标" }, "readingRhythm": { "title": "阅读节奏", "empty": "开始阅读,生成你的阅读节奏数据", - "activeDays": "{count, plural, =0 {没有活动日} one {# 活动日} other {# 活动日}}", + "activeDays": "{count, plural, =0 {没有活动日} other {# 活动日}}", "consistency": "活跃天数 {activeDays},坚持率 {percent}%", "avgPerDay": "日均阅读 {time}" }, "readingStreak": { "title": "阅读连续记录", "empty": "咱今儿就读起来,把那个连续天数给它练起来", - "streakLabel": "{count, plural, =0 {坚持天数} one {坚持天数} other {坚持天数}}", - "best": "{count, plural, =0 {最佳: # 天} one {最佳: # 天} other {最佳: # 天}}", + "streakLabel": "{count, plural, =0 {坚持天数} other {坚持天数}}", + "best": "{count, plural, =0 {最佳: # 天} other {最佳: # 天}}", "lastSevenDays": "过去 7 天" }, "yearProjection": { @@ -5967,7 +8027,7 @@ "deleteFailed": "删除失败", "setDefaultFailed": "设置默认值失败", "setAsDefault": "设置为默认", - "saving": "保存中…", + "saving": "保存中……", "update": "更新", "create": "创建", "deleteConfirm": "确定删除 \"{name}\"?该操作不可撤销。", @@ -5990,7 +8050,7 @@ "newTitle": "新建提供商", "editTitle": "编辑提供商", "name": "名称", - "namePlaceholder": "e.g. Gmail", + "namePlaceholder": "例如 Gmail", "host": "主机", "port": "端口", "username": "用户名", @@ -6059,13 +8119,13 @@ "newTitle": "新建群组", "name": "群组名称", "namePlaceholder": "例如:Book Club", - "creating": "创建中…", + "creating": "正在创建……", "empty": "尚无群组。创建群组一次发送到多个收件人。", - "memberCount": "{count, plural, =0 {没有成员} one {一个成员} other {# 成员}}", + "memberCount": "{count, plural, =0 {没有成员} other {# 成员}}", "deleteTooltip": "删除组", "noMembers": "尚无成员。", "removeMember": "删除", - "selectRecipient": "请选择收件人…", + "selectRecipient": "请选择收件人……", "add": "添加", "addMember": "添加成员", "allRecipientsInGroup": "所有收件人已经在此组中。", @@ -6130,7 +8190,7 @@ }, "send": { "title": "通过电子邮件发送", - "bookCount": "{count, plural, =0 {没有书籍} one {一张书} other {# 书}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", "recipients": "收件人", "noRecipients": "未配置收件人。在电子邮件设置中添加一个。", "groups": "群組", @@ -6143,20 +8203,20 @@ "template": "模板", "default": "默认设置", "send": "发送", - "sending": "发送中…", - "queued": "{count, plural, =0 {没有邮件队列} one {有一封邮件队列} other {# 电子邮件队列}}", + "sending": "发送中……", + "queued": "{count, plural, =0 {没有邮件队列} other {# 电子邮件队列}}", "failed": "发送失败" } }, "errors": { - "network": "Could not reach BookOrbit. Check your connection, then try again.", + "network": "无法连接到 BookOrbit。请检查网络连接后重试。", "codes": { - "PODCAST_LOCAL_NO_REFRESH": "This show has no feed, so there is nothing to refresh.", - "PODCAST_LOCAL_NO_DOWNLOAD": "This episode is one of your own files, so there is nothing to download. Your copy is already the only one.", - "PODCAST_LOCAL_FILE_NOT_REMOVABLE": "This episode is one of your own files, so BookOrbit will not delete it. Remove it from the folder yourself.", - "PODCAST_LOCAL_MEDIA_MISSING": "The only copy of this episode is no longer on disk, so it cannot be played.", - "PODCAST_LOCAL_FOLDER_EMPTY": "This folder holds no audio BookOrbit can import, so it cannot become a show.", - "PODCAST_STORAGE_FULL": "This podcast library is out of storage. Free some space or raise its quota, then try again. Files that belong to local shows are never removed to make room." + "PODCAST_LOCAL_NO_REFRESH": "此播客没有订阅源,没有可刷新的内容。", + "PODCAST_LOCAL_NO_DOWNLOAD": "此单集是您自己的文件,无需下载。您的副本已是唯一一份。", + "PODCAST_LOCAL_FILE_NOT_REMOVABLE": "此单集是您自己的文件,BookOrbit 不会将其删除。请自行从文件夹中移除。", + "PODCAST_LOCAL_MEDIA_MISSING": "此单集的唯一副本已不在磁盘上,无法播放。", + "PODCAST_LOCAL_FOLDER_EMPTY": "此文件夹中没有 BookOrbit 可导入的音频,无法成为播客节目。", + "PODCAST_STORAGE_FULL": "此播客书库的存储空间已用尽。请释放空间或提高配额后重试。本地节目的文件永远不会为腾出空间而被移除。" } }, "hardcover": { @@ -6172,13 +8232,13 @@ "title": "连接", "description": "连接您的硬封面帐户以同步阅读数据。", "connected": "已连接", - "apiToken": "API Token", + "apiToken": "API 令牌", "tokenPlaceholder": "粘贴你的硬封面 API 令牌", "show": "显示", "hide": "隐藏", "findTokenAt": "查找您的令牌在", - "validateToken": "Validate token", - "valid": "Valid ({username})", + "validateToken": "验证令牌", + "valid": "有效({username})", "invalidToken": "无效的令牌", "syncOptions": "同步选项", "syncInfo": "同步运行仅针对未读的书籍。这适用于状态、进度和评级触发器。当同步运行时,这些开关控制。", @@ -6199,7 +8259,7 @@ }, "syncOnStatus": { "title": "状态变化时同步", - "description": "标记书籍为在读、已读等状态时自动同步更新" + "description": "标记书籍为在读、已读等状态时自动同步更新。" }, "syncOnProgress": { "title": "同步进度更新", @@ -6226,33 +8286,33 @@ }, "sync": { "title": "手动同步", - "description": "立即将 {scope} 数据同步至 Hardcover 平台", + "description": "立即将 {scope} 数据同步至 Hardcover 平台。", "scope": { "selected": "选中的书", "eligible": "合格书" }, - "checkingPending": "校验待同步数据中…", - "pendingOf": "总计 {total} 本书,{pending} 本待同步", + "checkingPending": "校验待同步数据中……", + "pendingOf": "总计 {total} 本书,{pending} 本待同步。", "noBooksInScope": "没有同步范围内的书籍。", "allSynced": "所有书籍已经同步。", "lastSyncedLabel": "上次同步", "lastSuccessfulSync": "最后一次成功同步", - "syncing": "同步中…", + "syncing": "同步中……", "progressCount": "书籍同步进度:{synced}/{total}", "unavailable": { "permissionDenied": "您没有使用硬封面同步的权限。", "userDisabled": "同步已暂停在您的硬封面设置。" }, "button": { - "unavailable": "Sync unavailable", + "unavailable": "同步不可用", "syncNow": "立即同步", "syncNowCount": "立即同步({count} 条)" }, "lastSynced": { "justNow": "刚刚", "minutesAgo": "{count} 分钟前完成同步", - "hoursAgo": "{count, plural, =0 {# 小时前} one {# 小时前} other {# 小时前}}", - "daysAgo": "{count, plural, =0 {#天前} one {#天前} other {#天前}}" + "hoursAgo": "{count, plural, =0 {# 小时前} other {# 小时前}}", + "daysAgo": "{count, plural, =0 {#天前} other {#天前}}" } }, "import": { @@ -6263,9 +8323,9 @@ "importProgress": "导入进度", "reviewMatches": "审核匹配", "importReady": "导入已准备好", - "exactMatches": "{count, plural, =0 {没有评论就无法导入精确的匹配} one {# 精确匹配可以导入而不经审查} other {# 精确匹配可以不经审查就导入}}", - "progressAvailable": "{count, plural, =0 {没有进度更新可用} one {# 进度更新可用} other {# 进度更新可用}}", - "progressConflicts": "{count, plural, =0 {没有冲突} one {# 冲突} other {# 冲突}}", + "exactMatches": "{count, plural, =0 {没有评论就无法导入精确的匹配} other {# 精确匹配可以不经审查就导入}}", + "progressAvailable": "{count, plural, =0 {没有进度更新可用} other {# 进度更新可用}}", + "progressConflicts": "{count, plural, =0 {没有冲突} other {# 冲突}}", "unavailable": { "permissionDenied": "您没有使用硬封面同步的权限。", "missingToken": "导入前连接硬封面。", @@ -6284,13 +8344,13 @@ }, "toast": { "importFailed": "导入硬封面读取状态失败", - "imported": "{count, plural, =0 {未读状态导入{progress}} one {# 读取状态已导入{progress}} other {# 读取状态已导入{progress}}}", - "progressUpdates": "{count, plural, =0 {没有进度更新} one {# 进度更新} other {# 进度更新}}" + "imported": "{count, plural, =0 {未读状态导入{progress}} other {# 读取状态已导入{progress}}}", + "progressUpdates": "{count, plural, =0 {没有进度更新} other {# 进度更新}}" } }, "review": { "title": "硬封面进口审查", - "subtitle": "Hardcover 平台共计 {total} 本书籍,匹配成功 {matched} 本", + "subtitle": "Hardcover 平台共计 {total} 本书籍,匹配成功 {matched} 本。", "closeAriaLabel": "关闭导入审核", "searchPlaceholder": "搜索标题或作者", "importProgress": "导入进度", @@ -6298,8 +8358,8 @@ "blank": "空白", "noRows": "没有匹配当前筛选器的行。", "selectRowAriaLabel": "选择 {title}", - "selectionSummary": "已选择 {count} 项:{ready} 项待核验,{reviewed} 项已审核", - "selectedProgress": "{count, plural, =0 {没有进度更新} one {# 进度更新} other {# 进度更新}}", + "selectionSummary": "已选择 {count} 项:{ready} 项待核验,{reviewed} 项已审核。", + "selectedProgress": "{count, plural, =0 {没有进度更新} other {# 进度更新}}", "selectReady": "选择已准备好", "selectPage": "选择页面", "clearPage": "清除页面", @@ -6345,10 +8405,10 @@ "linkedBooks": { "title": "关联书籍", "description": "展示你当前在读的书籍。书籍匹配 Hardcover 平台后,可在此选择不同版本(实体书、电子书、有声书),以此指定阅读进度的同步对象。", - "loading": "书籍加载中…", - "loadError": "书籍加载失败", + "loading": "书籍加载中……", + "loadError": "书籍加载失败。", "retry": "重试", - "empty": "暂无在读书籍", + "empty": "暂无在读书籍。", "untitled": "未命名", "unknownAuthor": "未知作者", "matchMethod": { @@ -6365,11 +8425,11 @@ "notLinked": "暂未关联" }, "unmatchedHint": "该书尚未匹配 Hardcover 平台,下次同步时将自动完成匹配。", - "editionsLoadError": "版本信息加载失败", + "editionsLoadError": "版本信息加载失败。", "viewEditions": "查看版本", - "noEditionsFound": "未查询到对应版本", - "booksTruncated": "仅展示前 {count} 本在读书籍", - "editionsTruncated": "仅展示前 {count} 个版本", + "noEditionsFound": "未查询到对应版本。", + "booksTruncated": "仅展示前 {count} 本在读书籍。", + "editionsTruncated": "仅展示前 {count} 个版本。", "pages": "{count, plural, one {#页} other {#页}}", "isbn": "ISBN:{isbn}", "current": "当前选用", @@ -6414,11 +8474,12 @@ "title": "封面样式", "portrait": "头像", "square": "方形", - "hint": "电子书库或混合库的肖像。只有音频书库的方形。" + "hint": "电子书库或混合库的肖像。只有音频书库的方形。", + "hintSlots": "电子书或混合书库使用纵向,纯有声书书库使用方形。同时有电子书和有声书的书籍在纵向书库中显示书籍封面,在方形书库中显示有声书封面。" }, "icon": { "label": "图标", - "placeholder": "请选择图标…", + "placeholder": "请选择图标……", "selected": "已选择" } }, @@ -6445,7 +8506,16 @@ "noneAdded": "尚未添加文件夹", "runPrescanHint": "在保存前运行预览以验证路径。", "scanning": "正在扫描…", - "prescan": "Prescan" + "prescan": "预扫描", + "local": { + "title": "现有播客文件夹", + "optional": "可选", + "description": "你已在存放播客的文件夹。BookOrbit 会在原处读取它们,绝不重命名、移动或删除其中的任何内容。", + "addTitle": "添加现有播客文件夹", + "addDescription": "直接位于其中的每个文件夹都会成为一个节目。", + "add": "再添加一个文件夹", + "remove": "移除 {folder}" + } }, "scanner": { "scanMode": { @@ -6462,6 +8532,49 @@ "hint": "将每个文件视为单独的书。最适合于每个标题使用一个格式的库。避免如果您的音频簿跨越多个文件。" } }, + "addedAt": { + "title": "添加日期", + "hint": "选择书籍的“添加日期”的含义。此设置对之后导入的书籍生效。", + "options": { + "imported": { + "title": "导入时", + "hint": "BookOrbit 首次导入该书的日期。这是默认选项。" + }, + "file_modified": { + "title": "文件修改时间", + "hint": "文件的最后修改时间(mtime),复制文件时通常会保留。" + }, + "file_created": { + "title": "文件创建时间", + "hint": "文件首次写入磁盘的时间(birthtime)。在不记录创建时间的文件系统上回退为修改时间。" + } + }, + "recompute": "立即重新计算", + "recomputing": "正在重新计算……", + "recomputeHint": "使用此设置更新现有书籍的添加日期。", + "recomputeSaveFirst": "请先保存更改,再重新计算现有书籍。", + "backgroundConfirm": "重新计算现有书籍的日期?此操作在后台运行,您可以关闭此编辑器。文件无法读取的书籍会保留当前日期。", + "progressSummary": "已处理 {total} 中的 {processed} 个:{updated} 个更新,{unchanged} 个不变,{skipped} 个跳过,{failed} 个失败。", + "failedBooksHint": "失败的书籍保留了原日期。请检查文件访问权限,然后再次运行重新计算以重试。", + "jobStatus": { + "running": "正在后台重新计算日期。", + "completed": "日期重新计算已完成。", + "failed": "重新计算在完成前停止。已完成的更改会保留;可以放心再次运行。" + }, + "errors": { + "sourceImported": "重新计算日期前,请先保存文件时间戳来源。", + "alreadyRunning": "此书库已在运行重新计算。", + "busy": "其他重新计算正在运行。请稍后再试。", + "requestFailed": "无法连接到重新计算服务。请关闭并重新打开此编辑器以查看其状态。", + "interrupted": "任务状态已不可用。它可能因服务器重启而中断。可以放心再次运行重新计算。" + }, + "failureSample": "书籍 {bookId}:{reason}", + "failureReasons": { + "file_unavailable": "无法读取内容文件。", + "unsafe_path": "内容文件位于其允许的书库文件夹之外。", + "database_error": "数据库更新失败。" + } + }, "allowedFormats": { "title": "允许的格式", "allowAll": "允许所有", @@ -6471,7 +8584,7 @@ }, "excludePatterns": { "title": "排除图案", - "hintBefore": "扫描时需跳过的通配规则(示例)", + "hintBefore": "扫描时需跳过的通配规则(示例) ", "hintAfter": ")。", "add": "添加", "empty": "没有添加图案。" @@ -6485,7 +8598,9 @@ "formatPriority": { "title": "格式优先级", "hint": "当一本书有多种格式时,最好使用列表中最高的格式。" - } + }, + "moveUp": "上移 {item}", + "moveDown": "下移 {item}" }, "fileWrite": { "maxFileSizeMb": "最大文件大小(MB)", @@ -6540,7 +8655,8 @@ }, "markAsFinished": { "title": "标记为已完成", - "hint": "一本书在达到这个进度百分比时自动标记为“读取”。" + "hint": "一本书在达到这个进度百分比时自动标记为“读取”。", + "invalidThreshold": "完成进度必须在 90% 到 100% 之间。" } }, "schedule": { @@ -6581,7 +8697,7 @@ "selectUser": "选择一个用户…", "grant": "授权", "empty": "没有用户被授予访问权限。", - "loading": "权限配置加载中…", + "loading": "权限配置加载中……", "userSelectAria": "允许访问的用户", "levelSelectAria": "获得补助金的程度", "levels": { @@ -6612,14 +8728,14 @@ "clearFilterAria": "清除文件夹过滤器", "newFolderNamePlaceholder": "新文件夹名称", "create": "创建", - "loading": "文件夹加载中…", + "loading": "文件夹加载中……", "selectCurrent": "选择当前文件夹", "noMatches": "没有匹配的文件夹", "noMatchesHint": "尝试不同的过滤器。", "empty": "此文件夹为空", "emptyHint": "您可以选择当前文件夹或创建一个新文件夹。", "openFolderAria": "打开 {name}", - "selectedCount": "{count, plural, =0 {没有选择任何文件夹} one {# 文件夹选择} other {# 文件夹选择}}", + "selectedCount": "{count, plural, =0 {没有选择任何文件夹} other {# 文件夹选择}}", "noFolders": "未找到文件夹", "selectFolder": "选择此文件夹", "errors": { @@ -6631,7 +8747,7 @@ }, "upload": { "library": "书库", - "selectLibrary": "请选择书库…", + "selectLibrary": "请选择书库……", "targetFolder": "目标文件夹", "addMoreFiles": "添加更多文件", "clearAll": "全部清除", @@ -6640,12 +8756,12 @@ "upload": "上传", "uploadWithCount": "上传({count} 项)", "viewInLibrary": "在书库中查看", - "fileCount": "{count, plural, =0 {没有文件} one {# 文件} other {# 文件}}", - "booksAdded": "{count, plural, =0 {没有已添加的书} one {# 已添加的书} other {# 已添加的书}}", + "fileCount": "{count, plural, =0 {没有文件} other {# 文件}}", + "booksAdded": "{count, plural, =0 {没有已添加的书} other {# 已添加的书}}", "uploadedFailed": "成功上传 {done} 项,{failed} 项上传失败", - "progress": "正在上传:{done}/{total}", + "progress": "正在上传:{done}/{total}……", "header": { - "uploading": "上传中…", + "uploading": "上传中……", "complete": "上传完成", "uploadTo": "上传至书库 {library}", "uploadBooks": "上传书" @@ -6657,7 +8773,7 @@ } }, "metadataScore": { - "missingFields": "{count, plural, =0 {没有字段丢失 - 编辑元数据} one {# 字段丢失 - 编辑元数据} other {# 字段丢失 - 编辑元数据}}" + "missingFields": "{count, plural, =0 {没有字段丢失 - 编辑元数据} other {# 字段丢失 - 编辑元数据}}" }, "migration": { "sidebarTitle": "书签导入", @@ -6808,8 +8924,8 @@ "addMapping": "添加映射", "pathMappingsExplanation": "路径映射将源文件路径转换为目标路径,这样书本可以与文件位置匹配。 不论路径映射如何,都用ISBN、文件哈希和标题/作者匹配书籍。", "noPrefixesFound": "没有找到前缀 - 首先验证源代码", - "selectSourcePrefix": "请选择源表前缀…", - "selectTargetFolder": "请选择目标文件夹…", + "selectSourcePrefix": "请选择源表前缀……", + "selectTargetFolder": "请选择目标文件夹……", "remove": "删除", "saveMappings": "保存映射", "pathValidation": { @@ -6833,7 +8949,7 @@ "ofCount": "总计 {total} 条", "targetBookId": "目标书籍编号 #{id}", "recommended": "推荐的", - "resolveButton": "{count, plural, =0 {解决# 重复} one {解决# 重复} other {解决# 重复}}", + "resolveButton": "{count, plural, =0 {解决# 重复} other {解决# 重复}}", "sourceRecordId": "源记录编号 #{id}", "byAuthor": "作者:{author}(编号:{id})", "byFilePath": "{filePath} (ID: {id})", @@ -6888,7 +9004,7 @@ "metadataOverlays": "已应用元数据叠加层", "authorMappings": "已替换作者映射", "narratorMappings": "Narrator 映射已替换", - "genreMappings": "流派映射已替换", + "genreMappings": "体裁映射已替换", "tagMappings": "标签映射已替换", "coversImported": "封面已导入", "coverImportSkipped": "封面导入跳过了 - 未配置媒体根路径", @@ -6911,7 +9027,7 @@ "unresolvedBooksExplanation": "这些书存在于源代码中,但无法与您的书库中的任何书匹配。", "mappedUsers": "已匹配用户({count} 人)", "mappedUsersExplanation": "每个用户的总数来自与迁移计划一起缓存的干动预览。", - "coverFailures": "{count} 个封面导入失败,失败明细未留存", + "coverFailures": "{count} 个封面导入失败,失败明细未留存。", "userPreviewCounts": "阅读状态 {statuses} 条、阅读进度 {progress} 条、阅读记录 {sessions} 条、书签 {bookmarks} 条、批注 {annotations} 条、合集条目 {collections} 条" }, "unresolvedReason": { @@ -7008,10 +9124,13 @@ "clear": "清空", "empty": "还没有通知", "loadMore": "加载更多通知", + "dismiss": "关闭通知", + "occurrences": "已发生 {count} 次", + "occurrencesShort": "x{count}", "preferences": { "title": "通知", "subtitle": "选择您想要收到的通知类别。", - "saving": "保存中…", + "saving": "保存中……", "unsavedChanges": "未保存的更改", "saved": "通知首选项已保存", "saveFailed": "保存首选项失败", @@ -7026,6 +9145,20 @@ "app": "应用更新" }, "enabledCount": "已启用:{enabled}/{total}", + "levels": { + "off": { + "short": "关闭", + "description": "从不为此发送通知。" + }, + "problems": { + "short": "问题", + "description": "仅在出现失败或需要关注时通知我。" + }, + "all": { + "short": "全部", + "description": "每次都通知我,包括成功的情况。" + } + }, "categories": { "scanning": { "label": "书库扫描", @@ -7049,7 +9182,7 @@ }, "bulkRename": { "label": "批量重命名", - "description": "当许多书籍大批重命名完成或失败。" + "description": "批量重命名或跨书库移动书籍完成或失败时。" }, "migration": { "label": "数据迁移", @@ -7057,10 +9190,10 @@ }, "bookDock": { "label": "Book Dock", - "description": "当存入码头的文件准备好审查或最后定稿。" + "description": "Book Dock 定稿完成或遇到问题时。" }, "koboSync": { - "label": "Kobo sync", + "label": "Kobo 同步", "description": "当Kobo设备完成与您的库同步时。" }, "email": { @@ -7070,6 +9203,10 @@ "achievements": { "label": "成就", "description": "当您解锁新的阅读成就时。" + }, + "bookRequests": { + "label": "书籍请求", + "description": "提交书籍请求、请求被决定或书籍到货时。" } } } @@ -7079,7 +9216,69 @@ "pdf": { "openError": "无法打开此 PDF", "preparing": "正在准备 PDF 阅读器", - "opening": "正在打开 PDF" + "opening": "正在打开 PDF", + "loading": "正在加载 PDF", + "loadFallback": "无法加载文档。", + "requestFailed": "PDF 请求失败,状态码为 {status}。", + "emptyDocument": "PDF 请求返回了空文档。", + "managerError": "无法初始化 PDF 文档管理器。", + "engineNoPages": "PDF 引擎打开的文档不包含任何页面。", + "engineOpenError": "文档引擎无法打开此 PDF。", + "noPages": "此 PDF 打开后不包含任何页面", + "noPagesHint": "请重新加载文档,以从 PDF 引擎不完整的响应中恢复。", + "externalLinkTitle": "打开外部链接?", + "externalLinkDescription": "此 PDF 想要在新标签页中打开 {host}。", + "openLink": "打开链接", + "annotationsLoadError": "无法加载此 PDF 的高亮。", + "loadingAnnotations": "正在加载 PDF 高亮", + "loadMoreAnnotations": "加载更多高亮", + "loadingMoreAnnotations": "正在加载更多高亮…", + "sidebar": { + "pages": "页面", + "contents": "目录", + "search": "搜索", + "tabsLabel": "PDF 导航", + "closeNavigation": "关闭导航", + "goToPage": "转到第 {page} 页", + "noOutline": "此 PDF 没有文档大纲。", + "searchPlaceholder": "搜索此 PDF", + "clearSearch": "清除搜索", + "matchCase": "区分大小写", + "wholeWord": "全字匹配", + "resultPosition": "{current} / {total}", + "previousResult": "上一个结果", + "nextResult": "下一个结果", + "searchingPage": "正在搜索第 {page} 页,共 {total} 页", + "searchPrompt": "输入关键词以搜索此 PDF。", + "searchTooShort": "至少输入 {min} 个字符才能搜索此 PDF。", + "noSearchResults": "没有与查询匹配的文本。", + "page": "第 {page} 页", + "filterOutline": "筛选大纲", + "noOutlineMatch": "没有符合筛选条件的大纲条目。", + "loadingOutline": "正在加载大纲", + "expandSection": "展开 {title}", + "collapseSection": "折叠 {title}", + "jumpToPage": "跳转到页", + "resizePanel": "调整导航面板大小" + }, + "toolbar": { + "navigation": "文档导航", + "previousPage": "上一页", + "currentPage": "当前页", + "nextPage": "下一页", + "zoomOut": "缩小", + "zoomIn": "放大", + "panTool": "平移工具", + "pan": "平移", + "selectTool": "文本选择工具", + "selectText": "选择文本", + "pinHeader": "固定阅读器顶栏", + "unpinHeader": "取消固定阅读器顶栏", + "pinHeaderShort": "固定顶栏", + "unpinHeaderShort": "取消固定顶栏", + "moreTools": "更多 PDF 工具", + "settings": "PDF 设置" + } }, "loadingBook": "正在加载书…", "failedToLoadBook": "加载书失败", @@ -7100,6 +9299,12 @@ "keyboardShortcutsHint": "键盘快捷键 (?)", "enterFullscreen": "输入全屏", "exitFullscreen": "退出全屏", + "narrationPlaying": "旁白播放中", + "ttsPlaying": "TTS 播放中", + "listenWithNarrationShort": "朗读(旁白)", + "listen": "朗读", + "listenWithNarration": "使用旁白朗读", + "listenWithTts": "使用 TTS 朗读", "footerMode": { "pageProgress": "页脚信息: 页面 + 进度", "sessionTimeLeft": "页脚信息:阅读会话 + 剩余时间", @@ -7121,7 +9326,7 @@ "reset": "恢复默认设置", "modeLabel": "配色模式", "mode": { - "light": "亮色的", + "light": "浅色", "dark": "深色" }, "textSize": "字体大小", @@ -7134,7 +9339,18 @@ "fontBuiltIn": "内置", "fontServer": "服务端字体", "fontYours": "您的字体", + "fontStyle": "字体样式", + "fontStyleItalicOf": "{style} 斜体", "lineSpacing": "行间距", + "paragraphSpacing": "段落间距", + "paragraphSpacingDefault": "默认", + "paragraphSpacingValue": "{value} em", + "letterSpacing": "字符间距", + "wordSpacing": "词间距", + "textIndent": "首行缩进", + "bookDefault": "书籍默认", + "custom": "自定义", + "emValue": "{value} em", "pageWidth": "页面宽度", "pageWidthNarrow": "紧凑", "pageWidthMedium": "中等", @@ -7145,10 +9361,10 @@ "paginated": "分页模式", "scrolled": "滚动模式" }, - "pageSpreads": "页面扩展", - "pageSpreadsHint": "选择这个基于图像的 EPUB 对应页面的方式。", + "pageSpreads": "跨页", + "pageSpreadsHint": "选择此图像型 EPUB 的跨页配对方式。", "spread": { - "bookDefault": "预约默认", + "bookDefault": "书籍默认", "singlePage": "单页" }, "advanced": "高级排版设置", @@ -7181,33 +9397,33 @@ } }, "search": { - "placeholder": "全书搜索(最少输入 {min} 个字符)…", + "placeholder": "全书搜索(最少输入 {min} 个字符)……", "searching": "正在搜索…", "tooShort": "至少输入 {min} 个字符", "noResults": "未找到结果", "prompt": "要搜索的类型", - "resultCount": "{count, plural, =0 {没有结果} one {# 结果} other {# 结果}}" + "resultCount": "{count, plural, =0 {没有结果} other {# 结果}}" }, "sidebar": { "tabs": { - "chapters": "章 次", + "chapters": "章节", "bookmarks": "书签", "highlights": "高亮", "toc": "目录", - "tocShort": "排行", - "marksShort": "Marks", - "notesShort": "注" + "tocShort": "目录", + "marksShort": "书签", + "notesShort": "高亮" }, - "pin": "置顶侧边栏", - "unpin": "Unpin sidebar", + "pin": "固定侧边栏", + "unpin": "取消固定侧边栏", "close": "关闭侧边栏", "noChapters": "没有找到章节", "noBookmarks": "尚无书签", "noBookmarksMatch": "没有与您的筛选器匹配的书签", "noHighlights": "尚无高亮显示", "noHighlightsMatch": "没有高亮匹配您的过滤规则", - "searchBookmarks": "搜索书签…", - "searchHighlights": "搜索划线批注…", + "searchBookmarks": "搜索书签……", + "searchHighlights": "搜索划线批注……", "bookmarkFallback": "书签", "locationUnavailable": "位置不可用", "customColor": "自定义颜色({color})", @@ -7230,7 +9446,15 @@ "translate": "翻译", "define": "定义", "deleteAnnotation": "删除批注", - "apply": "应用" + "apply": "应用", + "color": "高亮颜色:{color}", + "style": "高亮样式:{style}", + "styles": { + "highlight": "高亮", + "underline": "下划线", + "strikethrough": "删除线", + "squiggly": "波浪下划线" + } }, "note": { "title": "添加备注", @@ -7243,7 +9467,7 @@ "translation": { "original": "原始文件", "translation": "翻译", - "translating": "翻译中…", + "translating": "翻译中……", "noTranslation": "尚无翻译", "viaProvider": "翻译服务商:{provider}", "copyTranslation": "复制翻译" @@ -7270,19 +9494,22 @@ "fitMode": "适合模式", "background": "背景", "scrollMode": "滚动模式", - "scrollModeHint": "对网络玩具和垂直条纹使用“无差距”。", + "scrollModeHint": "对条漫和垂直长条漫画使用“无间距”。", "readingDirection": "阅读方向", + "autoAdvance": "自动续读", + "autoAdvanceHint": "翻过最后一页时会自动打开系列中的下一本。", + "autoAdvancePagedOnly": "自动续读仅在分页模式下生效。", "pageView": "页面视图", "twoPagePagedOnly": "双页仅可在分页模式下展示。", "spreadSection": "跨页双栏", "spreadFallbackHint": "当前屏幕宽度不足,无法开启双页,已切换为单页展示。", - "spreadAlignmentLabel": "扩展对齐", - "spreadGap": "2. 扩大差距", - "spreadGapValue": "{value}px", - "forceTwoPage": "强制两页", + "spreadAlignmentLabel": "跨页对齐", + "spreadGap": "跨页间距", + "spreadGapValue": "{value} 像素", + "forceTwoPage": "强制双页", "widePages": "宽页面", - "firstPage": "首页", - "lastPage": "最后页", + "firstPage": "第一页", + "lastPage": "最后一页", "zoomControls": "缩放控制", "zoomOut": "缩小", "zoomIn": "放大", @@ -7293,35 +9520,43 @@ "actual": "实际大小" }, "view": { - "single": "单一的", - "twoPage": "两页" + "single": "单页", + "twoPage": "双页" }, "scroll": { "paged": "分页", - "infinite": "无限的", + "infinite": "无限滚动", "noGaps": "无间距" }, "direction": { - "ltr": "L 到 R", - "rtl": "R到 L" + "ltr": "从左到右", + "rtl": "从右到左" }, "spreadAlignment": { - "normal": "普通的", - "shifted": "已移转" + "normal": "常规", + "shifted": "偏移" }, "widePage": { - "auto": "自动操作", - "inSpreads": "在分布中" + "auto": "自动", + "inSpreads": "并入跨页" }, "bg": { "black": "黑色", - "gray": "灰度", - "white": "白色的" + "gray": "灰色", + "white": "白色" + }, + "nextIssue": { + "eyebrow": "系列下一本", + "action": "阅读下一本", + "open": "阅读下一本:{title}", + "numbered": "#{index} {title}", + "untitled": "无标题", + "autoAdvanceHint": "再翻一页即可继续阅读" } }, "audiobook": { "untitled": "无标题", - "loading": "有声书加载中…", + "loading": "有声书加载中……", "loadError": "加载音频簿失败", "noAudioFiles": "未找到该书的音频文件。", "speed": "速度", @@ -7332,7 +9567,7 @@ "sleep": "睡眠", "chapterAbbrev": "章", "sleepTimer": "睡眠计时器", - "minutes": "{count, plural, one {# 分钟} other {# 分钟}}", + "minutes": "{count, plural, other {# 分钟}}", "endOfChapter": "章节结尾", "noChaptersAvailable": "没有可用的章节", "extend15": "+ 15 分钟", @@ -7344,11 +9579,28 @@ "playerSettings": "播放器设置", "skipBack": "跳过", "skipForward": "向前跳过" + }, + "sheet": { + "expand": "展开面板", + "collapse": "收起面板" + }, + "narration": { + "fallbackTitle": "旁白", + "meta": "音频旁白 - {speed}x", + "openControls": "打开旁白控制", + "previousSentence": "上一句", + "nextSentence": "下一句", + "play": "播放旁白", + "pause": "暂停旁白", + "showControls": "显示控制", + "hideControls": "隐藏控制", + "stop": "停止旁白", + "error": "旁白播放出错" } }, "scanner": { "filesProgress": "已处理文件:{processed}/{total}", - "booksFound": "{count, plural, =0 {没有找到书籍} one {# 找到书} other {# 找到书}}" + "booksFound": "{count, plural, =0 {没有找到书籍} other {# 找到书}}" }, "series": { "completion": { @@ -7359,7 +9611,10 @@ "ownedOfExpected": "库内已收录 {owned} 册,合计应有 {expected} 册" }, "gaps": { - "label": "可能存在的差距:" + "label": "可能存在的差距:", + "missingCount": "{count, plural, other {缺 # 本}}", + "missingList": "缺失 {list}", + "previewMore": "{shown} +{count}" }, "filters": { "title": "系列过滤器", @@ -7368,7 +9623,7 @@ "allCompletion": "全部完成", "notStarted": "未启动", "inProgress": "进行中", - "complete": "Complete" + "complete": "已完结" }, "list": { "title": "系列", @@ -7378,8 +9633,8 @@ "sortBy": "排序方式", "ascending": "升序", "descending": "降序", - "ascShort": "Asc", - "descShort": "Desc", + "ascShort": "升序", + "descShort": "降序", "filters": "筛选器", "clear": "清空", "noMatch": "没有匹配筛选器的系列文件。", @@ -7389,29 +9644,32 @@ "bookCount": "书计数", "recentAdditions": "最近添加", "readingProgress": "阅读进度" - } + }, + "clearSearch": "清除搜索", + "noMatchHint": "试试其他书库,或清除当前筛选。", + "emptyHint": "书籍带有系列元数据后就会显示系列。" }, "detail": { "pageTitle": "系列", "pageTitleNamed": "丛书・{name}", "pageTitleWithId": "丛书编号 #{id}", "entityName": "系列", - "bookCount": "{count, plural, =0 {没有书籍} one {# 书} other {# 书}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", "byAuthors": "作者:{authors}", "moreAuthors": "另有 {count} 位作者", - "preparingEditor": "编辑器初始化中…", + "preparingEditor": "编辑器初始化中……", "editMetadata": "编辑元数据", "firstInSeries": "第一次在系列", "untitled": "无标题", - "loadingFirstBook": "正在加载首册书籍预览…", + "loadingFirstBook": "正在加载首册书籍预览……", "showLess": "显示更少的", "showMore": "显示更多", "moreGenres": "另有 {count} 项", "synopsis": "简述", "noDescription": "无可用描述。", - "updatingPreview": "预览更新中…", + "updatingPreview": "预览更新中……", "noBooksToPreview": "没有可以预览的书籍。", - "loadingSeries": "丛书加载中…", + "loadingSeries": "丛书加载中……", "booksHeading": "书籍列表", "allLibraries": "所有库", "groupByMedia": "按媒体分组", @@ -7430,6 +9688,66 @@ "ascending": "升序", "descending": "降序" } + }, + "authorsPlus": "{authors} +{count}", + "track": { + "readCount": "{count, plural, other {已读 # 本}}", + "readingCount": "{count, plural, other {在读 # 本}}", + "unreadCount": "{count, plural, other {未读 # 本}}", + "missingCount": "{count, plural, other {缺 # 本}}", + "slotMissing": "{number} 不在书库中", + "untitled": "无标题" + }, + "legend": { + "read": "已读", + "reading": "在读", + "unread": "在书库中", + "missing": "缺失" + }, + "status": { + "label": "按阅读状态筛选系列", + "all": "全部", + "reading": "在读", + "unread": "未读", + "complete": "齐全", + "gaps": "有缺卷", + "read": "已读", + "inProgress": "进行中", + "hasGaps": "有缺卷", + "notStarted": "未开始" + }, + "index": { + "columnSeries": "系列", + "columnVolumes": "卷数", + "columnRead": "已读", + "columnNext": "下一本", + "columnAdded": "已添加", + "percent": "{value}%", + "captionReading": "{base} · {count, plural, other {在读 # 本}}", + "finished": "从头读到尾", + "reading": "在读", + "next": "下一本", + "start": "开始" + }, + "grouping": { + "label": "分组依据", + "none": "不分组", + "letter": "按首字母", + "library": "按书库", + "status": "按状态" + }, + "libraries": { + "more": "+{count}" + }, + "card": { + "oneVolume": "单卷", + "oneVolumeShort": "1 卷", + "volumeCount": "{count, plural, other {# 卷}}", + "readSummary": "{base} · 已读 {read} 卷", + "publishedOf": "{total} 卷已出版,书库中已有 {owned} 卷", + "complete": "齐全", + "moreVolumes": "{count, plural, other {还有 # 卷}}", + "label": "{name},已读 {total} 卷中的 {read} 卷" } }, "smartScope": { @@ -7441,15 +9759,16 @@ "name": "名称", "namePlaceholder": "例如:未读 Sci-Fi", "icon": "图标", - "iconPlaceholder": "请选择图标…", + "iconPlaceholder": "请选择图标……", "nameRequired": "名称是必填项", "iconRequired": "选择一个图标", "create": "创建", - "creating": "创建中…", - "saving": "保存中…" + "creating": "创建中……", + "saving": "保存中……" }, "createDialog": { "title": "新建智能瞄准镜", + "podcastTitle": "新建智能播放列表", "createFailed": "无法创建智能作用域" }, "saveAsDialog": { @@ -7460,8 +9779,8 @@ "editorPanel": { "untitled": "无标题的 SmartScope", "subtitle": "配置智能书架设置", - "counting": "统计中…", - "bookCount": "{count, plural, =0 {没有书籍} one {一张书} other {# 书}}", + "counting": "统计中……", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", "identity": "身份", "filters": "筛选器", "noFilters": "没有设置过滤器。此智能书架将包含所有可访问的书籍。", @@ -7477,6 +9796,14 @@ "noGenres": "无流源", "epubOnly": "仅EPUB" } + }, + "errors": { + "load": "加载智能书架失败", + "loadEpisodes": "加载此智能播放列表的单集失败", + "save": "保存智能书架失败", + "delete": "删除智能书架失败", + "reorder": "调整智能书架顺序失败", + "koboSync": "更新此智能书架的 Kobo 同步失败" } }, "statistics": { @@ -7500,7 +9827,7 @@ "series": "系列", "publishers": "出版社", "storage": "存储", - "genres": "Genres", + "genres": "体裁", "languages": "语文", "published": "已发布", "thisYear": "本年", @@ -7513,7 +9840,7 @@ "loadError": "加载数据失败", "emptyTitle": "尚无数据", "emptyDescription": "此图表没有可用数据", - "unknownField": "{count, plural, =0 {此字段没有数据} one {# 本字段没有数据} other {# 本字段没有数据}}" + "unknownField": "{count, plural, =0 {此字段没有数据} other {# 本字段没有数据}}" }, "breakdown": { "ariaLabel": "按源或格式切换" @@ -7540,10 +9867,10 @@ "title": "随着时间的推移格式共享" }, "genreCooccurrence": { - "title": "流派共鸣时间" + "title": "体裁共现" }, "genreDistribution": { - "title": "流派分布" + "title": "体裁分布" }, "languageDistribution": { "title": "语言分布" @@ -7601,7 +9928,7 @@ "notEnoughData": "至少需要 {count} 条阅读记录才可生成该图表。" }, "genreReadingTime": { - "title": "流派阅读时间", + "title": "体裁阅读时长", "notEnoughData": "至少需要 {count} 类有阅读时长记录的书籍分类才可生成该图表。" }, "goalTrajectory": { @@ -7655,7 +9982,9 @@ "sourceDistribution": { "title": "您阅读的地方", "emptyTitle": "尚无阅读活动", - "emptyDescription": "在网页上阅读,KOReader,或Kobo,看看你的源代码分割。" + "emptyDescription": "在网页上阅读,KOReader,或Kobo,看看你的源代码分割。", + "emptyDescriptionWithAppleClients": "在网页、iOS 应用、Apple Watch、KOReader 或 Kobo 上阅读,即可查看您的来源分布。", + "emptyDescriptionWithNativeClients": "在网页、iOS 应用、Android 应用、Apple Watch、KOReader 或 Kobo 上阅读,即可查看您的来源分布。" } } }, @@ -7663,11 +9992,12 @@ "header": { "entityManager": "实体管理器", "bulkRename": "批量重命名", - "duplicateBooks": "复制书" + "duplicateBooks": "复制书", + "missingResources": "缺失资源" }, "entityTypes": { "authors": "作者", - "genres": "Genres", + "genres": "体裁", "tags": "标签", "narrators": "神秘者", "publishers": "出版社", @@ -7676,33 +10006,140 @@ }, "bulkRename": { "library": "书库", - "selectLibraryPlaceholder": "请选择书库…", + "selectLibraryPlaceholder": "请选择书库……", "noEligibleLibraries": "没有启用文件重命名的库。请在书库设置中启用它。", "refresh": "刷新", "previewFailed": "加载预览失败", "executionFailed": "批量重命名失败", "openBookDetails": "打开书的详细信息", + "openBook": "打开书籍", + "toRenameCount": "{count, plural, =0 {无需重命名} other {# 项待重命名}}", + "applyCount": "{count, plural, other {应用 # 项重命名}}", + "search": { + "placeholder": "查找书籍或路径", + "label": "查找书籍", + "clear": "清除搜索" + }, "filter": { - "all": "所有的" + "all": "所有的", + "changes": "有变更", + "conflicts": "有冲突", + "unchanged": "无变更" }, "status": { - "willRename": "将重命名为", + "willRename": "将重命名", "unchanged": "未更改", - "collision": "碰撞模式", - "noPattern": "没有图案", + "collision": "冲突", + "noPattern": "无命名模式", "error": "错误" }, + "group": { + "collision": "目标路径冲突", + "unchanged": "已符合规范", + "noPattern": "无命名模式", + "error": "出错", + "includeAll": "包含全部 {kind} 重命名", + "expand": "展开 {kind}", + "collapse": "收起 {kind}", + "heldBack": "这些无法重命名" + }, + "changeKind": { + "ungroup": "已移除系列分组", + "flatten": "已移除重复的文件夹层级", + "yearRemoved": "已移除出版年份", + "yearAdded": "已添加出版年份", + "yearCorrected": "已修正出版年份", + "authorSpelling": "作者名拼写", + "capitalisation": "大小写与空格", + "unsafeCharacters": "已替换不安全字符", + "filenameRebuilt": "已根据元数据重建文件名", + "folderRenamed": "文件夹已重命名", + "rebuilt": "文件夹和文件名已重建", + "restructured": "路径已重构", + "multiple": "多项变更" + }, + "select": { + "ofSelected": "/ {total} 已选", + "toggleAll": "全选或取消全部重命名", + "toggleGroup": "全选或取消全部 {kind} 重命名", + "toggleBook": "重命名 {title}" + }, + "review": { + "loadMore": "加载更多", + "queue": "待处理的重命名", + "position": "{total} 中的第 {index} 项", + "previous": "上一本", + "next": "下一本", + "keyboardHint": "移动", + "keyboardSkip": "跳过", + "skip": "跳过", + "include": "纳入", + "excluded": "已排除", + "back": "返回列表" + }, + "detail": { + "whatChanges": "变更内容", + "foldedFolders": "{count, plural, other {# 个不变的文件夹}}", + "onDisk": "在磁盘上", + "today": "今天", + "afterRename": "重命名后", + "showLibraryFolders": "显示书库文件夹", + "hideLibraryFolders": "隐藏书库文件夹", + "currentPath": "当前路径", + "whyItMoves": "为什么移动", + "levelTop": "顶层文件夹", + "levelFolder": "第 {depth} 层文件夹", + "levelFilename": "文件名", + "levelRemoved": "已移除", + "tokenCount": "{count, plural, other {# 个标记}}", + "optionalLevel": "可选的文件夹层级,由命名模式中的分组生成。", + "removedExplainer": "命名模式在此层级没有文件夹,因此 {folder} 会被移除,其内容上移一级。", + "conflictTitle": "另一个文件已占用此目标路径。", + "conflictBody": "重命名会覆盖它,因此在冲突解决前这本书会被暂缓处理。", + "siblings": "{count, plural, other {还有 # 项相同变更}}", + "siblingsMore": "还有 {count} 项" + }, "empty": { - "title": "选择要开始的库", - "description": "选择上面的库来预览更改,按状态筛选,并应用批量重命名运行。", - "chooseLibrary": "选择书库" + "title": "选择一个书库开始", + "description": "选择一个书库以预览重命名更改,逐条核查后执行。", + "chooseLibrary": "选择书库", + "noneTitle": "没有待核查的内容", + "noneDescription": "没有书籍符合当前筛选。清除搜索或切换到全部。", + "noMatch": "没有书籍符合您的搜索。" + }, + "confirmDialog": { + "title": "{count, plural, other {重命名磁盘上的 # 个文件?}}", + "body": "这会移动 {library} 中的实际文件。BookOrbit 会记录每次移动,但撤销就意味着要把文件重命名回原样。", + "willRename": "将被重命名", + "skippedByYou": "您已跳过", + "heldBack": "因冲突暂缓", + "untouched": "保持不变", + "confirm": "{count, plural, other {重命名 # 个文件}}", + "cannotRename": "无法重命名" + }, + "run": { + "preparing": "正在准备…", + "preparingHint": "在移动任何文件之前,先按命名模式检查每个文件。", + "title": "正在重命名 {total} 中的第 {done} 个", + "runningHint": "正在重命名文件。当前文件完成后您可以停止。", + "stop": "此文件完成后停止", + "resultTitle": "{done, plural, other {已重命名 {total} 个文件中的 # 个}}", + "resultFailed": "{count, plural, other {# 个失败}}", + "resultSkipped": "{count, plural, other {# 个跳过}}", + "dismiss": "关闭" + }, + "executionError": { + "http": "服务器拒绝了请求(HTTP {status})。", + "noBody": "服务器未返回响应内容。", + "incomplete": "连接在重命名完成前中断。部分文件可能未被重命名。", + "unknown": "无法完成重命名。" } }, "bookDuplicates": { "title": "复制书", "scope": "书库范围", "allLibraries": "所有可用库", - "similarity": "相似标题阈值", + "similarity": "相似书名", "explainSimilarity": "解释相似标题阈值", "similarityHelp": "只有相似的标题和作者匹配。至少有一个作者和书类型也必须匹配。 较低的找到可能重复;更高的要求要求更密切的标题。相同的文件、ISBN和准确的元数据将分别核对。", "runScan": "运行扫描", @@ -7711,7 +10148,7 @@ "queued": "扫描队列", "running": "扫描书" }, - "filter": "匹配类型", + "filter": "按匹配类型筛选", "allReasons": "所有匹配类型", "reasons": { "file_hash": "相同文件已设置", @@ -7724,14 +10161,23 @@ "unknown": "未知的", "none": "无", "accessDenied": "您没有权限使用重复的书籍工具。", - "pairDetails": "比赛详情", + "pairDetails": "它们为何匹配", "pairLabel": "{first} 与 {second}", "fields": { "library": "书库", "isbn": "ISBN", "formats": "格式", "collections": "收藏夹", - "added": "已添加" + "added": "已添加", + "size": "大小", + "metadata": "元数据", + "reading": "阅读", + "folder": "文件夹", + "noIsbn": "未设置", + "notStarted": "未开始", + "outOfHundred": "/100", + "percentRead": "已读 {percent}", + "fileCount": "{count, plural, other {# 个文件}}" }, "initial": { "title": "查找重复的书", @@ -7743,24 +10189,114 @@ }, "deleteDialog": { "warning": "元数据、采集、阅读数据和设备状态不会传输到保存的书。其他用户的相关数据也会被删除。", - "confirm": "{count, plural, =0 {删除# 书} one {删除# 书} other {删除# 书}}", - "success": "{count, plural, =0 {没有已删除的书} one {删除了一个重复的书} other {# 已删除的重复书}}" + "confirm": "{count, plural, =0 {删除# 书} other {删除# 书}}", + "success": "{count, plural, =0 {没有已删除的书} other {# 已删除的重复书}}" }, "errors": { "start": "无法启动重复扫描。", "status": "无法加载扫描进度。", "scan": "重复扫描失败。请尝试重新运行。", "results": "无法加载重复的组。", - "delete": "无法删除选定的重复书籍。" + "delete": "无法删除选定的重复书籍。", + "dismiss": "无法忽略该分组。", + "restore": "无法恢复该配对。" }, "pagination": { "label": "复制组页面", "page": "第 {page} 页 / 共 {total} 页" + }, + "similarityOption": "{percent} 及以上", + "scannedBooks": "{count} 本书 · 检查于 {when}", + "scanProgress": "{total} 本书中的 {processed} 本", + "recommended": "推荐", + "keeping": "保留", + "willDelete": "删除", + "keepCopy": "保留 {name}", + "selectGroup": "选择 {title}", + "selectAll": "选择本页所有分组", + "compareCopies": "比较 {title} 的各副本", + "compareCaption": "{count} 个副本的逐字段对比", + "fieldColumn": "字段", + "filesEach": "{count, plural, other {每个 # 个文件}}", + "moreFilesCount": "{count, plural, other {另有 # 个文件}}", + "identicalAcross": "{count, plural, other {所有 # 个副本中完全一致:}}", + "deleteGroup": "{count, plural, other {删除 # 个副本,释放 {size}}}", + "confidence": { + "file_hash": "完全一致", + "isbn": "ISBN 相同", + "exact_metadata": "完全匹配", + "fuzzy_metadata": "相似", + "withSimilarity": "{label} {percent}" + }, + "summary": { + "groups": "{count, plural, other {# 个分组}}", + "extraCopies": "{count, plural, other {个多余副本}}", + "reclaimable": "可释放" + }, + "columns": { + "match": "匹配度", + "book": "书籍", + "copies": "副本", + "libraries": "书库", + "frees": "可释放空间", + "keeping": "保留" + }, + "keepRule": { + "label": "保留规则", + "metadata": "元数据最佳", + "size": "文件最大", + "formats": "格式最多", + "oldest": "最早副本", + "newest": "最新副本", + "hint": "为每个分组自动选出保留项。您可以手动更改任意一行。" + }, + "sort": { + "label": "排序", + "reclaimable": "可释放空间最多", + "copies": "副本最多", + "confidence": "匹配最强", + "title": "书名 A 至 Z" + }, + "keeper": { + "yourChoice": "您的选择", + "reading": "您已读到 {percent}", + "collection": "它在 {name} 中", + "metadata": "元数据 {score}", + "largest": "最大,为 {size}", + "formats": "{count} 种格式", + "isbn": "有 ISBN", + "added": "添加于 {date}", + "riskReading": "会删除您已读到 {percent} 的副本", + "riskCollection": "会删除 {name} 中的副本" + }, + "selection": { + "summary": "已选 {groups} 个分组,将删除 {copies} 个副本,释放 {size}", + "clear": "清除", + "review": "{count, plural, other {核查 # 个副本}}", + "hint": "勾选您信任的分组,或打开一个分组对比各副本。" + }, + "keys": { + "move": "移动", + "expand": "展开", + "keep": "保留", + "select": "选择" + }, + "review": { + "title": "{count, plural, other {删除 # 个副本}}", + "description": "共 {groups} 个分组,释放 {size}。确认之前不会删除任何内容。", + "riskWarning": "{count, plural, other {# 个分组会删除带有您阅读数据的副本。}}", + "footer": "释放 {size}" + }, + "dismissed": { + "show": "{count, plural, other {显示 # 个已忽略的配对}}", + "hide": "隐藏已忽略的配对", + "restore": "恢复此配对", + "restored": "配对已恢复。下次扫描时可能再次匹配。" } }, "entityManager": { "unknown": "未知的", - "bookCount": "{count, plural, =0 {没有书籍} one {# 书} other {# 书}}", + "bookCount": "{count, plural, =0 {没有书籍} other {# 书}}", "sortPrefix": "・排序方式:{sortName}", "selectTargetToKeep": "选择要保留的目标", "writeToFiles": "写入文件", @@ -7772,13 +10308,14 @@ }, "actions": { "rename": "重命名", - "split": "拆分" + "split": "拆分", + "merge": "合并" }, "duplicates": { "similarity": "相似度:", "scan": "扫描", - "scanning": "扫描中…", - "computing": "匹配候选项计算中…", + "scanning": "扫描中……", + "computing": "匹配候选项计算中……", "computedAt": "候选匹配项计算完成:{date}", "recompute": "重新计算", "noneComputed": "尚未计算任何候选人。", @@ -7787,15 +10324,28 @@ "emptyDescription": "调整相似度阈值并单击扫描以检测潜在的重复。", "noneFoundTitle": "未找到重复项", "noneFoundDescription": "在当前设置中没有检测到潜在的重复。", - "clustersFound": "{count, plural, =0 {没有找到集群} one {# 集群找到} other {# 集群找到}}", - "plusOthers": "{count, plural, =0 {+ # 其它} one {+ # 其它} other {+ # 其它}}", + "clustersFound": "{count, plural, =0 {没有找到集群} other {# 集群找到}}", + "plusOthers": "{count, plural, =0 {+ # 其它} other {+ # 其它}}", "percentSimilar": "相似度 {percent}%", "pairDetails": "配对详情", "dismissEntityTitle": "关闭此实体的所有对数", - "dismissPairTitle": "取消这个配对" + "dismissPairTitle": "取消这个配对", + "groupsLabel": "疑似重复分组", + "keepThisOne": "保留此项", + "mergeAway": "将被并入", + "notAMatch": "不是重复", + "notAMatchTitle": "忽略此分组中的所有配对", + "selectPromptTitle": "选择一个分组进行核查", + "selectPromptDescription": "从列表中选择一个分组,对比其中的条目。", + "backToList": "返回分组列表", + "noBookTitles": "此记录未关联书籍", + "thresholdLabel": "最低相似度", + "thresholdValue": "{percent}%+", + "willBeMerged": "{count, plural, other {# 个条目将被合并并移除}}", + "chooseTargetHint": "选择要保留的条目,分组中的其余条目都会并入它。" }, "dismissed": { - "loading": "已忽略配对记录加载中…", + "loading": "已忽略配对记录加载中……", "empty": "没有被删除的对", "restore": "恢复", "restoreTitle": "还原此配对", @@ -7803,7 +10353,7 @@ "showPairs": "显示已删除对数" }, "browse": { - "searchPlaceholder": "搜索...", + "searchPlaceholder": "搜索……", "emptyOnly": "仅为空", "clear": "清空", "noEntities": "未找到实体", @@ -7816,7 +10366,44 @@ "nameDesc": "名称 Z-A", "fewestBooks": "最热门的书", "mostBooks": "大部分书" - } + }, + "sortByLabel": "排序依据", + "entityTypeLabel": "条目类型", + "resultCount": "{count, plural, =0 {无条目} other {# 个条目}}", + "selectedCount": "{count, plural, other {已选 # 项}}", + "columns": { + "name": "名称", + "sortName": "排序名", + "books": "书籍", + "status": "状态", + "actions": "操作" + }, + "selectAllOnPage": "选中本页全部条目", + "selectEntity": "选择 {name}", + "actionsFor": "{name} 的操作", + "status": { + "noBooks": "无书籍" + }, + "filters": { + "all": "全部", + "noBooks": "无书籍" + }, + "density": { + "label": "行高", + "comfortable": "舒适", + "compact": "紧凑" + }, + "rowsPerPage": "每页行数", + "range": "显示 {total} 中的 {from}-{to}", + "pagination": "分页", + "previousPage": "上一页", + "nextPage": "下一页", + "goToPage": "前往第 {page} 页", + "morePages": "更多页", + "noEntitiesDescription": "此条目类型还没有任何内容。", + "noMatchesTitle": "无匹配项", + "noMatchesDescription": "没有条目符合当前的搜索和筛选。", + "clearFilters": "清除筛选" }, "deleteMode": { "label": "删除模式", @@ -7828,7 +10415,7 @@ "hardDescriptionPlural": "永久删除实体和所有关联" }, "renameModal": { - "title": "Rename Entity", + "title": "重命名条目", "currentName": "当前名称", "newName": "新名称" }, @@ -7840,7 +10427,7 @@ "title": "分割实体", "splitting": "拆分", "newNames": "新名称(最少填写 2 个)", - "namePlaceholder": "请输入名称…", + "namePlaceholder": "请输入名称……", "addAnother": "添加另一个" }, "bulkDeleteModal": { @@ -7852,6 +10439,88 @@ "title": "合并实体", "description": "选择要保留的实体。其他实体将被合并并删除。" } + }, + "missingResources": { + "title": "缺失资源", + "accessDenied": "您没有权限清理缺失资源。", + "categoriesLabel": "清理类别", + "untitled": "无标题", + "clearSelection": "清除选择", + "cleanSelected": "清理选中的 {count} 项", + "selectAllMatching": "选择全部 {count} 条匹配项", + "allSelected": "已选中全部 {count} 条匹配项。", + "sweep": { + "title": "封面检查", + "description": "对照磁盘上的文件检查每本声称拥有封面的书籍,并查找已删除书籍遗留的封面文件夹。检查期间不会删除任何内容。", + "run": "运行检查", + "running": "检查中", + "progress": "已检查 {total} 本书中的 {processed} 本", + "lastRun": "上次检查于 {at}", + "truncated": "仅列出部分结果。先清理这些,然后再次运行检查以查看其余结果。" + }, + "categories": { + "missing_books": "缺失书籍", + "broken_covers": "损坏封面", + "orphaned_cover_dirs": "孤立封面文件夹" + }, + "found": { + "missing_books": "{count, plural, =0 {没有文件缺失的书籍} other {# 本文件缺失的书籍}}", + "broken_covers": "{count, plural, =0 {没有损坏的封面引用} other {# 个损坏的封面引用}}", + "orphaned_cover_dirs": "{count, plural, =0 {没有孤立的封面文件夹} other {# 个孤立的封面文件夹}}" + }, + "empty": { + "missing_books": "没有缺失的书籍", + "broken_covers": "没有损坏的封面引用", + "orphaned_cover_dirs": "没有孤立的封面文件夹", + "description": "此类别中的所有项目均已确认。" + }, + "needsSweep": { + "title": "请先运行封面检查", + "description": "封面结果来自磁盘检查。运行检查即可查看损坏的引用和孤立的文件夹。" + }, + "coverSource": { + "extracted": "已提取", + "custom": "自定义" + }, + "brokenSlot": { + "ebookExtracted": "书籍封面,已提取", + "ebookCustom": "书籍封面,自定义", + "audioExtracted": "有声书封面,已提取", + "audioCustom": "有声书封面,自定义" + }, + "table": { + "selectPage": "选中本页全部内容", + "coverFolder": "书籍 #{bookId} 的封面文件夹", + "fileCount": "{count, plural, other {# 个文件}}", + "orphanMedia": { + "ebook": "书籍封面", + "audio": "有声书封面", + "both": "书籍和有声书封面" + } + }, + "confirm": { + "title": "清理缺失资源?", + "action": "清理", + "missing_books": "{count, plural, other {删除 # 本文件已丢失的书籍的数据库记录。这些书籍及其元数据、阅读进度和封面都会被移除。此操作无法撤销。}}", + "broken_covers": "{count, plural, other {清除 # 本书的封面引用,使其显示为无封面。元数据不做其他更改。}}", + "orphaned_cover_dirs": "{count, plural, other {从磁盘删除 # 个封面文件夹。这些书籍已不在数据库中。此操作无法撤销。}}" + }, + "cleaned": { + "missing_books": "{count, plural, =0 {没有可清理的内容} other {已移除 # 本缺失书籍}}", + "broken_covers": "{count, plural, =0 {没有可清理的内容} other {已清除 # 个损坏的封面引用}}", + "orphaned_cover_dirs": "{count, plural, =0 {没有可清理的内容} other {已移除 # 个孤立的封面文件夹}}" + }, + "pagination": { + "label": "缺失资源分页", + "page": "第 {page} 页,共 {total} 页" + }, + "errors": { + "summary": "无法加载缺失资源摘要。", + "sweepStart": "无法启动封面检查。", + "sweep": "封面检查失败。", + "list": "无法加载这些条目。", + "clean": "清理失败。" + } } }, "views": { @@ -7868,6 +10537,9 @@ "sort": "排序", "sortOn": "开启", "resetSort": "重置排序为默认", + "shuffle": "随机排序", + "shuffleAria": "随机排列书籍顺序", + "shuffleHint": "生成新的随机顺序", "filters": "筛选器", "clear": "清空", "clearAllFilters": "清除所有过滤器", @@ -7878,7 +10550,7 @@ "exportMetadata": "导出元数据", "showControlsAria": "显示库控制", "export": "导出", - "searchPlaceholder": "搜索书名、作者、丛书、朗读者…", + "searchPlaceholder": "搜索书名、作者、丛书、朗读者……", "allBooksLoaded": "共 {count} 册书籍已加载完毕" }, "notFound": { @@ -7924,12 +10596,12 @@ }, "retry": { "noneToRetry": "没有需要重试的错误文件", - "retrying": "{count, plural, =0 {重试一个文件} one {重试一个文件} other {重试# 文件}}" + "retrying": "{count, plural, =0 {重试一个文件} other {重试# 文件}}" }, "applyFetched": { - "applied": "{count, plural, =0 {应用到没有文件} one {应用到一个文件} other {应用到# 文件}}", - "skippedEdited": "{count, plural, =0 {因为他们手动编辑了一个文件} one {跳过了一个文件,因为它已经手动编辑了} other {跳过 # 文件,因为它们已经手动编辑了}}", - "skippedNoMetadata": "{count, plural, =0 {因为没有获取元数据而跳过一个文件} one {跳过了一个文件,因为它没有获取元数据} other {跳过了# 文件,因为它们没有获取元数据}}", + "applied": "{count, plural, =0 {应用到没有文件} other {应用到# 文件}}", + "skippedEdited": "{count, plural, =0 {因为他们手动编辑了一个文件} other {跳过 # 文件,因为它们已经手动编辑了}}", + "skippedNoMetadata": "{count, plural, =0 {因为没有获取元数据而跳过一个文件} other {跳过了# 文件,因为它们没有获取元数据}}", "noneApplied": "未匹配生效文件,原因:{reasons}", "noneSelected": "未选择文件" } @@ -7942,7 +10614,7 @@ "showControlsAria": "显示收藏控制", "loadError": "无法加载此收藏", "toast": { - "removed": "{count, plural, =0 {从收藏中移除没有书籍} one {从收藏中移除一本书} other {从收藏中移除# 簿}}", + "removed": "{count, plural, =0 {从收藏中移除没有书籍} other {从收藏中移除# 簿}}", "removeFailed": "从收藏中删除书籍失败" }, "empty": { @@ -7969,13 +10641,13 @@ "noFilterMatch": "没有符合筛选条件的书", "noFilterMatchHint": "尝试调整或清理筛选器以查看更多书籍。", "clearFilters": "清除过滤器", - "scanning": "正在扫描您的书库...", + "scanning": "正在扫描您的书库……", "scanningHint": "一旦发现书,这些书就会在这里出现。", "emptyLibrary": "您的库为空", "emptyLibraryHint": "一旦您将书籍添加到这个库,它们就会出现在这里。" }, "querySelection": { - "loadedSelected": "已选中已加载书籍:{selected}/{total}", + "loadedSelected": "已选中已加载书籍:{selected}/{total}。", "selectAllMatching": "全选全部 {total} 本匹配书籍" } }, @@ -8011,13 +10683,42 @@ "noMatchHint": "尝试调整过滤规则。", "edit": "编辑 SmartScope" } + }, + "podcastScope": { + "title": "智能播放列表", + "entity": "智能播放列表", + "loadFailed": "无法加载此播放列表的单集。", + "loadMoreFailed": "无法加载更多单集。", + "retry": "重试", + "editRules": "编辑规则", + "saveFailed": "无法保存播放列表规则。", + "deleteFailed": "无法删除此播放列表。", + "empty": { + "title": "没有匹配的单集", + "hint": "调整规则以匹配更多单集。" + } + }, + "podcastCollection": { + "title": "播客合集", + "entity": "播客合集", + "loadFailed": "无法加载此合集的节目。", + "remove": "移除", + "removeAria": "将 {name} 从此合集移除", + "removed": "已移除 {name}", + "removeFailed": "无法移除该节目。", + "empty": { + "title": "还没有节目", + "hint": "从播客媒体库向此合集添加节目。" + }, + "loadMoreFailed": "无法加载更多节目。", + "retry": "重试" } }, "whatsNew": { "title": "新功能", "subtitle": "所有最新发货。", "versionPrefix": "版本 {version}", - "newUpdates": "{count, plural, =0 {没有新的更新} one {一个新的更新} other {# 新的更新}}", + "newUpdates": "{count, plural, =0 {没有新的更新} other {# 新的更新}}", "remindLater": "稍后提醒我", "gotIt": "明白了", "latest": "最新的", @@ -8027,7 +10728,7 @@ "currentVersion": "当前版本", "youreHere": "你在这里", "searchPlaceholder": "搜索版本更新记录…", - "noReleasesFound": "未找到释放。", + "noReleasesFound": "未找到版本。", "noHighlights": "此发布没有高亮显示。", "showChangelog": "显示完整更新日志", "hideChangelog": "隐藏完整更新日志", @@ -8043,11 +10744,827 @@ "previousImage": "上一张图片", "nextImage": "下一张图片" }, + "podcast": { + "actions": { + "add": "添加", + "cancel": "取消", + "save": "保存", + "play": "播放", + "pause": "暂停", + "playEpisode": "播放单集", + "listen": "收听", + "remove": "移除", + "episodeActions": "单集操作", + "removeFromQueue": "从播放队列移除", + "addToQueue": "加入播放队列", + "playNext": "接下来播放", + "retryDownload": "重试下载", + "download": "下载", + "removeDownload": "移除下载", + "markUnplayed": "标记为未播放", + "markPlayed": "标记为已播放", + "follow": "订阅", + "unfollow": "取消订阅", + "followPodcast": "订阅播客", + "unfollowPodcast": "取消订阅播客", + "resume": "继续播放", + "playLatest": "播放最新单集", + "moveToTop": "移到顶部", + "playFromHere": "从此处播放", + "moveDown": "下移", + "clearQueue": "清空播放队列", + "clearAll": "全部清除", + "search": "搜索", + "clearPlayed": "清除已播放", + "downloadSelected": "下载所选", + "removeSelectedDownloads": "移除所选下载", + "markSelectedPlayed": "将所选标记为已播放", + "removeSelectedFromQueue": "从播放队列移除所选", + "selectEpisode": "选择 {title}", + "playNamedEpisode": "播放 {title}", + "listenToEpisode": "收听 {title}", + "resumeEpisode": "继续播放 {title}", + "playLatestEpisode": "播放最新单集 {title}", + "episodeDetails": "单集详情", + "episodeDetailsNamed": "{title} 的单集详情", + "editEpisodeMetadata": "编辑元数据", + "openFullPlayer": "打开全屏播放器", + "reorderEpisode": "调整 {title} 的顺序", + "playAll": "全部播放", + "resumeNamed": "继续播放 {title}", + "queueAll": "全部加入队列", + "markAllPlayed": "全部标记为已播放", + "latestCount": "最新 {count} 个", + "downloadLatest": "下载最新单集", + "removeAllDownloads": "移除全部下载", + "pin": "置顶", + "unpin": "取消置顶", + "pinEpisode": "置顶单集", + "unpinEpisode": "取消置顶单集" + }, + "status": { + "nowPlaying": "正在播放", + "paused": "已暂停", + "downloaded": "已下载", + "downloadQueued": "已加入下载队列", + "downloading": "正在下载", + "downloadFailed": "下载失败", + "unavailable": "不可用", + "played": "已播放", + "following": "已订阅", + "playbackProgress": "播放进度", + "downloadProgress": "下载进度", + "removedFromFeed": "已从订阅源移除", + "inQueue": "在播放队列中", + "feedFailing": "订阅源异常", + "archived": "已归档", + "localShow": "本地", + "localShowDescription": "该节目没有订阅源,其单集就是文件夹中的文件。", + "missing": "丢失", + "missingDescription": "该节目的文件夹已不在磁盘上。保留在此以防文件夹恢复;删除节目才能将其彻底移除。" + }, + "selection": { + "select": "选择", + "selectAll": "全选", + "count": "已选择 {count} 项", + "toggleShow": "选择 {title}" + }, + "bulkDelete": { + "title": "删除所选节目", + "action": "删除", + "confirmPhrase": "DELETE", + "description": "这将永久删除 {count} 个节目以及 BookOrbit 关于它们的全部信息,包括你的收听历史。此操作无法撤销。", + "descriptionWithFiles": "这将永久删除 {count} 个节目、BookOrbit 关于它们的全部信息,以及 {size} 的已下载文件。你自己的文件夹不会被改动。此操作无法撤销。", + "queued": "正在删除 {count} 个节目", + "queuedWithFailures": "正在删除 {count} 个节目,{failed} 个未能开始", + "errors": { + "prepare": "无法确定删除这些节目会移除哪些内容", + "delete": "无法删除所选节目" + } + }, + "views": { + "queue": "播放队列" + }, + "labels": { + "episodeCount": "{count} 个单集", + "unknownPublisher": "未知发布者", + "durationHoursMinutes": "{hours} 时 {minutes} 分", + "durationMinutes": "{minutes} 分", + "durationSeconds": "{seconds} 秒", + "durationUnavailable": "时长不可用", + "unknownDate": "未知日期", + "seasonEpisode": "S{season} E{episode}", + "season": "S{season}", + "episode": "E{episode}", + "episodeTypeTrailer": "预告", + "episodeTypeBonus": "加更", + "pinnedHint": "置顶的单集不会被存储保留策略清理。", + "explicit": "含露骨内容", + "lastListened": "收听于 {time}", + "timeLeft": "剩余 {time}", + "remainingClock": "-{time}", + "pinnedEpisode": "已置顶单集", + "newEpisodeCount": "{count} 个新单集", + "unplayedShort": "{count} 未播放" + }, + "acquisition": { + "title": "自动下载", + "never": "从不", + "newEpisodes": "新单集", + "recentEpisodes": "最近单集", + "maximumNewest": "最新单集数量上限", + "publishedWithinDays": "发布于最近(天数)内", + "remoteDescription": "默认流式播放单集。你仍可下载单个单集以便离线收听。", + "newestDescription": "自动下载指定数量的最新单集,已存储或已在队列中的除外。保存此规则时也会检查订阅源中已有的单集。", + "windowDescription": "下载此时间段内发布的现有单集和新发现的单集。没有发布日期的单集会被跳过。更改此规则不会移除已有的下载,但存储保留策略可能会在需要空间时移除未置顶的下载。" + }, + "cleanup": { + "title": "收听后删除", + "keep": "保留下载", + "afterFinished": "听完即删", + "delayHours": "最后一位听众听完这么多小时后删除", + "keepDescription": "已下载的单集会保留在磁盘上,直到存储保留策略需要空间。", + "afterFinishedDescription": "当每一位开始收听该单集的听众都已听完、且延时已过时,删除已下载的单集。在此期间将其标记为未播放、置顶或重新加入播放队列,都会取消删除。" + }, + "player": { + "miniPlayer": "播客迷你播放器", + "openFullPlayer": "打开全屏播放器", + "expandMiniPlayer": "展开迷你播放器", + "collapseMiniPlayer": "收起为紧凑播放器", + "stopAndClose": "停止并关闭播放器", + "sleepActive": "睡眠定时器已启用:{value}", + "previousEpisode": "上一单集", + "nextEpisode": "下一单集", + "backSeconds": "后退 {count} 秒", + "forwardSeconds": "前进 {count} 秒", + "episodePosition": "单集播放位置", + "toggleTimeDisplay": "切换剩余时间和总时长", + "positionValue": "已播放 {elapsed} / 共 {duration}", + "playingAnnouncement": "正在播放 {podcast} 的 {title}", + "pausedAnnouncement": "已暂停 {podcast} 的 {title}", + "volume": "音量", + "positionValueWithChapter": "已播放 {elapsed} / 共 {duration},章节 {chapter}" + }, + "bookmarks": { + "title": "书签", + "empty": "暂无书签", + "closeForm": "关闭书签表单", + "saveAt": "在 {time} 保存", + "titlePlaceholder": "书签标题", + "notePlaceholder": "可选备注", + "save": "保存书签", + "edit": "编辑书签", + "delete": "删除书签", + "titleLabel": "书签标题", + "noteLabel": "书签备注", + "editTitleLabel": "编辑书签标题", + "editNoteLabel": "编辑书签备注", + "defaultTitle": "{time} 的书签" + }, + "library": { + "episodes": "单集", + "shows": "节目", + "latest": "最新", + "inProgress": "收听中", + "unplayed": "未播放", + "finished": "已听完", + "health": "健康状态", + "search": "搜索播客", + "clearSearch": "清除播客搜索", + "import": "导入", + "importOpml": "导入 OPML", + "importDescription": "导入 OPML 订阅列表", + "addFeed": "添加订阅源", + "settings": "播客设置", + "views": "播客视图", + "loading": "正在加载播客……", + "noMatchingShows": "没有匹配的节目", + "ready": "你的播客媒体库已就绪", + "tryDifferentSearch": "试试其他标题或发布者。", + "readyDescription": "添加 RSS 订阅源或导入 OPML 文件,开始搭建你的收听库。", + "loadMoreShows": "加载更多节目", + "upNext": "接下来播放", + "emptyQueue": "播放队列是空的", + "emptyQueueDescription": "从节目里添加一集,下一集想听的随时在手边。", + "loadMore": "加载更多", + "lastSuccess": "上次成功", + "failureCount": "{count} 次失败:{error}", + "unknownError": "未知错误", + "healthy": "健康", + "noFeeds": "没有需要监控的订阅源", + "noFeedsDescription": "添加播客订阅源后,可以在这里看到它的刷新状态。", + "noMatchingEpisodes": "没有匹配的单集", + "noEpisodesLatest": "还没有单集", + "noEpisodesDownloaded": "没有已下载的单集", + "noEpisodesInProgress": "没有收听中的单集", + "noEpisodesUnplayed": "没有未播放的单集", + "noEpisodesFinished": "没有已听完的单集", + "noEpisodesPinned": "没有置顶的单集", + "pinned": "已置顶", + "continueListening": "继续收听", + "viewAllContinue": "查看全部", + "noEpisodesDescription": "节目的新单集会出现在这里。", + "loadMoreEpisodes": "加载更多单集", + "addPodcastFeed": "添加播客订阅源", + "rssUrl": "RSS 订阅源地址", + "preview": "预览", + "addPodcast": "添加播客", + "storage": "播客存储", + "currentlyUsing": "当前已用 {size}", + "libraryQuotaGb": "媒体库配额(GB)", + "freeSpaceReserveGb": "可用空间保留(GB)", + "defaultRefreshMinutes": "默认刷新间隔(分钟)", + "finishRemainingSeconds": "剩最后几秒时视为听完", + "exportOpml": "导出 OPML", + "exportDescription": "将此媒体库导出为 OPML 订阅列表", + "importOpmlDescription": "选择一个 OPML 文件,并选择要应用到其中每个订阅源的下载策略。", + "opmlFile": "OPML 文件", + "chooseOpmlFile": "选择文件", + "noOpmlFileChosen": "未选择文件", + "importPolicyHint": "此策略会应用到每个导入的订阅源,之后可以按节目单独修改。", + "searchShows": "搜索节目", + "searchEpisodes": "搜索单集", + "searchHealth": "搜索订阅源健康状态", + "manageFeeds": "管理订阅源", + "feedHealth": "订阅源健康状态", + "feedsNeedAttention": "有订阅源需要处理", + "episodeFilters": "单集筛选", + "previewing": "正在预览……", + "addingPodcast": "正在添加……", + "openShow": "打开 {title}", + "retryFeed": "刷新 {title}", + "reparseFeed": "重新解析 {title} 的已存储订阅源", + "confirmClearQueue": "移除播放队列中的所有单集?", + "importProgress": "导入进度", + "jobsQueued": "{count} 个排队中", + "jobsProcessing": "{count} 个处理中", + "jobsFailed": "{count} 个失败", + "retryUnhealthy": "重试异常订阅源", + "followedOnly": "仅显示已订阅", + "queueDuration": "共 {duration}", + "confirmClearPlayed": "从播放队列中移除所有已播放的单集?", + "searchQueue": "搜索播放队列", + "noMatchingQueueEpisodes": "没有匹配的播放队列单集", + "showAllEpisodes": "显示所有单集", + "browseShows": "浏览节目", + "browseEpisodes": "浏览单集", + "allLoaded": "已加载全部 {total} 个", + "addFeedDescription": "搜索播客目录或粘贴 RSS 订阅源地址,预览节目,然后选择单集的获取方式。", + "searchDirectory": "搜索播客目录", + "searchDirectoryPlaceholder": "节目或发布者名称", + "searchDirectoryEmpty": "播客目录中没有匹配该搜索的节目。", + "searchDirectoryHint": "选择一个结果进行预览,或在下方粘贴订阅源地址。", + "inLibrary": "已在媒体库中", + "openExistingShow": "打开 {title},它已在你的媒体库中", + "pasteFeedUrl": "或粘贴订阅源地址", + "selectAllLoaded": "选择所有已加载的单集", + "reorderLoadedHint": "排序仅作用于目前已加载的单集。", + "retryUnhealthyLoaded": "重试已加载的异常订阅源", + "manageFeedsUnhealthy": "管理订阅源:有订阅源需要处理", + "localImportTitle": "正在从你的文件夹导入播客", + "localImportDoneTitle": "导入完成", + "localImportCounting": "正在扫描你的文件夹…", + "localImportProgress": "已处理 {processed} / {total} 个文件", + "localImportDone": "已导入 {processed} 个文件", + "importingTitle": "正在导入你的播客", + "importingHint": "节目文件读取完成后会出现在这里。" + }, + "import": { + "title": "导入本地文件", + "description": "将媒体库文件夹中已有的音频,与你订阅的订阅源单集进行匹配。", + "placementHint": "请先把文件放进此媒体库的文件夹。BookOrbit 会在原地使用这些文件:不复制、不重命名、不移动。", + "scan": "扫描文件", + "running": "正在扫描……", + "progress": "已扫描 {current} / {total} 个文件", + "apply": "导入匹配的文件", + "applyWithChoices": "导入匹配的文件及你的选择", + "applied": "已纳入 {count} 个文件。", + "quota": "待纳入 {adopt} 个,配额剩余 {headroom}", + "truncated": "部分列表已截断显示,上方计数是完整的。", + "chooseEpisode": "选择单集", + "leaveUnresolved": "暂时搁置", + "noDate": "无日期", + "fileCount": "{count} 个文件", + "subscribe": "订阅", + "subscribed": "已订阅", + "suggestedFeedsHint": "这些文件夹对应的订阅源你还没有订阅。先订阅,再扫描一次以匹配其中的文件。", + "rescanHint": "再扫描一次,以匹配刚订阅的文件夹中的文件。", + "duplicateDiffers": "该单集已关联了另一个文件", + "duplicateSame": "该单集已有此文件", + "unreadableFolders": "有 {count} 个文件夹无法读取。", + "groups": { + "matched": "已匹配", + "ambiguous": "需要人工决定", + "unmatched": "未匹配", + "duplicates": "已关联", + "skipped": "已跳过", + "suggestedFeeds": "待订阅的订阅源", + "unclaimedFolders": "没有订阅源的文件夹" + }, + "signals": { + "episode_guid": "文件标签中的单集 ID", + "episode_id_suffix": "文件名中的 BookOrbit ID", + "enclosure_file_name": "文件名与订阅源一致", + "title_and_date": "标题和日期", + "title_and_duration": "标题和时长", + "manual": "你的选择" + }, + "scopes": { + "request": "你选择的节目", + "folder_suffix": "节目文件夹名", + "feed_url_tag": "文件标签中的订阅源地址", + "feed_sidecar": "文件夹中保存的订阅源", + "title_similarity": "相似的节目标题", + "library": "未识别出节目" + }, + "reasons": { + "show_unresolved": "无法识别此文件所属的节目", + "no_episode_candidate": "节目匹配了,但没有匹配的单集", + "single_fuzzy_signal": "只有一个信号指向某个单集", + "multiple_candidates": "多个单集同样匹配", + "empty_file": "文件为空", + "unsupported_format": "不是受支持的音频文件", + "symlink": "符号链接不会被导入", + "unreadable": "文件无法读取", + "outside_library_root": "文件位于媒体库文件夹之外", + "attach_conflict": "扫描期间该单集已关联了其他文件", + "quota_exceeded": "导入这些文件会超出此媒体库的存储配额。请调高配额或减少导入的文件。" + }, + "sources": { + "feed_sidecar": "保存的订阅源文件", + "metadata_json": "metadata.json", + "feed_url_tag": "文件标签" + }, + "errors": { + "status": "读取导入状态失败", + "start": "启动导入失败", + "subscribe": "订阅此订阅源失败", + "createLocalShow": "无法从此文件夹创建本地节目" + }, + "messages": { + "subscribed": "播客已添加。请再次扫描以匹配其文件。", + "localShowCreated": "本地节目已创建,正在导入其单集。", + "localShowUpdated": "正在导入此文件夹中的新文件。" + }, + "createLocalShow": "创建本地节目", + "addLocalEpisodes": "添加新单集", + "localShowCreated": "已创建", + "unclaimedFoldersHint": "这些文件夹不对应任何订阅源。将其转换为本地节目,其中每个音频文件都会成为一个单集。", + "localRescanHint": "再扫描一次,以获取刚导入的文件夹中的其他变化。" + }, + "messages": { + "podcastAdded": "播客已添加", + "feedsQueued": "已排队 {count} 个播客订阅源", + "settingsSaved": "播客设置已保存", + "downloadQueued": "单集下载已排队", + "downloadRemoved": "单集下载已移除", + "refreshQueued": "播客刷新已排队", + "reparseQueued": "播客重新解析已排队", + "mergeQueued": "播客合并已排队", + "showDeleted": "{title} 已删除", + "queueCleared": "播客播放队列已清空", + "playerClosed": "播放器已关闭", + "feedsRefreshQueued": "已排队刷新 {count} 个订阅源", + "finishedQueueCleared": "已从播放队列移除已播放的单集", + "bulkQueueActionCompleted": "已更新所选的 {count} 个单集", + "bulkQueueActionFailed": "已更新 {completed} 个单集,{failed} 个失败", + "bulkQueued": "已将 {completed} 个单集加入队列;{skipped} 个已在队列中或超出队列上限", + "bulkMarkedPlayed": "已将 {count} 个单集标记为已播放", + "bulkDownloadsQueued": "已排队 {count} 个单集下载", + "bulkDownloadsRemoved": "已移除 {count} 个单集下载", + "bulkDownloadsRemovedWithFailures": "已移除 {completed} 个下载;{failed} 个失败", + "queueRestored": "已将 {count} 个单集恢复到播放队列", + "playlistSaved": "播放列表已保存", + "playlistDeleted": "播放列表已删除", + "playlistQueued": "已将 {completed} 个单集加入队列,跳过 {skipped} 个", + "playlistQueueEmpty": "没有符合此播放列表的单集", + "detailsSaved": "节目详情已保存", + "episodeDetailsSaved": "单集详情已保存", + "artworkUpdated": "封面已更新", + "artworkRemoved": "自定义封面已移除", + "localFileDeleted": "单集文件已删除", + "opmlOmittedLocalShows": "导出时略过了 {count} 个本地节目:OPML 只能描述订阅源。" + }, + "fullPlayer": { + "queueNowPlaying": "正在播放第 {position} 个 · 还剩 {count} 个", + "queuedCount": "已排队 {count} 个", + "mediaUnavailable": "媒体不可用", + "streaming": "正在流式播放", + "backToPodcast": "返回播客", + "loading": "正在加载单集……", + "tryAgain": "重试", + "nowListening": "正在收听", + "retry": "重试", + "restart": "重新播放", + "durationUnavailable": "时长不可用", + "previousQueued": "上一个队列单集", + "nextQueued": "下一个队列单集", + "startingPlayback": "正在开始播放", + "speed": "倍速", + "playbackSpeed": "播放速度", + "sleep": "睡眠", + "off": "关闭", + "endOfChapter": "章节结束时", + "endOfEpisode": "单集结束时", + "minutesLeft": "剩余 {count} 分钟", + "aboutEpisode": "关于本单集", + "showLess": "收起", + "showMore": "展开", + "chapters": "章节", + "previousChapter": "上一章节", + "nextChapter": "下一章节", + "removeNamedFromQueue": "将 {title} 移出队列", + "queueClear": "播放队列已清空。", + "transcripts": "文字稿", + "transcript": "文字稿", + "sleepMinutes": "{count} 分钟", + "speedValue": "{rate}x", + "cyclePlaybackSpeed": "循环切换播放速度", + "choosePlaybackSpeed": "选择播放速度", + "moreSpeeds": "更多", + "showSpeedOverride": "此速度已为该节目记住。", + "clearSpeedOverride": "对该节目使用默认速度", + "extendSleepLabel": "为睡眠定时器延长 {count} 分钟", + "sleepTimer": "睡眠定时器", + "sleepRemaining": "{count} 分钟", + "fineTuneSpeed": "微调", + "decreaseSpeed": "降低播放速度", + "increaseSpeed": "提高播放速度", + "extendSleep": "延长 {count} 分钟", + "bookmarkTooltip": "书签:{title}", + "openQueue": "打开播放队列", + "openChapterLink": "打开 {title} 的章节链接" + }, + "show": { + "loading": "正在加载播客……", + "noAlerts": "无提醒", + "immediate": "即时", + "dailyDigest": "每日摘要", + "weeklyDigest": "每周摘要", + "refreshFeed": "刷新订阅源", + "refreshInterval": "刷新间隔(分钟)", + "restore": "恢复", + "archive": "归档", + "deletePermanently": "永久删除", + "mergeSource": "将另一个播客 ID 合并到当前节目", + "queueMerge": "排队执行合并", + "confirmMerge": "将播客 {id} 合并到当前播客?源播客将被永久移除。", + "confirmDelete": "永久删除 {title}、它的 {episodes} 个单集以及所有收听状态?此操作无法撤销。", + "confirmDeleteWithDownloads": "永久删除 {title}、它的 {episodes} 个单集、{files} 个已下载文件({size})以及所有收听状态?此操作无法撤销。", + "back": "返回", + "notificationMode": "通知频率", + "readMore": "查看更多", + "searchEpisodes": "搜索此节目的单集", + "clearEpisodeSearch": "清除单集搜索", + "episodeFilter": "单集筛选", + "episodeSort": "单集排序方式", + "newestFirst": "从新到旧", + "oldestFirst": "从旧到新", + "noEpisodes": "没有匹配的单集", + "noEpisodesDescription": "试试其他搜索、筛选或排序方式。", + "dangerZone": "危险操作区", + "dangerZoneActions": "归档、删除或合并此订阅源。删除操作无法撤销。", + "mergeTitle": "合并重复节目", + "mergeDescription": "找到要合并到当前节目的源节目。源节目将被永久移除。", + "searchMergeSource": "搜索重复的节目", + "mergeSelected": "将“{title}”合并到当前节目", + "fromDate": "开始日期", + "toDate": "结束日期", + "feedFailingTitle": "订阅源需要处理", + "feedFailingDetail": "连续 {count} 次刷新失败。上次成功刷新:{lastSuccess}", + "archivedTitle": "该节目已归档", + "archivedDescription": "已归档的节目会停止刷新,也不再下载新单集。", + "downloadLatestCount": "要下载的最新单集数量", + "confirmRemoveAllDownloads": "移除此节目的所有已下载单集?流式播放的单集和收听进度会保留。", + "refreshCompleted": "已更新,{count} 个新单集", + "refreshFailed": "刷新失败:{error}", + "manageTitle": "管理节目", + "manageActionsDescription": "归档、删除和合并单独处理,日常设置可以放心修改。", + "openManageActions": "归档、删除或合并", + "archiveOrDelete": "归档可逆且保留所有单集。删除会彻底移除节目、其单集和所有已下载文件。", + "deleteRequiresOwner": "归档会隐藏该节目并停止刷新。只有拥有删除播客权限的媒体库所有者才能将其永久移除。", + "settingsDescription": "选择单集的获取方式,以及检查订阅源的频率。", + "updatedAgo": "更新于 {time}", + "checksEvery": "每 {time} 检查一次", + "visitWebsite": "访问网站", + "backToLibrary": "返回 {library}", + "categoryOverflow": "+{count}", + "moreCategories": "显示另外 {count} 个分类", + "allCategories": "所有分类", + "serial": "连载", + "daysShort": "{count} 天", + "hoursShort": "{count} 小时", + "minutesShort": "{count} 分钟", + "moreActions": "更多节目操作", + "dates": "日期", + "anyDate": "任意", + "dateRange": "{from} - {to}", + "dateFilter": "单集发布日期", + "clearDates": "清除日期", + "seasonHeader": "第 {season} 季", + "localSettingsHint": "该节目没有订阅源,因此没有刷新或下载设置。" + }, + "edit": { + "title": "编辑详情", + "description": "你在此处修改的内容会被锁定,下次订阅源刷新不会覆盖。", + "titleLabel": "节目标题", + "authorLabel": "发布者", + "authorPlaceholder": "该节目的发布者", + "descriptionLabel": "描述", + "descriptionPlaceholder": "这个节目的内容介绍", + "descriptionHint": "订阅源中的格式会被你在此输入的纯文本替换。", + "siteUrlLabel": "网站", + "siteUrlPlaceholder": "https://example.com/show", + "languageLabel": "语言", + "languagePlaceholder": "en-us", + "categoriesLabel": "分类", + "categoriesPlaceholder": "输入分类后按回车添加", + "removeCategory": "移除分类 {category}", + "categoryLimit": "最多可保留 {count} 个分类。", + "explicitLabel": "露骨内容", + "explicitHint": "将此节目标记为包含露骨内容。", + "artworkTitle": "封面", + "artworkHint": "支持 PNG、JPEG、WebP、GIF 或 AVIF,最大 10 MB。自定义封面会在所有位置替换订阅源图片。", + "artworkUrlLabel": "图片地址", + "artworkUrlPlaceholder": "https://example.com/artwork.png", + "chooseImage": "选择图片", + "useImage": "使用此图片", + "removeCustomArtwork": "移除自定义封面", + "lockField": "锁定 {field},防止订阅源刷新覆盖", + "unlockField": "解锁 {field},允许订阅源更新", + "willLockField": "保存后 {field} 将被锁定", + "willLockHint": "保存后该字段将被锁定。", + "localDescription": "该节目没有订阅源,你的修改是永久的,不会被任何内容覆盖。" + }, + "episodeEdit": { + "title": "编辑单集", + "description": "你在此处修改的内容会被锁定,下次订阅源刷新不会覆盖。", + "lockHint": "已编辑的字段受保护,不会被订阅源更新覆盖。", + "titleLabel": "单集标题", + "subtitleLabel": "副标题", + "subtitlePlaceholder": "标题下的一行简短说明", + "descriptionLabel": "描述", + "descriptionPlaceholder": "本单集的内容介绍", + "descriptionHint": "订阅源中的格式会被你在此输入的纯文本替换。", + "publishedAtLabel": "发布时间", + "seasonLabel": "季", + "seasonPlaceholder": "2", + "episodeLabel": "单集编号", + "episodePlaceholder": "14", + "episodeTypeLabel": "单集类型", + "episodeTypeNone": "未设置", + "episodeTypeFull": "完整单集", + "episodeTypeTrailer": "预告", + "episodeTypeBonus": "加更", + "episodeTypeFromFeed": "{value}(来自订阅源)", + "durationLabel": "时长", + "durationPlaceholder": "分钟", + "durationHint": "以分钟为单位。留空则移除时长。", + "durationInvalid": "请输入大于零的分钟数。", + "explicitLabel": "露骨内容", + "explicitHint": "将此单集标记为包含露骨内容。", + "localHint": "该单集来自文件而非订阅源,你的修改是永久的,不会被任何内容覆盖。" + }, + "errors": { + "createBookmark": "创建书签失败", + "updateBookmark": "更新书签失败", + "deleteBookmark": "删除书签失败", + "feedPreview": "订阅源预览失败", + "directorySearch": "目录搜索当前不可用。请改为粘贴订阅源地址。", + "invalidEpisodeLimit": "请输入有效的单集数量上限", + "invalidEpisodeWindow": "请输入有效的最近单集范围", + "invalidCleanupDelay": "清理延时必须在 0 到 8,760 小时之间", + "addPodcast": "添加播客失败", + "opmlTooLarge": "OPML 文件不能超过 5 MB", + "opmlImport": "OPML 导入失败", + "opmlExport": "OPML 导出失败", + "loadSettings": "加载播客设置失败", + "invalidStorage": "存储值必须是非负数字", + "invalidRefresh": "默认刷新间隔必须在 5 到 10,080 分钟之间", + "invalidCompletion": "完成阈值必须在 0 到 3,600 秒之间", + "saveSettings": "保存播客设置失败", + "markPlayed": "标记单集已播放失败", + "restartEpisode": "重新播放单集失败", + "queueDownload": "单集下载排队失败", + "removeDownload": "移除单集下载失败", + "addToQueue": "单集加入队列失败", + "removeFromQueue": "单集移出队列失败", + "loadPodcast": "加载播客失败", + "loadEpisodes": "加载播客单集失败", + "queueNext": "单集插播排队失败", + "follow": "订阅播客失败", + "unfollow": "取消订阅播客失败", + "updateEpisode": "更新单集失败", + "refresh": "播客刷新排队失败", + "reparse": "播客重新解析排队失败", + "reparseNoSnapshot": "BookOrbit 还没有此订阅源的已存副本。请先刷新。", + "updatePodcast": "更新播客失败", + "archive": "归档播客失败", + "prepareDelete": "准备删除节目失败", + "deleteShow": "删除节目失败", + "restore": "恢复播客失败", + "merge": "播客合并排队失败", + "libraryAccess": "加载媒体库访问权限失败", + "reorderQueue": "播客队列排序失败", + "clearQueue": "清空播客队列失败", + "podcastNotFound": "找不到该播客", + "loadPodcasts": "加载播客失败", + "loadQueue": "加载播客队列失败", + "loadHealth": "加载订阅源健康状态失败", + "loadPlaybackSettings": "加载播客播放设置失败", + "invalidPlaybackRate": "播放速度必须在 0.5 到 3 之间", + "invalidSkipBackward": "向后跳转必须在 5 到 120 秒之间", + "invalidSkipForward": "向前跳转必须在 5 到 120 秒之间", + "invalidDateRange": "开始日期必须早于结束日期", + "episodeNotFound": "找不到该播客单集", + "loadEpisode": "加载播客单集失败", + "refreshPlaybackContext": "刷新播放上下文失败", + "streamUnavailable": "无法加载该播客单集", + "bulkAction": "更新播客单集失败", + "invalidVolume": "音量必须在 0 到 100% 之间", + "restoreQueue": "恢复播客队列失败", + "loadPlaylists": "加载你的播放列表失败", + "savePlaylist": "保存播放列表失败", + "deletePlaylist": "删除播放列表失败", + "queuePlaylist": "播放列表排队失败", + "playlistNameRequired": "保存前请为播放列表命名", + "playlistLimitReached": "你已达到已保存播放列表的数量上限", + "playlistDurationRange": "最短时长必须小于最长时长", + "updatePinned": "更新置顶状态失败", + "titleRequired": "节目标题不能为空", + "episodeTitleRequired": "单集标题不能为空", + "updateArtwork": "更新封面失败", + "removeArtwork": "移除自定义封面失败" + }, + "settingsPage": { + "title": "播客设置", + "subtitle": "管理每个播客媒体库的播放默认值和存储行为。", + "loading": "正在加载播客设置……", + "saving": "正在保存……", + "playbackTitle": "播放默认设置", + "playbackDescription": "这些偏好会跟随你的账户在所有设备间同步。为单个节目记住的播放速度会保留。", + "defaultPlaybackRate": "默认播放速度", + "skipBackwardSeconds": "向后跳转(秒)", + "skipForwardSeconds": "向前跳转(秒)", + "playbackSaved": "播客播放设置已保存", + "playbackSaveFailed": "保存播客播放设置失败", + "libraryTitle": "媒体库默认设置与存储", + "libraryDescription": "选择一个播客媒体库,查看其存储上限和默认刷新行为。", + "library": "播客媒体库", + "noLibraries": "你还没有可访问的播客媒体库。", + "loadingLibrary": "正在加载媒体库设置……", + "readOnlyLibrary": "只有拥有播客保留策略权限的媒体库所有者才能更改这些设置。", + "showSettingsHint": "自动下载规则和刷新覆盖仍保留在各个节目的设置中。", + "defaultVolume": "默认音量", + "gigabytesUnit": "GB" + }, + "queueReorder": { + "lifted": "已拾起 {title},当前位于第 {position} 项,共 {total} 项", + "moved": "已将 {title} 移到第 {position} 项,共 {total} 项", + "dropped": "已放下 {title},当前位于第 {position} 项,共 {total} 项", + "cancelled": "已取消调整 {title} 的顺序" + }, + "sort": { + "label": "排序", + "showLabel": "节目排序", + "episodeLabel": "单集排序", + "showTitle": "标题 A 到 Z", + "showRecent": "最近更新", + "showUnplayed": "未播最多", + "shortest": "时长从短到长", + "longest": "时长从长到短", + "recentlyListened": "最近收听" + }, + "announce": { + "queued": "已将 {title} 加入播放队列", + "queuedNext": "{title} 将接着播放", + "unqueued": "已将 {title} 从播放队列移除", + "downloadReady": "{title} 下载完成", + "downloadFailed": "{title} 下载失败", + "evictedSpace": "已移除 {title} 的下载以释放存储空间", + "evictedPlayed": "{title} 的下载已在收听后移除", + "sleepExpired": "睡眠定时器已结束,播放已暂停", + "sleepExtended": "睡眠定时器已延长 {count} 分钟", + "sleepChapterUnavailable": "睡眠定时器已取消,该单集没有章节" + }, + "shortcuts": { + "title": "播客键盘快捷键", + "description": "这些快捷键在单集加载后生效。空格键和方向键作用于播放器页面或迷你播放器,书签只能从播放器页面添加。", + "open": "键盘快捷键", + "togglePlayback": "播放或暂停", + "skipBackward": "向后跳转", + "skipForward": "向前跳转", + "next": "下一单集", + "previous": "上一单集", + "speedDown": "降低播放速度", + "speedUp": "提高播放速度", + "mute": "静音或取消静音", + "volumeUp": "调高音量", + "volumeDown": "调低音量", + "bookmark": "添加书签", + "help": "显示此列表", + "spaceKey": "空格", + "groups": { + "playback": "播放", + "navigation": "导航", + "tools": "工具" + } + }, + "playlists": { + "title": "播放列表", + "builtInLabel": "内置", + "savedLabel": "已保存", + "choose": "选择播放列表", + "search": "搜索播放列表单集", + "summary": "{count} 个单集,{duration}", + "summaryShortest": "最短", + "summaryLongest": "最长", + "summaryPublishedWithin": "发布于最近", + "create": "新建播放列表", + "createTitle": "新建智能播放列表", + "editTitle": "编辑智能播放列表", + "editorDescription": "选择此智能播放列表收集哪些单集。规则会在每次打开时重新计算,新单集会自动出现。", + "edit": "编辑规则", + "adjustRules": "调整规则", + "saveAs": "另存为播放列表", + "save": "保存播放列表", + "delete": "删除播放列表", + "deleteConfirmTitle": "删除此播放列表?", + "deleteConfirmDescription": "“{name}”及其规则将被移除。它收集的单集不受影响。", + "nameLabel": "播放列表名称", + "namePlaceholder": "早晨通勤", + "filterLabel": "单集", + "sortLabel": "顺序", + "minDuration": "最短(分钟)", + "maxDuration": "最长(分钟)", + "publishedWithin": "发布于最近(天)", + "showsLabel": "节目", + "showsDescription": "留空则包含媒体库中的所有节目。", + "searchShows": "搜索要添加的节目", + "removeShow": "移除 {title}", + "showLimit": "一个播放列表最多可包含 {count} 个节目。", + "copyOf": "{name} 副本", + "empty": "暂无符合此播放列表的单集", + "emptyDescription": "调整规则,或等新单集发布后再来看。", + "builtIn": { + "quick": "短篇快听", + "continue": "继续收听", + "downloaded": "已下载", + "fresh": "本周上新" + }, + "nameRequired": "保存前请为播放列表命名" + }, + "downloadWidget": { + "title": "下载", + "progress": "已下载 {completed} / {total}", + "progressWithFailures": "已下载 {completed} / {total};{failed} 个失败", + "progressWithCancelled": "已下载 {completed} / {total};{cancelled} 个已取消", + "complete": "下载完成:{count}", + "expand": "展开下载进度", + "collapse": "收起下载进度", + "overallProgress": "总体下载进度", + "unknownPodcast": "播客", + "unknownEpisode": "单集", + "batchProgress": "已完成 {completed} / {total}", + "dismiss": "关闭下载进度", + "bytes": "{received} / {total}", + "episodeProgress": "{title} 的下载进度", + "status": { + "queued": "排队中", + "downloading": "正在下载", + "completed": "已下载", + "failed": "失败", + "cancelled": "已取消" + } + }, + "collections": { + "addAction": "添加到合集", + "addTitle": "添加到合集", + "addDescription": "为 {title} 选择一个播客合集。", + "added": "已添加到 {name}", + "addFailed": "无法将该节目添加到该合集。", + "createFailed": "无法创建合集。", + "alreadyIn": "已在此合集中", + "none": "还没有播客合集。在下方创建一个。", + "newPlaceholder": "科幻播客", + "newLabel": "新合集名称", + "create": "创建", + "newCollection": "新建合集", + "existing": "现有合集", + "inCollection": "在此合集中", + "showCount": "{count} 个节目", + "removed": "已从 {name} 移除", + "removeFailed": "无法将该节目从该合集移除。" + } + }, "titles": { "dashboard": "控制面板", "libraries": "库", + "podcastLibraries": "播客媒体库", + "podcastScope": "智能播放列表", + "podcastCollection": "播客合集", "opds": "OPDS", - "koboSync": "Kobo Sync", + "koboSync": "Kobo 同步", "koreaderSync": "KOReader 同步", "bookDock": "Book Dock", "whatsNew": "新功能", @@ -8074,6 +11591,9 @@ "collection": "收藏", "author": "作者", "book": "书", + "podcasts": "播客", + "podcast": "播客", + "podcastEpisode": "单集", "seriesItem": "系列", "appearance": { "theme": "显示", @@ -8103,9 +11623,9 @@ "providers": "提供商", "field-rules": "字段级规则", "custom-fields": "自定义元数据", - "genre-blocklist": "Genre Blocklist", + "genre-blocklist": "体裁屏蔽列表", "score": "自信得分", - "auto-fetch": "预约自动获取", + "auto-fetch": "书籍自动获取", "authors": "作者自动获取" }, "admin": { @@ -8113,11 +11633,13 @@ "account-activity": "帐户活动", "magic-links": "免登录链接", "oidc": "OIDC / SSO", - "server-fonts": "服务端字体管理" + "server-fonts": "服务端字体管理", + "tts": "文本转语音" }, "system": { "file-naming": "文件名称", "book-dock": "Book Dock", + "requests": "请求", "maintenance": "维护", "audit-log": "审计日志" }, @@ -8128,6 +11650,92 @@ "restrictions": "内容限制" }, "smartScopes": "智能书架", - "collections": "收藏夹" + "collections": "收藏夹", + "missingResources": "缺失资源", + "bookRequests": "请求", + "bookRequestDetail": "请求", + "bookRequestReleases": "选择发布", + "tts": "文本转语音" + }, + "tts": { + "readerControls": { + "listen": "收听", + "playing": "播放中" + }, + "player": { + "fallbackTitle": "TTS 播放", + "play": "播放 TTS", + "pause": "暂停 TTS", + "openMiniPlayer": "打开迷你播放器", + "shrinkPlayer": "缩小播放器", + "expandPlayer": "放大播放器", + "collapsePlayer": "收起播放器", + "openDetails": "打开播放器详情", + "previousSentence": "上一句", + "nextSentence": "下一句", + "meta": "第 {chapter} 章 - 第 {sentence} 句 - {voice} - {speed}x", + "metaWithoutVoice": "第 {chapter} 章 - 第 {sentence} 句 - {speed}x", + "position": "第 {chapter} 章 - 第 {sentence} 句", + "playbackError": "播放出错 - 点按播放重试", + "voice": "语音", + "sleep": "睡眠", + "sleepRemaining": "{count} 分钟", + "currentVoice": "当前语音", + "chooseVoice": "选择语音", + "saveForBook": "保存本书的设置", + "setAsDefault": "设为全局默认", + "bookVoiceSaved": "已保存本书的语音", + "bookVoiceSaveFailed": "保存本书语音失败", + "defaultVoiceSaved": "默认 TTS 语音已更新", + "defaultVoiceSaveFailed": "更新默认语音失败", + "stop": "停止" + }, + "speed": { + "label": "播放速度", + "value": "{speed}x" + }, + "sleepTimer": { + "title": "睡眠定时器", + "preset": "{count} 分钟", + "presetLabel": "{count} 分钟后停止播放", + "cancel": "取消", + "cancelLabel": "取消睡眠定时器", + "remaining": "{minutes} 分 {seconds} 秒后停止" + }, + "resume": { + "title": "恢复 TTS?", + "description": "您有已保存的 TTS 位置", + "descriptionWithChapter": "您有已保存的 TTS 位置(第 {chapter} 章)", + "resume": "恢复", + "startHere": "从本页开始", + "dismiss": "关闭", + "clearing": "正在清除……", + "confirmClear": "确认清除", + "clearSavedPosition": "清除已保存的位置" + }, + "voicePicker": { + "search": "搜索语音……", + "allProviders": "全部", + "allLanguages": "全部语言", + "allCountries": "全部国家/地区", + "filterByLanguage": "按语言筛选", + "filterByCountry": "按国家/地区筛选", + "empty": "未找到语音", + "select": "选择 {name}", + "preview": "试听 {name}", + "voiceWithLocale": "{voice} - {locale}" + }, + "settings": { + "description": "配置默认 TTS 语音和播放设置。", + "defaultVoice": "默认语音", + "selectVoice": "选择语音……", + "change": "更改", + "defaultSpeed": "默认语速", + "saved": "TTS 偏好设置已保存", + "saveFailed": "保存 TTS 偏好设置失败" + }, + "errors": { + "generic": "TTS 错误" + } } }