From 7988353290f2767d7948fdced8ca3f10bab30278 Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Thu, 10 Aug 2023 15:38:56 +0200 Subject: [PATCH 1/3] Weblate Changes (#2194) * Translated using Weblate (Spanish) Currently translated at 40.9% (585 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/es/ * Translated using Weblate (Spanish) Currently translated at 40.9% (585 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/es/ * Translated using Weblate (Dutch) Currently translated at 48.5% (693 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/nl/ * Translated using Weblate (Portuguese) Currently translated at 96.8% (153 of 158 strings) Translation: Kavita/backend Translate-URL: https://hosted.weblate.org/projects/kavita/backend/pt/ * Translated using Weblate (Portuguese) Currently translated at 24.3% (348 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/pt/ * Translated using Weblate (Spanish) Currently translated at 3.7% (6 of 158 strings) Translation: Kavita/backend Translate-URL: https://hosted.weblate.org/projects/kavita/backend/es/ * Translated using Weblate (Italian) Currently translated at 11.2% (161 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/it/ --------- Co-authored-by: ThePromidius Co-authored-by: gallegonovato Co-authored-by: Hans Kalisvaart Co-authored-by: Duarte Silva Co-authored-by: Tomas Battistini --- API/I18N/es.json | 5 +- API/I18N/pt.json | 4 +- UI/Web/src/assets/langs/es.json | 349 ++++++++++++++++++++++++++++++-- UI/Web/src/assets/langs/it.json | 131 ++++++------ UI/Web/src/assets/langs/nl.json | 223 ++++++++++---------- UI/Web/src/assets/langs/pt.json | 92 ++++----- 6 files changed, 567 insertions(+), 237 deletions(-) diff --git a/API/I18N/es.json b/API/I18N/es.json index 72e8fef93..bcfe104c7 100644 --- a/API/I18N/es.json +++ b/API/I18N/es.json @@ -1,5 +1,8 @@ { "bad-credentials": "Las credenciales son incorrectas", "confirm-email": "Debes confirmar el correo electrónico primero", - "disabled-account": "La cuenta está deshabilitada. Contacta con un administrador." + "disabled-account": "La cuenta está deshabilitada. Contacta con un administrador.", + "validate-email": "Ha habido un error al validar el correo: {0}", + "locked-out": "Se ha bloqueado el acceso debido a demasiados intentos. Por favor espera 10 minutos.", + "register-user": "Ha ocurrido un error registrando el usuario" } diff --git a/API/I18N/pt.json b/API/I18N/pt.json index ed1f4c95c..bb6b064c9 100644 --- a/API/I18N/pt.json +++ b/API/I18N/pt.json @@ -149,5 +149,7 @@ "reset-chapter-lock": "Não foi possível repor o bloqueio de capa para o Capítulo", "browse-reading-lists": "Explorar por Listas de Leituras", "browse-libraries": "Explorar por Bibliotecas", - "browse-collections": "Explorar por Coleções" + "browse-collections": "Explorar por Coleções", + "invalid-payload": "Payload inválido", + "scrobble-bad-payload": "Payload inválido de Fornecedor de Scrobble" } diff --git a/UI/Web/src/assets/langs/es.json b/UI/Web/src/assets/langs/es.json index 7efeb75c1..ada81746d 100644 --- a/UI/Web/src/assets/langs/es.json +++ b/UI/Web/src/assets/langs/es.json @@ -116,7 +116,29 @@ "review": "Actualización de reseña" }, "common": { - "volume-num": "Volumen" + "volume-num": "Volumen", + "create": "Crear", + "help": "Ayuda", + "submit": "Enviar", + "select-all": "Seleccionar todo", + "deselect-all": "Deseleccionar todo", + "apply": "Aplicar", + "edit": "Editar", + "loading": "Cargando…", + "read": "Leer", + "close": "Cerrar", + "cancel": "Cancelar", + "add": "Añadir", + "save": "Guardar", + "reset": "Reiniciar", + "delete": "Eliminar", + "username": "Usuario", + "password": "Contraseña", + "series-count": "{{num}} Series", + "promoted": "Promocionado", + "reset-to-default": "Reiniciar a predeterminado", + "book-num": "Libro", + "chapter-num": "Capitulo" }, "user-preferences": { "share-series-reviews-label": "Compartir reseñas de series", @@ -183,7 +205,8 @@ "clients-opds-url-tooltip": "URL de OPDS", "reset": "{{common.reset}}", "save": "{{common.save}}", - "line-height-book-label": "Espaciado entre líneas" + "line-height-book-label": "Espaciado entre líneas", + "scrobbling-tab": "Seguimiento" }, "user-holds": { "description": "Esta es una lista gestionada por el usuario de series que no serán scrobbleadas a los proveedores de flujo ascendente. Puedes eliminar una serie en\n cualquier momento y el siguiente evento Scrobble-able (progreso de lectura, calificación, estado de lectura deseado) activará eventos.", @@ -282,7 +305,8 @@ "invite-url-tooltip": "Copia y pégalo en una nueva ventana", "permission-error": "No tienes permiso para cambiar tu dirección de correo electrónico. Contacta a un administrador del servidor.", "required-field": "{{validation.required-field}}", - "reset": "{{common.reset}}" + "reset": "{{common.reset}}", + "setup-user-account": "Configurar cuenta de usuario" }, "change-age-restriction": { "save": "{{common.save}}", @@ -304,7 +328,13 @@ "edit": "{{common.edit}}", "requires": "Esta característica requiere una licencia de {{product}}", "cancel": "{{common.cancel}}", - "save": "{{common.save}}" + "save": "{{common.save}}", + "token-set": "Token configurado", + "token-input-label": "El token de {{service}} va aquí", + "title": "Proveedores de seguimiento", + "token-expired": "Token expirado", + "no-token-set": "Token no configurado", + "instructions": "Usuarios que usan el servicio por primera vez deben hacer clic en \"{{scrobbling-providers.generate}}\" debajo para permitir a Kavita+ comunicarse con {{service}}. Una vez autorizado, copia y pega el token en la caja de abajo. Puedes regenerar el token en cualquier momento." }, "user-stats-info-cards": { "total-words-read-label": "Total de palabras leídas", @@ -328,7 +358,8 @@ "this-week": "{{time-periods.this-week}}", "last-7-days": "{{time-periods.last-7-days}}", "last-30-days": "{{time-periods.last-30-days}}", - "last-90-days": "{{time-periods.last-90-days}}" + "last-90-days": "{{time-periods.last-90-days}}", + "title": "Top lectores" }, "directory-picker": { "path-placeholder": "Comienza a escribir o selecciona una ruta", @@ -354,17 +385,20 @@ "generic-list-modal": { "close": "{{common.close}}", "open-filtered-search": "Abierta una búsqueda filtrada para {{item}}", - "filter": "Filtrar" + "filter": "Filtrar", + "clear": "Limpiar" }, "user-stats": { - "read-percentage": "% Leído" + "read-percentage": "% Leído", + "library-read-progress-title": "Progreso de lectura de librería" }, "typeahead": { "locked-field": "El campo está bloqueado", "close": "{{common.close}}", "loading": "{{common.loading}}", "no-data": "No existen datos", - "add-item": "Añadir {{item}}…" + "add-item": "Añadir {{item}}…", + "add-custom-item": ", escribe para añadir un objeto" }, "library-access-modal": { "select-all": "{{common.select-all}}", @@ -381,7 +415,8 @@ "last-7-days": "Últimos 7 días", "last-30-days": "Últimos 30 días", "last-90-days": "Últimos 90 días", - "last-year": "Último año" + "last-year": "Último año", + "all-time": "Todos los tiempos" }, "device-platform-pipe": { "custom": "Personalizado" @@ -398,18 +433,306 @@ "cbl-import-result-pipe": { "success": "Satisfactorio", "partial": "Parcial", - "failure": "" + "failure": "Fallo" }, "cbl-conflict-reason-pipe": { "all-series-missing": "Tu cuenta no tiene acceso a todas las series de la lista o Kavita no tiene nada presente en la lista.", "chapter-missing": "{{series}}: Capítulo {{chapter}} no presente en Kavita. Este item será saltado.", "empty-file": "El archivo CBL está vacío. Ninguna acción realizada.", - "name-conflict": "Una lista de lectura que coincide con el archivo CBL ({{readingListName}}) ya existe en tu cuenta." + "name-conflict": "Una lista de lectura que coincide con el archivo CBL ({{readingListName}}) ya existe en tu cuenta.", + "series-collision": "La serie, {{seriesLink}}, tiene conflicto con otra serie en otra librería." }, "library-type-pipe": { - "manga": "Manga" + "manga": "Manga", + "book": "Libro", + "comic": "Comic" }, "age-rating-pipe": { - "unknown": "Desconocido" + "unknown": "Desconocido", + "adults-only": "Solo adultos +18", + "rating-pending": "Calificacion por edad pendiente", + "not-applicable": "No aplicable" + }, + "series-detail": { + "close": "{{common.close}}", + "layout-mode-label": "{{user-preferences.layout-mode-book-label}}", + "page-settings-title": "Ajustes de página", + "layout-mode-option-list": "Lista", + "read": "{{common.read}}", + "downloading-status": "Descargando…", + "books-tab": "Libros", + "layout-mode-option-card": "Carta", + "continue-from": "Continuar {{title}}", + "user-reviews-alt": "Opiniones de usuarios", + "continue": "Continuar", + "read-options-alt": "Opciones de lectura", + "remove-from-want-to-read": "Quitar de Quiero leer", + "incognito": "Incognito", + "add-to-want-to-read": "Añadir a Quiero leer", + "edit-series-alt": "Editar informacion de la serie", + "download-series--tooltip": "Descargar serie", + "volumes-tab": "Volumenes", + "specials-tab": "Especiales", + "related-tab": "Relacionados", + "recommendations-tab": "Recomendaciones", + "send-to": "Archivo enviado a {{deviceName}}", + "no-chapters": "No existen capitulos en este volumen. No se puede leer.", + "cover-change": "Puede tomar hasta un minuto para que tu navegador actualice la imagen. Espera hasta entonces. La imagen antigua se puede mostrar en algunas páginas.", + "no-pages": "{{toasts.no-pages}}" + }, + "book-reader": { + "go-to-page-prompt": "Hay {{totalPages}} páginas. A qué pagina quieres ir?", + "page-label": "Página", + "next-chapter": "Siguiente Capitulo/Volumen", + "skip-header": "Saltar al contenido principal", + "virtual-pages": "paginas virtuales", + "settings-header": "Ajustes", + "table-of-contents-header": "Tabla de Contenidos", + "bookmarks-header": "Marcapaginas", + "go-to-last-page": "Ir a la última página", + "prev-chapter": "Capitulo/Volume anteriorn", + "pagination-header": "Sección", + "go-to-page": "Ir a página", + "prev-page": "Página anterior", + "next-page": "Siguiente página", + "toc-header": "ToC", + "loading-book": "Cargando libro…", + "go-back": "Ir atrás", + "incognito-mode-alt": "Modo incognito activado. Pulsa para desactivar.", + "incognito-mode-label": "Modo incognito", + "next": "Siguiente", + "previous": "Anterior", + "title": "Ajustes de libro" + }, + "personal-table-of-contents": { + "page": "Page {{value}}", + "delete": "Eliminar {{bookmarkName}}" + }, + "time-ago-pipe": { + "never": "Nunca", + "just-now": "ahora mismo", + "min-ago": "hace un minuto", + "years-ago": "hace {{value}} años", + "mins-ago": "hace {{value}} minutos", + "hour-ago": "hace una hora", + "hours-ago": "hace {{value}} horas", + "day-ago": "hace un día", + "days-ago": "hace {{value}} días", + "month-ago": "hace un mes", + "months-ago": "hace {{value}} meses", + "year-ago": "hace un año" + }, + "reset-password": { + "submit": "{{common.submit}}", + "valid-email": "{{validation.valid-email}}", + "title": "Resetear contraseña", + "required-field": "{{validation.required-field}}", + "email-label": "{{common.email}}", + "description": "Introduce el correo de tu cuenta. Kavita enviará un correo si es correcto. Si no está configurado pide al administrador el enlace desde el registro." + }, + "reset-password-modal": { + "new-password-label": "Nueva contraseña", + "error-label": "Error: ", + "close": "{{common.close}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}", + "title": "Reiniciar contraseña de {{username}}" + }, + "changelog": { + "installed": "Instalado", + "download": "Descarga", + "available": "Disponible", + "description": "Si no ves una etiqueta {{installed}}", + "description-continued": ", estás en una versión de desarrollo. Solo versiones estable aparecerán como disponible." + }, + "invite-user": { + "setup-user-title": "Usuario invitado", + "cancel": "{{common.cancel}}", + "title": "Invitar usuario", + "setup-user-account-tooltip": "Copia y pega esto en una nueva pestaña. Puede que tengas que cerrar la sesión actual.", + "email": "{{common.email}}", + "required-field": "{{common.required-field}}", + "setup-user-account": "Configurar cuenta de usuario", + "invite-url-label": "Enlace de invitación", + "close": "{{common.close}}", + "invite": "Invitar", + "inviting": "Invitando…", + "description": "Invita a un usuario a tu servidor. Introduce su correo electrónico y le enviaremos un correo para que cree su cuenta. Si no quieres usar nuestro servicio de correo puedes hostear tu propio servicio de correo o usar una dirección de correo falsa (\"He perdido la contraseña no funcionará\"). Un enlace se mostrará de todas maneras y puede ser usado para configurar manualmente.", + "setup-user-description": "Puedes usar el enlace de abajo para configurar la cuenta para tu usuario o usa el botón de copiar. Puede que tengas que cerrar sesión antes de usar el enlace para registrar un nuevo usuario. Si tu servidor es accesible desde fuera, un correo se habrá enviado al usuario con el enlace para que el usuario configure su cuenta." + }, + "license": { + "manage": "Administrar", + "activate-description": "Introduce clave de licencia y correo usado al registrar en Stripe", + "invalid-license-tooltip": "Si tu subscripción ha finalizado, debes enviar un email a soporte para crear una nueva subscripción", + "check": "Comprobar", + "no-license-key": "Sin clave de licencia", + "license-not-valid": "Licencia no válida", + "loading": "{{common.loading}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "buy": "Comprar", + "activate": "Activar", + "renew": "Renovar", + "license-valid": "Licencia es valida", + "activate-license-label": "Clave de licencia", + "activate-email-label": "{{common.email}}", + "activate-delete": "Eliminar", + "activate-save": "{{common.save}}" + }, + "series-metadata-detail": { + "translators-title": "Traductores", + "cover-artists-title": "Artista de Portada", + "links-title": "Enlaces", + "genres-title": "Generos", + "tags-title": "Etiquetas", + "collections-title": "{{side-nav.collections}}", + "reading-lists-title": "{{side-nav.reading-lists}}", + "writers-title": "Escritor/Autor", + "characters-title": "Persoanjes", + "see-less": "Ver menos", + "see-more": "Ver más", + "promoted": "{{common.promoted}}" + }, + "update-notification-modal": { + "close": "{{common.close}}", + "title": "Nueva actualización disponible!", + "download": "Descargar", + "help": "Cómo actualizar" + }, + "side-nav-companion-bar": { + "page-settings-title": "{{series-detail.page-settings-title}}", + "open-filter-and-sort": "Abrir Filtro y ordenar", + "close-filter-and-sort": "Cerrar filtro y ordenar", + "filter-and-sort-alt": "Ordenar/Filtrar" + }, + "side-nav": { + "collections": "Colecciones", + "filter-label": "Filtro", + "all-series": "Todas las series", + "clear": "Limpiar", + "donate": "Donar", + "reading-lists": "Listas de lectura" + }, + "library-settings-modal": { + "close": "{{common.close}}", + "edit-title": "Editar {{name}}", + "add-title": "Añadir librería", + "general-tab": "General", + "folder-tab": "Directorio", + "cover-tab": "Portada", + "advanced-tab": "Avanzado", + "name-label": "Nombre", + "library-name-unique": "El nombre de la librería debe ser únic", + "last-scanned-label": "Ultima vez escaneado:", + "type-label": "Tipo", + "help-us-part-1": "Ayudanos siguiendo ", + "help-us-part-2": "nuestra guía", + "help-us-part-3": "para nombrar y organizar tus archivos.", + "folder-description": "Añadir carpetas a tu librería", + "naming-conventions-part-1": "Kavita tiene ", + "naming-conventions-part-2": "requerimientos de carpetas.", + "naming-conventions-part-3": "Comprueba este enlace para asegurarte que estás siguiendo los requerimientos. De lo contrario algunos archivos no se mostrarán al escanear.", + "allow-scrobbling-label": "Permitir seguimiento", + "allow-scrobbling-tooltip": "En caso de que Kavita scrobble lea los eventos, quiera leer el estado, las calificaciones y las reseñas de los proveedores configurados. Esto solo ocurrirá si el servidor tiene una suscripción Kavita+ activa." + }, + "all-series": { + "series-count": "{{common.series-count}}" + }, + "announcements": { + "title": "Noticias" + }, + "time-duration-pipe": { + "hours": "{{value}} horas", + "minutes": "{{value}} minutos", + "days": "{{value}} días", + "months": "{{value}} meses", + "years": "{{value}} años" + }, + "relationship-pipe": { + "adaptation": "Adaptacion", + "alternative-version": "Version alternativa", + "character": "Personajes", + "contains": "Contiene", + "other": "Otro", + "prequel": "Precuela", + "sequel": "Secuela", + "side-story": "Historia alternativa", + "parent": "Padre", + "edition": "Edicion" + }, + "publication-status-pipe": { + "ongoing": "En curso", + "hiatus": "Parado", + "completed": "Completado", + "cancelled": "Cancelado", + "ended": "Finalizado" + }, + "person-role-pipe": { + "artist": "Artista", + "writer": "Escritor", + "character": "Personaje", + "cover-artist": "Artista de portada", + "editor": "Editor", + "other": "Otro" + }, + "manga-format-pipe": { + "unknown": "Desconocido", + "epub": "EPUB", + "archive": "Archivo", + "image": "Imagen", + "pdf": "PDF" + }, + "book-line-overlay": { + "copy": "Copiar", + "bookmark": "Marcapagina", + "close": "{{common.close}}", + "required-field": "{{common.required-field}}", + "bookmark-label": "Nombre marcapagina", + "save": "{{common.save}}" + }, + "confirm-email": { + "title": "Registrar", + "description": "Completa el formulario para completar tu registro", + "error-label": "Errores: ", + "email-label": "{{common.email}}", + "valid-email": "{{common.valid-email}}", + "required-field": "{{common.required-field}}", + "password-validation": "{{validation.password-validation}}", + "register": "Registrar", + "username-label": "{{common.username}}", + "password-label": "{{common.password}}" + }, + "confirm-email-change": { + "title": "Validar cambio de correo", + "non-confirm-description": "Por favor espera mientras el cambio de correo se valida.", + "confirm-description": "Tu correo ha sido validado y cambiado en Kavita. Serás redirigido al inicio de sesion.", + "success": "Exito!" + }, + "confirm-reset-password": { + "title": "Resetear contraseña", + "description": "Introduce nueva contraseña", + "password-label": "{{common.password}}", + "required-field": "{{validation.required-field}}", + "submit": "{{common.submit}}", + "password-validation": "{{validation.password-validation}}" + }, + "register": { + "title": "Registrar", + "description": "Completa el formulario para registrar una cuenta de administrador", + "username-label": "{{common.username}}", + "email-label": "{{common.email}}", + "password-label": "{{common.password}}", + "email-tooltip": "El correo no tiene por qué ser una direccion real. Pero provee acceso a contraseña olvidada. No se envia fuera del servidor a menos que se use la funcionalidad de contraseña olvidada con un servidor de correo personalizado.", + "required-field": "{{validation.required-field}}", + "valid-email": "{{validation.valid-email}}", + "register": "Registrar", + "password-validation": "{{validation.password-validation}}" + }, + "badge-expander": { + "more-items": "y {{count}} más" + }, + "read-more": { + "read-more": "Leer más", + "read-less": "Leer menos" } } diff --git a/UI/Web/src/assets/langs/it.json b/UI/Web/src/assets/langs/it.json index 768f62a4d..72e27ff3a 100644 --- a/UI/Web/src/assets/langs/it.json +++ b/UI/Web/src/assets/langs/it.json @@ -235,59 +235,59 @@ "unknowns": "Sconosciuti", "reset": "", "edit": "", - "cancel": "", - "save": "" + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" }, "api-key": { - "copy": "", - "regen-warning": "", - "no-key": "", - "confirm-reset": "", - "key-reset": "" + "copy": "Copia", + "regen-warning": "La rigenerazione della chiave API invaliderà tutti i client esistenti.", + "no-key": "ERRORE - CHIAVE NON IMPOSTATA", + "confirm-reset": "Ciò invaliderà tutte le configurazioni OPDS impostate. Sei sicuro di voler continuare?", + "key-reset": "Ripristino della chiave API" }, "scrobbling-providers": { - "title": "", - "requires": "", - "token-expired": "", - "no-token-set": "", - "token-set": "", - "generate": "", - "instructions": "", - "token-input-label": "", - "edit": "", - "cancel": "", - "save": "" + "title": "Fornitori di Scrobbling", + "requires": "Questa funzione richiede una licenza {{product}} attiva", + "token-expired": "Token scaduto", + "no-token-set": "Nessun Token impostato", + "token-set": "Token Impostato", + "generate": "Generate", + "instructions": "Gli utenti per la prima volta devono fare clic su \"{{scrobbling-providers.generate}}\" di seguito per consentire a Kavita+ di parlare con {{service}}. Una volta autorizzato il programma, copia e incolla il token nell'input sottostante. Puoi rigenerare il tuo token in qualsiasi momento.", + "token-input-label": "Il token {{service}} va qui", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" }, "typeahead": { - "locked-field": "", - "close": "", - "loading": "", - "add-item": "", - "no-data": "", - "add-custom-item": "" + "locked-field": "Il campo è bloccato", + "close": "{{common.close}}", + "loading": "{{common.loading}}", + "add-item": "Aggiungi {{item}}…", + "no-data": "Nessun dato", + "add-custom-item": ", digitare per aggiungere un elemento personalizzato" }, "generic-list-modal": { - "close": "", - "clear": "", - "filter": "", - "open-filtered-search": "" + "close": "{{common.close}}", + "clear": "Pulito", + "filter": "Filtro", + "open-filtered-search": "Apri una ricerca filtrata per {{item}}" }, "user-stats-info-cards": { - "total-pages-read-label": "", - "total-pages-read-tooltip": "", - "total-words-read-label": "", - "total-words-read-tooltip": "", - "time-spent-reading-label": "", - "time-spent-reading-tooltip": "", - "chapters-read-label": "", - "chapters-read-tooltip": "", - "avg-reading-per-week-label": "", - "last-active-label": "", - "chapters": "" + "total-pages-read-label": "Pagine totali lette", + "total-pages-read-tooltip": "{{user-stats-info-cards.total-pages-read-label}}: {{value}}", + "total-words-read-label": "Totale Parole Lette", + "total-words-read-tooltip": "{{user-stats-info-cards.total-words-read-label}}: {{value}}", + "time-spent-reading-label": "Tempo passato leggendo", + "time-spent-reading-tooltip": "{{user-stats-info-cards.time-spent-reading-label}}: {{value}}", + "chapters-read-label": "Capitoli Letti", + "chapters-read-tooltip": "{{user-stats-info-cards.chapters-read-label}}: {{value}}", + "avg-reading-per-week-label": "Lettura media / settimana", + "last-active-label": "Ultimo attivo", + "chapters": "{{value}} capitoli" }, "user-stats": { - "library-read-progress-title": "", - "read-percentage": "" + "library-read-progress-title": "Progressi di lettura della biblioteca", + "read-percentage": "% Letto" }, "top-readers": { "title": "", @@ -343,37 +343,37 @@ "tuesday": "", "wednesday": "", "thursday": "", - "friday": "", - "saturday": "", - "sunday": "" + "friday": "Venerdì", + "saturday": "Sabato", + "sunday": "Domenia" }, "cbl-import-result-pipe": { - "success": "", - "partial": "", - "failure": "" + "success": "Successo", + "partial": "Parziale", + "failure": "Fallimento" }, "cbl-conflict-reason-pipe": { - "all-series-missing": "", - "chapter-missing": "", - "empty-file": "", - "name-conflict": "", - "series-collision": "", - "series-missing": "", - "volume-missing": "", - "all-chapter-missing": "", - "invalid-file": "", - "success": "" + "all-series-missing": "Il tuo account non ha accesso a tutte le serie nell'elenco o Kavita non ha nulla presente nell'elenco.", + "chapter-missing": "{{series}}: manca il capitolo {{chapter}} di Kavita. Questo elemento verrà saltato.", + "empty-file": "Il file cbl è vuoto, niente da fare.", + "name-conflict": "Esiste già un elenco di lettura ({{readingListName}}) sul tuo account che corrisponde al file cbl.", + "series-collision": "La serie, {{seriesLink}}, si scontra con un'altra serie con lo stesso nome in un'altra libreria.", + "series-missing": "La serie, {{series}}, non è presente in Kavita oppure il tuo account non dispone dell'autorizzazione. Tutti gli articoli con questa serie verranno ignorati dall'importazione.", + "volume-missing": "{{series}}: Il volume {{volume}} non è presente in Kavita oppure il tuo account non dispone dell'autorizzazione. Tutti gli elementi con questo numero di volume verranno ignorati.", + "all-chapter-missing": "Non tutti i capitoli possono essere abbinati ai capitoli in Kavita.", + "invalid-file": "Il file è danneggiato o non corrisponde ai tag/specifiche previste.", + "success": "{{series}} volume {{volume}} capitolo {{chapter}} mappato correttamente." }, "time-duration-pipe": { - "hours": "", - "minutes": "", - "days": "", - "months": "", - "years": "" + "hours": "{{value}} ore", + "minutes": "{{value}} minuti", + "days": "{{value}} giorni", + "months": "{{value}} mesi", + "years": "{{value}} anni" }, "time-ago-pipe": { - "just-now": "", - "min-ago": "", + "just-now": "proprio adesso", + "min-ago": "un minuto fà", "mins-ago": "", "hour-ago": "", "hours-ago": "", @@ -382,7 +382,8 @@ "month-ago": "", "months-ago": "", "year-ago": "", - "years-ago": "" + "years-ago": "", + "never": "Mai" }, "relationship-pipe": { "adaptation": "", diff --git a/UI/Web/src/assets/langs/nl.json b/UI/Web/src/assets/langs/nl.json index 4d8a7f6bb..6d7bd60d9 100644 --- a/UI/Web/src/assets/langs/nl.json +++ b/UI/Web/src/assets/langs/nl.json @@ -730,141 +730,142 @@ "writing-style-tooltip": "Verandert de richting van de tekst. Horizontaal is van links naar rechts, verticaal is van boven naar beneden.", "tap-to-paginate-label": "Tik voor bladeren", "tap-to-paginate-tooltip": "Klik op de randen van het scherm om te bladeren", - "on": "", - "off": "", - "immersive-mode-label": "", - "immersive-mode-tooltip": "", - "fullscreen-label": "", - "fullscreen-tooltip": "", - "exit": "", - "enter": "", - "layout-mode-label": "", - "layout-mode-tooltip": "", - "layout-mode-option-scroll": "", - "layout-mode-option-1col": "", - "layout-mode-option-2col": "", - "color-theme-title": "", - "theme-dark": "", - "theme-black": "", - "theme-white": "", - "theme-paper": "" + "on": "Aan", + "off": "Uit", + "immersive-mode-label": "{{user-preferences.immersive-mode-label}}", + "immersive-mode-tooltip": "Dit verbergt het menu achter een klik op het lezerdocument en tik om te pagineren", + "fullscreen-label": "Volledig scherm", + "fullscreen-tooltip": "Zet de lezer in volledig scherm", + "exit": "Uitgang", + "enter": "Ingang", + "layout-mode-label": "{{user-preferences.layout-mode-book-label}}", + "layout-mode-tooltip": "Scrollen: Spiegelt epub-bestand (meestal één lange scrollende pagina per hoofdstuk).
1 Column: Creëert één virtuele pagina tegelijk.
2 Column: Creëert twee virtuele pagina's tegelijk naast elkaar.", + "layout-mode-option-scroll": "Scrollen", + "layout-mode-option-1col": "1 kolom", + "layout-mode-option-2col": "2 Kolommen", + "color-theme-title": "Kleur Thema", + "theme-dark": "Donker", + "theme-black": "Zwart", + "theme-white": "Wit", + "theme-paper": "Papier" }, "table-of-contents": { - "no-data": "" + "no-data": "Dit boek heeft geen inhoudsopgave in de metadata of een toc-bestand" }, "bookmarks": { - "title": "", - "series-count": "", - "no-data": "", - "no-data-2": "", - "confirm-delete": "", - "confirm-single-delete": "", - "delete-success": "", - "delete-single-success": "" + "title": "{{side-nav.bookmarks}}", + "series-count": "{{common.series-count}}", + "no-data": "Er zijn geen bladwijzers. Probeer te creëren", + "no-data-2": "een.", + "confirm-delete": "Weet je zeker dat je alle bladwijzers voor meerdere series wilt wissen? Dit kan niet ongedaan gemaakt worden.", + "confirm-single-delete": "Weet u zeker dat u alle bladwijzers voor {{seriesName}} wilt wissen? Dit kan niet ongedaan gemaakt worden.", + "delete-success": "Bladwijzers zijn verwijderd", + "delete-single-success": "De bladwijzers van {{seriesName}} zijn verwijderd" }, "bulk-operations": { - "title": "", - "items-selected": "", - "mark-as-unread": "", - "mark-as-read": "", - "deselect-all": "" + "title": "Bulkacties", + "items-selected": "{{num}} items geselecteerd", + "mark-as-unread": "Markeer als ongelezen", + "mark-as-read": "Markeer als gelezen", + "deselect-all": "{{common.deselect-all}}" }, "card-detail-drawer": { - "general-tab": "", - "metadata-tab": "", - "cover-tab": "", - "info-tab": "", - "no-summary": "", - "writers-title": "", - "genres-title": "", - "publishers-title": "", - "tags-title": "", - "not-defined": "", - "read": "", - "unread": "", - "files": "", - "pages": "", - "added": "", - "size": "" + "general-tab": "Algemeen", + "metadata-tab": "Metadata", + "cover-tab": "Omslag", + "info-tab": "Info", + "no-summary": "Geen samenvatting beschikbaar.", + "writers-title": "{{series-metadata-detail.writers-title}}", + "genres-title": "{{series-metadata-detail.genres-title}}", + "publishers-title": "{{series-metadata-detail.publishers-title}}", + "tags-title": "{{series-metadata-detail.tags-title}}", + "not-defined": "Niet gedefinieerd", + "read": "{{common.read}}", + "unread": "Ongelezen", + "files": "Bestanden", + "pages": "Pagina's:", + "added": "Toegevoegd:", + "size": "Grootte:" }, "card-detail-layout": { - "total-items": "" + "total-items": "{{count}} items in totaal" }, "card-item": { - "cannot-read": "" + "cannot-read": "Kan niet lezen" }, "chapter-metadata-detail": { - "no-data": "", - "writers-title": "", - "publishers-title": "", - "characters-title": "", - "translators-title": "", - "letterers-title": "", - "colorists-title": "", - "inkers-title": "", - "pencillers-title": "", - "cover-artists-title": "", - "editors-title": "" + "no-data": "Geen metadata beschikbaar", + "writers-title": "{{series-metadata-detail.writers-title}}", + "publishers-title": "{{series-metadata-detail.publishers-title}}", + "characters-title": "{{series-metadata-detail.characters-title}}", + "translators-title": "{{series-metadata-detail.translators-title}}", + "letterers-title": "{{series-metadata-detail.letterers-title}}", + "colorists-title": "{{series-metadata-detail.colorists-title}}", + "inkers-title": "{{series-metadata-detail.inkers-title}}", + "pencillers-title": "{{series-metadata-detail.pencillers-title}}", + "cover-artists-title": "{{series-metadata-detail.cover-artists-title}}", + "editors-title": "{{series-metadata-detail.editors-title}}" }, "cover-image-chooser": { - "drag-n-drop": "", - "upload": "", - "upload-continued": "", - "url-label": "", - "load": "", - "back": "", - "reset-cover-tooltip": "", - "reset": "", - "image-num": "", - "apply": "", - "applied": "" + "drag-n-drop": "Slepen en neerzetten", + "upload": "Upload", + "upload-continued": "een afbeelding", + "url-label": "Url", + "load": "Laad", + "back": "Terug", + "reset-cover-tooltip": "Omslagafbeelding resetten", + "reset": "{{common.reset}}", + "image-num": "Afbeelding {{num}}", + "apply": "{{common.apply}}", + "applied": "{{theme-manager.applied}}" }, "download-indicator": { - "progress": "" + "progress": "{{percentage}}% gedownload" }, "edit-series-relation": { - "description-part-1": "", - "description-part-2": "", - "target-series": "", - "relationship": "", - "remove": "", - "add-relationship": "", - "parent": "" + "description-part-1": "Weet u niet zeker welke relatie u moet toevoegen? Zie onze", + "description-part-2": "wiki voor hints.", + "target-series": "Doel Serie", + "relationship": "Relatie", + "remove": "Verwijder", + "add-relationship": "Relatie toevoegen", + "parent": "{{relationship-pipe.parent}}" }, "entity-info-cards": { - "tags-title": "", - "characters-title": "", - "release-date-title": "", - "release-date-tooltip": "", - "age-rating-title": "", - "length-title": "", - "pages-count": "", - "words-count": "", - "reading-time-title": "", - "date-added-title": "", - "size-title": "", - "id-title": "", - "links-title": "", - "isbn-title": "", - "last-read-title": "", - "less-than-hour": "", - "range-hours": "", - "hour": "", - "hours": "" + "tags-title": "{{series-metadata-detail.tags-title}}", + "characters-title": "{{series-metadata-detail.characters-title}}", + "release-date-title": "Publicatie", + "release-date-tooltip": "Publicatiedatum", + "age-rating-title": "Leeftijdsclassificatie", + "length-title": "Lengte", + "pages-count": "{{num}} pagina's", + "words-count": "{{num}} Woorden", + "reading-time-title": "Leestijd", + "date-added-title": "Datum toegevoegd", + "size-title": "Grootte", + "id-title": "ID", + "links-title": "{{series-metadata-detail.links-title}}", + "isbn-title": "ISBN", + "last-read-title": "Laatst gelezen", + "less-than-hour": "<1 uur", + "range-hours": "{{value}} {{hourWord}}", + "hour": "Uur", + "hours": "Uren", + "read-time-title": "{{series-info-cards.read-time-title}}" }, "series-info-cards": { - "release-date-title": "", - "release-year-tooltip": "", - "age-rating-title": "", - "language-title": "", - "publication-status-title": "", - "publication-status-tooltip": "", - "scrobbling-title": "", - "scrobbling-tooltip": "", - "on": "", - "off": "", - "disabled": "", - "format-title": "", + "release-date-title": "{{entity-info-cards.release-date-title}}", + "release-year-tooltip": "Uitgave jaar", + "age-rating-title": "{{entity-info-cards.age-rating-title}}", + "language-title": "Taal", + "publication-status-title": "Publicatie", + "publication-status-tooltip": "Publicatiestatus", + "scrobbling-title": "Scrobbelen", + "scrobbling-tooltip": "Scrobbelstatus", + "on": "Aan", + "off": "Uit", + "disabled": "Uitgeschakeld", + "format-title": "Indeling", "last-read-title": "", "length-title": "", "read-time-title": "", diff --git a/UI/Web/src/assets/langs/pt.json b/UI/Web/src/assets/langs/pt.json index dba69c9a5..0b44ab578 100644 --- a/UI/Web/src/assets/langs/pt.json +++ b/UI/Web/src/assets/langs/pt.json @@ -133,7 +133,7 @@ "layout-mode-book-label": "", "layout-mode-book-tooltip": "", "color-theme-book-label": "Tema de Cor", - "color-theme-book-tooltip": "", + "color-theme-book-tooltip": "Que tema de cores aplicar ao conteúdo e menu do leitor de livros", "font-size-book-label": "", "line-height-book-label": "Espaçamento Entre Linhas", "line-height-book-tooltip": "Quanto espaçamento entre as linhas do livro", @@ -172,7 +172,7 @@ "title": "", "description": "Quando selecionado, todas as séries e listas de leitura, que tenham pelo menos um elemento que seja superior à restrição selecionada, serão removidas dos resultados.", "not-applicable-for-admins": "Não aplicável a administradores.", - "age-rating-label": "", + "age-rating-label": "Classificação etária", "no-restriction": "", "include-unknowns-label": "", "include-unknowns-tooltip": "" @@ -281,19 +281,19 @@ "time-spent-reading-tooltip": "{{user-stats-info-cards.time-spent-reading-label}}: {{value}}", "chapters-read-label": "Capítulos Lidos", "chapters-read-tooltip": "{{user-stats-info-cards.chapters-read-label}}: {{value}}", - "avg-reading-per-week-label": "", - "last-active-label": "", + "avg-reading-per-week-label": "Média de Leitura / Semana", + "last-active-label": "Última Utilização", "chapters": "{{value}} capítulos" }, "user-stats": { "library-read-progress-title": "Progresso de Leitura da Biblioteca", - "read-percentage": "" + "read-percentage": "% Lido" }, "top-readers": { - "title": "", + "title": "Top de Leitores", "time-selection-label": "", - "comics-label": "", - "manga-label": "", + "comics-label": "BDs: {{value}} hrs", + "manga-label": "Manga: {{value}} hrs", "books-label": "Livros: {{value}} hrs", "this-week": "{{time-periods.this-week}}", "last-7-days": "{{time-periods.last-7-days}}", @@ -491,53 +491,53 @@ "setup-user-account": "", "setup-user-account-tooltip": "", "invite-url-label": "", - "invite": "", - "inviting": "", - "cancel": "" + "invite": "Convite", + "inviting": "A convidar…", + "cancel": "{{common.cancel}}" }, "library-selector": { - "title": "", - "select-all": "", - "deselect-all": "", - "no-data": "" + "title": "Bibliotecas", + "select-all": "{{common.select-all}}", + "deselect-all": "{{common.deselect-all}}", + "no-data": "Não existem bibliotecas configuradas." }, "license": { - "title": "", - "manage": "", - "invalid-license-tooltip": "", - "check": "", - "cancel": "", - "edit": "", - "buy": "", - "activate": "", - "renew": "", - "no-license-key": "", - "license-valid": "", - "license-not-valid": "", - "loading": "", + "title": "Licença Kavita+", + "manage": "Gerir", + "invalid-license-tooltip": "Se a sua subscrição terminou, tem de enviar um email para o suporte para que nova subscrição seja criada", + "check": "Verificar", + "cancel": "{{common.cancel}}", + "edit": "{{common.edit}}", + "buy": "Comprar", + "activate": "Ativar", + "renew": "Renovar", + "no-license-key": "Sem licença", + "license-valid": "Licença é Válida", + "license-not-valid": "Licença Inválida", + "loading": "{{common.loading}}", "activate-description": "", - "activate-license-label": "", - "activate-email-label": "", - "activate-delete": "", - "activate-save": "" + "activate-license-label": "Licença", + "activate-email-label": "{{common.email}}", + "activate-delete": "Eliminar", + "activate-save": "{{common.save}}" }, "book-line-overlay": { - "copy": "", - "bookmark": "", - "close": "", - "required-field": "", - "bookmark-label": "", - "save": "" + "copy": "Copiar", + "bookmark": "Marcador", + "close": "{{common.close}}", + "required-field": "{{common.required-field}}", + "bookmark-label": "Nome do Marcador", + "save": "{{common.save}}" }, "book-reader": { - "title": "", - "page-label": "", - "pagination-header": "", - "go-to-page": "", - "go-to-last-page": "", - "prev-page": "", - "next-page": "", - "prev-chapter": "", + "title": "Definições do Livro", + "page-label": "Página", + "pagination-header": "Secção", + "go-to-page": "Ir para página", + "go-to-last-page": "Ir para a última página", + "prev-page": "Página Anterior", + "next-page": "Página Seguinte", + "prev-chapter": "Capítulo/Volume Anterior", "next-chapter": "", "skip-header": "", "virtual-pages": "", From 17409dd2a70797414d5197f299a8359759986780 Mon Sep 17 00:00:00 2001 From: Joe Milazzo Date: Thu, 10 Aug 2023 08:43:56 -0500 Subject: [PATCH 2/3] Shakeout (#2195) * Fixed some localization issues. Fixed double slash on base url. * Weblate Changes (#2194) * Translated using Weblate (Spanish) Currently translated at 40.9% (585 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/es/ * Translated using Weblate (Spanish) Currently translated at 40.9% (585 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/es/ * Translated using Weblate (Dutch) Currently translated at 48.5% (693 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/nl/ * Translated using Weblate (Portuguese) Currently translated at 96.8% (153 of 158 strings) Translation: Kavita/backend Translate-URL: https://hosted.weblate.org/projects/kavita/backend/pt/ * Translated using Weblate (Portuguese) Currently translated at 24.3% (348 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/pt/ * Translated using Weblate (Spanish) Currently translated at 3.7% (6 of 158 strings) Translation: Kavita/backend Translate-URL: https://hosted.weblate.org/projects/kavita/backend/es/ * Translated using Weblate (Italian) Currently translated at 11.2% (161 of 1427 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/it/ --------- Co-authored-by: ThePromidius Co-authored-by: gallegonovato Co-authored-by: Hans Kalisvaart Co-authored-by: Duarte Silva Co-authored-by: Tomas Battistini --------- Co-authored-by: Weblate (bot) Co-authored-by: ThePromidius Co-authored-by: gallegonovato Co-authored-by: Hans Kalisvaart Co-authored-by: Duarte Silva Co-authored-by: Tomas Battistini --- API/Controllers/AccountController.cs | 15 ++++++++++++++- API/config/appsettings.Development.json | 7 ++++--- .../admin/invite-user/invite-user.component.html | 4 +--- .../admin/invite-user/invite-user.component.ts | 3 ++- .../manage-library/manage-library.component.ts | 2 +- openapi.json | 2 +- 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/API/Controllers/AccountController.cs b/API/Controllers/AccountController.cs index b14bac8c1..0ff5882d5 100644 --- a/API/Controllers/AccountController.cs +++ b/API/Controllers/AccountController.cs @@ -1018,7 +1018,20 @@ public class AccountController : BaseApiController if (!string.IsNullOrEmpty(serverSettings.HostName)) origin = serverSettings.HostName; var baseUrl = string.Empty; - if (!string.IsNullOrEmpty(serverSettings.BaseUrl) && !serverSettings.BaseUrl.Equals(Configuration.DefaultBaseUrl)) baseUrl = serverSettings.BaseUrl + "/"; + if (!string.IsNullOrEmpty(serverSettings.BaseUrl) && + !serverSettings.BaseUrl.Equals(Configuration.DefaultBaseUrl)) + { + baseUrl = serverSettings.BaseUrl + "/"; + if (baseUrl.EndsWith("//")) + { + baseUrl = baseUrl.Replace("//", "/"); + } + + if (baseUrl.StartsWith("/")) + { + baseUrl = baseUrl.Substring(1, baseUrl.Length - 1); + } + } return Ok(origin + "/" + baseUrl + "api/opds/" + user!.ApiKey); } diff --git a/API/config/appsettings.Development.json b/API/config/appsettings.Development.json index 54f42804c..90faa9e5f 100644 --- a/API/config/appsettings.Development.json +++ b/API/config/appsettings.Development.json @@ -2,6 +2,7 @@ "TokenKey": "super secret unguessable key that is longer because we require it", "Port": 5000, "IpAddresses": "", - "BaseUrl": "/", - "Cache": 90 -} + "BaseUrl": "/test/", + "Cache": 90, + "XFrameOrigins": "SAMEORIGIN" +} \ No newline at end of file diff --git a/UI/Web/src/app/admin/invite-user/invite-user.component.html b/UI/Web/src/app/admin/invite-user/invite-user.component.html index 5b848049c..7a9220bfa 100644 --- a/UI/Web/src/app/admin/invite-user/invite-user.component.html +++ b/UI/Web/src/app/admin/invite-user/invite-user.component.html @@ -5,9 +5,7 @@