| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987 |
- {
- "catalog": {
- "title": "Integraciones",
- "description": "Conecte los servicios que su taller ya utiliza. Cada integración se configura una sola vez y funciona en segundo plano.",
- "all": "Todas",
- "empty": "Todavía no hay integraciones en esta categoría.",
- "notConnected": "No conectada",
- "connect": "Conectar",
- "manage": "Administrar",
- "connectedTitle": "Conectados",
- "connectedDescription": "Servicios que este taller ha configurado. Abra uno para ver su estado, cambiar ajustes o desconectarlo.",
- "noneConnected": "Aún no hay nada conectado. Elija un servicio abajo para empezar.",
- "availableTitle": "Disponibles",
- "availableDescription": "Servicios que puede añadir. Cada uno se configura una vez y funciona en segundo plano.",
- "allConnected": "Todos los servicios disponibles están conectados.",
- "searchPlaceholder": "Buscar integraciones",
- "noMatches": "Nada coincide con «{query}».",
- "readMore": "Leer más",
- "suggestTitle": "¿Falta un servicio que usas?",
- "suggestDescription": "Cuéntanos qué integración ayudaría a tu taller y la estudiaremos.",
- "suggest": "Sugerir una integración",
- "suggestSubject": "Sugerencia de integración"
- },
- "categories": {
- "calendar": "Calendario",
- "conferencing": "Videollamadas",
- "accounting": "Contabilidad",
- "messaging": "Mensajería",
- "payments": "Pagos",
- "automation": "Automatización",
- "storage": "Archivos",
- "registry": "Registro de vehículos",
- "repair": "Datos de reparación",
- "other": "Otras",
- "ai": "IA"
- },
- "capabilities": {
- "calendar": {
- "push": "Órdenes de trabajo al calendario",
- "pull": "Tiempo ocupado del calendario",
- "conference": "Enlaces de videollamada"
- },
- "sms": {
- "send": "Envío de SMS",
- "receive": "Recepción de respuestas"
- },
- "whatsapp": {
- "send": "Envío de mensajes de WhatsApp",
- "receive": "Recepción de respuestas"
- },
- "telegram": {
- "send": "Envío de mensajes de Telegram",
- "receive": "Recepción de respuestas"
- },
- "email": {
- "send": "Envío de correos"
- },
- "vehicle": {
- "lookup": "Consulta por matrícula y VIN",
- "inspection": "Fechas de inspección",
- "safety": "Llamadas a revisión y quejas de propietarios"
- },
- "ai": {
- "chat": "Textos y resúmenes",
- "transcribe": "Dictado"
- },
- "payments": {
- "checkout": "Pagar desde el enlace de la factura"
- },
- "accounting": {
- "invoices": "Facturas al libro contable",
- "customers": "Clientes al libro contable",
- "payments": "Pagos en ambos sentidos"
- },
- "backup": {
- "target": "Destino de copias de seguridad"
- },
- "repair": {
- "labor": "Tiempos de mano de obra en órdenes de trabajo y presupuestos",
- "fluids": "Tipos y capacidades de fluidos"
- }
- },
- "statuses": {
- "active": "Conectada",
- "error": "Requiere atención",
- "pending": "Configuración en curso",
- "disconnected": "Desconectada",
- "needsSetup": "Configuración incompleta"
- },
- "connection": {
- "back": "Todas las integraciones",
- "account": "Cuenta conectada",
- "lastHealth": "Última comprobación",
- "lastSync": "Última sincronización",
- "lastError": "La última ejecución falló",
- "setupMissingTitle": "Configuración incompleta",
- "setupMissing": "Elige {fields} en los ajustes de abajo. Hasta entonces no se sincroniza nada.",
- "connected": "{name} está conectado.",
- "connectedShort": "Conectado",
- "connectWith": "Conectar {name}",
- "connect": "Conectar",
- "reconnect": "Volver a conectar",
- "disconnect": "Desconectar",
- "disconnectTitle": "¿Desconectar {name}?",
- "disconnectDescription": "Torqvoice olvida la cuenta y deja de usarla. Nada ya enviado o guardado en {name} se toca.",
- "disconnectDescriptionCalendar": "Torqvoice olvida la cuenta y deja de sincronizar. Las órdenes de trabajo ya puestas en {name} se quedan allí. El tiempo ocupado mostrado desde ese calendario se quita del calendario de Torqvoice.",
- "disconnectDescriptionConferencing": "Torqvoice olvida la cuenta y deja de crear reuniones. Las reuniones ya creadas se quedan en {name} y los enlaces en las órdenes de trabajo se conservan.",
- "disconnectDescriptionAccounting": "Torqvoice olvida la cuenta y deja de enviar y leer. Las facturas, clientes y pagos ya en {name} se quedan allí.",
- "removeSetup": "Quitar",
- "removeSetupTitle": "¿Quitar {name}?",
- "removeSetupDescription": "Todavía no hay nada conectado. Torqvoice olvida lo introducido y {name} vuelve a la lista de servicios disponibles.",
- "removeSetupDone": "{name} quitado",
- "removeSetupHint": "¿No vas a seguir con esto? Quítalo y el servicio vuelve a la lista de abajo.",
- "disconnected": "Desconectado",
- "test": "Probar conexión",
- "testPassed": "La conexión funciona",
- "syncNow": "Sincronizar ahora",
- "syncQueued": "Sincronización en cola; se ejecuta en menos de un minuto",
- "pullNow": "Traer pagos ahora",
- "pullQueued": "Lectura de pagos en cola; se ejecuta en menos de un minuto",
- "backfill": "Enviar órdenes de trabajo programadas",
- "backfillQueued": "Se pusieron en cola las órdenes de trabajo programadas desde la semana pasada en adelante",
- "backfillInvoices": "Enviar facturas emitidas",
- "backfillInvoicesQueuedCount": "{count, plural, one {# factura emitida} other {# facturas emitidas}} en cola para enviar",
- "backfillInvoicesNone": "No hay facturas emitidas para enviar. Solo pasan las facturas enviadas, compartidas o pagadas, desde la fecha de inicio si la fijaste.",
- "retryQueued": "Tarea puesta en cola de nuevo",
- "settingsTitle": "Configuración",
- "settingsDescription": "Qué sincronizar y dónde. Los cambios se aplican en la próxima sincronización.",
- "settingsSaved": "Configuración guardada",
- "save": "Guardar",
- "loading": "Cargando...",
- "choose": "Elegir...",
- "search": "Buscar...",
- "noMatch": "Nada coincide",
- "leaveEmpty": "Dejar vacío",
- "noLimit": "Sin límite",
- "planLocked": "Las integraciones no están incluidas en su plan.",
- "lockedIntegrations": "Conecte calendarios, videollamadas y otros servicios a su taller.",
- "lockedPayments": "Permita que sus clientes paguen sus facturas en línea, con cada pago registrado en la factura.",
- "lockedAi": "Conecte un proveedor de IA para usar funciones de IA en su taller.",
- "ownAppTitle": "Esta instalación usa su propia aplicación con el proveedor",
- "redirectUri": "URI de redirección que debe registrar con el proveedor:",
- "sendTestEmail": "Enviar correo de prueba",
- "testEmailSent": "Correo de prueba enviado a {email}",
- "testEmailHint": "Se envía un correo de prueba a tu propia dirección a través de este proveedor, lo que confirma la dirección de remitente y las reglas de envío que una comprobación de claves no puede verificar.",
- "inboundUrl": "URL del webhook de entrada",
- "inboundHintSecret": "Pega esta URL en los ajustes de mensajes entrantes del proveedor. Contiene un secreto que identifica a tu taller, así que mantenla en privado.",
- "inboundHintMeta": "Pega esta URL como URL de callback en tu app de Meta, con el token de verificación que introdujiste arriba, y suscríbete a los mensajes.",
- "inboundHintStripe": "Añade esta URL en el panel de Stripe: abre Workbench, luego Webhooks, elige Create an event destination y suscríbela a checkout.session.completed. Stripe mostrará entonces un secreto de firma para el endpoint; pégalo aquí en el campo del secreto de firma para que cada notificación se compruebe por su firma. Hasta entonces, Torqvoice confirma cada notificación consultando el checkout a Stripe.",
- "inboundHintVipps": "Introduce esta URL como URL de callback en el portal de Vipps MobilePay. Vipps también exige condiciones de venta publicadas, que se configuran en Ajustes, Pago.",
- "inboundHintPaypal": "Añade esta URL en el panel de desarrollador de PayPal en Webhooks, suscrita a PAYMENT.CAPTURE.COMPLETED.",
- "copy": "Copiar",
- "copied": "Copiado",
- "updateKeys": "Actualizar claves",
- "updateKeysHint": "La última comprobación falló. Vuelve a introducir las claves para intentarlo de nuevo.",
- "awaitingKeys": "Conectado, pero todavía falta: {keys}.",
- "awaitingKeysHint": "El webhook ya responde al proveedor, así que regístralo ahora. Añade estos valores aquí cuando el proveedor los haya emitido.",
- "saveKeys": "Guardar claves",
- "keysSaved": "Claves guardadas",
- "inspectionSync": {
- "title": "Sincronización de inspecciones",
- "vehicles": "{count} vehículos con matrícula en este taller",
- "dueNow": "{count} se consultarían en la próxima ejecución",
- "withDate": "{count} ya tienen fecha de inspección",
- "lastPass": "Última pasada completa {date}",
- "never": "Aún no hay una pasada completa",
- "inProgress": "Hay una pasada en curso",
- "off": "Activa el ajuste y guarda; hasta entonces una pasada no comprueba nada.",
- "syncNowHelp": "Sincronizar ahora inicia una pasada de inmediato en vez de esperar a la horaria. Consulta 25 vehículos cada vez y continúa sola hasta terminar con todos los pendientes. La primera pasada consulta todos los vehículos con matrícula.",
- "confirmTitle": "¿Consultar vehículos ahora?",
- "confirmDescription": "Se consultarán ahora {count} de los {total} vehículos con matrícula en {name}, 25 cada vez, y se guardarán sus fechas de inspección. Los vehículos comprobados hace poco se omiten. Si {name} cobra por consulta, cada vehículo encontrado se cobra a tu cuenta.",
- "confirmLabel": "Consultar {count} vehículos",
- "nothingDue": "Todos los vehículos con matrícula se comprobaron hace poco, así que aún no hay nada que consultar."
- },
- "supersedes": "Conectar {next} desconecta {current}. Solo uno puede estar activo a la vez, así que {current} deja de usarse en cuanto {next} entra en servicio.",
- "platformHandlesBackupsTitle": "Las copias de seguridad ya están incluidas",
- "platformHandlesBackups": "Torqvoice ya hace una copia de seguridad de este taller cada hora y conserva los puntos de restauración durante 30 días. Conecte un bucket si además quiere una copia de su propiedad que se pueda leer sin Torqvoice.",
- "platformHandlesBackupsLink": "Ver tus puntos de restauración",
- "batchRetried": "{count, plural, =0 {Nada que reintentar} one {# tarea vuelta a la cola} other {# tareas vueltas a la cola}}",
- "advanced": "Avanzado",
- "generate": "Generar",
- "show": "Mostrar",
- "hide": "Ocultar",
- "generatedPasswordWarning": "Guarde una copia de esta contraseña en un lugar seguro, fuera de este servidor. Sin ella nadie puede abrir estas copias de seguridad, ni siquiera Torqvoice.",
- "backup": {
- "title": "Copias de seguridad",
- "description": "Cuándo recibió este destino la última copia correcta, cuándo se ejecuta la siguiente y las ejecuciones más recientes.",
- "lastGood": "Última copia correcta",
- "added": "{size} añadidos",
- "never": "Ninguna todavía",
- "nextRun": "Próxima ejecución",
- "notScheduled": "Sin programar",
- "repositorySize": "Almacenado en el destino",
- "runNow": "Hacer copia ahora",
- "running": "Haciendo copia",
- "runningHint": "Se está haciendo una copia de seguridad. Esta página se actualiza sola hasta que termine.",
- "started": "Copia de seguridad iniciada",
- "recentTitle": "Ejecuciones recientes",
- "noRuns": "Todavía no se ha hecho ninguna copia de seguridad.",
- "addedNote": "La primera ejecución sube todo. Cada una de las siguientes añade solo las piezas que cambiaron desde entonces, por eso es pequeña. Cada copia sigue estando completa y puede restaurarse o explorarse por sí sola.",
- "notStarted": "Sin iniciar",
- "filesNewCount": "{count, plural, one {# archivo nuevo} other {# archivos nuevos}}",
- "columns": {
- "status": "Estado",
- "started": "Inicio",
- "trigger": "Iniciada por",
- "duration": "Duración",
- "filesNew": "Archivos nuevos",
- "bytesAdded": "Añadido"
- },
- "trigger": {
- "scheduled": "Programación",
- "manual": "Manual",
- "restore": "Restauración"
- },
- "status": {
- "queued": "En cola",
- "running": "En curso",
- "done": "Completada",
- "failed": "Fallida",
- "skipped": "Omitida"
- },
- "restoring": "Restaurando",
- "restoringHint": "Se está restaurando una copia: los datos del taller se están sustituyendo por los de la copia de seguridad. Esta página se actualiza sola hasta que termine. No trabaje en el taller hasta entonces.",
- "explore": "Explorar",
- "restore": {
- "showAll": "Mostrar todas las copias",
- "refresh": "Actualizar",
- "loading": "Leyendo las copias del destino",
- "loadFailed": "No se pudieron listar las copias",
- "empty": "Todavía no hay copias en este destino.",
- "needsOwner": "Solo el propietario del taller puede restaurar una copia aquí.",
- "needsAdmin": "Solo un propietario o un administrador puede restaurar una copia.",
- "filesIncluded": "Incluye fotos y archivos",
- "filesNotIncluded": "No incluye fotos ni archivos",
- "earlierInstall": "Instalación anterior",
- "action": "Restaurar",
- "dialogTitle": "¿Restaurar la copia de seguridad de {time}?",
- "warning": "Restaurar <bold>sustituye todo lo que tiene ahora este taller</bold>: clientes, vehículos, trabajos, facturas, configuración y, cuando la copia los incluye, fotos y archivos. Todo lo añadido desde que se hizo la copia se pierde. Esto no se puede deshacer.",
- "secretsNote": "Las claves secretas que la copia dejó fuera conservan los valores que tiene ahora esta instalación. Las cuentas de usuario y las contraseñas no se tocan.",
- "confirmPrompt": "Escriba el nombre del taller, <bold>{name}</bold>, para confirmar.",
- "whileRunning": "La restauración se ejecuta en segundo plano y tarda unos minutos cuando hay muchas fotos. La página se actualiza sola hasta que termine.",
- "cancel": "Cancelar",
- "confirm": "Restaurar esta copia",
- "started": "Restauración iniciada"
- }
- },
- "lockedBackups": "Copias de seguridad cifradas y programadas de su taller en un almacenamiento propio.",
- "searchOrType": "Buscar o escribir un nombre",
- "useTyped": "Usar \"{value}\"",
- "listNeedsKeys": "Introduzca las claves de arriba para ver la lista",
- "listEmpty": "La lista está vacía. Escriba un nombre.",
- "testing": "Probando la conexión",
- "testOk": "La conexión funciona: se escribió un objeto de prueba y se volvió a eliminar.",
- "testFailed": "La prueba falló",
- "testSteps": {
- "settings": "Revise los ajustes del proveedor",
- "list": "La clave no puede listar el bucket",
- "write": "La clave no puede escribir en el bucket",
- "delete": "La clave no puede eliminar del bucket",
- "folder": "No se puede crear ni abrir la carpeta"
- },
- "testHint": "Introduzca las claves y el bucket para probarlos antes de conectar. La prueba escribe un objeto pequeño y lo elimina."
- },
- "activity": {
- "title": "Actividad",
- "description": "Tareas recientes y líneas de registro de esta conexión.",
- "retry": "Reintentar",
- "jobStatus": {
- "queued": "En cola",
- "running": "En ejecución",
- "done": "Hecho",
- "failed": "Fallido",
- "dead": "Abandonado"
- },
- "jobs": "{count, plural, one {# tarea} other {# tareas}}",
- "counts": {
- "queued": "{count} en cola",
- "running": "{count} en curso",
- "done": "{count} hechas",
- "failed": "{count} fallidas",
- "dead": "{count} abandonadas"
- },
- "noFailures": "Nada ha fallado.",
- "retryFailed": "Reintentar las fallidas",
- "details": "Ver detalles",
- "loadingMore": "Cargando tareas anteriores",
- "loadFailed": "No se pudieron cargar las tareas anteriores.",
- "cleared": "Las tareas terminadas se eliminan después de 7 días."
- },
- "errors": {
- "generic": "Algo salió mal",
- "demo": "Las integraciones no se pueden conectar en la demo.",
- "forbidden": "Solo un administrador puede conectar integraciones.",
- "unknown": "Integración desconocida.",
- "plan": "Esta integración no está incluida en su plan.",
- "no-client": "No hay credenciales de aplicación configuradas para este proveedor.",
- "denied": "Canceló el inicio de sesión con el proveedor.",
- "vendor": "El proveedor devolvió un error. Inténtelo de nuevo.",
- "invalid": "La respuesta del proveedor fue incompleta. Inténtelo de nuevo.",
- "state": "Este inicio de sesión ha caducado o pertenece a otra sesión. Empiece de nuevo.",
- "exchange": "El proveedor rechazó el inicio de sesión. Compruebe las credenciales de la aplicación e inténtelo de nuevo.",
- "identify": "Conectado, pero no se pudo leer la cuenta. Intente volver a conectar.",
- "backupRunning": "Ya hay una copia de seguridad en curso.",
- "restoreOwnerOnly": "En Torqvoice Cloud solo el propietario del taller puede restaurar una copia de seguridad.",
- "restoreBusy": "Ya hay una copia de seguridad o una restauración en curso en este servidor. Inténtelo de nuevo cuando termine."
- },
- "meeting": {
- "join": "Unirse a la videollamada",
- "google-meet": "Google Meet",
- "teams": "Microsoft Teams",
- "zoom": "Zoom"
- },
- "calendar": {
- "external": "De calendarios conectados",
- "busy": "Ocupado"
- },
- "connectors": {
- "google-calendar": {
- "description": "Añada las órdenes de trabajo programadas a un calendario de Google Calendar, incluya un enlace de Google Meet y vea el tiempo ocupado del calendario en Torqvoice.",
- "tenantHelp": "Cree un cliente OAuth en Google Cloud Console (APIs y servicios → Credenciales), habilite la API de Google Calendar, añada la URI de redirección que aparece abajo y pegue aquí el ID de cliente y el secreto.",
- "fields": {
- "clientId": "ID de cliente",
- "clientSecret": "Secreto de cliente"
- },
- "settings": {
- "calendarId": "Calendario",
- "pushEnabled": "Añadir las órdenes de trabajo programadas a este calendario",
- "includeCustomer": "Incluir el nombre y el teléfono del cliente en el evento",
- "addConference": "Añadir una reunión de Google Meet a cada orden de trabajo programada",
- "addConferenceHelp": "Activado: cada orden de trabajo enviada al calendario recibe una reunión de Google Meet, y el enlace se muestra en la orden. Desactivado: añade una reunión de Google Meet a una orden concreta desde su página. En ambos casos el cliente solo recibe el enlace cuando lo envías.",
- "pullEnabled": "Mostrar el tiempo ocupado de este calendario en el calendario de Torqvoice",
- "pullEnabledHelp": "Solo lectura. Se actualiza cada 15 minutos, una semana hacia atrás y dos meses hacia adelante."
- }
- },
- "microsoft-365": {
- "name": "Calendario de Microsoft 365",
- "description": "Añada las órdenes de trabajo programadas a un calendario de Outlook, incluya un enlace de Microsoft Teams y vea el tiempo ocupado del calendario en Torqvoice.",
- "tenantHelp": "Registre una aplicación en Microsoft Entra (Registros de aplicaciones), permita cuentas personales y profesionales, añada la URI de redirección que aparece abajo como plataforma Web, cree un secreto de cliente y pegue ambos aquí.",
- "fields": {
- "clientId": "ID de aplicación (cliente)",
- "clientSecret": "Secreto de cliente"
- },
- "settings": {
- "calendarId": "Calendario",
- "pushEnabled": "Añadir las órdenes de trabajo programadas a este calendario",
- "includeCustomer": "Incluir el nombre y el teléfono del cliente en el evento",
- "addConference": "Añadir una reunión de Microsoft Teams a cada orden de trabajo programada",
- "addConferenceHelp": "Activado: cada orden de trabajo enviada al calendario recibe una reunión de Microsoft Teams, y el enlace se muestra en la orden. Desactivado: añade una reunión de Microsoft Teams a una orden concreta desde su página. En ambos casos el cliente solo recibe el enlace cuando lo envías.",
- "pullEnabled": "Mostrar el tiempo ocupado de este calendario en el calendario de Torqvoice",
- "pullEnabledHelp": "Solo lectura. Se actualiza cada 15 minutos, una semana hacia atrás y dos meses hacia adelante."
- }
- },
- "zoom": {
- "description": "Añada una reunión de Zoom a una orden de trabajo programada y conserve el enlace en ella, para diagnósticos a distancia o para repasar hallazgos con el cliente.",
- "tenantHelp": "En Zoom App Marketplace, cree una aplicación General (user-managed), añada la URI de redirección de abajo, añada los ámbitos meeting:write:meeting, meeting:update:meeting, meeting:delete:meeting, meeting:read:meeting y user:read:user, y pegue aquí el ID y el secreto de cliente.",
- "fields": {
- "clientId": "ID de cliente",
- "clientSecret": "Secreto de cliente"
- },
- "settings": {
- "autoCreate": "Crear una reunión de Zoom automáticamente para cada orden de trabajo programada",
- "autoCreateHelp": "Desactivado: usted añade la videollamada a la orden de trabajo desde su página. Activado: cada orden con hora de inicio recibe una reunión, que se mueve al reprogramarla y se elimina al cancelarla. En ambos casos el cliente solo recibe el enlace cuando usted se lo envía.",
- "includeCustomer": "Incluir el nombre del cliente en el tema de la reunión",
- "joinBeforeHost": "Permitir que el cliente entre antes que usted",
- "waitingRoom": "Usar sala de espera"
- }
- },
- "twilio-sms": {
- "description": "Envía y recibe SMS a través de un número de Twilio. Recordatorios, avisos de vehículo listo para recoger y las respuestas que llegan.",
- "fields": {
- "accountSid": "Account SID",
- "authToken": "Token de autenticación"
- },
- "settings": {
- "phoneNumber": "Enviar desde este número"
- }
- },
- "vonage-sms": {
- "description": "Envía y recibe SMS a través de un número de Vonage.",
- "fields": {
- "apiKey": "Clave de API",
- "apiSecret": "Secreto de API",
- "signatureSecret": "Secreto de firma",
- "signatureSecretHelp": "Del panel de Vonage, en API settings. Si se indica, los mensajes entrantes solo se aceptan cuando Vonage los ha firmado. Sin él, solo se comprueba el secreto de la URL del webhook."
- },
- "settings": {
- "phoneNumber": "Enviar desde este número"
- }
- },
- "telnyx-sms": {
- "description": "Envía y recibe SMS a través de un número de Telnyx.",
- "fields": {
- "apiKey": "Clave de API",
- "webhookPublicKey": "Clave pública del webhook",
- "webhookPublicKeyHelp": "Del portal de Telnyx, en Account settings, Keys and credentials, Public key. Si se indica, los mensajes entrantes solo se aceptan cuando Telnyx los ha firmado. Sin ella, solo se comprueba el secreto de la URL del webhook."
- },
- "settings": {
- "phoneNumber": "Enviar desde este número"
- }
- },
- "whatsapp-meta": {
- "description": "Escribe a tus clientes por WhatsApp directamente a través de Meta. Fotos de lo que has encontrado y la conversación que sigue.",
- "fields": {
- "phoneNumberId": "ID del número de teléfono",
- "accessToken": "Token de acceso",
- "verifyToken": "Token de verificación del webhook",
- "appSecret": "Secreto de la app",
- "apiVersion": "Versión de Graph API",
- "appSecretHelp": "Meta firma cada entrega con él. Hasta que se introduzca, se rechazan los mensajes enviados al webhook, ya que de lo contrario cualquiera que conozca la URL podría hacerse pasar por tus clientes.",
- "phoneNumberIdHelp": "Del WhatsApp Manager, en el número desde el que envías; no es el número de teléfono en sí. Meta lo emite solo después de verificar el webhook, así que déjalo vacío, conecta, registra el webhook y vuelve para añadirlo.",
- "accessTokenHelp": "Un token permanente de usuario del sistema. El que Meta muestra durante la configuración caduca en 24 horas. Añádelo junto con el ID del número de teléfono una vez verificado el webhook.",
- "verifyTokenHelp": "Cualquier frase que elijas. Pega la misma en Meta al registrar el webhook."
- },
- "settings": {
- "enabled": "Enviar mensajes por este canal",
- "phoneNumber": "Enviar desde este número",
- "templateName": "Plantilla para reabrir una conversación",
- "templateLanguage": "Idioma de la plantilla",
- "templateVariables": "Valores de la plantilla, en orden",
- "mediaTemplateName": "Plantilla para un mensaje con foto",
- "mediaTemplateLanguage": "Idioma de la plantilla con foto",
- "mediaTemplateVariables": "Valores de la plantilla con foto, en orden"
- }
- },
- "whatsapp-twilio": {
- "description": "Escribe a tus clientes por WhatsApp a través de un número de Twilio, si es Twilio quien te lo proporcionó.",
- "fields": {
- "accountSid": "Account SID",
- "authToken": "Token de autenticación",
- "messagingServiceSid": "SID del servicio de mensajería"
- },
- "settings": {
- "enabled": "Enviar mensajes por este canal",
- "phoneNumber": "Enviar desde este número",
- "templateName": "Plantilla para reabrir una conversación",
- "templateLanguage": "Idioma de la plantilla",
- "templateVariables": "Valores de la plantilla, en orden",
- "mediaTemplateName": "Plantilla para un mensaje con foto",
- "mediaTemplateLanguage": "Idioma de la plantilla con foto",
- "mediaTemplateVariables": "Valores de la plantilla con foto, en orden"
- }
- },
- "telegram": {
- "description": "Un bot de Telegram que llega a los clientes que lo usan y trae sus respuestas a la bandeja de entrada.",
- "fields": {
- "botToken": "Token del bot"
- },
- "settings": {
- "enabled": "Enviar mensajes por este canal",
- "botUsername": "Nombre de usuario del bot"
- }
- },
- "smtp": {
- "description": "Envía facturas y recordatorios a través de tu propio servidor de correo, en lugar del correo de la plataforma.",
- "fields": {
- "host": "Servidor",
- "port": "Puerto",
- "user": "Nombre de usuario",
- "pass": "Contraseña"
- },
- "settings": {
- "fromEmail": "Enviar desde esta dirección",
- "fromName": "Nombre que se muestra como remitente",
- "secure": "Conectar por TLS desde el inicio",
- "requireTls": "Exigir que el servidor pase a TLS",
- "rejectUnauthorized": "Rechazar un certificado que no sea válido"
- }
- },
- "resend": {
- "description": "Envía facturas y recordatorios a través de Resend.",
- "fields": {
- "apiKey": "Clave de API"
- },
- "settings": {
- "fromEmail": "Enviar desde esta dirección",
- "fromName": "Nombre que se muestra como remitente"
- }
- },
- "postmark": {
- "description": "Envía facturas y recordatorios a través de Postmark.",
- "fields": {
- "apiKey": "Token del servidor"
- },
- "settings": {
- "fromEmail": "Enviar desde esta dirección",
- "fromName": "Nombre que se muestra como remitente"
- }
- },
- "mailgun": {
- "description": "Envía facturas y recordatorios a través de Mailgun.",
- "fields": {
- "apiKey": "Clave de API",
- "domain": "Dominio de envío"
- },
- "settings": {
- "fromEmail": "Enviar desde esta dirección",
- "fromName": "Nombre que se muestra como remitente",
- "region": "Región del dominio"
- }
- },
- "sendgrid": {
- "description": "Envía facturas y recordatorios a través de SendGrid.",
- "fields": {
- "apiKey": "Clave de API"
- },
- "settings": {
- "fromEmail": "Enviar desde esta dirección",
- "fromName": "Nombre que se muestra como remitente"
- }
- },
- "amazon-ses": {
- "description": "Envía facturas y recordatorios a través de Amazon SES.",
- "fields": {
- "accessKeyId": "ID de clave de acceso",
- "secretAccessKey": "Clave de acceso secreta",
- "region": "Región"
- },
- "settings": {
- "fromEmail": "Enviar desde esta dirección",
- "fromName": "Nombre que se muestra como remitente"
- }
- },
- "vegvesen": {
- "description": "Rellena un vehículo a partir de su matrícula o VIN noruegos: marca, modelo, año, combustible, caja de cambios, motor, color, medidas de neumáticos y la próxima fecha de EU-kontroll, directamente del registro de Statens vegvesen. No se devuelven datos del propietario.",
- "fields": {
- "apiKey": "Clave de API",
- "apiKeyHelp": "Gratuita. Pide la clave en vegvesen.no, en «API for tekniske kjøretøyopplysninger»: inicia sesión con BankID, representa al taller y la clave se emite al instante. Permite 50.000 consultas al día."
- },
- "settings": {
- "syncInspections": "Mantener actualizadas las fechas de inspección de todos los vehículos de este taller",
- "syncInspectionsHelp": "Una vez por hora se consultan por matrícula los vehículos pendientes de comprobar y se guarda su próxima fecha de EU-kontroll; abajo se elige con qué frecuencia se vuelve a comprobar un vehículo. Solo se envían vehículos guardados en este taller.",
- "inspectionRecheck": "Volver a comprobar vehículos que ya tienen fecha",
- "inspectionRecheckHelp": "Una fecha solo cambia cuando se pasa una inspección. Mensual detecta antes una inspección adelantada; solo cerca del vencimiento es lo que menos cuesta. Cerca del vencimiento, cada vehículo se comprueba semanalmente, sea cual sea la opción elegida.",
- "recheckMonthly": "Cada mes",
- "recheckQuarterly": "Cada tres meses",
- "recheckNearDeadline": "Solo cerca del vencimiento",
- "inspectionSoonDays": "Cerca del vencimiento significa dentro de",
- "inspectionSoonDaysHelp": "Dentro de este plazo un vehículo se comprueba semanalmente, así que una inspección superada lo quita de la lista de recordatorios en días. Un plazo más corto supone menos consultas.",
- "soon30": "30 días",
- "soon60": "60 días",
- "soon90": "90 días",
- "inspectionOnlyWithCustomer": "Solo vehículos con cliente",
- "inspectionOnlyWithCustomerHelp": "Omitir vehículos sin cliente registrado. Nadie puede recibir un recordatorio sobre ellos, así que consultarlos cuesta para nada."
- }
- },
- "openapi-automotive": {
- "description": "Rellena un vehículo a partir de su matrícula francesa, italiana, española, portuguesa o británica: marca, modelo, año, VIN, combustible, cilindrada y más, desde los datos de matriculación del país a través de Openapi.com. Cada consulta se cobra a la cuenta de Openapi del propio taller. No se devuelven datos del propietario.",
- "fields": {
- "token": "Token de API",
- "tokenHelp": "Crea una cuenta en console.openapi.com, añade saldo al monedero y, en Automotive, crea un token para el entorno de producción. Cada consulta con resultado cuesta unas decenas de céntimos; una sin resultado es gratis."
- },
- "settings": {
- "country": "País",
- "countryHelp": "El registro donde buscar. Las matrículas francesas e italianas son iguales, así que el país no puede deducirse de la matrícula.",
- "cars": "Buscar coches",
- "carsHelp": "Consulta el registro de coches. Desactívalo si solo trabajas con motocicletas, así la búsqueda se salta los coches y responde más rápido.",
- "bikes": "Buscar motocicletas",
- "bikesHelp": "Consulta el registro de motocicletas. Si los coches también están activados, solo se consulta cuando no coincide ningún coche, y un fallo en la búsqueda de coches es gratis. No disponible para Portugal."
- }
- },
- "checkcardetails": {
- "description": "Rellena un vehículo a partir de su matrícula británica o su VIN: marca, modelo, año, color, combustible, cilindrada y la fecha de la próxima MOT, con datos de la DVLA a través de Check Car Details. Coches y motos vienen del mismo registro. Si tu cuenta tiene activado UK Vehicle Data, también llegan el VIN, la transmisión y los pesos. Cada consulta se cobra a la cuenta de Check Car Details del propio taller. No se devuelven datos del propietario.",
- "fields": {
- "apiKey": "Clave de API",
- "apiKeyHelp": "Crea una cuenta en api.checkcardetails.co.uk y copia la clave real en API Keys. Vehicle Registration está incluido en todas las cuentas. Para obtener también el VIN, pulsa Request Access junto a UK Vehicle Data en Your Data Points; las consultas lo usan en cuanto se activa. Una clave de prueba solo encuentra matrículas que contienen la letra A."
- },
- "settings": {
- "syncInspections": "Mantener al día las fechas de MOT de todos los vehículos de este taller",
- "syncInspectionsHelp": "Con esto activado, cada vehículo con matrícula se consulta una vez y se guarda su fecha de MOT. Después, los vehículos se vuelven a comprobar según lo elegido abajo. Cada vehículo encontrado se factura como una consulta Vehicle Registration; las matrículas que el registro no conoce son gratis. Solo se envían vehículos guardados en este taller.",
- "inspectionRecheck": "Volver a comprobar vehículos que ya tienen fecha",
- "inspectionRecheckHelp": "Una fecha solo cambia cuando se pasa una inspección. Mensual detecta antes una inspección adelantada; solo cerca del vencimiento es lo que menos cuesta. Cerca del vencimiento, cada vehículo se comprueba semanalmente, sea cual sea la opción elegida.",
- "recheckMonthly": "Cada mes",
- "recheckQuarterly": "Cada tres meses",
- "recheckNearDeadline": "Solo cerca del vencimiento",
- "inspectionSoonDays": "Cerca del vencimiento significa dentro de",
- "inspectionSoonDaysHelp": "Dentro de este plazo un vehículo se comprueba semanalmente, así que una inspección superada lo quita de la lista de recordatorios en días. Un plazo más corto supone menos consultas.",
- "soon30": "30 días",
- "soon60": "60 días",
- "soon90": "90 días",
- "inspectionOnlyWithCustomer": "Solo vehículos con cliente",
- "inspectionOnlyWithCustomerHelp": "Omitir vehículos sin cliente registrado. Nadie puede recibir un recordatorio sobre ellos, así que consultarlos cuesta para nada."
- }
- },
- "rdw": {
- "description": "Rellena un vehículo a partir de su matrícula neerlandesa: marca, modelo, año, combustible, cilindrada, color, pesos y la próxima fecha de APK, directamente del registro abierto de vehículos de la RDW. Gratis, sin clave. No se publican datos del propietario ni el VIN.",
- "fields": {
- "appToken": "Token de aplicación (opcional)",
- "appTokenHelp": "Los datos abiertos de la RDW funcionan sin clave, pero las peticiones anónimas comparten un cupo limitado. Para la sincronización de inspecciones, crea una cuenta gratuita en opendata.rdw.nl, abre los ajustes de desarrollador de tu perfil y crea un token de aplicación."
- },
- "settings": {
- "syncInspections": "Mantener actualizadas las fechas de APK de todos los vehículos de este taller",
- "syncInspectionsHelp": "Una vez por hora se consultan por matrícula los vehículos pendientes de comprobar y se guarda su próxima fecha de APK; abajo se elige con qué frecuencia se vuelve a comprobar un vehículo. Solo se envían vehículos guardados en este taller.",
- "inspectionRecheck": "Volver a comprobar vehículos que ya tienen fecha",
- "inspectionRecheckHelp": "Una fecha solo cambia cuando se pasa una inspección. Mensual detecta antes una inspección adelantada; solo cerca del vencimiento es lo que menos cuesta. Cerca del vencimiento, cada vehículo se comprueba semanalmente, sea cual sea la opción elegida.",
- "recheckMonthly": "Cada mes",
- "recheckQuarterly": "Cada tres meses",
- "recheckNearDeadline": "Solo cerca del vencimiento",
- "inspectionSoonDays": "Cerca del vencimiento significa dentro de",
- "inspectionSoonDaysHelp": "Dentro de este plazo un vehículo se comprueba semanalmente, así que una inspección superada lo quita de la lista de recordatorios en días. Un plazo más corto supone menos consultas.",
- "soon30": "30 días",
- "soon60": "60 días",
- "soon90": "90 días",
- "inspectionOnlyWithCustomer": "Solo vehículos con cliente",
- "inspectionOnlyWithCustomerHelp": "Omitir vehículos sin cliente registrado. Nadie puede recibir un recordatorio sobre ellos, así que consultarlos cuesta para nada."
- }
- },
- "regcheck": {
- "description": "Rellena un vehículo a partir de su matrícula en Australia, Nueva Zelanda, Estados Unidos, Irlanda, Noruega, Suecia, Dinamarca, Finlandia, Estonia, Chequia, Eslovaquia, Hungría o Croacia: marca, modelo, año, VIN, combustible y cilindrada cuando el país los publica, a través de RegCheck. Cada consulta con resultado gasta un crédito de la cuenta de RegCheck del propio taller. No se devuelven datos del propietario.",
- "fields": {
- "username": "Usuario de RegCheck",
- "usernameHelp": "Regístrate en regcheck.org.uk; la cuenta incluye 10 consultas gratuitas y las demás se compran en bloques de 100 desde el panel. Aquí solo hace falta el usuario, nunca la contraseña. Una matrícula no encontrada no cuesta nada."
- },
- "settings": {
- "country": "País",
- "countryHelp": "El registro donde buscar. Cada país tiene su propio servicio, así que la conexión busca en uno.",
- "auState": "Estado o territorio",
- "auStateHelp": "Australia matricula los vehículos por estado y hay que indicar al registro cuál buscar. Elige donde están matriculados la mayoría de los vehículos de tus clientes.",
- "usState": "Estado",
- "usStateHelp": "El código de dos letras del estado donde están matriculados los vehículos, como CA o TX. Los registros estadounidenses se consultan por estado."
- }
- },
- "openai": {
- "description": "Descripciones de servicio, resúmenes de historial, lectura de documentos y el asistente, respondidos por tu propia cuenta de OpenAI. Cada llamada se factura a esa cuenta y tú eliges el modelo.",
- "fields": {
- "apiKey": "Clave de API",
- "apiKeyHelp": "Créala en platform.openai.com, en API keys. La cuenta necesita saldo; OpenAI factura el uso por llamada."
- },
- "settings": {
- "model": "Modelo",
- "modelHelp": "Qué modelo responde. La lista se lee de tu cuenta, primero los más nuevos. Los modelos pequeños cuestan menos por llamada y bastan para la mayoría de los textos del taller."
- }
- },
- "anthropic": {
- "description": "Descripciones de servicio, resúmenes de historial, lectura de documentos y el asistente, respondidos por Claude en tu propia cuenta de Anthropic. Cada llamada se factura a esa cuenta y tú eliges el modelo.",
- "fields": {
- "apiKey": "Clave de API",
- "apiKeyHelp": "Créala en console.anthropic.com, en API keys. La cuenta necesita saldo; Anthropic factura el uso por llamada."
- },
- "settings": {
- "model": "Modelo",
- "modelHelp": "Qué modelo responde. La lista se lee de tu cuenta, primero los más nuevos. Los modelos pequeños cuestan menos por llamada y bastan para la mayoría de los textos del taller."
- }
- },
- "openai-compatible": {
- "name": "Compatible con OpenAI",
- "description": "Descripciones de servicio, resúmenes de historial, lectura de documentos y el asistente, respondidos por cualquier servidor que hable la API de chat de OpenAI: Ollama, Open WebUI, LocalAI, vLLM, LM Studio, LiteLLM y similares. Sus datos se quedan en su propio hardware.",
- "fields": {
- "baseUrl": "URL base",
- "baseUrlHelp": "Donde empieza la API estilo OpenAI del servidor, incluida la ruta: /v1 en Ollama, vLLM, LocalAI y LM Studio, /api en Open WebUI. Torqvoice añade /models y /chat/completions.",
- "apiKey": "Clave API",
- "apiKeyHelp": "Solo si el servidor la pide. Ollama y vLLM suelen funcionar sin clave; Open WebUI emite una en Ajustes, Cuenta."
- },
- "settings": {
- "model": "Modelo",
- "modelHelp": "Qué modelo responde. La lista es todo lo que el servidor informa, por nombre. Use un modelo con visión si quiere que lea fotos."
- }
- },
- "stripe": {
- "description": "Pagos con tarjeta desde el enlace de la factura, a tu propia cuenta de Stripe. El cliente paga, Stripe avisa a Torqvoice y la factura se marca como pagada sola.",
- "fields": {
- "secretKey": "Clave secreta",
- "secretKeyHelp": "Del panel de Stripe en Developers, API keys. Las claves de prueba no procesan nada real, así que prueba un pago con ellas primero y cambia a las claves reales después.",
- "publishableKey": "Clave publicable",
- "webhookSecret": "Secreto de firma del webhook",
- "webhookSecretHelp": "Opcional, y se puede añadir después de conectar. Stripe lo muestra en Reveal secret una vez añadida la URL de notificación de esta página como endpoint. Con él, cada notificación se verifica por su firma; sin él, Torqvoice consulta el checkout a Stripe antes de registrar un pago."
- },
- "settings": {
- "enabled": "Ofrecer en los enlaces de factura",
- "enabledHelp": "Desactívalo para quitar el botón de pago de las facturas compartidas durante un tiempo, sin desconectar. Los pagos ya iniciados se siguen registrando."
- }
- },
- "vipps": {
- "description": "Vipps MobilePay desde el enlace de la factura. El cliente paga en la app que ya tiene y la factura se marca como pagada sola.",
- "fields": {
- "clientId": "ID de cliente",
- "clientSecret": "Secreto de cliente",
- "subscriptionKey": "Clave de suscripción",
- "subscriptionKeyHelp": "La Ocp-Apim-Subscription-Key del portal de Vipps MobilePay, en las claves API de la unidad de venta.",
- "merchantSerialNumber": "Número de serie de comerciante"
- },
- "settings": {
- "enabled": "Ofrecer en los enlaces de factura",
- "enabledHelp": "Desactívalo para quitar el botón de pago de las facturas compartidas durante un tiempo, sin desconectar. Los pagos ya iniciados se siguen registrando.",
- "testMode": "Modo de prueba",
- "testModeHelp": "Usar el entorno de prueba de Vipps con claves de prueba. Déjalo activado hasta que un pago completo haya funcionado, luego desactívalo e introduce las claves reales."
- }
- },
- "paypal": {
- "description": "Pago con PayPal desde el enlace de la factura, a través de tu propia app de PayPal. El cliente paga con cuenta de PayPal o tarjeta y la factura se marca como pagada sola.",
- "fields": {
- "clientId": "ID de cliente",
- "clientSecret": "Secreto de cliente"
- },
- "settings": {
- "enabled": "Ofrecer en los enlaces de factura",
- "enabledHelp": "Desactívalo para quitar el botón de pago de las facturas compartidas durante un tiempo, sin desconectar. Los pagos ya iniciados se siguen registrando.",
- "sandbox": "Modo sandbox",
- "sandboxHelp": "Usar el sandbox de PayPal con las claves de la app de sandbox. Déjalo activado hasta que un pago completo haya funcionado, luego desactívalo e introduce las claves de la app real."
- }
- },
- "quickbooks": {
- "description": "Envía las facturas emitidas, sus clientes y sus pagos a QuickBooks Online y trae de vuelta los pagos registrados allí.",
- "tenantHelp": "Crea una app en el portal de desarrolladores de Intuit. Copia el client id y el secret de Keys and credentials e introduce la URI de redirección de abajo en Settings, Redirect URIs. Las claves de desarrollo llegan a empresas sandbox, las de producción a empresas reales.",
- "fields": {
- "clientId": "ID de cliente",
- "clientSecret": "Secreto de cliente"
- },
- "settings": {
- "pushInvoices": "Enviar facturas emitidas a QuickBooks",
- "pushOnComplete": "Enviar también las facturas cuando el trabajo se marque como completado",
- "pushOnCompleteHelp": "Sin esto, una factura pasa cuando se envía, se comparte o se paga. Con esto, un trabajo completado pasa de inmediato y se actualiza si cambia.",
- "startDate": "Solo facturas con fecha igual o posterior a",
- "startDateHelp": "Déjalo vacío para enviar todas las facturas emitidas. Usa la fecha en que tu contabilidad pasó a QuickBooks para no registrar dos veces las facturas antiguas.",
- "includeVehicle": "Indicar el vehículo en la factura",
- "includeVehicleHelp": "Una línea de texto encima de los cargos con año, marca, modelo, matrícula y kilometraje, para que la contabilidad sepa de qué coche se trata.",
- "laborItemId": "Artículo para líneas de mano de obra",
- "laborItemIdHelp": "Déjalo vacío y la primera vez se creará un artículo llamado Labour en tu cuenta de ingresos.",
- "partsItemId": "Artículo para líneas de piezas",
- "partsItemIdHelp": "Déjalo vacío y la primera vez se creará un artículo llamado Parts en tu cuenta de ingresos.",
- "taxAmounts": "Importes de impuestos",
- "taxAmountsHelp": "Como se facturó envía el impuesto tal como figura en la factura que recibió el cliente, así ambos sistemas coinciden al céntimo. Calculado por QuickBooks deja que QuickBooks aplique la tasa del código de impuesto, o la dirección del cliente en EE. UU., y el registro avisa cuando los totales difieren.",
- "taxAmountsBilled": "Como se facturó en Torqvoice",
- "taxAmountsQuickbooks": "Calculado por QuickBooks",
- "taxCodeId": "Código de impuesto para facturas gravadas",
- "taxCodeIdHelp": "QuickBooks registra el impuesto bajo un código de impuesto. Torqvoice elige el código cuya tasa coincide con cada factura; este se usa cuando ninguno coincide. Una empresa de EE. UU. usa TAX salvo que elijas otro código.",
- "zeroTaxCodeId": "Código de impuesto para facturas sin impuesto",
- "zeroTaxCodeIdHelp": "Se usa cuando la factura no lleva impuesto o el cliente está exento. Una empresa de EE. UU. usa NON salvo que elijas otro código.",
- "pushPayments": "Registrar pagos en QuickBooks",
- "depositAccountId": "Depositar pagos en",
- "depositAccountIdHelp": "Déjalo vacío para usar Undeposited Funds.",
- "manualPaidAsPayment": "Registrar un pago cuando una factura se marca como pagada a mano",
- "manualPaidAsPaymentHelp": "Una factura marcada como pagada en Torqvoice sin registro de pago recibe en QuickBooks un pago por lo que aún figure pendiente. Desactivado, queda abierta allí hasta que se registre un pago.",
- "pullPayments": "Traer los pagos registrados en QuickBooks",
- "pullPaymentsHelp": "Cada 30 minutos. Un pago recibido en QuickBooks contra una factura de Torqvoice se registra aquí en la factura."
- }
- },
- "fiken": {
- "description": "Envía las facturas emitidas, sus clientes y sus pagos a Fiken y trae de vuelta los pagos registrados allí.",
- "tenantHelp": "Crea una app en Fiken en Rediger konto, API, para tus propias empresas. Introduce en la app la URI de redirección de abajo y copia aquí su ID de cliente y su secreto de cliente. La empresa necesita el módulo de API de Fiken.",
- "fields": {
- "clientId": "ID de cliente",
- "clientSecret": "Secreto de cliente"
- },
- "settings": {
- "companySlug": "Empresa en Fiken",
- "companySlugHelp": "La empresa en cuya contabilidad entran las facturas. Tu usuario de Fiken puede tener acceso a varias.",
- "pushInvoices": "Enviar facturas emitidas a Fiken",
- "pushOnComplete": "Enviar también las facturas cuando el trabajo se marque como completado",
- "pushOnCompleteHelp": "Sin esto, una factura pasa cuando se envía, se comparte o se paga. Con esto, un trabajo completado pasa de inmediato y se actualiza si cambia.",
- "startDate": "Solo facturas con fecha igual o posterior a",
- "startDateHelp": "Déjalo vacío para enviar todas las facturas emitidas. Usa la fecha en que tu contabilidad pasó a Fiken para no registrar dos veces las facturas antiguas.",
- "attachPdf": "Adjuntar el PDF de la factura",
- "attachPdfHelp": "Una factura entra en Fiken como una venta (Annet salg) con su número de Torqvoice. Con esto activado, el PDF que recibió el cliente se archiva en la venta como justificante.",
- "laborAccount": "Cuenta de ingresos para mano de obra",
- "laborAccountHelp": "Déjalo vacío para usar la 3000.",
- "partsAccount": "Cuenta de ingresos para piezas",
- "partsAccountHelp": "Déjalo vacío para usar la 3000.",
- "zeroVatType": "Tipo de IVA para facturas sin IVA",
- "zeroVatTypeHelp": "Cómo contabiliza Fiken una venta sin IVA. Una empresa no registrada a efectos de IVA no necesita elegir nada aquí. Una registrada debe elegir antes de que se envíe una factura así; pregunta a tu contable cuál corresponde.",
- "vatNone": "Ninguno (sin tratamiento de IVA)",
- "vatExempt": "Exento (fritatt)",
- "vatOutside": "Fuera del ámbito del IVA (utenfor)",
- "vatExport": "Exento, exportación",
- "vatReverse": "Exento, inversión del sujeto pasivo",
- "zeroAccount": "Cuenta de ingresos para facturas sin IVA",
- "zeroAccountHelp": "Déjalo vacío para usar las cuentas de mano de obra y piezas de arriba. Si Fiken rechaza la cuenta con el tipo de IVA, el motivo aparece en el registro de actividad.",
- "pushPayments": "Registrar pagos en Fiken",
- "paymentAccount": "Depositar pagos en",
- "paymentAccountHelp": "Déjalo vacío para usar la primera cuenta bancaria de la empresa.",
- "manualPaidAsPayment": "Registrar un pago cuando una factura se marca como pagada a mano",
- "manualPaidAsPaymentHelp": "Una factura marcada como pagada en Torqvoice sin registro de pago recibe en Fiken un pago por lo que aún figure pendiente. Desactivado, queda abierta allí hasta que se registre un pago.",
- "pullPayments": "Traer los pagos registrados en Fiken",
- "pullPaymentsHelp": "Cada 30 minutos. Un pago recibido en Fiken contra una factura de Torqvoice se registra aquí en la factura."
- }
- },
- "nhtsa": {
- "description": "Rellena un vehículo a partir de su VIN y consulta llamadas a revisión, quejas de propietarios y calificaciones de choque de cada año de modelo, de la autoridad de seguridad de EE. UU. Gratis, sin clave.",
- "fields": {},
- "settings": {
- "refreshFleet": "Mantener al día los datos de llamadas a revisión y quejas de todos los vehículos de este taller",
- "refreshFleetHelp": "Una vez al día se vuelven a consultar los modelos no actualizados en la última semana, para que la página del vehículo nunca espere y una nueva llamada a revisión aparezca en una semana. Solo se envían marca, modelo y año."
- }
- },
- "openlaborproject": {
- "description": "Consulta los tiempos de mano de obra y las capacidades de fluidos del vehículo de una orden de trabajo o un presupuesto, y añade las horas de un trabajo como línea de mano de obra con un clic. La mayoría de los datos son de vehículos del mercado estadounidense, y la guía indica a qué mercado corresponde cada consulta. Cada valor muestra la confianza de Open Labor Project, y muchos son estimaciones generadas con IA, así que compruébalos antes de dar un presupuesto al cliente. Las consultas usan la clave de API del propio taller. Con un plan de pago de Open Labor Project, un vehículo consultado una vez se guarda mientras dure el plan, así que volver a consultarlo no gasta ninguna llamada.",
- "fields": {
- "apiKey": "Clave de API",
- "apiKeyHelp": "Solicita una clave en openlaborproject.com, en Developers; llega por correo. Una clave gratuita tiene 10 consultas al día y muestra las horas de un trabajo cada vez. El plan Builder y superiores amplían el límite y muestran las horas de todos los trabajos a la vez.",
- "apiKeyServerHelp": "Déjalo vacío para usar la clave que proporciona este servidor, o pega tu propia clave de openlaborproject.com para usar tu propio plan."
- },
- "settings": {
- "minConfidence": "Mostrar tiempos desde",
- "minConfidenceHelp": "Omite los tiempos de los que la fuente está menos segura. Muchos tiempos de marcas europeas son estimaciones con IA, así que una opción estricta puede dejar pocos trabajos.",
- "confidenceAll": "Cualquier nivel de confianza",
- "confidenceMedium": "Media o superior",
- "confidenceHigh": "Verificado o superior",
- "confidenceOem": "Solo OEM",
- "hoursFrom": "Horas que se añaden",
- "hoursFromHelp": "Qué cifra va a la orden de trabajo: el tiempo de guía, o el máximo del rango que da Open Labor Project (por ejemplo, 1,6 h en lugar de 1,2 h). El máximo del rango deja margen para los trabajos que se alargan.",
- "hoursBook": "Tiempo de guía",
- "hoursHigh": "Máximo del rango",
- "adjustPercent": "Ajustar tiempos (%)",
- "adjustPercentHelp": "Un porcentaje que se suma a cada tiempo antes de pasar a la orden de trabajo: 10 convierte 1,2 h en 1,32 h, y -10 en 1,08 h. De -50 a 200.",
- "rounding": "Redondear horas hacia arriba a",
- "roundingHelp": "Redondea hacia arriba las horas de cada trabajo, después de cualquier ajuste: con 0,25, 1,32 h pasa a 1,5 h. Un tiempo que ya está en un paso se queda igual.",
- "roundNone": "No redondear",
- "roundTenth": "0,1 hora",
- "roundQuarter": "0,25 horas",
- "roundHalf": "0,5 horas",
- "fluids": "Mostrar especificaciones de fluidos",
- "fluidsHelp": "Añade una pestaña Fluidos con capacidades, especificaciones e intervalos de cambio. Abrirla usa una llamada propia.",
- "units": "Unidades de fluidos",
- "unitsHelp": "Las unidades en que se muestran capacidades e intervalos de cambio.",
- "unitsBoth": "Ambas",
- "unitsMetric": "Métricas (L, km)",
- "unitsUs": "EE. UU. (qt, mi)"
- }
- },
- "speech-to-text": {
- "name": "Voz a texto",
- "description": "El dictado en una orden de trabajo lo transcribe un modelo de voz en lugar del navegador: mucho más preciso, en cualquier idioma y conoce las palabras de un taller. Es independiente de tu proveedor de IA, así que puedes dejar ese como está. Usa tu propia clave de OpenAI o un servidor propio que hable la API de transcripción de OpenAI. La grabación se envía para transcribirla y no se guarda.",
- "fields": {
- "apiKey": "Clave de API",
- "apiKeyHelp": "Una clave de OpenAI de platform.openai.com, en API keys; OpenAI factura el uso por minuto. Para tu propio servidor, solo si la pide.",
- "baseUrl": "Dirección del servidor",
- "baseUrlHelp": "Déjalo vacío para usar OpenAI. Para un servidor propio (un Whisper local, LocalAI, Groq), donde empieza su API al estilo de OpenAI, incluida la ruta, como /v1. Torqvoice le añade /audio/transcriptions."
- },
- "settings": {
- "model": "Modelo",
- "modelHelp": "El modelo de voz que se solicita. gpt-4o-mini-transcribe es preciso y barato; gpt-4o-transcribe es el más grande. Un servidor propio suele responder a whisper-1.",
- "mode": "Quién elige cómo se transcribe el dictado",
- "modeHelp": "El navegador escribe mientras hablas, pero es más flojo, sobre todo en idiomas pequeños. El modelo de voz escribe cuando paras.",
- "modeAi": "Siempre el modelo de voz",
- "modeChoice": "Cada persona elige: modelo de voz o navegador"
- }
- },
- "s3": {
- "name": "Bucket de almacenamiento en la nube",
- "description": "Copias de seguridad cifradas de este taller en un bucket de su propiedad en Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, Hetzner Object Storage o cualquier otro almacenamiento compatible con S3, con la frecuencia que usted elija. Tras la primera ejecución solo se sube lo que ha cambiado, así que las copias cada hora salen baratas.",
- "fields": {
- "accessKeyId": "ID de clave de acceso",
- "accessKeyIdHelp": "Una clave de su proveedor de almacenamiento con permiso para listar, leer, escribir y eliminar objetos del bucket. Cree una clave solo para Torqvoice, para poder revocarla por separado.",
- "secretAccessKey": "Clave de acceso secreta",
- "password": "Contraseña de las copias",
- "passwordHelp": "Cada copia de seguridad se cifra con esta contraseña. Invente una o pulse Generar, y guarde una copia fuera de este servidor: sin ella nadie puede abrir estas copias, ni siquiera Torqvoice. Para volver a conectar un almacenamiento que ya contiene copias de Torqvoice, introduzca la contraseña con la que se hicieron.",
- "endpoint": "Endpoint personalizado",
- "endpointHelp": "Solo para la opción Otro almacenamiento compatible con S3: la dirección S3 de su propio almacenamiento, como un servidor MinIO, como nombre de host con puerto si hace falta."
- },
- "settings": {
- "provider": "Proveedor",
- "providerAws": "Amazon S3",
- "providerR2": "Cloudflare R2",
- "providerB2": "Backblaze B2",
- "providerWasabi": "Wasabi",
- "providerHetzner": "Hetzner Object Storage",
- "providerOther": "Otro almacenamiento compatible con S3",
- "region": "Región",
- "regionHelp": "Dónde está el bucket. Elíjala de la lista del proveedor; para otro almacenamiento, escriba la que este pida, si pide alguna. Cloudflare R2 no la usa.",
- "accountId": "ID de cuenta de Cloudflare",
- "accountIdHelp": "El ID de 32 caracteres que aparece en la página de resumen de R2 de su panel de Cloudflare.",
- "bucket": "Bucket",
- "bucketHelp": "Los buckets se listan con la clave en cuanto se introduce. Si la clave puede usar un bucket pero no listarlos, escriba el nombre.",
- "prefix": "Carpeta en el bucket",
- "prefixHelp": "Las copias se guardan en esta carpeta. Use una carpeta distinta para cada taller que comparta el bucket.",
- "frequency": "Frecuencia",
- "frequencyHourly": "Cada hora",
- "frequencyEvery4h": "Cada 4 horas",
- "frequencyDaily": "Cada día",
- "frequencyWeekly": "Cada semana",
- "frequencyMonthly": "Cada mes",
- "time": "Hora del día",
- "timeHelp": "Según el reloj del taller, en formato HH:MM. Se usa en las copias diarias, semanales y mensuales.",
- "weekday": "Día de la semana",
- "sunday": "Domingo",
- "monday": "Lunes",
- "tuesday": "Martes",
- "wednesday": "Miércoles",
- "thursday": "Jueves",
- "friday": "Viernes",
- "saturday": "Sábado",
- "monthDay": "Día del mes",
- "monthDayLast": "Último día",
- "contents": "Contenido",
- "contentsHelp": "Las claves secretas son las que este taller ha introducido en Torqvoice: claves de pagos, de IA y de webhooks. En cualquier caso, cada copia se cifra con la contraseña de las copias. Una copia contiene los registros del taller y, si así lo eliges, sus archivos. Las cuentas de usuario y las contraseñas no van en ella: en un servidor nuevo inicias sesión, invitas al equipo y restauras los datos en ese taller.",
- "contentsData": "Solo datos",
- "contentsDataAndSecrets": "Datos y claves secretas",
- "includeFiles": "Incluir fotos y archivos",
- "includeFilesHelp": "Cada archivo se sube una vez y las copias posteriores lo reutilizan, así que esto cuesta poco después de la primera ejecución.",
- "keepHourly": "Conservar copias horarias",
- "keepHourlyHelp": "Cuántas de las copias horarias más recientes se conservan. Solo importa con las frecuencias de cada hora y cada 4 horas.",
- "keepDaily": "Conservar copias diarias",
- "keepWeekly": "Conservar copias semanales",
- "keepMonthly": "Conservar copias mensuales",
- "keepMonthlyHelp": "Las copias más antiguas se eliminan después de cada ejecución y se conservan las más recientes de cada tipo. Ponga un número a 0 para no conservar ninguna de ese tipo."
- }
- },
- "local-folder": {
- "name": "Carpeta local",
- "description": "Copias de seguridad cifradas de este taller en una carpeta de este servidor: el volumen de copias del archivo compose o una unidad de red montada allí. Una copia en el mismo disco que la base de datos no es segura por sí sola; combínela con un almacenamiento en otro lugar.",
- "fields": {
- "password": "Contraseña de las copias",
- "passwordHelp": "Cada copia de seguridad se cifra con esta contraseña. Invente una o pulse Generar, y guarde una copia fuera de este servidor: sin ella nadie puede abrir estas copias, ni siquiera Torqvoice. Para volver a conectar un almacenamiento que ya contiene copias de Torqvoice, introduzca la contraseña con la que se hicieron."
- },
- "settings": {
- "folder": "Carpeta",
- "folderHelp": "La carpeta dentro de la raíz de copias de seguridad del servidor que guarda las copias de este taller. Déjala vacía para usar una carpeta con el nombre de este taller. En un servidor nuevo, escribe el nombre de la carpeta que usaba una instalación anterior para recuperar sus copias.",
- "frequency": "Frecuencia",
- "frequencyHourly": "Cada hora",
- "frequencyEvery4h": "Cada 4 horas",
- "frequencyDaily": "Cada día",
- "frequencyWeekly": "Cada semana",
- "frequencyMonthly": "Cada mes",
- "time": "Hora del día",
- "timeHelp": "Según el reloj del taller, en formato HH:MM. Se usa en las copias diarias, semanales y mensuales.",
- "weekday": "Día de la semana",
- "sunday": "Domingo",
- "monday": "Lunes",
- "tuesday": "Martes",
- "wednesday": "Miércoles",
- "thursday": "Jueves",
- "friday": "Viernes",
- "saturday": "Sábado",
- "monthDay": "Día del mes",
- "monthDayLast": "Último día",
- "contents": "Contenido",
- "contentsHelp": "Las claves secretas son las que este taller ha introducido en Torqvoice: claves de pagos, de IA y de webhooks. En cualquier caso, cada copia se cifra con la contraseña de las copias. Una copia contiene los registros del taller y, si así lo eliges, sus archivos. Las cuentas de usuario y las contraseñas no van en ella: en un servidor nuevo inicias sesión, invitas al equipo y restauras los datos en ese taller.",
- "contentsData": "Solo datos",
- "contentsDataAndSecrets": "Datos y claves secretas",
- "includeFiles": "Incluir fotos y archivos",
- "includeFilesHelp": "Cada archivo se sube una vez y las copias posteriores lo reutilizan, así que esto cuesta poco después de la primera ejecución.",
- "keepHourly": "Conservar copias horarias",
- "keepHourlyHelp": "Cuántas de las copias horarias más recientes se conservan. Solo importa con las frecuencias de cada hora y cada 4 horas.",
- "keepDaily": "Conservar copias diarias",
- "keepWeekly": "Conservar copias semanales",
- "keepMonthly": "Conservar copias mensuales",
- "keepMonthlyHelp": "Las copias más antiguas se eliminan después de cada ejecución y se conservan las más recientes de cada tipo. Ponga un número a 0 para no conservar ninguna de ese tipo."
- }
- }
- },
- "jobKinds": {
- "calendar": {
- "push": "Órdenes de trabajo al calendario",
- "pull": "Tiempo ocupado del calendario"
- },
- "conference": {
- "sync": "Enlaces de videollamada"
- },
- "inspection": {
- "refresh": "Actualización de fechas de inspección"
- },
- "accounting": {
- "invoice": "Factura a contabilidad",
- "payment": "Pago a contabilidad",
- "customer": "Cliente a contabilidad",
- "pull": "Pagos desde contabilidad"
- },
- "safety": {
- "refresh": "Actualización de datos de llamadas a revisión",
- "vehicle": "Comprobación de llamadas a revisión para un vehículo nuevo"
- },
- "repair": {
- "checkPlan": "Comprobar que las consultas guardadas pueden conservarse"
- }
- },
- "backupAlerts": {
- "destination": "destino de copias de seguridad",
- "failedTitle": "Error en la copia de seguridad",
- "failedMessage": "La copia de seguridad en {name} no terminó: {reason}",
- "failedSubject": "Error en la copia de seguridad en {name}",
- "failedEmailIntro": "La copia de seguridad programada de su taller en {name} no terminó.",
- "openToRetry": "Abra Configuración, Integraciones, {name} para ver la ejecución y volver a intentarlo.",
- "overdueTitle": "Copia de seguridad atrasada",
- "overdueSince": "Ninguna copia de seguridad en {name} ha terminado desde {time}.",
- "overdueNever": "Todavía no ha terminado ninguna copia de seguridad en {name}.",
- "overdueSubject": "La copia de seguridad en {name} está atrasada",
- "openToSee": "Abra Configuración, Integraciones, {name} para ver qué salió mal.",
- "platformName": "Copias de seguridad de Torqvoice",
- "restoredTitle": "Taller restaurado",
- "restoredSubject": "Su taller se ha restaurado a partir de una copia de seguridad",
- "restoredIntro": "{name}: el taller se devolvió al punto de restauración {snapshot} el {time}. Todo lo introducido después de ese punto ya no está en el taller.",
- "restoredByMember": "Un miembro de su taller solicitó esta restauración.",
- "restoredBySupport": "El soporte de Torqvoice lo hizo a petición suya. Motivo indicado: {reason}",
- "noReason": "no se indicó ninguno",
- "restoredUndo": "Antes se hizo una copia de protección del taller tal como estaba justo antes de la restauración, que se conserva durante 90 días. Contacte con el soporte para volver a ella."
- }
- }
|