feat(i18n): add Spanish language support (#411)

* feat(i18n): add Spanish language support to the app

- Add es.yml localization file with full Spanish translations
- Register 'es' language in the i18n locales constant

* Create shiny-dancers-count.md

* style(es.yml): fix formatting and spacing in es.yml

- Remove unnecessary quotes in 'organizations.create-first.user-name'
- Fix extra space in the '# API keys' comment

* Update .changeset/shiny-dancers-count.md

---------

Co-authored-by: Adrian Ortiz <desarrollador3@en-trega.com>
Co-authored-by: Corentin Thomasset <corentin.thomasset74@gmail.com>
This commit is contained in:
Adrian Ortiz
2025-07-09 15:41:04 -06:00
committed by GitHub
parent 09e3bc5e15
commit 26015666de
3 changed files with 571 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
---
"@papra/app-client": patch
---
Added Spanish (es) translation

View File

@@ -0,0 +1,565 @@
# Authentication
auth.request-password-reset.title: Restablece tu contraseña
auth.request-password-reset.description: Ingresa tu correo electrónico para restablecer tu contraseña.
auth.request-password-reset.requested: Si existe una cuenta para este correo electrónico, te enviaremos un correo para restablecer tu contraseña.
auth.request-password-reset.back-to-login: Volver al inicio de sesión
auth.request-password-reset.form.email.label: Correo electrónico
auth.request-password-reset.form.email.placeholder: 'Ejemplo: ada@papra.app'
auth.request-password-reset.form.email.required: Por favor, ingresa tu correo electrónico
auth.request-password-reset.form.email.invalid: Esta dirección de correo electrónico no es válida
auth.request-password-reset.form.submit: Solicitar restablecimiento de contraseña
auth.reset-password.title: Restablece tu contraseña
auth.reset-password.description: Ingresa tu nueva contraseña para restablecerla.
auth.reset-password.reset: Tu contraseña ha sido restablecida.
auth.reset-password.back-to-login: Volver al inicio de sesión
auth.reset-password.form.new-password.label: Nueva contraseña
auth.reset-password.form.new-password.placeholder: 'Ejemplo: **********'
auth.reset-password.form.new-password.required: Por favor, ingresa tu nueva contraseña
auth.reset-password.form.new-password.min-length: La contraseña debe tener al menos {{ minLength }} caracteres
auth.reset-password.form.new-password.max-length: La contraseña debe tener menos de {{ maxLength }} caracteres
auth.reset-password.form.submit: Restablecer contraseña
auth.email-provider.open: Abrir {{ provider }}
auth.login.title: Inicia sesión en Papra
auth.login.description: Ingresa tu correo electrónico o usa un inicio de sesión social para acceder a tu cuenta de Papra.
auth.login.login-with-provider: Iniciar sesión con {{ provider }}
auth.login.no-account: ¿No tienes una cuenta?
auth.login.register: Registrarse
auth.login.form.email.label: Correo electrónico
auth.login.form.email.placeholder: 'Ejemplo: ada@papra.app'
auth.login.form.email.required: Por favor, ingresa tu correo electrónico
auth.login.form.email.invalid: Esta dirección de correo electrónico no es válida
auth.login.form.password.label: Contraseña
auth.login.form.password.placeholder: Establece una contraseña
auth.login.form.password.required: Por favor, ingresa tu contraseña
auth.login.form.remember-me.label: Recordarme
auth.login.form.forgot-password.label: ¿Olvidaste tu contraseña?
auth.login.form.submit: Iniciar sesión
auth.register.title: Regístrate en Papra
auth.register.description: Crea una cuenta para comenzar a usar Papra.
auth.register.register-with-email: Registrarse con correo electrónico
auth.register.register-with-provider: Registrarse con {{ provider }}
auth.register.providers.google: Google
auth.register.providers.github: GitHub
auth.register.have-account: ¿Ya tienes una cuenta?
auth.register.login: Iniciar sesión
auth.register.registration-disabled.title: El registro está deshabilitado
auth.register.registration-disabled.description: La creación de nuevas cuentas está deshabilitada actualmente en esta instancia de Papra. Solo los usuarios con cuentas existentes pueden iniciar sesión. Si crees que esto es un error, contacta al administrador de esta instancia.
auth.register.form.email.label: Correo electrónico
auth.register.form.email.placeholder: 'Ejemplo: ada@papra.app'
auth.register.form.email.required: Por favor, ingresa tu correo electrónico
auth.register.form.email.invalid: Esta dirección de correo electrónico no es válida
auth.register.form.password.label: Contraseña
auth.register.form.password.placeholder: Establece una contraseña
auth.register.form.password.required: Por favor, ingresa tu contraseña
auth.register.form.password.min-length: La contraseña debe tener al menos {{ minLength }} caracteres
auth.register.form.password.max-length: La contraseña debe tener menos de {{ maxLength }} caracteres
auth.register.form.name.label: Nombre
auth.register.form.name.placeholder: 'Ejemplo: Ada Lovelace'
auth.register.form.name.required: Por favor, ingresa tu nombre
auth.register.form.name.max-length: El nombre debe tener menos de {{ maxLength }} caracteres
auth.register.form.submit: Registrarse
auth.email-validation-required.title: Verifica tu correo electrónico
auth.email-validation-required.description: Se ha enviado un correo de verificación a tu dirección de correo electrónico. Por favor, verifica tu correo haciendo clic en el enlace del correo.
auth.legal-links.description: Al continuar, reconoces que entiendes y aceptas los {{ terms }} y la {{ privacy }}.
auth.legal-links.terms: Términos de servicio
auth.legal-links.privacy: Política de privacidad
auth.no-auth-provider.title: No hay proveedor de autenticación
auth.no-auth-provider.description: No hay proveedores de autenticación habilitados en esta instancia de Papra. Por favor, contacta al administrador de esta instancia para habilitarlos.
# User settings
user.settings.title: Configuración de usuario
user.settings.description: Administra aquí la configuración de tu cuenta.
user.settings.email.title: Dirección de correo electrónico
user.settings.email.description: Tu dirección de correo electrónico no puede ser cambiada.
user.settings.email.label: Correo electrónico
user.settings.name.title: Nombre completo
user.settings.name.description: Tu nombre completo se muestra a otros miembros de la organización.
user.settings.name.label: Nombre completo
user.settings.name.placeholder: Ej. John Doe
user.settings.name.update: Actualizar nombre
user.settings.name.updated: Tu nombre completo ha sido actualizado
user.settings.logout.title: Cerrar sesión
user.settings.logout.description: Cierra la sesión de tu cuenta. Puedes iniciar sesión nuevamente más tarde.
user.settings.logout.button: Cerrar sesión
# Organizations
organizations.list.title: Tus organizaciones
organizations.list.description: Las organizaciones son una manera de agrupar tus documentos y gestionar el acceso a ellos. Puedes crear varias organizaciones e invitar a tus compañeros para colaborar.
organizations.list.create-new: Crear nueva organización
organizations.details.no-documents.title: Sin documentos
organizations.details.no-documents.description: Aún no hay documentos en esta organización. Comienza subiendo algunos documentos.
organizations.details.upload-documents: Subir documentos
organizations.details.documents-count: documentos en total
organizations.details.total-size: tamaño total
organizations.details.latest-documents: Últimos documentos importados
organizations.create.title: Crear una nueva organización
organizations.create.description: Tus documentos se agruparán por organización. Puedes crear varias organizaciones para separar tus documentos, por ejemplo, para documentos personales y de trabajo.
organizations.create.back: Volver
organizations.create.error.max-count-reached: Has alcanzado el número máximo de organizaciones que puedes crear, si necesitas crear más, contacta al soporte.
organizations.create.form.name.label: Nombre de la organización
organizations.create.form.name.placeholder: Ej. Acme Inc.
organizations.create.form.name.required: Por favor, ingresa un nombre para la organización
organizations.create.form.submit: Crear organización
organizations.create.success: Organización creada exitosamente
organizations.create-first.title: Crea tu organización
organizations.create-first.description: Tus documentos se agruparán por organización. Puedes crear varias organizaciones para separar tus documentos, por ejemplo, para documentos personales y de trabajo.
organizations.create-first.default-name: Mi organización
organizations.create-first.user-name: Organización de {{ name }}
organization.settings.title: Configuración de la organización
organization.settings.page.title: Configuración de la organización
organization.settings.page.description: Administra la configuración de tu organización aquí.
organization.settings.name.title: Nombre de la organización
organization.settings.name.update: Actualizar nombre
organization.settings.name.placeholder: Ej. Acme Inc.
organization.settings.name.updated: Nombre de la organización actualizado
organization.settings.subscription.title: Suscripción
organization.settings.subscription.description: Administra tu facturación, facturas y métodos de pago.
organization.settings.subscription.manage: Gestionar suscripción
organization.settings.subscription.error: Error al obtener la URL del portal del cliente
organization.settings.delete.title: Eliminar organización
organization.settings.delete.description: Eliminar esta organización eliminará permanentemente todos los datos asociados a ella.
organization.settings.delete.confirm.title: Eliminar organización
organization.settings.delete.confirm.message: ¿Estás seguro de que deseas eliminar esta organización? Esta acción no se puede deshacer, y todos los datos asociados se eliminarán permanentemente.
organization.settings.delete.confirm.confirm-button: Eliminar organización
organization.settings.delete.confirm.cancel-button: Cancelar
organization.settings.delete.success: Organización eliminada
organizations.members.title: Miembros
organizations.members.description: Administra los miembros de tu organización
organizations.members.invite-member: Invitar miembro
organizations.members.invite-member-disabled-tooltip: Solo los administradores o propietarios pueden invitar miembros a la organización
organizations.members.remove-from-organization: Eliminar de la organización
organizations.members.role: Rol
organizations.members.roles.owner: Propietario
organizations.members.roles.admin: Administrador
organizations.members.roles.member: Miembro
organizations.members.delete.confirm.title: Eliminar miembro
organizations.members.delete.confirm.message: ¿Estás seguro de que deseas eliminar a este miembro de la organización?
organizations.members.delete.confirm.confirm-button: Eliminar
organizations.members.delete.confirm.cancel-button: Cancelar
organizations.members.delete.success: Miembro eliminado de la organización
organizations.members.update-role.success: Rol del miembro actualizado
organizations.members.table.headers.name: Nombre
organizations.members.table.headers.email: Correo electrónico
organizations.members.table.headers.role: Rol
organizations.members.table.headers.created: Creado
organizations.members.table.headers.actions: Acciones
organizations.invite-member.title: Invitar miembro
organizations.invite-member.description: Invita a un miembro a tu organización
organizations.invite-member.form.email.label: Correo electrónico
organizations.invite-member.form.email.placeholder: 'Ejemplo: ada@papra.app'
organizations.invite-member.form.email.required: Por favor, ingresa un correo electrónico válido
organizations.invite-member.form.role.label: Rol
organizations.invite-member.form.submit: Invitar a la organización
organizations.invite-member.success.message: Miembro invitado
organizations.invite-member.success.description: El correo ha sido invitado a la organización.
organizations.invite-member.error.message: Error al invitar al miembro
organizations.invitations.title: Invitaciones
organizations.invitations.description: Administra las invitaciones de tu organización
organizations.invitations.list.cta: Invitar miembro
organizations.invitations.list.empty.title: No hay invitaciones pendientes
organizations.invitations.list.empty.description: Aún no te han invitado a ninguna organización.
organizations.invitations.status.pending: Pendiente
organizations.invitations.status.accepted: Aceptada
organizations.invitations.status.rejected: Rechazada
organizations.invitations.status.expired: Expirada
organizations.invitations.status.cancelled: Cancelada
organizations.invitations.resend: Reenviar invitación
organizations.invitations.cancel.title: Cancelar invitación
organizations.invitations.cancel.description: ¿Estás seguro de que deseas cancelar esta invitación?
organizations.invitations.cancel.confirm: Cancelar invitación
organizations.invitations.cancel.cancel: Cancelar
organizations.invitations.resend.title: Reenviar invitación
organizations.invitations.resend.description: ¿Estás seguro de que deseas reenviar esta invitación? Esto enviará un nuevo correo al destinatario.
organizations.invitations.resend.confirm: Reenviar invitación
organizations.invitations.resend.cancel: Cancelar
invitations.list.title: Invitaciones
invitations.list.description: Administra las invitaciones de tu organización
invitations.list.empty.title: No hay invitaciones pendientes
invitations.list.empty.description: Aún no te han invitado a ninguna organización.
invitations.list.headers.organization: Organización
invitations.list.headers.status: Estado
invitations.list.headers.created: Creado
invitations.list.headers.actions: Acciones
invitations.list.actions.accept: Aceptar
invitations.list.actions.reject: Rechazar
invitations.list.actions.accept.success.message: Invitación aceptada
invitations.list.actions.accept.success.description: La invitación ha sido aceptada.
invitations.list.actions.reject.success.message: Invitación rechazada
invitations.list.actions.reject.success.description: La invitación ha sido rechazada.
# Documents
documents.list.title: Documentos
documents.list.no-documents.title: Sin documentos
documents.list.no-documents.description: Aún no hay documentos en esta organización. Comienza subiendo algunos documentos.
documents.list.no-results: No se encontraron documentos
documents.tabs.info: Información
documents.tabs.content: Contenido
documents.tabs.activity: Actividad
documents.deleted.message: Este documento ha sido eliminado y será borrado permanentemente en {{ days }} días.
documents.actions.download: Descargar
documents.actions.open-in-new-tab: Abrir en una nueva pestaña
documents.actions.restore: Restaurar
documents.actions.delete: Eliminar
documents.actions.edit: Editar
documents.actions.cancel: Cancelar
documents.actions.save: Guardar
documents.actions.saving: Guardando...
documents.content.alert: El contenido del documento se extrae automáticamente al subirlo. Solo se utiliza para búsqueda e indexación.
documents.info.id: ID
documents.info.name: Nombre
documents.info.type: Tipo
documents.info.size: Tamaño
documents.info.created-at: Creado el
documents.info.updated-at: Actualizado el
documents.info.never: Nunca
documents.rename.title: Renombrar documento
documents.rename.form.name.label: Nombre
documents.rename.form.name.placeholder: 'Ejemplo: Factura 2024'
documents.rename.form.name.required: Por favor, ingresa un nombre para el documento
documents.rename.form.name.max-length: El nombre debe tener menos de 255 caracteres
documents.rename.form.submit: Renombrar documento
documents.rename.success: Documento renombrado exitosamente
documents.rename.cancel: Cancelar
import-documents.title.error: '{{ count }} documentos fallidos'
import-documents.title.success: '{{ count }} documentos importados'
import-documents.title.pending: '{{ count }} / {{ total }} documentos importados'
import-documents.title.none: Importar documentos
import-documents.no-import-in-progress: No hay importación de documentos en curso
documents.deleted.title: Documentos eliminados
documents.deleted.empty.title: No hay documentos eliminados
documents.deleted.empty.description: No tienes documentos eliminados. Los documentos eliminados se moverán a la papelera durante {{ days }} días.
documents.deleted.retention-notice: Todos los documentos eliminados se almacenan en la papelera durante {{ days }} días. Pasado este tiempo, los documentos serán eliminados permanentemente y no podrás restaurarlos.
documents.deleted.deleted-at: Eliminado
documents.deleted.restoring: Restaurando...
documents.deleted.deleting: Eliminando...
documents.preview.unknown-file-type: No hay vista previa disponible para este tipo de archivo
documents.preview.binary-file: Este parece ser un archivo binario y no puede mostrarse como texto
trash.delete-all.button: Eliminar todo
trash.delete-all.confirm.title: ¿Eliminar permanentemente todos los documentos?
trash.delete-all.confirm.description: ¿Estás seguro de que deseas eliminar permanentemente todos los documentos de la papelera? Esta acción no se puede deshacer.
trash.delete-all.confirm.label: Eliminar
trash.delete-all.confirm.cancel: Cancelar
trash.delete.button: Eliminar
trash.delete.confirm.title: ¿Eliminar permanentemente el documento?
trash.delete.confirm.description: ¿Estás seguro de que deseas eliminar permanentemente este documento de la papelera? Esta acción no se puede deshacer.
trash.delete.confirm.label: Eliminar
trash.delete.confirm.cancel: Cancelar
trash.deleted.success.title: Documento eliminado
trash.deleted.success.description: El documento ha sido eliminado permanentemente.
activity.document.created: El documento ha sido creado
activity.document.updated.single: El campo {{ field }} ha sido actualizado
activity.document.updated.multiple: Los campos {{ fields }} han sido actualizados
activity.document.updated: El documento ha sido actualizado
activity.document.deleted: El documento ha sido eliminado
activity.document.restored: El documento ha sido restaurado
activity.document.tagged: La etiqueta {{ tag }} ha sido añadida
activity.document.untagged: La etiqueta {{ tag }} ha sido eliminada
activity.document.user.name: por {{ name }}
activity.load-more: Cargar más
activity.no-more-activities: No hay más actividades para este documento
# Tags
tags.no-tags.title: Aún no hay etiquetas
tags.no-tags.description: Esta organización no tiene etiquetas aún. Las etiquetas se utilizan para categorizar documentos. Puedes añadir etiquetas a tus documentos para que sean más fáciles de encontrar y organizar.
tags.no-tags.create-tag: Crear etiqueta
tags.title: Etiquetas de documentos
tags.description: Las etiquetas se utilizan para categorizar documentos. Puedes añadir etiquetas a tus documentos para que sean más fáciles de encontrar y organizar.
tags.create: Crear etiqueta
tags.update: Actualizar etiqueta
tags.delete: Eliminar etiqueta
tags.delete.confirm.title: Eliminar etiqueta
tags.delete.confirm.message: ¿Estás seguro de que deseas eliminar esta etiqueta? Eliminar una etiqueta la quitará de todos los documentos.
tags.delete.confirm.confirm-button: Eliminar
tags.delete.confirm.cancel-button: Cancelar
tags.delete.success: Etiqueta eliminada exitosamente
tags.create.success: Etiqueta "{{ name }}" creada exitosamente.
tags.update.success: Etiqueta "{{ name }}" actualizada exitosamente.
tags.form.name.label: Nombre
tags.form.name.placeholder: Ej. Contratos
tags.form.name.required: Por favor, ingresa un nombre para la etiqueta
tags.form.name.max-length: El nombre de la etiqueta debe tener menos de 64 caracteres
tags.form.color.label: Color
tags.form.color.required: Por favor, ingresa un color
tags.form.color.invalid: El color hexadecimal tiene un formato incorrecto.
tags.form.description.label: Descripción
tags.form.description.optional: (opcional)
tags.form.description.placeholder: Ej. Todos los contratos firmados por la empresa
tags.form.description.max-length: La descripción debe tener menos de 256 caracteres
tags.form.no-description: Sin descripción
tags.table.headers.tag: Etiqueta
tags.table.headers.description: Descripción
tags.table.headers.documents: Documentos
tags.table.headers.created: Creado
tags.table.headers.actions: Acciones
# Tagging rules
tagging-rules.field.name: nombre del documento
tagging-rules.field.content: contenido del documento
tagging-rules.operator.equals: es igual a
tagging-rules.operator.not-equals: no es igual a
tagging-rules.operator.contains: contiene
tagging-rules.operator.not-contains: no contiene
tagging-rules.operator.starts-with: comienza con
tagging-rules.operator.ends-with: termina con
tagging-rules.list.title: Reglas de etiquetado
tagging-rules.list.description: Administra las reglas de etiquetado de tu organización, para etiquetar documentos automáticamente según las condiciones que definas.
tagging-rules.list.demo-warning: 'Nota: Como este es un entorno de demostración (sin servidor), las reglas de etiquetado no se aplicarán a los nuevos documentos añadidos.'
tagging-rules.list.no-tagging-rules.title: No hay reglas de etiquetado
tagging-rules.list.no-tagging-rules.description: Crea una regla de etiquetado para etiquetar automáticamente tus documentos añadidos según las condiciones que definas.
tagging-rules.list.no-tagging-rules.create-tagging-rule: Crear regla de etiquetado
tagging-rules.list.card.no-conditions: Sin condiciones
tagging-rules.list.card.one-condition: 1 condición
tagging-rules.list.card.conditions: '{{ count }} condiciones'
tagging-rules.list.card.delete: Eliminar regla
tagging-rules.list.card.edit: Editar regla
tagging-rules.create.title: Crear regla de etiquetado
tagging-rules.create.success: Regla de etiquetado creada exitosamente
tagging-rules.create.error: Error al crear la regla de etiquetado
tagging-rules.create.submit: Crear regla
tagging-rules.form.name.label: Nombre
tagging-rules.form.name.placeholder: 'Ejemplo: Etiquetar facturas'
tagging-rules.form.name.min-length: Por favor, ingresa un nombre para la regla
tagging-rules.form.name.max-length: El nombre debe tener menos de 64 caracteres
tagging-rules.form.description.label: Descripción
tagging-rules.form.description.placeholder: "Ejemplo: Etiquetar documentos con 'factura' en el nombre"
tagging-rules.form.description.max-length: La descripción debe tener menos de 256 caracteres
tagging-rules.form.conditions.label: Condiciones
tagging-rules.form.conditions.description: Define las condiciones que deben cumplirse para que la regla se aplique. Todas las condiciones deben cumplirse.
tagging-rules.form.conditions.add-condition: Añadir condición
tagging-rules.form.conditions.no-conditions.title: Sin condiciones
tagging-rules.form.conditions.no-conditions.description: No añadiste ninguna condición a esta regla. Esta regla aplicará sus etiquetas a todos los documentos.
tagging-rules.form.conditions.no-conditions.confirm: Aplicar regla sin condiciones
tagging-rules.form.conditions.no-conditions.cancel: Cancelar
tagging-rules.form.conditions.value.placeholder: 'Ejemplo: factura'
tagging-rules.form.conditions.value.min-length: Por favor, ingresa un valor para la condición
tagging-rules.form.tags.label: Etiquetas
tagging-rules.form.tags.description: Selecciona las etiquetas a aplicar a los documentos añadidos que cumplan las condiciones
tagging-rules.form.tags.min-length: Se requiere al menos una etiqueta para aplicar
tagging-rules.form.tags.add-tag: Crear etiqueta
tagging-rules.form.submit: Crear regla
tagging-rules.update.title: Actualizar regla de etiquetado
tagging-rules.update.error: Error al actualizar la regla de etiquetado
tagging-rules.update.submit: Actualizar regla
tagging-rules.update.cancel: Cancelar
# Intake emails
intake-emails.title: Correos de ingreso
intake-emails.description: Las direcciones de correo de ingreso se usan para ingresar automáticamente correos en Papra. Solo reenvía correos a la dirección de ingreso y sus archivos adjuntos se agregarán a los documentos de tu organización.
intake-emails.disabled.title: Correos de ingreso deshabilitados
intake-emails.disabled.description: Los correos de ingreso están deshabilitados en esta instancia. Contacta a tu administrador para habilitarlos. Consulta la {{ documentation }} para más información.
intake-emails.disabled.documentation: documentación
intake-emails.info: Solo los correos de ingreso habilitados desde orígenes permitidos serán procesados. Puedes habilitar o deshabilitar un correo de ingreso en cualquier momento.
intake-emails.empty.title: Sin correos de ingreso
intake-emails.empty.description: Genera una dirección de ingreso para añadir fácilmente archivos adjuntos de correos.
intake-emails.empty.generate: Generar correo de ingreso
intake-emails.count: '{{ count }} correo{{ plural }} de ingreso para esta organización'
intake-emails.new: Nuevo correo de ingreso
intake-emails.disabled-label: (Deshabilitado)
intake-emails.no-origins: Sin orígenes de correo permitidos
intake-emails.allowed-origins: Permitido desde {{ count }} dirección{{ plural }}
intake-emails.actions.enable: Habilitar
intake-emails.actions.disable: Deshabilitar
intake-emails.actions.manage-origins: Gestionar direcciones de origen
intake-emails.actions.delete: Eliminar
intake-emails.delete.confirm.title: ¿Eliminar correo de ingreso?
intake-emails.delete.confirm.message: ¿Estás seguro de que deseas eliminar este correo de ingreso? Esta acción no se puede deshacer.
intake-emails.delete.confirm.confirm-button: Eliminar correo de ingreso
intake-emails.delete.confirm.cancel-button: Cancelar
intake-emails.delete.success: Correo de ingreso eliminado
intake-emails.create.success: Correo de ingreso creado
intake-emails.update.success.enabled: Correo de ingreso habilitado
intake-emails.update.success.disabled: Correo de ingreso deshabilitado
intake-emails.allowed-origins.title: Orígenes permitidos
intake-emails.allowed-origins.description: Solo los correos enviados a {{ email }} desde estos orígenes serán procesados. Si no se especifican orígenes, todos los correos serán descartados.
intake-emails.allowed-origins.add.label: Añadir dirección de correo permitida
intake-emails.allowed-origins.add.placeholder: Ej. ada@papra.app
intake-emails.allowed-origins.add.button: Añadir
intake-emails.allowed-origins.add.error.exists: Este correo ya está en los orígenes permitidos para este correo de ingreso
# API keys
api-keys.permissions.documents.title: Documentos
api-keys.permissions.documents.documents:create: Crear documentos
api-keys.permissions.documents.documents:read: Leer documentos
api-keys.permissions.documents.documents:update: Actualizar documentos
api-keys.permissions.documents.documents:delete: Eliminar documentos
api-keys.permissions.tags.title: Etiquetas
api-keys.permissions.tags.tags:create: Crear etiquetas
api-keys.permissions.tags.tags:read: Leer etiquetas
api-keys.permissions.tags.tags:update: Actualizar etiquetas
api-keys.permissions.tags.tags:delete: Eliminar etiquetas
api-keys.create.title: Crear clave API
api-keys.create.description: Crea una nueva clave API para acceder a la API de Papra.
api-keys.create.success: La clave API ha sido creada exitosamente.
api-keys.create.back: Volver a claves API
api-keys.create.form.name.label: Nombre
api-keys.create.form.name.placeholder: 'Ejemplo: Mi clave API'
api-keys.create.form.name.required: Por favor, ingresa un nombre para la clave API
api-keys.create.form.permissions.label: Permisos
api-keys.create.form.permissions.required: Por favor, selecciona al menos un permiso
api-keys.create.form.submit: Crear clave API
api-keys.create.created.title: Clave API creada
api-keys.create.created.description: La clave API ha sido creada exitosamente. Guárdala en un lugar seguro ya que no se mostrará nuevamente.
api-keys.list.title: Claves API
api-keys.list.description: Administra tus claves API aquí.
api-keys.list.create: Crear clave API
api-keys.list.empty.title: Sin claves API
api-keys.list.empty.description: Crea una clave API para acceder a la API de Papra.
api-keys.list.card.last-used: Último uso
api-keys.list.card.never: Nunca
api-keys.list.card.created: Creado
api-keys.delete.success: La clave API ha sido eliminada exitosamente
api-keys.delete.confirm.title: Eliminar clave API
api-keys.delete.confirm.message: ¿Estás seguro de que deseas eliminar esta clave API? Esta acción no se puede deshacer.
api-keys.delete.confirm.confirm-button: Eliminar
api-keys.delete.confirm.cancel-button: Cancelar
# Webhooks
webhooks.list.title: Webhooks
webhooks.list.description: Administra los webhooks de tu organización
webhooks.list.empty.title: Sin webhooks
webhooks.list.empty.description: Crea tu primer webhook para empezar a recibir eventos
webhooks.list.create: Crear webhook
webhooks.list.card.last-triggered: Última activación
webhooks.list.card.never: Nunca
webhooks.list.card.created: Creado
webhooks.create.title: Crear webhook
webhooks.create.description: Crea un nuevo webhook para recibir eventos
webhooks.create.success: Webhook creado exitosamente
webhooks.create.back: Volver
webhooks.create.form.submit: Crear webhook
webhooks.create.form.name.label: Nombre del webhook
webhooks.create.form.name.placeholder: Ingresa el nombre del webhook
webhooks.create.form.name.required: El nombre es obligatorio
webhooks.create.form.url.label: URL del webhook
webhooks.create.form.url.placeholder: Ingresa la URL del webhook
webhooks.create.form.url.required: La URL es obligatoria
webhooks.create.form.url.invalid: La URL no es válida
webhooks.create.form.secret.label: Secreto
webhooks.create.form.secret.placeholder: Ingresa el secreto del webhook
webhooks.create.form.events.label: Eventos
webhooks.create.form.events.required: Se requiere al menos un evento
webhooks.update.title: Editar webhook
webhooks.update.description: Actualiza los detalles de tu webhook
webhooks.update.success: Webhook actualizado exitosamente
webhooks.update.submit: Actualizar webhook
webhooks.update.cancel: Cancelar
webhooks.update.form.secret.placeholder: Ingresa un nuevo secreto
webhooks.update.form.secret.placeholder-redacted: '[Secreto oculto]'
webhooks.update.form.rotate-secret.button: Rotar secreto
webhooks.delete.success: Webhook eliminado exitosamente
webhooks.delete.confirm.title: Eliminar webhook
webhooks.delete.confirm.message: ¿Estás seguro de que deseas eliminar este webhook?
webhooks.delete.confirm.confirm-button: Eliminar
webhooks.delete.confirm.cancel-button: Cancelar
webhooks.events.documents.document:created.description: Documento creado
webhooks.events.documents.document:deleted.description: Documento eliminado
# Navigation
layout.menu.home: Inicio
layout.menu.documents: Documentos
layout.menu.tags: Etiquetas
layout.menu.tagging-rules: Reglas de etiquetado
layout.menu.deleted-documents: Documentos eliminados
layout.menu.organization-settings: Configuración
layout.menu.api-keys: Claves API
layout.menu.settings: Ajustes
layout.menu.account: Cuenta
layout.menu.general-settings: Ajustes generales
layout.menu.intake-emails: Correos de ingreso
layout.menu.webhooks: Webhooks
layout.menu.members: Miembros
layout.menu.invitations: Invitaciones
layout.theme.light: Modo claro
layout.theme.dark: Modo oscuro
layout.theme.system: Modo del sistema
layout.search.placeholder: Buscar...
layout.menu.import-document: Importar un documento
user-menu.account-settings: Ajustes de cuenta
user-menu.api-keys: Claves API
user-menu.invitations: Invitaciones
user-menu.language: Idioma
user-menu.logout: Cerrar sesión
# Command palette
command-palette.search.placeholder: Buscar comandos o documentos
command-palette.no-results: No se encontraron resultados
command-palette.sections.documents: Documentos
command-palette.sections.theme: Tema
# API errors
api-errors.document.already_exists: El documento ya existe
api-errors.document.file_too_big: El archivo del documento es demasiado grande
api-errors.intake_email.limit_reached: Se ha alcanzado el número máximo de correos de ingreso para esta organización. Por favor, mejora tu plan para crear más correos de ingreso.
api-errors.user.max_organization_count_reached: Has alcanzado el número máximo de organizaciones que puedes crear, si necesitas crear más, contacta al soporte.
api-errors.default: Ocurrió un error al procesar tu solicitud.
api-errors.organization.invitation_already_exists: Ya existe una invitación para este correo electrónico en esta organización.
api-errors.user.already_in_organization: Este usuario ya está en esta organización.
api-errors.user.organization_invitation_limit_reached: Se ha alcanzado el número máximo de invitaciones para hoy. Por favor, inténtalo de nuevo mañana.
api-errors.demo.not_available: Esta función no está disponible en la demostración
api-errors.tags.already_exists: Ya existe una etiqueta con este nombre en esta organización
# Not found
not-found.title: 404 - No encontrado
not-found.description: Lo sentimos, la página que buscas no parece existir. Por favor, verifica la URL e inténtalo de nuevo.
not-found.back-to-home: Volver al inicio
# Demo
demo.popup.description: Este es un entorno de demostración, todos los datos se guardan en el almacenamiento local de tu navegador.
demo.popup.discord: Únete a {{ discordLink }} para obtener soporte, proponer funciones o simplemente chatear.
demo.popup.discord-link-label: Servidor de Discord
demo.popup.reset: Restablecer datos de la demo
demo.popup.hide: Ocultar
# Color picker
color-picker.hue: Matiz
color-picker.saturation: Saturación
color-picker.lightness: Luminosidad
color-picker.select-color: Seleccionar color
color-picker.select-a-color: Selecciona un color

View File

@@ -6,4 +6,5 @@ export const locales = [
{ key: 'pt', name: 'Português Europeu' },
{ key: 'pl', name: 'Polski' },
{ key: 'ro', name: 'Română' },
{ key: 'es', name: 'Español' },
] as const;