chore(i18n): auto-update translations via LLM
This commit is contained in:
@@ -41,6 +41,161 @@
|
||||
"about.story_heading": "Nuestra Historia",
|
||||
"about.story_p1": "DocuElevate fue creado con un objetivo en mente: simplificar y optimizar la gestión de documentos para todos, ya seas una pequeña startup o una gran empresa.",
|
||||
"about.story_p2": "Aprovechamos el poder de proveedores de IA intercambiables (OpenAI, Anthropic Claude, Google Gemini, Ollama, OpenRouter, Portkey y más) para la extracción de metadatos y el refinamiento de texto, nos integramos sin problemas con Dropbox, Nextcloud y Paperless NGX para el almacenamiento y la indexación, aprovechamos Azure Document Intelligence para OCR e incluso usamos Gotenberg para conversiones de archivo a PDF.",
|
||||
"admin_files.admin_only_badge": "Solo Admin",
|
||||
"admin_files.aria_breadcrumb": "Ruta de navegación",
|
||||
"admin_files.badge_delta_detected": "Delta detectado",
|
||||
"admin_files.badge_duplicate": "duplicado",
|
||||
"admin_files.badge_in_db": "en DB",
|
||||
"admin_files.badge_on_disk": "en disco",
|
||||
"admin_files.breadcrumb_workdir": "directorio de trabajo",
|
||||
"admin_files.btn_download": "Descargar",
|
||||
"admin_files.col_actions": "Acciones",
|
||||
"admin_files.col_db": "DB",
|
||||
"admin_files.col_health": "Salud",
|
||||
"admin_files.col_id": "ID",
|
||||
"admin_files.col_ingested": "Ingerido",
|
||||
"admin_files.col_local_filename": "nombre_archivo_local",
|
||||
"admin_files.col_missing_paths": "Rutas faltantes",
|
||||
"admin_files.col_modified": "Modificado",
|
||||
"admin_files.col_name": "Nombre",
|
||||
"admin_files.col_original_file_path": "ruta_archivo_original",
|
||||
"admin_files.col_original_filename": "Nombre de Archivo Original",
|
||||
"admin_files.col_path_relative": "Ruta (relativa al directorio de trabajo)",
|
||||
"admin_files.col_processed_file_path": "ruta_archivo_procesado",
|
||||
"admin_files.col_size": "Tamaño",
|
||||
"admin_files.delta_detected_detail": "Se encontraron {orphan_count} archivo(s) huérfano(s) en el disco sin registro en la base de datos, y {ghost_count} registro(s) en la base de datos con archivos faltantes en el disco.",
|
||||
"admin_files.delta_detected_title": "Delta detectado.",
|
||||
"admin_files.empty_database": "No se encontraron registros de archivos en la base de datos.",
|
||||
"admin_files.empty_directory": "Este directorio está vacío.",
|
||||
"admin_files.ghost_records_desc": "(en la base de datos, archivo(s) faltantes en el disco)",
|
||||
"admin_files.ghost_records_heading": "Registros fantasma",
|
||||
"admin_files.heading": "Administrador de Archivos",
|
||||
"admin_files.health_missing": "Faltante",
|
||||
"admin_files.health_ok": "OK",
|
||||
"admin_files.legend_file_exists": "Archivo existe en el disco",
|
||||
"admin_files.legend_file_missing": "Archivo faltante del disco",
|
||||
"admin_files.legend_found_in_db": "Encontrado en la base de datos",
|
||||
"admin_files.legend_not_in_db": "No en la base de datos (huérfano)",
|
||||
"admin_files.legend_path_not_set": "Ruta no establecida",
|
||||
"admin_files.no_delta": "No se encontró delta — el sistema de archivos y la base de datos están en sincronía.",
|
||||
"admin_files.no_ghost_records": "No se encontraron registros fantasma.",
|
||||
"admin_files.no_orphan_files": "No se encontraron archivos huérfanos.",
|
||||
"admin_files.orphan_files_desc": "(en disco, sin registro en la base de datos)",
|
||||
"admin_files.orphan_files_heading": "Archivos huérfanos",
|
||||
"admin_files.page_title": "Administrador de Archivos – Admin",
|
||||
"admin_files.status_in_db": "En la base de datos",
|
||||
"admin_files.status_orphan": "Huérfano",
|
||||
"admin_files.tab_database": "Registros de la Base de Datos",
|
||||
"admin_files.tab_filesystem": "Sistema de Archivos",
|
||||
"admin_files.tab_reconcile": "Reconciliar",
|
||||
"admin_plans.aria_delete_plan": "Eliminar {name}",
|
||||
"admin_plans.aria_edit_plan": "Editar {name}",
|
||||
"admin_plans.aria_feature_n": "Característica {n}",
|
||||
"admin_plans.aria_move_down": "Mover {name} hacia abajo",
|
||||
"admin_plans.aria_move_up": "Mover {name} hacia arriba",
|
||||
"admin_plans.aria_remove_feature_n": "Eliminar característica {n}",
|
||||
"admin_plans.btn_add_feature": "Agregar Característica",
|
||||
"admin_plans.btn_add_plan": "Agregar Plan",
|
||||
"admin_plans.btn_cancel": "Cancelar",
|
||||
"admin_plans.btn_create": "Crear Plan",
|
||||
"admin_plans.btn_delete": "Eliminar",
|
||||
"admin_plans.btn_edit": "Editar",
|
||||
"admin_plans.btn_restore_defaults": "Restaurar Valores Predeterminados",
|
||||
"admin_plans.btn_restore_defaults_title": "Restaurar los cuatro planes predeterminados (solo si no existen planes todavía)",
|
||||
"admin_plans.btn_restoring": "Restaurando\u00135",
|
||||
"admin_plans.btn_save_changes": "Guardar Cambios",
|
||||
"admin_plans.btn_save_order": "Guardar Orden",
|
||||
"admin_plans.btn_saving": "Guardando\u00135",
|
||||
"admin_plans.btn_stripe_setup": "Configuración de Stripe",
|
||||
"admin_plans.btn_stripe_setup_title": "Abrir el Asistente de Configuración de Stripe para configurar las claves de API y sincronizar planes",
|
||||
"admin_plans.col_actions": "Acciones",
|
||||
"admin_plans.col_active": "Activo",
|
||||
"admin_plans.col_monthly": "Mensual",
|
||||
"admin_plans.col_monthly_limit": "Límite Mensual",
|
||||
"admin_plans.col_order": "Orden",
|
||||
"admin_plans.col_overage_pct": "Porcentaje de Exceso",
|
||||
"admin_plans.col_plan": "Plan",
|
||||
"admin_plans.col_yearly": "Anual",
|
||||
"admin_plans.coming_soon": "Próximamente",
|
||||
"admin_plans.featured_badge": "Destacado",
|
||||
"admin_plans.field_active": "Activo",
|
||||
"admin_plans.field_allow_overage": "Permitir Facturación por Exceso",
|
||||
"admin_plans.field_api_access": "Acceso a API",
|
||||
"admin_plans.field_badge_text": "Texto de Insignia",
|
||||
"admin_plans.field_buffer": "Buffer:",
|
||||
"admin_plans.field_cta_text": "Texto del Botón CTA",
|
||||
"admin_plans.field_docs_month": "Docs / Mes",
|
||||
"admin_plans.field_featured": "Destacado / Enfocado",
|
||||
"admin_plans.field_lifetime_docs": "Docs de Por Vida",
|
||||
"admin_plans.field_mailboxes": "Buzones de Correo",
|
||||
"admin_plans.field_max_file_size": "Tamaño máximo del archivo (MB)",
|
||||
"admin_plans.field_name": "Nombre",
|
||||
"admin_plans.field_ocr_pages": "Páginas OCR / Mes",
|
||||
"admin_plans.field_overage_doc_price": "Precio adicional / doc ($)",
|
||||
"admin_plans.field_overage_ocr_price": "Precio adicional / página OCR ($)",
|
||||
"admin_plans.field_plan_id": "ID del plan",
|
||||
"admin_plans.field_price_monthly": "Precio Mensual ($)",
|
||||
"admin_plans.field_price_yearly": "Precio Anual ($)",
|
||||
"admin_plans.field_sort_order": "Orden de clasificación",
|
||||
"admin_plans.field_storage_dests": "Destinos de almacenamiento",
|
||||
"admin_plans.field_stripe_monthly": "ID de precio de Stripe (mensual)",
|
||||
"admin_plans.field_stripe_yearly": "ID de precio de Stripe (anual)",
|
||||
"admin_plans.field_tagline": "Eslogan",
|
||||
"admin_plans.field_trial_days": "Días de prueba",
|
||||
"admin_plans.free_label": "Gratis",
|
||||
"admin_plans.heading": "Diseñador de Planes",
|
||||
"admin_plans.hint_features": "Estos puntos aparecen en la tarjeta de la página de precios para este plan.",
|
||||
"admin_plans.hint_plan_id": "Slug en minúsculas, no se puede cambiar después de la creación.",
|
||||
"admin_plans.hint_zero_unlimited": "Ingresa 0 para ilimitado.",
|
||||
"admin_plans.js_delete_confirm": "¿Eliminar el plan \"{id}\"? Esto no se puede deshacer.",
|
||||
"admin_plans.js_delete_failed": "Eliminación fallida",
|
||||
"admin_plans.js_failed_load": "Error al cargar planes",
|
||||
"admin_plans.js_order_saved": "¡Orden guardada!",
|
||||
"admin_plans.js_plan_created": "¡Plan creado!",
|
||||
"admin_plans.js_plan_deleted": "Plan \"{id}\" eliminado.",
|
||||
"admin_plans.js_plan_updated": "¡Plan actualizado!",
|
||||
"admin_plans.js_reorder_failed": "Reordenamiento fallido",
|
||||
"admin_plans.js_save_failed": "Guardado fallido",
|
||||
"admin_plans.js_seed_confirm": "¿Sembrar los cuatro planes predeterminados? Esto no tiene efecto si los planes ya existen.",
|
||||
"admin_plans.js_seed_failed": "Falló la siembra",
|
||||
"admin_plans.js_yearly_enter": "Ingresa el precio anual para mostrar el ahorro",
|
||||
"admin_plans.js_yearly_save": "Ahorra {pct}% en comparación con el mensual",
|
||||
"admin_plans.loading": "Cargando planes\u001a\n\n\n\n...",
|
||||
"admin_plans.modal_close_aria": "Cerrar modal",
|
||||
"admin_plans.modal_create_title": "Agregar Plan",
|
||||
"admin_plans.modal_edit_title_prefix": "Editar Plan: ",
|
||||
"admin_plans.no_plans_intro": "Aún no hay planes. Haz clic en",
|
||||
"admin_plans.no_plans_suffix": "para sembrar los cuatro planes integrados.",
|
||||
"admin_plans.overage_0pct": "0% (exacto)",
|
||||
"admin_plans.overage_100pct": "100%",
|
||||
"admin_plans.overage_50pct": "50%",
|
||||
"admin_plans.overage_announce": "\u0000b7 anunciar",
|
||||
"admin_plans.overage_buffer_body_prefix": "El buffer de exceso es",
|
||||
"admin_plans.overage_buffer_body_suffix": "Anunciamos X docs/mes pero solo hacemos cumplir en",
|
||||
"admin_plans.overage_buffer_formula": "X \u0000d7 (1 + porcentaje de buffer)",
|
||||
"admin_plans.overage_buffer_invisible": "invisible para los usuarios",
|
||||
"admin_plans.overage_buffer_tail": "docs. Por ejemplo, un plan de 150 docs/mes con un 20% de buffer se hace cumplir a 180 docs. Esto previene cortes abruptos en el límite exacto anunciado, brindando a los usuarios un aterrizaje suave y gradual.",
|
||||
"admin_plans.overage_buffer_title": "Acerca del Buffer de Exceso",
|
||||
"admin_plans.overage_docs": "docs,",
|
||||
"admin_plans.overage_docs_end": "docs",
|
||||
"admin_plans.overage_enforce_at": "hacer cumplir en",
|
||||
"admin_plans.page_title": "Diseñador de Planes \u0004c DocuElevate Admin",
|
||||
"admin_plans.section_basic_info": "Información Básica",
|
||||
"admin_plans.section_display": "Mostrar",
|
||||
"admin_plans.section_features": "Lista de Características",
|
||||
"admin_plans.section_overage": "Diseñador de Exceso",
|
||||
"admin_plans.section_pricing": "Precios",
|
||||
"admin_plans.section_stripe": "Integración de Stripe",
|
||||
"admin_plans.section_volume": "Límites de Volumen",
|
||||
"admin_plans.status_active": "Activo",
|
||||
"admin_plans.status_inactive": "Inactivo",
|
||||
"admin_plans.stripe_desc_after": "para crearlos automáticamente. Los planes gratuitos no necesitan ID de Precio de Stripe.",
|
||||
"admin_plans.stripe_desc_before": "Ingrese los ID de Precio de Stripe para este plan, o use el",
|
||||
"admin_plans.stripe_wizard_aria": "Abrir el Asistente de Configuración de Stripe en una nueva pestaña",
|
||||
"admin_plans.stripe_wizard_link": "Asistente de Stripe",
|
||||
"admin_plans.stripe_wizard_text": "Asistente de Configuración de Stripe",
|
||||
"admin_plans.subheading": "Administra los planes de suscripción mostrados en la página pública de precios.",
|
||||
"admin_plans.table_aria_label": "Planes de suscripción",
|
||||
"admin_users.add_user_profile_btn": "Agregar perfil de usuario",
|
||||
"admin_users.admin_only_badge": "Solo para administradores",
|
||||
"admin_users.btn_password": "Contraseña",
|
||||
@@ -1222,6 +1377,9 @@
|
||||
"profile.contact_email_label": "Correo electrónico de contacto / notificación",
|
||||
"profile.contact_email_placeholder": "tú@ejemplo.com",
|
||||
"profile.current_password": "Contraseña actual",
|
||||
"profile.default_document_language_auto": "Usar predeterminado del sistema",
|
||||
"profile.default_document_language_hint": "Los documentos en otros idiomas se traducen automáticamente a este idioma. Deje en blanco para utilizar el predeterminado del sistema (inglés).",
|
||||
"profile.default_document_language_label": "Idioma de Documento Predeterminado",
|
||||
"profile.dismiss": "Descartar",
|
||||
"profile.display_name_hint": "Deja en blanco para usar tu nombre de usuario o correo electrónico de la cuenta.",
|
||||
"profile.display_name_label": "Nombre para mostrar",
|
||||
@@ -1549,6 +1707,21 @@
|
||||
"terms.s6_p3_mid": ". Para información de licencias, por favor consulta nuestro",
|
||||
"terms.s6_p3_post": ".",
|
||||
"terms.s6_p3_pre": "Para información sobre cómo utilizamos las cookies, por favor ve nuestra",
|
||||
"translation.copied": "¡Copiado!",
|
||||
"translation.copy": "Copiar",
|
||||
"translation.default_language_version": "Versión de Idioma Predeterminado",
|
||||
"translation.detected_language": "Idioma detectado",
|
||||
"translation.hide_text": "Ocultar texto",
|
||||
"translation.load_translation": "Cargar traducción",
|
||||
"translation.no_translation": "No hay traducción disponible aún \u001e\u00040 - puede que aún esté procesando",
|
||||
"translation.select_language": "Seleccionar idioma\u001f\u0002d",
|
||||
"translation.select_target": "Por favor selecciona un idioma de destino.",
|
||||
"translation.show_text": "Mostrar texto",
|
||||
"translation.translate_btn": "Traducir",
|
||||
"translation.translate_to": "Traducir a otro idioma",
|
||||
"translation.translated_to": "Traducido a",
|
||||
"translation.translating": "Traduciendo\u001f\u0002d",
|
||||
"translation.translation_failed": "La traducción falló",
|
||||
"upload.browse_button": "Buscar Archivos",
|
||||
"upload.button_processing": "Procesando...",
|
||||
"upload.camera_button": "Tomar Foto / Escanear Documento",
|
||||
|
||||
Reference in New Issue
Block a user