i18n/es-ES.json
Rama main · réplica de lectura del repositorio original.
{
"common": {
"appName": "Kaneo",
"actions": {
"cancel": "Cancelar",
"close": "Cerrar",
"clearAll": "Limpiar todo",
"delete": "Borrar",
"deleting": "Borrando...",
"markAllRead": "Marcar todos como leídos",
"remove": "Borrar",
"reset": "Restablecer",
"filter": "Filtrar"
},
"a11y": {
"toggleSidebar": "Mostrar barra lateral"
},
"sidebar": {
"title": "Barra lateral",
"mobileDescription": "Muestra la barra lateral."
},
"empty": {
"loading": "Cargando..."
},
"pagination": {
"label": "Paginación",
"previous": "Anterior",
"next": "Siguiente",
"previousPage": "Ir a la página anterior",
"nextPage": "Ir a la página siguiente",
"morePages": "Más páginas"
},
"breadcrumb": {
"label": "Ruta de navegación",
"more": "Más"
},
"language": {
"english": "Inglés",
"german": "Alemán",
"greek": "Griego",
"macedonian": "Macedonio",
"french": "Francés",
"spanish": "Español",
"korean": "Coreano",
"chinese": "Chino",
"italian": "Italiano",
"dutch": "Neerlandés"
},
"people": {
"someone": "Alguien",
"unknown": "Desconocido"
},
"error": {
"title": "Algo ha ido mal",
"troubleshooting": "Pasos para solucionar problemas:",
"tryAgain": "Intentar de nuevo",
"viewDeploymentGuide": "Ver el manual del despliegue",
"refreshPage": "Actualizar página",
"description": "The page crashed unexpectedly. Refreshing usually fixes it.",
"messages": {
"auth": "Authentication failed. Please sign in again.",
"cors": "Unable to connect to the server. This might be due to CORS configuration issues.",
"network": "Network error. Please check your internet connection and try again.",
"server": "Server error. Please try again later.",
"unknown": "An unexpected error occurred."
},
"troubleshootingSteps": {
"cors": {
"checkAccessibility": "Check that your API server is accessible from your browser",
"checkApiRunning": "Make sure your API server is running",
"checkApiUrl": "Check that VITE_API_URL in your frontend .env matches your API server URL",
"checkProtocol": "Ensure both frontend and API are using the same protocol (http/https)",
"verifyCorsOrigins": "Verify CORS_ORIGINS in your API .env includes your frontend URL"
},
"network": {
"checkConnection": "Check your internet connection",
"checkFirewall": "Check if there are any firewall or proxy issues",
"tryRefresh": "Try refreshing the page",
"verifyApiRunning": "Verify the API server is running and accessible"
}
}
},
"modals": {
"createProject": {
"title": "Crear un nuevo proyecto",
"breadcrumbNew": "Crear un nuevo proyecto",
"workspaceFallback": "WORKSPACE",
"description": "Crea un nuevo proyecto en tu espacio de trabajo, eligiendo nombre, identificador y seleccionando un icono.",
"pickIcon": "Elegir icono",
"searchIcons": "Buscar iconos...",
"projectName": "Nombre del proyecto",
"keyLabel": "Identificador:",
"keyHint": "Se usa para los ID de los tickets (p. ej., {{example}}-123)",
"createButton": "Crear proyecto",
"successToast": "Proyecto creado satisfactoriamente",
"errorToast": "Hubo un error al crear el proyecto"
},
"createWorkspace": {
"breadcrumbKaneo": "KANEO",
"title": "Crear un nuevo espacio de trabajo",
"description": "Crea un nuevo espacio de trabajo eligiendo un nombre.",
"namePlaceholder": "Nombre del espacio de trabajo",
"descriptionPlaceholder": "Añadir descripción...",
"createButton": "Crear espacio de trabajo",
"successToast": "Espacio de trabajo creado satisfactoriamente",
"errorToast": "Hubo un error al crear el espacio de trabajo"
},
"createTask": {
"breadcrumbTask": "TASK",
"selectProject": "Seleccionar proyecto",
"title": "Nueva tarea",
"description": "Crear una nueva tarea con título, descripción y otra información.",
"taskTitlePlaceholder": "Título de la tarea",
"descriptionPlaceholder": "Añade una descripción para la tarea...",
"chooseProjectForImages": "Elige un proyecto antes de subir imágenes.",
"prepareTaskError": "Error al preparar la tarea",
"successCreated": "Tarea creada satisfactoriamente",
"successUpdated": "Tarea actualizada satisfactoriamente",
"createError": "Error al crear la tarea",
"priority": "Prioridad",
"statusFallback": "En progreso",
"startDate": "Fecha de inicio",
"dueDate": "Fecha de vencimiento",
"clearStartDate": "Borrar fecha de inicio",
"assign": "Asignar",
"assignUnassigned": "Sin asignar",
"assignUnassignedTitle": "Sin asignar",
"labels": "Etiquetas",
"searchLabels": "Buscar etiquetas...",
"noLabelsFound": "No se han encontrado etiquetas",
"createLabel": "Crear \"{{name}}\"",
"chooseColor": "Elegir color",
"labelCreated": "Etiqueta creada",
"labelCreateError": "Error al crear la etiqueta",
"createMore": "Crear más",
"createButton": "Crear tarea",
"discardTitle": "¿Descartar tarea?",
"discardDescription": "Los detalles de la tarea que no hayas guardado se perderán.",
"discardButton": "Descartar tarea",
"untitledTask": "Tarea sin título",
"labelColors": {
"stone": "Piedra",
"slate": "Pizarra",
"lavender": "Lavanda",
"sage": "Savia",
"forest": "Bosque",
"amber": "Ámbar",
"terracotta": "Terracota",
"rose": "Rosa",
"crimson": "Carmesí",
"lagoon": "Laguna",
"ocean": "Océano",
"orchid": "Orquídea",
"sky": "Cielo"
},
"statusLoadError": "Project statuses couldn’t be loaded."
}
},
"editor": {
"link": {
"label": "URL del enlace",
"placeholder": "Pega o escribe un enlace…",
"apply": "Aplicar enlace",
"remove": "Quitar enlace"
}
}
},
"auth": {
"signIn": {
"pageTitle": "Iniciar sesión",
"subtitle": {
"emailOrProvider": "Usa tu correo electrónico o una cuenta conectada.",
"email": "Introduce tu correo electrónico y te enviaremos un código para iniciar sesión.",
"password": "Usa tu correo electrónico y tu contraseña.",
"passwordOrProvider": "Usa tu contraseña o una cuenta conectada.",
"providers": "Elige cómo quieres iniciar sesión.",
"sso": "Aquí el inicio de sesión lo gestiona tu organización."
},
"lastUsed": "Usado por última vez",
"guestError": "Error al iniciar sesión como invitado",
"errors": {
"account_not_linked": "No se ha podido vincular esta identidad a la cuenta existente. Inicia sesión con tu correo electrónico para verificar la cuenta y vuelve a intentar el SSO. Si el inicio de sesión por correo no está disponible, contacta con tu administrador.",
"oauth_code_verification_failed": "La verificación OAuth ha fallado. Por favor, inténtalo de nuevo.",
"registration_is_currently_disabled_you_need_a_valid_invitation_to_create_an_account_": "El registro está actualmente deshabilitado. Necesitas una invitación válida para crear una cuenta.",
"use_a_permanent_email_address_disposable_addresses_cannot_create_accounts_": "Usa una dirección de correo permanente. Con direcciones desechables no se pueden crear cuentas."
},
"instanceStatusError": "No se ha podido contactar con el servidor. Vuelve a intentarlo en un momento.",
"heading": "Inicia sesión en Kaneo",
"submitPassword": "Iniciar sesión",
"invitation": {
"title": "{{inviterName}} te ha invitado a {{workspaceName}}",
"fallbackTitle": "Has recibido una invitación",
"description": "Inicia sesión con el correo que recibió la invitación. Te unirás al espacio de trabajo justo después."
},
"footer": {
"newHere": "¿Primera vez en Kaneo?",
"createAccount": "Crear una cuenta",
"inviteOnly": "Aquí las cuentas son solo por invitación. Pide una invitación a un administrador.",
"providerSignUp": "¿Primera vez aquí? Inicia sesión con uno de los proveedores de arriba para crear una cuenta.",
"anyProvider": "¿Primera vez aquí? Cualquiera de las opciones de arriba crea tu cuenta.",
"contactAdmin": "¿Problemas para iniciar sesión? Contacta con tu administrador.",
"justLooking": "¿Solo quieres echar un vistazo?"
},
"autoLogin": {
"title": "Iniciando sesión",
"subtitle": "Te llevamos a la página de inicio de sesión de tu organización.",
"opening": "Abriendo {{provider}}…",
"stuck": "¿No avanza?",
"continue": "Continuar a {{provider}}"
}
},
"providers": {
"google": "Google",
"discord": "Discord",
"github": "GitHub",
"sso": "SSO",
"continueWith": "Continuar con {{provider}}",
"error": "No se ha podido iniciar sesión con {{provider}}. Inténtalo de nuevo."
},
"forms": {
"or": "o",
"email": "Email",
"password": "Contraseña",
"emailPlaceholder": "yo@ejemplo.com",
"passwordPlaceholder": "••••••••",
"showPassword": "Mostrar contraseña",
"hidePassword": "Ocultar contraseña",
"name": "Nombre",
"namePlaceholder": "María García",
"invalidEmail": "Introduce una dirección de correo completa, como nombre@empresa.com.",
"nameRequired": "Introduce tu nombre.",
"passwordRequired": "Introduce tu contraseña.",
"passwordTooShort": "Usa al menos 8 caracteres.",
"disposableEmail": "Usa una dirección de correo permanente. Con direcciones desechables no se pueden crear cuentas.",
"continueWithEmail": "Continuar con correo electrónico",
"captchaChecking": "Haciendo una comprobación de seguridad rápida antes de continuar.",
"captchaFailed": "La comprobación de seguridad no se ha cargado, así que el inicio de sesión está en pausa. Revisa tu conexión o tu bloqueador de contenido.",
"captchaRetry": "Reintentar"
},
"checkEmail": {
"pageTitle": "Verifica tu email",
"title": "Verifica tu email",
"inboxMessage": "Te hemos enviado un enlace temporal. Por favor, comprueba tu bandeja de entrada en <email>{{email}}</email>.",
"emailFallback": "tu dirección de correo electrónico",
"backToLogin": "Volver a login"
},
"signUp": {
"pageTitle": "Crear Cuenta",
"registrationDisabledAlert": "El registro está actualmente deshabilitado. Si has sido invitado, introduce la dirección de correo electrónico en la que has recibido la invitación para crear tu cuenta.",
"continueAsGuest": "Continuar como invitado",
"toggleMessage": "¿Ya tienes cuenta?",
"toggleLink": "Iniciar sesión",
"instanceStatusError": "No se ha podido contactar con el servidor. Vuelve a intentarlo en un momento.",
"instanceAdminTitle": "Configura tu instancia de Kaneo",
"instanceAdminSubtitle": "Esta cuenta se convierte en la administradora de la instancia con acceso completo.",
"heading": "Crea tu cuenta",
"submitPassword": "Crear cuenta",
"failed": "No se ha podido crear tu cuenta. Inténtalo de nuevo.",
"subtitle": {
"email": "Empieza con tu correo electrónico. Te enviaremos un código, sin necesidad de contraseña.",
"password": "Añade tu nombre, tu correo electrónico y una contraseña para empezar.",
"providers": "Usa una cuenta conectada para crear la tuya."
},
"invitation": {
"description": "Usa el correo que recibió la invitación. Te unirás al espacio de trabajo justo después."
},
"verifyEmail": "Check your email to confirm your address, then sign in."
},
"verifyOtp": {
"pageTitle": "Verificar Código",
"validation": {
"codeLength": "El código debe contener 6 dígitos"
},
"toast": {
"invalidCode": "El código de verificación no es válido",
"verifyFailed": "Fallo al verificar el código",
"resendFailed": "Error al reenviar el código",
"resendSuccess": "¡Nuevo código de verificación enviado!"
},
"heading": "Revisa tu correo",
"description": "Hemos enviado un código de 6 dígitos a {{email}}. Caduca en {{minutes}} minutos.",
"label": "Código de verificación",
"submit": "Verificar y continuar",
"didntGetIt": "¿No te ha llegado?",
"resendCode": "Reenviar código",
"useDifferentEmail": "Usar otro correo",
"expired": "Este código ha caducado. Solicita uno nuevo.",
"tooManyAttempts": "Demasiados intentos. Solicita un código nuevo."
},
"otpSignIn": {
"sendFailed": "Error al enviar el código de verificación"
},
"signInForm": {
"failedSignIn": "Error al iniciar sesión",
"emailNotVerified": "Confirm your email address first. We sent you a new link."
},
"invitation": {
"pageTitleAccept": "Aceptar Invitación",
"pageTitleError": "Error en la invitación",
"pageTitleInvalid": "Invitación no válida",
"joinWorkspace": "Unirse a {{workspaceName}}",
"createAccount": "Crear cuenta",
"signIn": "Iniciar sesión",
"toast": {
"acceptFailed": "Error al aceptar la invitación",
"acceptSuccess": "¡Invitación aceptada! Bienvenido al equipo."
},
"description": "{{inviterName}} te ha invitado a este espacio de trabajo en Kaneo.",
"invitedBy": "Invitación de",
"sentTo": "Enviada a",
"signedInAs": "Sesión iniciada como",
"expires": "Caduca el",
"notNow": "Ahora no",
"join": "Unirse al espacio de trabajo",
"switchAccount": "Cambiar de cuenta",
"goToKaneo": "Ir a Kaneo",
"mismatch": {
"title": "Has iniciado sesión con otro correo",
"description": "Esta invitación se envió a {{invitedEmail}}. Has iniciado sesión como {{email}}."
},
"expired": {
"title": "Esta invitación ha caducado",
"description": "Pide a {{inviterName}} que te envíe una nueva para {{workspaceName}}."
},
"invalid": {
"title": "Esta invitación ya no es válida",
"description": "Puede que ya se haya aceptado o cancelado. Pide una nueva a un administrador del espacio de trabajo."
},
"loadFailed": {
"title": "No se ha podido cargar esta invitación",
"description": "Comprueba tu conexión y recarga la página."
}
},
"onboarding": {
"pageTitle": "Bienvenido a Kaneo",
"workspaceName": "Nombre del espacio de trabajo",
"workspaceNamePlaceholder": "e.g. Acme SA, Mi Equipo",
"toast": {
"createFailed": "Error al crear el espacio de trabajo"
},
"validation": {
"workspaceNameRequired": "El nombre del espacio de trabajo es obligatorio",
"projectNameRequired": "Ponle un nombre a tu primer proyecto"
},
"restrictedSubtitle": "Aquí solo un administrador de la instancia puede crear espacios de trabajo. Pide que te inviten y recarga esta página.",
"restrictedCheckInvitations": "Ver invitaciones",
"restrictedTitle": "Necesitas una invitación",
"cloud": {
"invite": {
"addAnother": "Add another",
"emailLabel": "Teammate email {{index}}",
"emailPlaceholder": "teammate@company.com",
"failed": "Couldn't invite {{email}}: {{message}}",
"invalidEmail": "Enter a valid email address",
"remove": "Remove email {{index}}",
"sent_many": "{{count}} invitations sent",
"sent_one": "Invitation sent",
"sent_other": "{{count}} invitations sent",
"skip": "Skip for now"
},
"plan": {
"continueTrial": "Start free trial",
"recommended": "Recommended",
"trialUsed": "You've already used your free trial. Pick a plan to start creating projects and tasks."
},
"usageLabel": "Who will use this workspace?",
"usageSolo": "Just me",
"usageSoloDescription": "Keep track of your own work",
"usageTeam": "My team",
"usageTeamDescription": "Plan and ship work together"
},
"projectNameDefault": "Mi primer proyecto",
"starterTasks": {
"drag": {
"title": "Arrastra esta tarjeta a la siguiente columna",
"description": "Las tarjetas pasan de columna en columna a medida que avanza el trabajo. Arrastra esta a la siguiente columna, o ábrela y cambia su estado."
},
"details": {
"title": "Abre esta tarea y añade una subtarea",
"description": "Una tarea puede tener descripción, subtareas, etiquetas, una persona asignada y fecha límite. Añade una subtarea a esta para probarlo."
},
"invite": {
"title": "Invita a tu equipo",
"description": "Kaneo funciona mejor cuando todos están dentro. Abre **Miembros** en la barra lateral para invitar a personas por correo."
},
"integrations": {
"title": "Conecta GitHub, GitLab o Gitea",
"description": "Sincroniza issues y mueve tareas automáticamente cuando se abren y fusionan pull requests. Configúralo en **Ajustes del proyecto**."
},
"create": {
"title": "Crea tu propia tarea",
"description": "Usa el **+** junto al nombre de una columna, o pulsa **T** y luego **C**. Elimina estas tareas de ejemplo cuando quieras."
}
},
"progress": "Paso {{current}} de {{total}}",
"continue": "Continuar",
"signedInAs": "Sesión iniciada como {{email}}",
"signOut": "Cerrar sesión",
"workspace": {
"title": "Ponle nombre a tu espacio de trabajo",
"description": "Aquí vivirán tus proyectos. Usa el nombre de tu equipo o empresa, puedes cambiarlo más adelante."
},
"usage": {
"title": "¿Para quién es?",
"description": "Configuraremos {{name}} en consecuencia. Siempre puedes invitar a otras personas más adelante."
},
"project": {
"title": "Empieza tu primer proyecto",
"description": "Añadiremos algunas tareas iniciales para que te orientes. Puedes renombrarlas o eliminarlas cuando quieras.",
"label": "Nombre del proyecto",
"ticketStart": "Los ID de las tareas empezarán en {{ticket}}."
},
"invite": {
"title": "Trae a tu equipo",
"description": "Recibirán un correo para unirse a {{name}}. Omite este paso si prefieres echar un vistazo primero.",
"label": "Correos de tus compañeros",
"send_many": "Enviar {{count}} invitaciones",
"send_one": "Enviar {{count}} invitación",
"send_other": "Enviar {{count}} invitaciones",
"sendNone": "Enviar invitaciones"
},
"plan": {
"title": "¿Cómo quieres empezar?",
"descriptionTrial_many": "Todos los planes incluyen proyectos y tareas ilimitados. Prueba {{name}} gratis durante {{count}} días o suscríbete ahora.",
"descriptionTrial_one": "Todos los planes incluyen proyectos y tareas ilimitados. Prueba {{name}} gratis durante {{count}} día o suscríbete ahora.",
"descriptionTrial_other": "Todos los planes incluyen proyectos y tareas ilimitados. Prueba {{name}} gratis durante {{count}} días o suscríbete ahora.",
"choose": "Elige un plan",
"description": {
"team": "Miembros, roles y permisos ilimitados",
"personal": "Para una persona"
},
"perUserMonth": "por usuario / mes",
"perMonth": "al mes",
"subscribe": "Suscribirse a {{plan}}",
"checkout": "Continuar al pago",
"trialNote": "No necesitas tarjeta para la prueba. Los pagos los procesa Creem.",
"paymentNote": "Los pagos los procesa Creem."
},
"ready": {
"title": "{{name}} está listo",
"description": "Esto es lo que hemos configurado. Puedes cambiar cualquier cosa más adelante.",
"workspace": "Espacio de trabajo",
"project": "Primer proyecto",
"projectValue_many": "{{name}}, con {{count}} tareas iniciales",
"projectValue_one": "{{name}}, con {{count}} tarea inicial",
"projectValue_other": "{{name}}, con {{count}} tareas iniciales",
"invitations": "Invitaciones",
"invitationsValue_many": "Enviadas a {{count}} personas",
"invitationsValue_one": "Enviada a {{count}} persona",
"invitationsValue_other": "Enviadas a {{count}} personas",
"open": "Abrir {{name}}"
},
"preview": {
"untitled": "Tu espacio de trabajo"
}
},
"profileSetup": {
"pageTitle": "Completar Perfil",
"completeTitle": "Completa tu perfil",
"subtitle": "Por favor, introduce tu nombre para empezar",
"yourName": "Tu nombre",
"namePlaceholder": "Pepe Pérez",
"saving": "Guardando...",
"continue": "Continuar",
"welcome": "Bienvenido, {{name}}!",
"redirecting": "Navegando a tu panel de control...",
"toast": {
"updateSuccess": "Perfil actualizado correctamente",
"updateFailed": "Error al actualizar tu perfil"
},
"validation": {
"nameRequired": "El nombre es obligatorio",
"nameShort": "Tu nombre debe tener al menos 2 caracteres"
}
},
"passwordReset": {
"forgotPassword": "Forgot password?",
"requestTitle": "Reset your password",
"requestSubtitle": "Enter your email and we’ll send you a password reset link.",
"sendLink": "Send reset link",
"requestError": "Could not request a reset link. Please try again.",
"unavailable": "Password reset is unavailable. Contact your instance administrator.",
"configError": "Could not reach the server. Please reload the page to try again.",
"resetTitle": "Choose a new password",
"newPassword": "New password",
"confirmPassword": "Confirm new password",
"passwordMismatch": "The passwords do not match.",
"passwordLength": "Use between 8 and 128 characters.",
"invalidLink": "This reset link is invalid or has expired. Request a new link to continue.",
"requestNewLink": "Request a new link",
"resetError": "Could not reset your password. Please try again.",
"success": "Your password has been reset. Sign in with your new password.",
"backToSignIn": "Back to sign in",
"sentTitle": "Revisa tu bandeja de entrada",
"sentDescription": "Si existe una cuenta para {{email}}, recibirás un enlace para restablecer tu contraseña. Caduca en 1 hora.",
"sentHelpTitle": "¿No te ha llegado?",
"sentHelpDescription": "Revisa tu carpeta de spam o solicita otro enlace dentro de un minuto.",
"rememberedIt": "¿Ya la recuerdas?",
"resetDescription": "Usa entre 8 y 128 caracteres. Se cerrará la sesión en los demás dispositivos.",
"updatePassword": "Actualizar contraseña",
"changedMind": "¿Has cambiado de opinión?",
"invalidLinkTitle": "Este enlace ha caducado",
"successTitle": "Contraseña actualizada"
},
"page": {
"terms": "Términos",
"privacy": "Privacidad"
},
"device": {
"connect": {
"title": "Conectar un dispositivo",
"description": "Introduce el código que aparece en tu terminal o aplicación para vincularlo a tu cuenta de Kaneo.",
"label": "Código del dispositivo",
"submit": "Continuar",
"noCode": "¿Aún no tienes código? Empieza a iniciar sesión desde tu aplicación.",
"codeRequired": "Introduce el código que aparece en tu dispositivo.",
"invalidCode": "Ese código no es válido o ha caducado."
},
"approve": {
"pageTitle": "Aprobar dispositivo",
"title": "¿Conectar este dispositivo?",
"description": "Un dispositivo quiere iniciar sesión como {{email}}. Apruébalo solo si lo has iniciado tú.",
"matchCode": "Comprueba que coincide con el código de tu dispositivo",
"deny": "Denegar",
"approve": "Aprobar",
"failed": "No se ha podido actualizar la solicitud. Inténtalo de nuevo."
},
"approved": {
"title": "Dispositivo conectado",
"description": "Vuelve a tu terminal o aplicación. Ya puedes cerrar esta pestaña."
},
"denied": {
"title": "Solicitud denegada",
"description": "No se ha conectado nada. Ya puedes cerrar esta pestaña."
},
"missing": {
"title": "Sin código de dispositivo",
"description": "Abre esta página desde tu dispositivo o introduce tú el código.",
"enterCode": "Introducir un código"
},
"signIn": {
"title": "Inicia sesión para conectar tu dispositivo",
"description": "Volverás aquí enseguida para aprobarlo.",
"submit": "Iniciar sesión"
},
"openApp": "Open Kaneo"
},
"mcp": {
"authorize": {
"title": "Autorizar un cliente MCP",
"description": "Podrá actuar en tu nombre en todos los espacios de trabajo a los que tienes acceso. Continúa solo si has iniciado tú esta conexión.",
"client": "Cliente",
"unknownClient": "Cliente MCP",
"selfReported": "Declarado por el cliente",
"redirect": "Te redirige a",
"signedInAs": "Sesión iniciada como",
"deny": "Denegar",
"allow": "Permitir acceso"
},
"expired": {
"title": "Esta solicitud ha caducado",
"description": "Vuelve a tu cliente MCP y conéctate de nuevo."
},
"signIn": {
"title": "Inicia sesión para autorizar este cliente",
"description": "Volverás aquí enseguida para revisarlo.",
"submit": "Iniciar sesión"
}
}
},
"settings": {
"advancedSettings": "Configuración avanzada",
"account": "Cuenta",
"developer": "Desarrollador",
"information": "Perfil",
"preferences": "Ajustes",
"apiKeys": "Claves de API",
"informationPage": {
"pageTitle": "Perfil",
"title": "Perfil",
"subtitle": "Cómo te ven tus compañeros de equipo.",
"sectionTitle": "Detalles",
"profilePicture": "Foto de perfil",
"fullName": "Nombre",
"fullNamePlaceholder": "Introduce tu nombre",
"email": "Email",
"updateError": "Error al actualizar tu perfil",
"validation": {
"nameRequired": "El nombre es obligatorio",
"nameShort": "Tu nombre debe tener al menos 2 caracteres"
},
"avatar": {
"hint": "Las imágenes cuadradas quedan mejor.",
"remove": "Quitar",
"removeError": "Failed to remove profile picture",
"removeSuccess": "Profile picture removed",
"updateError": "Failed to update profile picture",
"updateSuccess": "Profile picture updated",
"upload": "Subir"
},
"deleteAccount": {
"confirm": "Delete account",
"confirmLabel": "Confirm your email address",
"description": "Workspaces only you belong to are deleted with your account. Elsewhere, your tasks stay and become unassigned, and your comments are removed.",
"error": "Failed to delete account",
"modalDescription": "This cannot be undone. Type {{email}} to confirm.",
"modalTitle": "Delete your account?",
"sectionTitle": "Danger zone",
"success": "Your account has been deleted",
"title": "Delete account",
"sessionTooOld": "For security, sign out and sign back in before deleting your account."
},
"emailHint": "Inicias sesión con esta dirección."
},
"preferencesPage": {
"title": "Preferencias",
"subtitle": "Cómo se ve y funciona Kaneo para ti.",
"appearanceTitle": "General",
"theme": "Tema",
"selectTheme": "Selecciona un tema",
"themeLight": "Día",
"themeDark": "Noche",
"themeSystem": "Según el sistema",
"language": "Idioma",
"selectLanguage": "Seleccionar un idioma",
"firstDayOfWeek": "Primer día de la semana",
"firstDayOfWeekDescription": "Se usa en los calendarios y selectores de fecha.",
"selectFirstDayOfWeek": "Selecciona el primer día",
"weekStartsOnSunday": "Domingo",
"weekStartsOnMonday": "Lunes",
"weekStartsOnSaturday": "Sábado",
"defaultView": "Vista por defecto",
"defaultViewDescription": "La vista con la que se abren los proyectos.",
"selectViewMode": "Elige una vista por defecto",
"board": "Tablero",
"list": "Lista",
"gantt": "Gantt",
"priorityIcons": "Iconos de prioridad",
"priorityIconsDescription": "Cómo se ve la prioridad de las tareas en tarjetas, filas y menús.",
"priorityIconsMarks": "Marcas",
"priorityIconsClassic": "Clásicos",
"sidebarDefault": "Mantener la barra lateral abierta",
"sidebarDefaultDescription": "Empezar con la barra lateral desplegada.",
"displayOptions": "Detalles de las tareas",
"displayOptionsDescription": "Qué se muestra en las tarjetas y filas de tus tableros y listas.",
"taskNumbers": "Números de tarea",
"assignees": "Asignados",
"dueDates": "Fechas de vencimiento",
"labels": "Etiquetas",
"priority": "Prioridad",
"projectBackgrounds": "Project backgrounds",
"projectBackgroundsDescription": "Muestra la imagen que un proyecto pone detrás de su tablero.",
"advancedTitle": "Avanzado"
},
"managedProfile": {
"note": "Gestionado por tu organización.",
"edit": "Editar en {{provider}}"
},
"developerPage": {
"pageTitle": "Claves de API",
"title": "Claves de API",
"subtitle": "Permite que scripts, la CLI y clientes MCP usen Kaneo en tu nombre.",
"unnamedKey": "Sin nombre",
"emptyDescription": "Crea una clave para usar la CLI, un cliente MCP o tus propios scripts.",
"emptyTitle": "Todavía no hay claves de API",
"keysNote": "Una clave puede hacer todo lo que puedes hacer tú. Elimina las claves que ya no uses.",
"keysTitle": "Claves",
"loadError": "No se han podido cargar las claves de API. Inténtalo de nuevo.",
"newKey": "Nueva clave"
},
"apiKey": {
"createdModal": {
"title": "Copia tu clave",
"description": "No volverás a verla después de cerrar esto.",
"copy": "Copiar",
"copied": "Copiada",
"done": "Hecho",
"copyError": "No se ha podido copiar la clave. Selecciónala y cópiala manualmente."
},
"table": {
"deleteConfirmTitle": "¿Eliminar “{{name}}”?",
"deleteConfirmDescription": "Todo lo que use esta clave dejará de funcionar. No se puede deshacer.",
"delete": "Eliminar clave",
"deleting": "Eliminando…",
"toastDeleted": "Clave de API eliminada",
"toastDeleteError": "No se ha podido eliminar la clave de API"
},
"createDialog": {
"title": "Nueva clave de API",
"description": "La clave puede hacer todo lo que puedes hacer tú.",
"nameLabel": "Nombre",
"namePlaceholder": "Mi clave de API",
"nameDescription": "Para que recuerdes dónde se usa.",
"expirationLabel": "Caduca",
"expiration1d": "1 día",
"expiration7d": "7 días",
"expiration30d": "30 días",
"expiration90d": "90 días",
"expirationNever": "Nunca",
"create": "Crear clave",
"creating": "Creando…",
"failedCreate": "No se ha podido crear la clave de API",
"validation": {
"nameRequired": "Introduce un nombre",
"nameShort": "Usa al menos 3 caracteres"
}
},
"row": {
"actions": "Acciones para {{name}}",
"created": "Creada el {{date}}",
"expired": "Caducó el {{date}}",
"expiredBadge": "Caducada",
"expires": "Caduca el {{date}}",
"neverExpires": "No caduca nunca"
}
},
"workspaceGeneral": {
"pageTitle": "Ajustes Generales",
"title": "General",
"subtitle": "El nombre de {{name}} y quién es su propietario.",
"workspaceInfoTitle": "Espacio de trabajo",
"nameLabel": "Nombre",
"namePlaceholder": "Introduce el nombre de tu espacio de trabajo",
"descriptionLabel": "Descripción",
"descriptionPlaceholder": "¿En qué trabaja tu equipo?",
"dangerZone": "Zona peligrosa",
"deleteWorkspace": "Eliminar espacio de trabajo",
"deleteWorkspaceDescription": "Elimina permanentemente {{name}}, sus proyectos y sus tareas.",
"deleteModalTitle": "¿Eliminar el espacio de trabajo?",
"deleteModalDescription": "Esto eliminará permanentemente {{name}} y todos sus proyectos y tareas. No se puede deshacer.",
"deleteModalConfirm": "Eliminar espacio de trabajo",
"toastUpdateError": "Error al actualizar espacio de trabajo",
"toastDeleted": "Espacio de trabajo eliminado correctamente",
"toastDeleteError": "Error al eliminar espacio de trabajo",
"validation": {
"nameRequired": "El nombre del espacio de trabajo es obligatorio",
"nameShort": "El nombre del espacio de trabajo debe contener al menos 2 caracteres"
},
"transferOwnership": {
"toastSuccess": "Propiedad transferida",
"toastError": "Error al transferir la propiedad",
"title": "Transferir propiedad",
"pickerLabel": "Nuevo propietario",
"noEligibleMembers": "Invita al menos a otro miembro antes de poder transferir la propiedad.",
"pickerHint": "El nuevo propietario asume el control. Tú sigues como admin.",
"pickerPlaceholder": "Elige un miembro",
"button": "Transferir",
"dialogTitle": "¿Transferir la propiedad?",
"dialogDescription": "{{name}} se convertirá en el único propietario de {{workspace}}. Mantendrás acceso de admin, pero perderás las capacidades exclusivas del propietario, como eliminar el espacio de trabajo o volver a transferirlo.",
"transferring": "Transfiriendo…",
"confirm": "Transferir propiedad"
},
"ownershipSubtitle": "Solo el propietario ve esto.",
"ownershipTitle": "Propiedad"
},
"projectGeneral": {
"pageTitle": "Ajustes del Proyecto",
"title": "General",
"subtitle": "El nombre, el identificador y el aspecto de {{name}}.",
"projectInfoTitle": "Proyecto",
"iconLabel": "Icono",
"iconHint": "Se muestra en la barra lateral y en las listas de proyectos.",
"pickIconTitle": "Elegir icono",
"searchIconsPlaceholder": "Buscar iconos...",
"projectNameLabel": "Nombre",
"projectNamePlaceholder": "Nombre del proyecto",
"keyLabel": "Identificador",
"keyHint": "Encabeza el ID de cada tarea, como {{slug}}-123.",
"keyPlaceholder": "PRO",
"descriptionLabel": "Descripción",
"descriptionPlaceholder": "¿Para qué es este proyecto?",
"dangerZone": "Zona peligrosa",
"deleteProject": "Eliminar proyecto",
"deleteProjectDescription": "Elimina permanentemente {{name}} y todas sus tareas.",
"deleteModalTitle": "¿Eliminar el proyecto?",
"deleteModalDescription": "Esto eliminará permanentemente {{name}} y todas sus tareas. No se puede deshacer.",
"deleteModalConfirm": "Eliminar proyecto",
"toastUpdateError": "Error al actualizar proyecto",
"toastDeleted": "Proyecto eliminado correctamente",
"toastDeleteError": "Error al eliminar proyecto",
"validation": {
"nameRequired": "El nombre del proyecto es obligatorio",
"keyRequired": "El identificador es obligatorio",
"keyMax": "El identificador debe contener como máximo 8 caracteres",
"iconRequired": "El icono es obligatorio"
},
"backgroundHint": "Una imagen detrás del tablero. Cada persona puede desactivarlas.",
"backgroundUnavailable": "La subida de imágenes no está configurada en esta instancia.",
"backgroundLabel": "Board background",
"backgroundRemove": "Remove image",
"backgroundRemoveError": "Failed to remove project background",
"backgroundRemoveSuccess": "Project background removed",
"backgroundReplace": "Reemplazar",
"backgroundUpload": "Subir",
"backgroundUploadError": "Failed to update project background",
"backgroundUploadSuccess": "Project background updated",
"moveModalConfirm": "Mover proyecto",
"moveProject": "Mover a otro espacio de trabajo",
"moveProjectAction": "Mover",
"moveProjectDescription": "Las tareas, columnas y etiquetas se mueven con él.",
"moveProjectPlaceholder": "Elige un espacio de trabajo",
"toastMoved": "Proyecto movido correctamente",
"toastMovedWithUnassigned": "Proyecto movido correctamente. {{taskCount}} tarea(s) quedaron sin asignar.",
"toastMoveError": "No se pudo mover el proyecto",
"moveTargetsError": "No se pudo comprobar a qué espacios de trabajo puedes mover este proyecto. Vuelve a cargar la página para intentarlo de nuevo.",
"moveDialogDescription": "Las tareas asignadas a personas que no están en el nuevo espacio de trabajo quedarán sin asignar, y se eliminarán las suscripciones a notificaciones de este proyecto.",
"moveDialogTitle": "¿Mover a otro espacio de trabajo?",
"moveTargetLabel": "Espacio de trabajo",
"moving": "Moviendo...",
"tasksTitle": "Tareas"
},
"projectIntegrations": {
"pageTitle": "Integraciones",
"title": "Integraciones",
"subtitle": "Conecta este proyecto con tu plataforma de código y el chat de tu equipo.",
"githubSectionTitle": "Integración con GitHub",
"githubSectionSubtitle": "Sincroniza tareas con GitHub issues y permite la sincronización cruzada.",
"discordSectionTitle": "Integración con Discord",
"discordSectionSubtitle": "Envía actualizaciones de tareas a un canal de Discord mediante webhook.",
"genericWebhookSectionTitle": "Webhooks",
"genericWebhookSectionSubtitle": "Envía los eventos de las tareas a cualquier endpoint HTTP como JSON.",
"slackSectionTitle": "Integración con Slack",
"slackSectionSubtitle": "Envía los eventos de las tareas a un canal de Slack con un webhook.",
"giteaSectionTitle": "Integración con Gitea",
"giteaSectionSubtitle": "Sincroniza tareas con una instancia autoalojada de Gitea (issues, PRs, webhooks).",
"telegramSectionTitle": "Integración con Telegram",
"telegramSectionSubtitle": "Envía actualizaciones de las tareas del proyecto a un chat o tema de Telegram mediante un bot.",
"mattermostSectionSubtitle": "Send project task updates into a Mattermost channel with an incoming webhook.",
"mattermostSectionTitle": "Mattermost Integration",
"gitlabSectionSubtitle": "Sincroniza tareas con GitLab.com o con una instancia autogestionada.",
"gitlabSectionTitle": "GitLab Integration",
"codeHostingTitle": "Alojamiento de código",
"chatTitle": "Chat y webhooks",
"statusConnected": "Conectado",
"statusPaused": "En pausa",
"connect": "Conectar",
"configure": "Configurar",
"done": "Listo",
"turnedOffByAdmin": "Turned off by an administrator"
},
"projectVisibility": {
"pageTitle": "Visibilidad del Proyecto",
"title": "Visibilidad",
"subtitle": "Elige quién puede ver {{project}} fuera de {{workspace}}.",
"sectionTitle": "Acceso",
"publicAccess": "Enlace público",
"publicAccessHint": "Cualquiera con el enlace puede ver el tablero y sus tareas, pero no puede cambiar nada.",
"publicUrl": "URL pública",
"copy": "Copiar enlace",
"toastUpdated": "Visibilidad actualizada",
"toastUpdateError": "Error al actualizar espacio la visibilidad del proyecto",
"always": "Siempre",
"copied": "Copiado",
"copyError": "No se ha podido copiar el enlace",
"membersDescription": "Todos los miembros del espacio de trabajo, con lo que les permita su rol.",
"membersTitle": "Miembros de {{workspace}}",
"offNote": "Si desactivas el enlace público, dejará de funcionar al instante.",
"on": "Activado",
"openPublicPage": "Abrir página pública",
"thisWorkspace": "este espacio de trabajo"
},
"projectWorkflow": {
"pageTitle": "Ajustes del flujo de trabajo",
"title": "Flujo de trabajo",
"subtitle": "Las columnas de tu tablero y lo que mueve las tareas entre ellas.",
"columnsTitle": "Columnas",
"columnsDescription": "Arrastra para reordenar. Las tareas de una columna marcada como hecha cuentan como completadas.",
"automationTitle": "Automatizaciones",
"automationDescription": "Mueve una tarea vinculada cuando ocurre algo en un repositorio conectado."
},
"projectSwitcher": {
"selectProject": "Selecciona proyecto",
"noProjects": "No hay proyectos"
},
"columnEditor": {
"toastCreateError": "Error al crear la columna",
"toastRenameError": "Error al actualizar la columna",
"toastUpdateError": "Error al actualizar la columna",
"toastDeleteError": "Error al eliminar la columna",
"pickIconTitle": "Elegir icono de columna",
"searchIconsPlaceholder": "Buscar iconos...",
"markDoneAria": "Marcar columna {{name}} como finalizada",
"newColumnPlaceholder": "Nombre de la columna",
"deleteAria": "Borrar la columna {{name}}",
"renameAria": "Renombrar la columna {{name}}",
"addColumn": "Añadir columna",
"columnHeader": "Columna",
"deleteConfirm": "Eliminar columna",
"deleteDescription": "No se pueden eliminar las columnas que aún tienen tareas. Mueve primero esas tareas.",
"deleteTitle": "¿Eliminar “{{name}}”?",
"doneHeader": "Hecho",
"dragAria": "Reordenar {{name}}",
"reorderError": "Error al reordenar las columnas"
},
"githubIntegration": {
"toast": {
"verifyError": "Error al verificar la instalación de GitHub",
"installAppFirst": "Por favor, instala primero la aplicación de GitHub en este repositorio",
"missingPermsDetail": "A la aplicación de GitHub le faltan los siguientes permisos: {{list}}. Por favor, actualiza los permisos de la aplicación.",
"updated": "Integración con GitHub actualizada correctamente",
"updateError": "Error al actualizar la integración de GitHub",
"removed": "Integración con GitHub eliminada correctamente",
"removeError": "Error al eliminar la integración con GitHub",
"issuesImported": "Issues importados correctamente",
"importError": "Error al importar issues",
"commentOnEnabled": "Kaneo añadirá un comentario con un enlace a la tarea en los nuevos issues",
"commentOnDisabled": "Los comentarios con enlaces a tareas en nuevos issues están desactivados",
"settingsUpdateError": "Error al actualizar la integración de GitHub"
},
"commentTaskLinkTitle": "Comentar un enlace de Kaneo en los issues nuevos",
"commentTaskLinkHint": "Para que quien esté en GitHub pueda ir directamente a la tarea.",
"updatePermissions": "Actualizar permisos",
"installGithubApp": "Instalar la App de GitHub",
"importSectionHint": "Importa los issues abiertos del repositorio como tareas.",
"importDisabledHint": "Vuelve a conectar el repositorio para activar la importación.",
"accountVerificationHint": "Conecta tu cuenta de GitHub para verificar que administras este repositorio.",
"enableGithubSignInHint": "Pide al administrador de tu instancia que habilite el inicio de sesión con GitHub.",
"reverifyHint": "Vuelve a conectar este repositorio para verificar el acceso y reanudar la sincronización.",
"resumeImport": "Resume import",
"importPaused": "This import has saved progress. You can resume it.",
"importSummary": "Created: {{imported}} · Updated: {{updated}} · Skipped: {{skipped}}",
"chooseRepositoryDescription": "Sus issues y pull requests se vincularán con las tareas de este proyecto.",
"linkAccountDescription": "Demuestra que puedes administrar el repositorio.",
"linkAccountTitle": "Vincula tu cuenta de GitHub",
"linked": "Vinculada",
"linkGithub": "Vincular GitHub",
"verifyMissingPermissions": "A la Kaneo GitHub App le faltan permisos: {{list}}.",
"verifyNotInstalled": "La Kaneo GitHub App no está instalada en este repositorio.",
"verifyReady": "La Kaneo GitHub App está instalada con los permisos que necesita.",
"workflowHint": "Mueve tareas cuando se abren o se fusionan pull requests en",
"workflowLink": "Flujo de trabajo"
},
"slackIntegration": {
"validation": {
"webhookInvalid": "Introduce una URL válida de un webhook de Slack"
},
"toast": {
"saved": "Integración con Slack guardada correctamente",
"saveError": "Error al guardar la integración con Slack",
"enabled": "Notificaciones de Slack activadas",
"disabled": "Notificaciones de Slack pausadas",
"updateError": "Error al actualizar la integración de Slack",
"removed": "Integración con Slack eliminada correctamente",
"removeError": "Error al eliminar la integración con Slack"
},
"webhookPlaceholder": "https://hooks.slack.com/services/...",
"webhookHint": "Crea un webhook de entrada en Slack y pégalo aquí.",
"connect": "Conectar con Slack",
"update": "Actualizar Slack"
},
"discordIntegration": {
"validation": {
"webhookInvalid": "Introduce una URL válida de un webhook de Discord"
},
"toast": {
"saved": "Integración con Discord guardada correctamente",
"saveError": "Error al guardar la integración con Discord",
"enabled": "Notificaciones de Discord activadas",
"disabled": "Notificaciones de Discord pausadas",
"updateError": "Error al actualizar la integración de Discord",
"removed": "Integración con Discord eliminada correctamente",
"removeError": "Error al eliminar la integración con Discord"
},
"webhookPlaceholder": "https://discord.com/api/webhooks/...",
"webhookHint": "Crea un webhook de canal en Discord y pégalo aquí.",
"connect": "Conectar con Discord",
"update": "Actualizar Discord"
},
"genericWebhookIntegration": {
"validation": {
"webhookInvalid": "Introduce una URL de webhook válida",
"leadTimeRange": "Elige un tiempo entre 5 minutos y 720 horas."
},
"toast": {
"saved": "Integración con webhook genérico guardada correctamente",
"saveError": "Error al guardar la integración con webhook genérico",
"enabled": "Notificaciones por webhook activadas",
"disabled": "Notificaciones por webhook pausadas",
"updateError": "Error al actualizar la integración con webhook genérico",
"removed": "Integración con webhook eliminada correctamente",
"removeError": "Error al eliminar la integración con webhook"
},
"webhookLabel": "URL del webhook",
"webhookPlaceholder": "https://ejemplo.com/webhooks/kaneo",
"webhookHint": "Kaneo envía requests POST como JSON para cada evento activo.",
"secretLabel": "Secreto para la firma",
"secretPlaceholder": "Secreto compartido",
"secretHint": "Kaneo firma cada petición con él y envía el resultado en la cabecera X-Kaneo-Signature.",
"secretHintConfigured": "Secreto actual: {{secret}}. Pega uno nuevo para reemplazarlo.",
"eventsTitle": "Enviar cuando",
"events": {
"taskCreated": "Tarea creada",
"taskStatusChanged": "Cambio de estado",
"taskPriorityChanged": "Cambio de prioridad",
"taskTitleChanged": "Cambio de título",
"taskDescriptionChanged": "Cambio de descripción",
"taskCommentCreated": "Nuevo comentario",
"taskDeleted": "Tarea eliminada",
"taskMoved": "Tarea movida",
"taskDueDateChanged": "Cambio de fecha de vencimiento",
"taskAssigneeChanged": "Cambio de asignado",
"taskUnassigned": "Tarea desasignada",
"dueDateReminder": "Recordatorio de fecha de vencimiento"
},
"connect": "Conectar al webhook",
"reminderLeadTimeLabel": "Horas antes del vencimiento de una tarea",
"activeTitle": "Enviando eventos",
"disconnectDescription": "Kaneo dejará de enviar eventos y eliminará el endpoint y el secreto guardados.",
"disconnectTitle": "¿Desconectar el webhook?",
"reminderLeadTimeAfter": "horas antes del vencimiento de una tarea",
"reminderLeadTimeBefore": "Enviar recordatorios"
},
"repositoryBrowser": {
"title": "Elige un repositorio",
"description": "Repositorios que puede ver la Kaneo GitHub App.",
"searchPlaceholder": "Buscar repositorios",
"loadError": "No se han podido cargar los repositorios.",
"tryAgain": "Reintentar",
"emptyTitle": "Todavía no hay repositorios",
"emptyHint": "Instala la App de GitHub en tus repositorios para verlos aquí.",
"installGithubApp": "Instalar la App de GitHub",
"noSearchMatchTitle": "No hay repositorios que coincidan",
"noSearchMatchHint": "Prueba con otro nombre o borra la búsqueda.",
"emptyPageHint": "No hay ninguno en esta página. Carga más para seguir buscando.",
"loadMore": "Cargar más",
"manageAccess": "Gestionar el acceso de la app",
"missingOne": "¿Falta alguno?",
"searching": "Buscando…",
"updated": "Actualizado {{time}}",
"useRepository": "Usar repositorio"
},
"tasksImportExport": {
"exportTasks": "Exportar tareas",
"importTasks": "Importar tareas",
"dialogTitle": "Importar tareas",
"dialogDescription": "Sube un fichero JSON con las tareas para importar en este proyecto.",
"expectedFormat": "Formato esperado:",
"dropHint": "Arrastra tu fichero JSON aquí",
"selectFile": "Seleccionar fichero",
"exporting": "Exportando tareas...",
"exportSuccess": "Tareas exportadas correctamente",
"exportError": "Error al exportar tareas",
"importing": "Importando tareas...",
"importSuccess": "{{count}} tareas importadas correctamente",
"importPartialError": "Error al importar {{count}} tareas",
"importError": "Error al importar tareas",
"invalidFormat": "Formato de fichero inválido",
"noFileDropped": "No se ha añadido ningún fichero",
"notJsonFile": "Por favor, sube un fichero JSON",
"export": "Exportar",
"exportDescription": "Descarga todas las tareas de este proyecto en un fichero.",
"import": "Importar",
"importDescription": "Añade tareas desde un fichero que hayas exportado antes."
},
"workflowEditor": {
"toastError": "Error al actualizar regla",
"events": {
"branch_push": "Push a una rama",
"pr_opened": "Pull request abierta",
"pr_merged": "Pull request fusionada",
"issue_opened": "Issue abierto",
"issue_closed": "Issue cerrado"
},
"connectMore": "Conecta {{providers}} en <link>Integraciones</link> para automatizarlos también.",
"dontMove": "No mover",
"emptyDescription": "Las automatizaciones necesitan un repositorio conectado de GitHub, Gitea o GitLab.",
"emptyTitle": "No hay repositorios conectados",
"openIntegrations": "Abrir integraciones"
},
"externalLinks": {
"resources": "Recursos",
"issue": "Issue",
"branch": "Rama",
"merged": "Merged",
"draft": "Borrador",
"open": "Abierta",
"adding": "Adding...",
"addResource": "Add resource",
"cancel": "Cancel",
"empty": "No resources linked to this task.",
"titleOptional": "Title (optional)",
"url": "URL",
"remove": "Remove {{title}}",
"removeError": "Failed to remove the resource link."
},
"notifications": "Notificaciones",
"notificationsPage": {
"pageTitle": "Notificaciones",
"title": "Notificaciones",
"subtitle": "De qué te avisa Kaneo y por dónde te llegan los avisos.",
"statusConnected": "Conectado",
"statusPaused": "Pausado",
"emailTitle": "Correo electrónico",
"accountEmailNoAddress": "No hay ningún correo de cuenta disponible",
"saveChanges": "Guardar cambios",
"disconnect": "Desconectar",
"ntfyTitle": "ntfy",
"ntfyDescription": "Publica en un tema de ntfy en tu móvil o tu ordenador.",
"serverUrl": "URL del servidor",
"topic": "Tema",
"token": "Token",
"ntfyServerPlaceholder": "https://ntfy.example.com",
"ntfyTopicPlaceholder": "alertas-equipo",
"ntfyTokenPlaceholder": "Solo si tu servidor lo necesita",
"ntfyTokenHintConfigured": "Ya hay un token configurado ({{masked}}). Introduce un token nuevo para reemplazarlo.",
"ntfyTokenHintOptional": "Úsalo si tu servidor ntfy requiere autenticación.",
"connectNtfy": "Conectar ntfy",
"gotifyTitle": "Gotify",
"gotifyDescription": "Envía las notificaciones a tu servidor Gotify.",
"gotifyTokenLabel": "Token de aplicación",
"gotifyServerPlaceholder": "https://gotify.example.com",
"gotifyTokenPlaceholder": "Token de aplicación de Gotify",
"gotifyTokenHintConfigured": "Ya hay un token de aplicación configurado ({{masked}}). Introduce uno nuevo para reemplazarlo.",
"gotifyTokenHintRequired": "Obligatorio. Usa un token de aplicación de tu servidor Gotify.",
"connectGotify": "Conectar Gotify",
"webhookTitle": "Webhook personalizado",
"webhookDescription": "Envía cada notificación a tu propio endpoint como JSON.",
"endpointUrl": "URL del endpoint",
"signingSecret": "Secreto de firma",
"webhookUrlPlaceholder": "https://example.com/webhooks/kaneo",
"webhookSecretPlaceholder": "Secreto compartido opcional",
"webhookSecretHintConfigured": "Ya hay un secreto de firma configurado ({{masked}}). Introduce uno nuevo para reemplazarlo.",
"webhookSecretHintOptional": "Kaneo firma el cuerpo de la petición cuando hay un secreto configurado.",
"connectWebhook": "Conectar webhook",
"eventPreferencesTitle": "Notificarme sobre",
"eventPreferencesDescription": "Nunca recibirás notificaciones de tus propios comentarios, menciones y cambios de estado.",
"eventTaskAssignments": "Asignaciones",
"eventComments": "Comentarios y menciones",
"eventCommentsHint": "Comentarios nuevos en tus tareas y cuando alguien te @menciona.",
"eventStatusChanges": "Cambios de estado",
"eventDueDateReminders": "Recordatorios de fecha de vencimiento",
"reminderLeadTimeLabel": "Recordármelo antes de la fecha de vencimiento",
"reminderLeadTimeInvalid": "Introduce un número entero entre 1 y {{max}}.",
"saveEventPreferences": "Guardar tipos de notificación",
"allProjects": "Todos los proyectos",
"noProjectsInWorkspace": "Todavía no hay proyectos disponibles en este espacio de trabajo.",
"toastEmailSaved": "Ajustes de notificaciones por correo guardados",
"toastEmailSaveFailed": "Error al guardar los ajustes de correo",
"toastNtfySaved": "Ajustes de ntfy guardados",
"toastNtfySaveFailed": "Error al guardar los ajustes de ntfy",
"toastNtfyDisconnected": "ntfy desconectado",
"toastNtfyDisconnectFailed": "Error al desconectar ntfy",
"toastGotifySaved": "Ajustes de Gotify guardados",
"toastGotifySaveFailed": "Error al guardar los ajustes de Gotify",
"toastGotifyDisconnected": "Gotify desconectado",
"toastGotifyDisconnectFailed": "Error al desconectar Gotify",
"toastWebhookSaved": "Ajustes del webhook guardados",
"toastWebhookSaveFailed": "Error al guardar los ajustes del webhook",
"toastWebhookDisconnected": "Webhook desconectado",
"toastWebhookDisconnectFailed": "Error al desconectar el webhook",
"toastRuleSaved": "Regla de notificación guardada para {{workspaceName}}",
"toastRuleSaveFailed": "Error al guardar la regla de notificación del espacio de trabajo",
"toastRuleRemoved": "Regla de notificación eliminada para {{workspaceName}}",
"toastRuleRemoveFailed": "Error al eliminar la regla de notificación del espacio de trabajo",
"toastPreferencesSaved": "Preferencias de notificación guardadas",
"toastPreferencesSaveFailed": "Error al guardar las preferencias de notificación",
"toastRuleSavedGeneric": "Regla de notificación del espacio de trabajo guardada",
"toastRuleRemovedGeneric": "Regla de notificación del espacio de trabajo eliminada",
"channelNotConnected": "Sin conectar",
"channelOff": "Desactivado",
"channelsDescription": "Las notificaciones siempre aparecen en Kaneo. Conecta un canal para recibirlas también en otro sitio.",
"channelsTitle": "Canales",
"configure": "Configurar",
"configureChannel": "Configurar {{channel}}",
"configureWorkspace": "Configurar las notificaciones de {{workspaceName}}",
"connect": "Conectar",
"connectChannel": "Conectar {{channel}}",
"disconnectDescription": "Las notificaciones dejarán de llegar a {{channel}} y se eliminarán sus ajustes guardados.",
"disconnecting": "Desconectando...",
"disconnectTitle": "¿Desconectar {{channel}}?",
"done": "Listo",
"emailToggleLabel": "Enviar notificaciones por correo",
"eventDueDateRemindersHint": "Antes de que venza una de tus tareas. Las tareas vencidas se notifican aparte.",
"eventStatusChangesHint": "Cuando una de tus tareas pasa a otra columna.",
"eventTaskAssignmentsHint": "Cuando alguien te asigna una tarea.",
"loadFailed": "No se han podido cargar los ajustes de notificaciones.",
"onlyInKaneo": "Solo en Kaneo",
"optional": "Opcional",
"projectCount_many": "{{count}} proyectos",
"projectCount_one": "{{count}} proyecto",
"projectCount_other": "{{count}} proyectos",
"reminderLeadTimeUnitDaysBefore_many": "días antes",
"reminderLeadTimeUnitDaysBefore_one": "día antes",
"reminderLeadTimeUnitDaysBefore_other": "días antes",
"reminderLeadTimeUnitHoursBefore_many": "horas antes",
"reminderLeadTimeUnitHoursBefore_one": "hora antes",
"reminderLeadTimeUnitHoursBefore_other": "horas antes",
"reminderLeadTimeUnitLabel": "Unidad del recordatorio",
"ruleActiveDescription": "Desactívalo para pausar este espacio de trabajo y conservar su configuración.",
"ruleActiveLabel": "Enviando",
"ruleChannels": "Canales",
"ruleDialogDescription": "A dónde pueden enviarse las notificaciones de este espacio de trabajo.",
"ruleDialogTitle": "Notificaciones de {{workspaceName}}",
"ruleProjects": "Proyectos",
"ruleSummary": "{{channels}} · {{projects}}",
"save": "Guardar",
"sendingDescription": "Desactívalo para pausar este canal y conservar sus ajustes.",
"sendingLabel": "Enviando",
"setUp": "Configurar",
"setUpWorkspace": "Configurar las notificaciones de {{workspaceName}}",
"someProjects": "Solo algunos",
"statusOn": "Activado",
"statusSending": "Enviando",
"stopping": "Deteniendo...",
"stopSending": "Dejar de enviar",
"stopSendingDescription": "Las notificaciones de este espacio de trabajo solo se mostrarán en Kaneo.",
"stopSendingTitle": "¿Dejar de enviar desde {{workspaceName}}?",
"workspacesDescription": "Elige qué espacios de trabajo y proyectos pueden usar tus canales.",
"workspacesTitle": "Espacios de trabajo"
},
"workspaceRoles": {
"pageTitle": "Roles",
"title": "Roles",
"subtitle": "Define qué acciones pueden realizar los miembros en {{workspaceName}}.",
"thisWorkspace": "este espacio de trabajo",
"noAccess": "Necesitas permisos de admin o propietario para gestionar los roles del espacio de trabajo.",
"sectionTitle": "Roles del espacio de trabajo",
"sectionSubtitle": "Edita los roles por defecto o añade uno a medida. Los miembros conservan el nombre de su rol asignado entre ediciones.",
"newRole": "Nuevo rol",
"loading": "Cargando…",
"loadError": "Error al cargar los roles.",
"emptyTitle": "Todavía no hay roles",
"emptyDescription": "Los roles por defecto aparecerán aquí cuando se generen para este espacio de trabajo.",
"defaultBadge": "Por defecto",
"permissionCount_one": "{{count}} permiso",
"permissionCount_other": "{{count}} permisos",
"nameLabel": "Nombre",
"nameHint": "En minúsculas. No se puede cambiar después.",
"namePlaceholder": "p. ej. revisor",
"discard": "Descartar",
"createRole": "Crear rol",
"deleteRole": "Eliminar rol",
"defaultRoleHelp": "Rol por defecto: el nombre está reservado y la fila no se puede eliminar.",
"unsavedChanges": "Tienes cambios sin guardar",
"allChangesSaved": "Todos los cambios guardados",
"saveChanges": "Guardar cambios",
"defaultRoleDescriptions": {
"viewer": "Puede ver y comentar tareas.",
"member": "Puede crear y gestionar tareas y proyectos.",
"admin": "Tiene acceso completo al espacio de trabajo."
},
"resources": {
"project": "Proyectos",
"task": "Tareas",
"label": "Etiquetas",
"workspace": "Espacio de trabajo",
"organization": "Workspace administration",
"member": "Members",
"invitation": "Invitations",
"team": "Teams",
"ac": "Roles and permissions"
},
"permissions": {
"project": {
"create": {
"label": "Crear",
"description": "Puede crear nuevos proyectos"
},
"read": {
"label": "Ver",
"description": "Puede ver proyectos"
},
"update": {
"label": "Actualizar",
"description": "Puede editar los ajustes del proyecto"
},
"delete": {
"label": "Eliminar",
"description": "Puede eliminar proyectos"
},
"share": {
"label": "Compartir",
"description": "Puede compartir proyectos"
}
},
"task": {
"create": {
"label": "Crear",
"description": "Puede crear tareas"
},
"read": {
"label": "Ver",
"description": "Puede ver tareas"
},
"update": {
"label": "Actualizar",
"description": "Puede editar tareas"
},
"delete": {
"label": "Eliminar",
"description": "Puede eliminar tareas"
},
"assign": {
"label": "Asignar",
"description": "Puede asignar tareas a miembros"
}
},
"label": {
"create": {
"label": "Crear",
"description": "Puede crear etiquetas"
},
"read": {
"label": "Ver",
"description": "Puede ver etiquetas"
},
"update": {
"label": "Actualizar",
"description": "Puede editar etiquetas"
},
"delete": {
"label": "Eliminar",
"description": "Puede eliminar etiquetas"
}
},
"workspace": {
"read": {
"label": "Ver",
"description": "Puede ver los ajustes del espacio de trabajo"
},
"update": {
"label": "Actualizar",
"description": "Puede actualizar los ajustes del espacio de trabajo"
},
"delete": {
"label": "Eliminar",
"description": "Puede eliminar el espacio de trabajo"
},
"manage_settings": {
"label": "Gestionar ajustes",
"description": "Puede gestionar los ajustes del espacio de trabajo"
}
},
"organization": {
"update": {
"label": "Edit workspace administration",
"description": "Change workspace settings through the account service."
},
"delete": {
"label": "Delete workspace",
"description": "Permanently delete the workspace through the account service."
}
},
"member": {
"create": {
"label": "Add members",
"description": "Add users to this workspace."
},
"update": {
"label": "Change member roles",
"description": "Change the roles assigned to workspace members."
},
"delete": {
"label": "Remove members",
"description": "Remove users from this workspace."
}
},
"invitation": {
"create": {
"label": "Invite members",
"description": "Send workspace invitations."
},
"cancel": {
"label": "Cancel invitations",
"description": "Revoke pending workspace invitations."
}
},
"team": {
"create": {
"label": "Create teams",
"description": "Create teams in this workspace."
},
"update": {
"label": "Edit teams",
"description": "Change teams and team membership."
},
"delete": {
"label": "Delete teams",
"description": "Delete teams in this workspace."
}
},
"ac": {
"create": {
"label": "Create roles",
"description": "Create workspace roles and assign their permissions."
},
"read": {
"label": "View roles",
"description": "Read the workspace roles and their permissions."
},
"update": {
"label": "Change role permissions",
"description": "Change role permissions, including administrative access."
},
"delete": {
"label": "Delete roles",
"description": "Delete custom workspace roles."
}
}
},
"validation": {
"nameRequired": "El nombre del rol es obligatorio",
"nameExists": "Ya existe un rol con este nombre",
"permissionRequired": "Debe seleccionarse al menos un permiso"
},
"toast": {
"created": "Rol creado",
"createError": "Error al crear el rol",
"updated": "Rol actualizado",
"updateError": "Error al actualizar el rol",
"deleted": "Rol eliminado",
"deleteError": "Error al eliminar el rol"
},
"deleteDialog": {
"title": "Eliminar rol",
"description": "Esto eliminará permanentemente el rol \"{{role}}\". Los miembros con este rol asignado perderán sus permisos."
},
"permissionCount_many": "{{count}} permisos"
},
"workspaceLabels": {
"pageTitle": "Etiquetas",
"title": "Etiquetas",
"subtitle": "Todos los proyectos de este espacio de trabajo comparten las etiquetas.",
"createLabel": "Crear etiqueta",
"editLabel": "Editar etiqueta",
"deleteLabel": "Eliminar etiqueta",
"saveLabel": "Guardar",
"nameLabel": "Nombre",
"namePlaceholder": "Nombre de la etiqueta",
"colorLabel": "Color",
"createDescription": "Los proyectos de este espacio de trabajo pueden añadirla a sus tareas.",
"editDescription": "Los cambios se muestran en todas las tareas con esta etiqueta.",
"deleteConfirmTitle": "¿Eliminar “{{name}}”?",
"deleteConfirmDescription": "La etiqueta se quitará de todas las tareas que la usan. No se puede deshacer.",
"createSuccess": "Etiqueta creada",
"updateSuccess": "Etiqueta actualizada",
"deleteSuccess": "Etiqueta eliminada",
"createError": "Error al crear etiqueta",
"updateError": "Error al actualizar etiqueta",
"deleteError": "Error al eliminar etiqueta",
"nameRequired": "El nombre de la etiqueta es obligatorio",
"deletionPending": "Quitando de las tareas…",
"resumeDeletion": "Resume deletion",
"editNamed": "Editar {{name}}",
"emptyDescription": "Añade etiquetas para organizar y filtrar tareas en todos los proyectos.",
"emptyTitle": "Todavía no hay etiquetas",
"loadError": "No se han podido cargar las etiquetas. Inténtalo de nuevo.",
"newLabel": "Nueva etiqueta",
"preview": "En una tarea",
"previewPlaceholder": "Etiqueta",
"resume": "Reanudar",
"rowActions": "Acciones para {{name}}",
"sectionDescription": "Si cambias el nombre o el color de una etiqueta, se actualizan todas las tareas que la usan.",
"sectionTitle": "Etiquetas del espacio de trabajo",
"subtitleWithWorkspace": "Todos los proyectos de {{workspaceName}} comparten las etiquetas."
},
"giteaIntegration": {
"validation": {
"baseUrlRequired": "La URL base de Gitea es obligatoria",
"baseUrlInvalid": "Introduce una URL válida (p. ej. https://gitea.example.com)"
},
"toast": {
"verifyError": "Error al verificar el acceso a Gitea",
"verifyFirst": "La verificación de acceso ha fallado. Comprueba la URL, el token y el repositorio",
"updated": "Integración con Gitea guardada",
"updateError": "Error al guardar la integración con Gitea",
"removed": "Integración con Gitea eliminada",
"removeError": "Error al eliminar la integración con Gitea",
"issuesImported": "Issues importadas correctamente",
"importError": "Error al importar issues",
"commentOnEnabled": "Kaneo comentará con un enlace a la tarea en las nuevas issues",
"commentOnDisabled": "Los comentarios con enlace a la tarea en nuevas issues están desactivados",
"settingsUpdateError": "Error al actualizar la integración con Gitea"
},
"commentTaskLinkTitle": "Comentar un enlace de Kaneo en los issues nuevos",
"commentTaskLinkHint": "Para que quien esté en Gitea pueda ir directamente a la tarea.",
"webhookHint": "Añade este webhook en los ajustes del repositorio para que los cambios lleguen a Kaneo.",
"baseUrlLabel": "URL de Gitea",
"tokenLabel": "Token de acceso personal",
"tokenPlaceholder": "Pega el token",
"tokenPlaceholderUpdate": "Pega un nuevo token para rotarlo",
"importSectionHint": "Importa los issues y pull requests abiertos como tareas.",
"importDisabledHint": "Para importar se necesita acceso verificado. Comprueba el estado del token arriba.",
"browseModalHint": "Repositorios a los que tu token puede acceder.",
"browseNeedsCredentials": "Introduce la URL de Gitea y un token para explorar.",
"browseEmpty": "Este token no puede ver ningún repositorio.",
"chooseRepositoryDescription": "Escribe owner/name o elige uno de la lista.",
"webhookEvents": "Activa los eventos de push, pull request, issues, comentarios de issues y create."
},
"telegramIntegration": {
"validation": {
"botTokenInvalid": "Introduce un token de bot de Telegram válido",
"chatIdRequired": "El ID del chat es obligatorio",
"threadIdInvalid": "Introduce un ID de tema válido"
},
"toast": {
"saved": "Integración con Telegram guardada correctamente",
"saveError": "Error al guardar la integración con Telegram",
"enabled": "Notificaciones de Telegram activadas",
"disabled": "Notificaciones de Telegram pausadas",
"updateError": "Error al actualizar la integración con Telegram",
"removed": "Integración con Telegram eliminada correctamente",
"removeError": "Error al eliminar la integración con Telegram"
},
"botTokenLabel": "Token del bot",
"botTokenPlaceholder": "123456789:AAExampleBotToken",
"botTokenHint": "Crea un bot con BotFather y pega aquí su token.",
"botTokenHintConfigured": "Token actual: {{token}}",
"chatIdLabel": "ID del chat",
"chatIdPlaceholder": "-1001234567890 o @team_updates",
"threadIdLabel": "ID del tema",
"threadIdPlaceholder": "Para temas de foros",
"chatLabelLabel": "Nombre del chat",
"chatLabelPlaceholder": "Actualizaciones de ingeniería",
"connect": "Conectar Telegram",
"botTokenSavedPlaceholder": "Guardado. Pega un token nuevo para reemplazarlo.",
"loadError": "No se han podido cargar los ajustes de Telegram."
},
"mattermostIntegration": {
"connect": "Connect Mattermost",
"toast": {
"disabled": "Mattermost notifications paused",
"enabled": "Mattermost notifications enabled",
"removed": "Mattermost integration removed successfully",
"removeError": "Failed to remove Mattermost integration",
"saved": "Mattermost integration saved successfully",
"saveError": "Failed to save Mattermost integration",
"updateError": "Failed to update Mattermost integration"
},
"update": "Update Mattermost",
"validation": {
"webhookInvalid": "Enter a valid Mattermost webhook URL"
},
"webhookHint": "Crea un webhook de entrada en Mattermost y pégalo aquí.",
"webhookPlaceholder": "https://your-mattermost-server.com/hooks/..."
},
"customFields": {
"createError": "Failed to create custom field.",
"createSuccess": "Custom field created.",
"creating": "Creating...",
"defaultLabel": "Default",
"deleteError": "Failed to delete custom field.",
"deleteSuccess": "Custom field deleted.",
"deleting": "Deleting...",
"namePlaceholder": "Field name",
"required": "Required",
"types": {
"boolean": "Casilla de verificación",
"date": "Date",
"dropdown": "Dropdown",
"number": "Number",
"text": "Text",
"multiselect": "Desplegable, selección múltiple"
},
"clearDefault": "Quitar valor por defecto",
"moreOptions": "+{{hiddenCount}} more",
"reorderError": "Failed to reorder fields",
"selectPlaceholder": "Select option(s)",
"actionsAria": "Acciones para {{name}}",
"addOption": "Añadir una opción",
"allowSeveral": "Permitir varias",
"allowSeveralDescription": "Una tarea puede tener más de una opción.",
"checked": "Marcada",
"createField": "Crear campo",
"defaultDescription": "Las tareas nuevas empiezan con este valor.",
"deleteConfirm": "Eliminar campo",
"deleteDescription": "Se eliminarán el campo y su valor en todas las tareas. No se puede deshacer.",
"deleteTitle": "¿Eliminar “{{name}}”?",
"dialogDescription": "Todas las tareas de {{project}} tendrán este campo.",
"dialogDescriptionFallback": "Todas las tareas de este proyecto tendrán este campo.",
"dragAria": "Reordenar {{name}}",
"dragOptionAria": "Reordenar {{option}}",
"edit": "Editar",
"editTitle": "Editar campo",
"emptyDescription": "Registra cosas como el tamaño, el cliente o la fecha de lanzamiento en cada tarea.",
"emptyTitle": "Todavía no hay campos personalizados",
"issues": {
"defaultRequired": "Los campos obligatorios necesitan un valor por defecto.",
"moreOptionsRequired": "Añade al menos dos opciones para permitir varias.",
"optionsRequired": "Añade al menos una opción."
},
"nameLabel": "Nombre",
"newTitle": "Nuevo campo",
"noDefault": "Sin valor por defecto",
"optionsLabel": "Opciones",
"removeOptionAria": "Quitar {{option}}",
"hideOptionAria": "Ocultar {{option}} en nuevas selecciones",
"showOptionAria": "Volver a ofrecer {{option}} en nuevas selecciones",
"renameOptionAria": "Renombrar {{option}}",
"requiredDescription": "Todas las tareas tienen siempre un valor.",
"save": "Guardar",
"saving": "Guardando...",
"startsAs": "Valor inicial: “{{value}}”",
"startsAt": "Valor inicial: {{value}}",
"startsChecked": "Marcada por defecto",
"startsOn": "Fecha inicial: {{date}}",
"startsUnchecked": "Sin marcar por defecto",
"typeLabel": "Tipo",
"typeLocked": "El tipo no se puede cambiar después de crear el campo.",
"unchecked": "Sin marcar",
"updateError": "Error al guardar el campo personalizado.",
"updateSuccess": "Campo personalizado guardado."
},
"administration": "Administration",
"adminUsers": {
"actions": {
"deactivate": "Desactivar",
"edit": "Editar",
"open": "Actions for {{name}}",
"reactivate": "Reactivar",
"markEmailVerified": "Mark email as verified",
"sendPasswordReset": "Send password reset link",
"sendVerification": "Resend verification email",
"security": "Sessions & API keys"
},
"clearSearch": "Clear search",
"columns": {
"actions": "Actions",
"joined": "Joined",
"role": "Rol",
"status": "Status",
"user": "User",
"lastActive": "Last active"
},
"confirm": {
"deactivate": {
"action": "Deactivate account",
"description": "{{name}} will be signed out and unable to sign in until an administrator reactivates the account.",
"title": "Deactivate this account?"
},
"delete": {
"action": "Delete permanently",
"description": "This permanently deletes {{name}}, their sessions, memberships, and associated data. This cannot be undone.",
"title": "Permanently delete this account?"
},
"reactivate": {
"action": "Reactivate account",
"description": "{{name}} will be able to sign in and access their workspaces again.",
"title": "Reactivate this account?"
},
"working": "Working…",
"markEmailVerified": {
"action": "Mark as verified",
"title": "Mark this email as verified?"
},
"sendPasswordReset": {
"action": "Send link",
"title": "Send a password reset link?"
},
"sendVerification": {
"action": "Send email",
"title": "Resend the verification email?"
}
},
"directoryTitle": "Todos los usuarios",
"edit": {
"description": "Update this account's identity and instance-wide access.",
"email": "Email address",
"name": "Full name",
"role": "Global role",
"save": "Save changes",
"saving": "Saving…",
"selfRoleHint": "You cannot change your own global role.",
"title": "Edit user"
},
"emptyDescription": "Try another name or email address.",
"emptyTitle": "No users found",
"loadError": "Users could not be loaded.",
"next": "Next",
"pagination": "Page {{current}} of {{total}}",
"previous": "Previous",
"refreshing": "Refreshing users",
"retry": "Retry",
"roles": {
"admin": "Administrador",
"user": "User"
},
"searchCount_many": "{{count}} matching users",
"searchCount_one": "{{count}} matching user",
"searchCount_other": "{{count}} matching users",
"searchLabel": "Search users",
"searchPlaceholder": "Buscar por nombre o correo",
"status": {
"active": "Active",
"deactivated": "Deactivated"
},
"subtitle": "Todas las personas con una cuenta en esta instancia de Kaneo.",
"title": "Usuarios",
"toast": {
"actionError": "Failed to update user status",
"deactivated": "User deactivated",
"deleted": "User deleted",
"reactivated": "User reactivated",
"updated": "User updated",
"updateError": "Failed to update user",
"avatarChanged": "Profile picture updated",
"avatarError": "Failed to update the profile picture",
"avatarRemoved": "Profile picture removed",
"createdForSso": "User created for single sign-on.",
"createdLinkFailed": "User created. Password email failed; retry “Send password reset link”.",
"createdLinkSent": "User created. Password link sent to {{email}}.",
"createdNoSmtp": "User created. Set SMTP_HOST to send a password link.",
"createError": "Failed to create user",
"emailError": "The email could not be sent",
"emailVerified": "Email marked as verified",
"passwordResetSent": "Password reset link sent to {{email}}",
"verificationSent": "Verification email sent to {{email}}"
},
"you": "Tú",
"create": {
"creating": "Creating…",
"open": "Create user",
"submit": "Create user",
"title": "Create user",
"nameRequired": "Enter a name",
"hintNoEmail": "Set SMTP_HOST to send password links."
},
"details": {
"emailStatus": "Email",
"methods": {
"password": "Password"
},
"noSignInMethods": "No password or linked account yet",
"notVerified": "Not verified",
"removeAvatar": "Remove",
"signInMethods": "Sign-in methods",
"uploadAvatar": "Upload",
"verified": "Verified"
},
"filters": {
"anyEmail": "Any email",
"anyRole": "Any role",
"anyStatus": "Any status",
"clear": "Clear filters",
"email": "Email verification",
"label": "Filter users",
"role": "Role",
"status": "Status",
"unverified": "Unverified email",
"verified": "Verified email"
},
"never": "Never",
"unverified": "Unverified",
"security": {
"apiKeysEmpty": "No API keys.",
"apiKeysLoadError": "Couldn't load API keys.",
"apiKeysTitle": "API keys",
"disabled": "Disabled",
"lastUsed": "Last used {{time}}",
"neverUsed": "Never used",
"revokeAll": "Sign out everywhere",
"revokeAllConfirmDescription": "They'll be signed out everywhere right away.",
"revokeAllConfirmTitle": "Sign {{name}} out everywhere?",
"revokeAllSelfDescription": "Your other sessions will be signed out right away.",
"revokeKey": "Revoke",
"revokeKeyConfirmDescription": "Requests using this key will fail right away.",
"revokeKeyConfirmTitle": "Revoke {{name}}?",
"revokeKeyLabel": "Revoke {{name}}",
"revokingKey": "Revoking...",
"sessionsEmpty": "Not signed in anywhere.",
"sessionsTitle": "Sessions",
"title": "Sessions & API keys: {{name}}",
"toastKeyRevoked": "API key revoked.",
"toastKeyRevokeError": "Couldn't revoke the API key.",
"toastRevokedAll": "Sessions signed out."
}
},
"security": "Security",
"securityPage": {
"confirmPassword": "Confirm new password",
"confirmPasswordPlaceholder": "Re-enter your new password",
"currentPassword": "Current password",
"currentPasswordPlaceholder": "Enter your current password",
"newPassword": "New password",
"newPasswordPlaceholder": "Enter a new password",
"noPassword": {
"description": "Your account signs in with a different method, so there is no password to change.",
"title": "Password change isn't available"
},
"pageTitle": "Security",
"sectionTitle": "Inicio de sesión",
"submit": "Cambiar contraseña",
"submitting": "Cambiando...",
"subtitle": "Cómo inicias sesión en Kaneo.",
"title": "Security",
"updateError": "Failed to update password.",
"updateSuccess": "Password updated.",
"validation": {
"confirmRequired": "Confirm your new password.",
"currentRequired": "Enter your current password.",
"mismatch": "Passwords do not match.",
"tooShort": "New password must be at least 8 characters.",
"sameAsCurrent": "New password must be different from your current password."
},
"changePassword": "Cambiar contraseña",
"dialogDescription": "Al menos 8 caracteres, distinta de la actual.",
"dialogTitle": "Cambiar contraseña",
"passwordHint": "Usa al menos 8 caracteres que no uses en ningún otro sitio.",
"passwordTitle": "Contraseña",
"sessions": {
"revokeOthers": "Sign out other sessions",
"revokeOthersConfirmDescription": "Your other sessions will be signed out right away.",
"revokeOthersConfirmTitle": "Sign out all other sessions?",
"title": "Active sessions",
"toastRevokedOthers": "Other sessions signed out."
}
},
"gitlabIntegration": {
"baseUrlLabel": "GitLab URL",
"browseModalHint": "Proyectos de los que tu token es miembro.",
"browseNeedsCredentials": "Introduce la URL de GitLab y un token para explorar.",
"commentTaskLinkHint": "Para que quien esté en GitLab pueda ir directamente a la tarea.",
"commentTaskLinkTitle": "Comment a Kaneo link on issues opened in GitLab",
"importSectionHint": "Importa los issues y merge requests abiertos como tareas.",
"openInGitlab": "Open {{project}} in GitLab",
"projectPathLabel": "Project path",
"searchProjects": "Buscar proyectos",
"toast": {
"commentOnDisabled": "Task link comments on issues opened in GitLab are turned off",
"commentOnEnabled": "Kaneo will comment with a task link on issues opened in GitLab",
"importError": "Failed to import issues",
"issuesImported": "Issues imported successfully",
"removed": "GitLab integration removed",
"removeError": "Failed to remove GitLab integration",
"settingsUpdateError": "Failed to update GitLab integration",
"updated": "GitLab integration saved",
"updateError": "Failed to save GitLab integration",
"verifyError": "Failed to verify GitLab access",
"verifyFirst": "Verify access failed. Check URL, token, and project path"
},
"tokenLabel": "Access token",
"tokenPlaceholder": "Paste token",
"tokenPlaceholderUpdate": "Paste new token to rotate",
"tokenTypeBearer": "OAuth2 token",
"tokenTypeLabel": "Token type",
"tokenTypePrivate": "Personal, project or group access token",
"validation": {
"baseUrlInvalid": "Enter a valid URL (e.g. https://gitlab.com)",
"baseUrlRequired": "GitLab base URL is required",
"pathInvalid": "Enter the full path, e.g. group/project"
},
"webhookHint": "Añade este webhook en los ajustes del proyecto para que los cambios lleguen a Kaneo.",
"loadProjectsError": "No se han podido cargar los proyectos.",
"importPermissionHint": "Importing requires permission to create and update tasks.",
"browseEmpty": "Este token no es miembro de ningún proyecto.",
"chooseProjectDescription": "Escribe su ruta o elige uno de la lista.",
"noSearchMatchTitle": "No hay proyectos que coincidan",
"useProject": "Usar proyecto",
"webhookEvents": "Activa los eventos de push, issues, comentarios y merge requests."
},
"calendarFeeds": {
"title": "Calendar feeds",
"subtitle": "Subscribe to scheduled project tasks in your calendar app.",
"labels": "Incluir solo estas etiquetas",
"selectLabels": "Añadir etiqueta",
"noLabels": "No labels found.",
"timeZoneHint": "All-day dates use {{timeZone}}.",
"accessHint": "Anyone with a feed link can read the matching task titles, descriptions, and dates. Revoke a link to stop future access.",
"create": "Create feed",
"creating": "Creating…",
"created": "Calendar feed created.",
"createError": "Could not create the calendar feed.",
"activeFeeds": "Feeds",
"allScheduledTasks": "Todas las tareas planificadas",
"subscribeHint": "Añade un enlace a tu aplicación de calendario como suscripción. Los cambios aparecen cuando la aplicación actualiza el feed.",
"copy": "Copy link",
"copyError": "Could not copy the link. Select the URL and copy it manually.",
"revoke": "Revoke",
"revoked": "Calendar feed revoked.",
"revokeError": "Could not revoke the calendar feed.",
"loadError": "Could not load calendar feeds or labels. Please try again.",
"deletedLabel": "Deleted label",
"permissionRequired": "You need project-sharing permission to manage calendar feeds.",
"copiedLabel": "Copiado",
"dialogDescription": "Las tareas con fecha de inicio o de vencimiento aparecen en el feed.",
"dialogTitle": "Nuevo feed de calendario",
"emptyDescription": "Crea un feed para ver las tareas planificadas en tu aplicación de calendario.",
"emptyTitle": "Todavía no hay feeds de calendario",
"feedActions": "Acciones del feed",
"labelsHint": "Déjalo vacío para incluir todas las tareas planificadas.",
"newFeed": "Nuevo feed",
"revokeConfirm": "Revocar feed",
"revokeConfirmDescription": "Las aplicaciones de calendario que usan este enlace dejarán de recibir cambios. No se puede deshacer.",
"revokeConfirmTitle": "¿Revocar este feed?",
"revoking": "Revocando…"
},
"invitationEmailFailed": "Invitation saved, but email delivery failed. Check SMTP settings and resend the invitation.",
"billing": {
"accessEnds": "Access ends",
"adminsOnly": "Only workspace owners and admins can manage billing.",
"choose": "Choose {{plan}}",
"choosePlan": {
"subtitle": "Switch anytime. Cancel whenever you like.",
"title": "Choose a plan"
},
"currentPlan": {
"title": "Current plan"
},
"disabled": "Billing isn't enabled on this instance. Self-hosted Kaneo includes every feature, free forever.",
"expiredCallout": {
"action": "Choose a plan",
"adminDescription": "You can still view everything, but creating and editing are paused until you choose a plan. Nothing has been deleted.",
"memberDescription": "You can still view everything, but creating and editing are paused until a workspace owner or admin chooses a plan.",
"title": "Your free trial has ended"
},
"features": {
"backups": "Automatic backups and updates",
"emailSupport": "Email support",
"prioritySupport": "Priority email support",
"roles": "Workspace roles and permissions",
"singleUser": "Single user",
"unlimitedMembers": "Unlimited team members",
"unlimitedProjects": "Unlimited projects and tasks"
},
"foundingFree": {
"badge": "Free",
"description": "This workspace has free access to Kaneo Cloud as an early supporter. Thank you for being here from the start.",
"title": "Founding Free"
},
"interval": {
"annual": "Annual",
"annualBadge": "2 months free",
"monthly": "Monthly"
},
"manage": "Manage billing",
"mostPopular": "Most popular",
"opening": "Opening...",
"pageTitle": "Billing",
"plans": {
"personal": {
"name": "Personal",
"tagline": "For individuals"
},
"team": {
"name": "Team",
"tagline": "For teams working together"
}
},
"portalHint": "Las facturas, el método de pago y la cancelación se gestionan en Creem.",
"price": {
"billedMonthly": "Billed monthly",
"billedYearly": "{{price}} / month, billed yearly",
"billedYearlyPerUser": "{{price}} / user / month, billed yearly",
"perMonth": "/ month",
"perUserMonth": "/ user / month",
"perUserYear": "/ user / year",
"perYear": "/ year"
},
"processedBy": "Payments are securely processed by Creem. Prices exclude tax where applicable.",
"renews": "Renews",
"seats_many": "{{count}} seats",
"seats_one": "{{count}} seat",
"seats_other": "{{count}} seats",
"starting": "Starting...",
"status": {
"active": "Active",
"canceled": "Canceled",
"expired": "Expired",
"past_due": "Payment past due",
"paused": "Paused",
"scheduled_cancel": "Cancels soon",
"trialing": "Trial"
},
"subtitle": "Tu plan para {{workspace}}.",
"trial": {
"activeTitle": "Free trial",
"expiredDescription": "Subscribe to a plan below to keep creating and editing. Your data stays safe and exportable in the meantime.",
"expiredTitle": "Your trial has ended",
"noDate": "Choose a plan below to continue after your trial.",
"badgeDaysLeft_many": "Quedan {{count}} días",
"badgeDaysLeft_one": "Queda {{count}} día",
"badgeDaysLeft_other": "Quedan {{count}} días"
},
"trialCard": {
"activeDescription": "Upgrade anytime to keep your workspace after the trial.",
"choosePlan": "Choose a plan",
"daysLeft_many": "{{count}} days left in trial",
"daysLeft_one": "{{count}} day left in trial",
"daysLeft_other": "{{count}} days left in trial",
"dismiss": "Dismiss",
"ended": "Trial ended",
"endingDescription": "Pick a plan now so your team isn't interrupted.",
"expiredDescription": "Subscribe to keep creating and editing.",
"viewPlans": "View plans"
},
"openFailed": "Couldn't open billing for this workspace",
"checkoutSuccess": {
"title": "Gracias por suscribirte",
"description": "Pago recibido. El plan de abajo se actualizará cuando se confirme."
}
},
"syncRules": {
"addLabel": "Add label",
"advancedHint": "Enable Advanced settings in Preferences to edit these rules.",
"all": "All tasks and issues",
"any": "Any selected label",
"apply": "Apply sync rules",
"closed": "Closed",
"every": "All selected labels",
"excluded": "Outside the current rule",
"filtered": "Only matching labels",
"impact": "{{matching}} of {{total}} tasks match. {{create}} tasks will be exported, {{pause}} links will pause, and {{review}} links need review to resume.",
"impactTitle": "What will change",
"incoming": "Repository → Kaneo",
"incomingHint": "Choose which issues can be imported or create tasks. Use exact repository label names. Existing links follow the Kaneo task rule.",
"loadError": "Sync rules could not be loaded.",
"loading": "Loading sync rules…",
"matchLabels": "Label matching",
"missingLabels": "A selected workspace label is unavailable. Sync stays paused until the rule is repaired.",
"removeMissingLabels": "Eliminar etiquetas no disponibles",
"next": "Next",
"noDescription": "No description",
"noLabels": "Create workspace labels before configuring a task filter.",
"open": "Open",
"outgoing": "Kaneo → repository",
"outgoingHint": "Choose which Kaneo tasks can sync. Losing a matching label pauses both directions for an existing task.",
"paused": "Sync paused",
"pausedHint": "Records and links are preserved. Tasks that match again need review before syncing resumes.",
"preserveHint": "Pausing keeps both records and their link. Resuming requires a comparison; historical comments are never replayed.",
"previewing": "Checking sync impact…",
"previous": "Previous",
"refreshComparison": "Refresh comparison",
"refreshPreview": "Refresh preview",
"removeLabel": "Remove {{name}}",
"repository": "Repository",
"repositoryLabel": "Repository label name",
"resumeError": "Could not resume. The task, issue or rule may have changed, or the provider is unavailable. Sync remains paused; refresh the comparison.",
"review": "Review and resume",
"reviewHint": "Compare the current title, description and open/closed state. Choose which side to keep for these fields. Labels and historical comments remain unchanged.",
"reviewRequired": "Matches the rule · review required",
"reviewTitle": "Review before resuming sync",
"saved": "Sync rules saved",
"saveError": "Could not apply these rules. The integration or task scope may have changed. Refresh the preview and try again.",
"selectLabel": "Select at least one label to preview this rule.",
"sharedHint": "These rules apply to everyone using this project. Hiding advanced settings does not disable them.",
"title": "Qué se sincroniza",
"unavailableLabel": "Unavailable label",
"useKaneo": "Keep Kaneo values",
"useRepository": "Keep repository values",
"exportPending": "Export matching tasks",
"inactiveHint": "This integration is paused. No tasks will be exported until it is reactivated.",
"loadSavedRules": "Load saved rules",
"rulesChanged": "The saved rules changed while you were editing. Your draft is preserved. Review the current rules above before applying it, or load the saved rules.",
"allIssues": "Todos los issues",
"allTasks": "Todas las tareas",
"edit": "Editar",
"hidePaused": "Ocultar",
"issuesLabelled": "Issues etiquetados con",
"joinAnd": "y",
"joinOr": "o",
"kaneoToProvider": "De Kaneo a {{provider}}",
"pausedSummary_many": "{{count}} tareas han dejado de sincronizarse porque ya no cumplen las reglas de sincronización.",
"pausedSummary_one": "{{count}} tarea ha dejado de sincronizarse porque ya no cumple las reglas de sincronización.",
"pausedSummary_other": "{{count}} tareas han dejado de sincronizarse porque ya no cumplen las reglas de sincronización.",
"providerToKaneo": "De {{provider}} a Kaneo",
"reviewPaused": "Revisar",
"tasksLabelled": "Tareas etiquetadas con"
},
"advancedSettingsDescription": "Muestra controles adicionales, como las reglas de sincronización de las integraciones. Solo en este navegador.",
"adminWorkspaces": {
"addMember": {
"adding": "Adding…",
"alreadyMember": "Already a member",
"description": "Add an existing user to {{name}}. They can access every project until you limit them.",
"noUsers": "No users found",
"role": "Role",
"searching": "Searching users…",
"submit": "Add member",
"title": "Add member",
"user": "User",
"userPlaceholder": "Search name or email…",
"usersError": "Users could not be loaded."
},
"clearSearch": "Clear search",
"columns": {
"actions": "Actions",
"created": "Created",
"members": "Members",
"owners": "Owners",
"projects": "Projects",
"workspace": "Workspace"
},
"confirm": {
"remove": {
"action": "Remove member",
"description": "{{name}} loses access to {{workspace}} and its projects. Their account stays on this instance.",
"title": "Remove {{name}}?"
},
"transfer": {
"action": "Make owner",
"description": "{{name}} becomes the only owner of {{workspace}}. Anyone who owns it now becomes an admin.",
"title": "Make {{name}} the owner?"
},
"working": "Working…",
"archive": {
"action": "Archive workspace",
"description": "Members will lose access until it's restored.",
"title": "Archive {{name}}?"
},
"delete": {
"action": "Delete workspace",
"description": "Its projects, tasks, and files will be permanently deleted.",
"title": "Delete {{name}}?",
"typeName": "Type {{name}} to confirm"
},
"restore": {
"action": "Restore workspace",
"title": "Restore {{name}}?"
}
},
"directoryTitle": "Todos los espacios de trabajo",
"emptyDescription": "Try another name or slug.",
"emptyTitle": "No workspaces found",
"loadError": "Workspaces could not be loaded.",
"manage": "Manage",
"manageLabel": "Manage {{name}}",
"members": {
"actions": "Actions for {{name}}",
"add": "Add member",
"count_many": "{{count}} members",
"count_one": "{{count}} member",
"count_other": "{{count}} members",
"description": "Change roles, project access, and ownership, even if you aren't a member of this workspace.",
"editAccess": "Change project access for {{name}} ({{access}})",
"empty": "This workspace has no members.",
"loadError": "Members could not be loaded.",
"makeOwner": "Make owner",
"remove": "Remove from workspace",
"roleLabel": "Role for {{name}}",
"title": "Members of {{name}}"
},
"next": "Next",
"noOwner": "No owner",
"pagination": "Page {{current}} of {{total}}",
"previous": "Previous",
"refreshing": "Refreshing workspaces",
"retry": "Retry",
"searchCount_many": "{{count}} matching workspaces",
"searchCount_one": "{{count}} matching workspace",
"searchCount_other": "{{count}} matching workspaces",
"searchLabel": "Search workspaces",
"searchPlaceholder": "Buscar por nombre o slug",
"subtitle": "Todos los espacios de trabajo de esta instancia de Kaneo, incluidos aquellos a los que no perteneces.",
"title": "Espacios de trabajo",
"toast": {
"added": "Member added",
"addError": "Failed to add member",
"ownershipTransferred": "Ownership transferred",
"removed": "Member removed",
"removeError": "Failed to remove member",
"roleError": "Failed to update role",
"roleUpdated": "Role updated",
"transferError": "Failed to transfer ownership",
"archived": "Workspace archived",
"archiveError": "Could not archive workspace",
"deleted": "Workspace deleted",
"deleteError": "Could not delete workspace",
"restored": "Workspace restored",
"restoreError": "Could not restore workspace"
},
"actions": {
"archive": "Archive workspace",
"open": "Actions for {{name}}",
"restore": "Restore workspace"
},
"archived": "Archived"
},
"workspaceImport": {
"back": {
"allSources": "All sources",
"changeKey": "Change key",
"overview": "Import overview"
},
"connect": {
"cancel": "Cancel",
"continue": "Continue",
"hideSecret": "Hide {{field}}",
"sectionDescription": "Kaneo only reads from {{source}}. The key is used for this import and never stored.",
"sectionTitle": "Connect",
"showSecret": "Show {{field}}",
"title": "Import from {{source}}",
"whereToFind": "Where to find it"
},
"counts": {
"columns_many": "{{count, number}} columns",
"columns_one": "{{count, number}} column",
"columns_other": "{{count, number}} columns",
"comments_many": "{{count, number}} comments",
"comments_one": "{{count, number}} comment",
"comments_other": "{{count, number}} comments",
"labels_many": "{{count, number}} labels",
"labels_one": "{{count, number}} label",
"labels_other": "{{count, number}} labels",
"tasks_many": "{{count, number}} tasks",
"tasks_one": "{{count, number}} task",
"tasks_other": "{{count, number}} tasks"
},
"entry": {
"createProjectLink": "Import your projects",
"createProjectPrompt": "Moving from Jira, Linear, Trello or Plane?",
"projectsEmpty": "Import from another tool"
},
"history": {
"description": "Imports keep running on the server if you leave this page.",
"empty": "No imports yet. Imports you start show up here.",
"loadError": "Recent imports could not be loaded.",
"started": "Started {{time}}",
"title": "Recent imports"
},
"kaneo": {
"apiKeyDescription": "In that Kaneo, open Settings, then API Keys.",
"apiKeyLabel": "API key",
"apiKeyPlaceholder": "Paste API key",
"urlDescription": "The instance you are moving from.",
"urlLabel": "Kaneo URL"
},
"linear": {
"apiKeyDescription": "Read access is enough. You can revoke it after the import.",
"apiKeyLabel": "Personal API key",
"openSettings": "Open Linear settings",
"stepCreate": "Under Personal API keys, create a key with Read access.",
"stepOpen": "In Linear, open Settings, then Security and access.",
"stepPaste": "Copy it and paste it above."
},
"notAllowed": {
"description": "Importing creates projects, so it needs permission to manage workspace settings and create projects. Ask a workspace admin to run it.",
"title": "Only workspace admins can import"
},
"opensInNewTab": "(opens in a new tab)",
"pageTitle": "Import",
"plane": {
"tokenDescription": "Profile settings, Developer, then Personal Access Tokens.",
"tokenLabel": "Personal access token",
"urlDescription": "Copy it from your browser while in Plane. Self-hosted works too.",
"urlLabel": "Workspace URL",
"urlPlaceholder": "https://app.plane.so/your-workspace"
},
"planka": {
"adminTip": "Use a PLANKA admin account. PLANKA only shows email addresses to admins, and card members are matched to people here by email.",
"apiKeyDescription": "Created in PLANKA under your account settings.",
"apiKeyLabel": "API key",
"apiKeyPlaceholder": "Paste API key",
"passwordDescription": "Used only to sign in for this import.",
"passwordLabel": "Password",
"signInApiKey": "API key",
"signInDescription": "Use an API key if your account signs in through SSO.",
"signInLabel": "Sign in with",
"signInPassword": "Email and password",
"urlDescription": "The address you open PLANKA at.",
"urlLabel": "PLANKA URL",
"usernameDescription": "The account you sign in to PLANKA with.",
"usernameLabel": "Email or username"
},
"retry": "Try again",
"run": {
"failedBadge": "Failed",
"failedNames_many": "{{names, list}} failed, so nothing was created for them.",
"failedNames_one": "{{names, list}} failed, so nothing was created for it.",
"failedNames_other": "{{names, list}} failed, so nothing was created for them.",
"failedTitle": "Import failed",
"finishedNote": "Imported tasks did not send notifications. Comments keep their original author and date.",
"finishedNoteNoComments": "Imported tasks did not send notifications.",
"finishedTitle": "Import finished",
"goToProjects": "Go to projects",
"importingBadge": "Importing",
"importingTitle": "Importing from {{source}}",
"importMore": "Import more",
"keyInMemory": "Your {{source}} key is only kept in memory until this import finishes.",
"leavePage": "You can leave this page. The import keeps running on the server.",
"loadError": "This import could not be loaded",
"noTasks": "No tasks",
"nothingImported": "Nothing was imported",
"notImported": "Not imported",
"open": "Open",
"openProject": "Open {{name}}",
"queued": "Queued",
"started": "Started {{time}}",
"starting": "Starting",
"took_many": "Took {{count}} minutes",
"took_one": "Took {{count}} minute",
"took_other": "Took {{count}} minutes",
"tookUnderMinute": "Took less than a minute",
"totals": "{{parts, list}} imported",
"waiting": "Waiting",
"warnings_many": "{{count}} warnings",
"warnings_one": "{{count}} warning",
"warnings_other": "{{count}} warnings"
},
"select": {
"back": "Back",
"clear": "Clear",
"commentsDescription": "Keeps each comment's original author and date.",
"commentsLabel": "Import comments",
"inviteMembers": "Invite members",
"membersNote": "Assignees are matched to members of {{workspace}} by email. Invite your team first so their tasks stay assigned.",
"membersNoteTrello": "Assignees are matched to members of {{workspace}} by email, or by full name for Trello. Invite your team first so their tasks stay assigned.",
"selectAll": "Select all",
"membersNoteJira": "Assignees are matched to members of {{workspace}} by email, or by full name when Jira hides the email. Invite your team first so their tasks stay assigned."
},
"sources": {
"connect": "Connect",
"connectTo": "Connect {{source}}",
"description": "Pick the tool you are moving from. Each project you choose becomes a new project here.",
"kaneo": {
"description": "Move projects between Kaneo Cloud and a self-hosted instance.",
"intro": "Projects from every workspace the key can see. Each one you pick is copied here.",
"pickerName": "Another Kaneo"
},
"linear": {
"description": "Teams, issues, labels, sub-issues and comments. Paste a personal API key.",
"intro": "Each Linear team becomes a project, with its workflow as columns."
},
"plane": {
"description": "Projects, work items, sub-issues and comments. Cloud or self-hosted.",
"intro": "Each Plane project becomes a project here, with its states as columns."
},
"planka": {
"description": "Boards, lists, cards, checklists and comments from your PLANKA instance.",
"intro": "Each PLANKA board becomes a project, with its lists as columns."
},
"title": "Choose a source",
"trello": {
"description": "Boards, lists, cards, checklists and comments. Authorize with one click.",
"intro": "Each Trello board becomes a project, with its lists as columns."
},
"jira": {
"description": "Projects, issues, sub-tasks, links and comments. Cloud or Data Center.",
"intro": "Each Jira project becomes a project here, with its workflow as columns."
}
},
"status": {
"failed": "Failed",
"imported": "Imported",
"importing": "Importing {{current}} of {{total}}",
"partial": "{{done}} of {{total}} imported",
"warnings_many": "Done with {{count}} warnings",
"warnings_one": "Done with {{count}} warning",
"warnings_other": "Done with {{count}} warnings"
},
"steps": {
"connect": "Connect",
"done": "(completed)",
"import": "Import",
"label": "Import steps"
},
"subtitle": "Bring your projects from another tool into {{workspace}}. Kaneo only reads from the source.",
"title": "Import",
"toast": {
"failed": "Import from {{source}} failed",
"finished": "Import from {{source}} finished",
"partial": "Import from {{source}} finished with errors"
},
"trello": {
"apiKeyDescription": "In a Power-Up you own, open the Trello Auth tab and generate an API key (not the OAuth 2.0 tab) at",
"apiKeyLabel": "API key",
"apiKeyPlaceholder": "Paste API key",
"authorizeButton": "Authorize on Trello",
"authorizeDescription": "Opens Trello in a new tab. Read only, expires after a day.",
"authorizeLabel": "Authorize Kaneo",
"authorizeNeedsKey": "Enter the API key first. Read only, expires after a day.",
"tokenDescription": "Click Allow on Trello, then paste the token it shows you.",
"tokenLabel": "Token",
"tokenPlaceholder": "Paste token"
},
"units": {
"board": {
"allImported_many": "All {{count}} boards imported.",
"allImported_one": "{{count}} board imported.",
"allImported_other": "All {{count}} boards imported.",
"empty": "No boards found. Check that this key can see the boards you want to import.",
"found_many": "{{count}} boards found. Each one you pick becomes a new project in {{workspace}}.",
"found_one": "{{count}} board found. If you pick it, it becomes a new project in {{workspace}}.",
"found_other": "{{count}} boards found. Each one you pick becomes a new project in {{workspace}}.",
"importButton_many": "Import {{count}} boards",
"importButton_one": "Import {{count}} board",
"importButton_other": "Import {{count}} boards",
"limit": "Pick up to {{max}} boards per import.",
"pick": "Pick the boards to bring over.",
"progress_many": "{{done}} of {{count}} boards imported",
"progress_one": "{{done}} of {{count}} board imported",
"progress_other": "{{done}} of {{count}} boards imported",
"runTitle_many": "{{source}}, {{count}} boards",
"runTitle_one": "{{source}}, {{count}} board",
"runTitle_other": "{{source}}, {{count}} boards",
"section": "Boards",
"someImported_many": "{{done}} of {{count}} boards imported.",
"someImported_one": "{{done}} of {{count}} board imported.",
"someImported_other": "{{done}} of {{count}} boards imported.",
"step": "Choose boards"
},
"project": {
"allImported_many": "All {{count}} projects imported.",
"allImported_one": "{{count}} project imported.",
"allImported_other": "All {{count}} projects imported.",
"empty": "No projects found. Check that this key can see the projects you want to import.",
"found_many": "{{count}} projects found. Each one you pick becomes a new project in {{workspace}}.",
"found_one": "{{count}} project found. If you pick it, it becomes a new project in {{workspace}}.",
"found_other": "{{count}} projects found. Each one you pick becomes a new project in {{workspace}}.",
"importButton_many": "Import {{count}} projects",
"importButton_one": "Import {{count}} project",
"importButton_other": "Import {{count}} projects",
"limit": "Pick up to {{max}} projects per import.",
"pick": "Pick the projects to bring over.",
"progress_many": "{{done}} of {{count}} projects imported",
"progress_one": "{{done}} of {{count}} project imported",
"progress_other": "{{done}} of {{count}} projects imported",
"runTitle_many": "{{source}}, {{count}} projects",
"runTitle_one": "{{source}}, {{count}} project",
"runTitle_other": "{{source}}, {{count}} projects",
"section": "Projects",
"someImported_many": "{{done}} of {{count}} projects imported.",
"someImported_one": "{{done}} of {{count}} project imported.",
"someImported_other": "{{done}} of {{count}} projects imported.",
"step": "Choose projects"
},
"team": {
"allImported_many": "All {{count}} teams imported.",
"allImported_one": "{{count}} team imported.",
"allImported_other": "All {{count}} teams imported.",
"empty": "No teams found. Check that this key can see the teams you want to import.",
"found_many": "{{count}} teams found. Each one you pick becomes a new project in {{workspace}}.",
"found_one": "{{count}} team found. If you pick it, it becomes a new project in {{workspace}}.",
"found_other": "{{count}} teams found. Each one you pick becomes a new project in {{workspace}}.",
"importButton_many": "Import {{count}} teams",
"importButton_one": "Import {{count}} team",
"importButton_other": "Import {{count}} teams",
"limit": "Pick up to {{max}} teams per import.",
"pick": "Pick the teams to bring over.",
"progress_many": "{{done}} of {{count}} teams imported",
"progress_one": "{{done}} of {{count}} team imported",
"progress_other": "{{done}} of {{count}} teams imported",
"runTitle_many": "{{source}}, {{count}} teams",
"runTitle_one": "{{source}}, {{count}} team",
"runTitle_other": "{{source}}, {{count}} teams",
"section": "Teams",
"someImported_many": "{{done}} of {{count}} teams imported.",
"someImported_one": "{{done}} of {{count}} team imported.",
"someImported_other": "{{done}} of {{count}} teams imported.",
"step": "Choose teams"
}
},
"jira": {
"emailDescription": "The email of your Atlassian account. Leave it empty for Jira Data Center.",
"emailLabel": "Email",
"nameMatchTip": "Jira often hides email addresses, so assignees may be matched to people here by full name.",
"openSettings": "Open Atlassian API tokens",
"stepCreate": "Create an API token and copy it.",
"stepOpen": "Open id.atlassian.com, then Security, then API tokens.",
"stepPaste": "Paste it with the email you sign in to Jira with.",
"tokenDescription": "Cloud: create one at id.atlassian.com. Data Center: use a personal access token.",
"tokenLabel": "API token",
"tokenPlaceholder": "Paste token",
"urlDescription": "Copy it from your browser. Data Center works too.",
"urlLabel": "Jira site URL",
"urlPlaceholder": "https://your-site.atlassian.net"
}
},
"chatIntegrations": {
"activeDescription": "Desactívalo para pausar sin perder la configuración.",
"activeTitle": "Publicando en {{provider}}",
"channelHint": "Solo se usa como nombre en esta lista.",
"channelLabel": "Canal",
"channelPlaceholder": "#team-updates",
"disconnect": "Desconectar",
"disconnectDescription": "Kaneo dejará de publicar en {{provider}} y eliminará los ajustes guardados.",
"disconnecting": "Desconectando…",
"disconnectTitle": "¿Desconectar {{provider}}?",
"events": {
"taskCommentCreated": "Alguien comenta",
"taskCreated": "Se crea una tarea",
"taskDescriptionChanged": "Cambia la descripción",
"taskPriorityChanged": "Cambia la prioridad",
"taskStatusChanged": "Cambia el estado",
"taskTitleChanged": "Cambia el título"
},
"optional": "Opcional",
"postWhen": "Publicar cuando",
"retry": "Reintentar",
"saveChanges": "Guardar cambios",
"savedUrlPlaceholder": "Guardada. Pega una URL nueva para reemplazarla.",
"webhookUrlLabel": "URL del webhook"
},
"codeHosting": {
"browse": "Explorar",
"changeToken": "Cambiar token",
"checking": "Comprobando el acceso…",
"chooseProjectTitle": "Elige un proyecto",
"chooseRepositoryTitle": "Elige un repositorio",
"connectProject": "Conectar proyecto",
"connectRepository": "Conectar repositorio",
"copied": "Copiado",
"copyFailed": "No se ha podido copiar al portapapeles.",
"copySecret": "Copiar secreto",
"copyUrl": "Copiar URL del webhook",
"disconnect": "Desconectar",
"disconnectDescription": "Las tareas dejarán de sincronizarse con {{target}}. Puedes volver a conectarlo más tarde.",
"disconnecting": "Desconectando…",
"disconnectTitle": "¿Desconectar {{provider}}?",
"hideSecret": "Ocultar secreto",
"importing": "Importando…",
"importIssues": "Importar issues",
"importNeedsReconnect": "Vuelve a conectar para activar la importación.",
"importTitle": "Importar issues abiertos",
"issuesSection": "Issues",
"lastImport": "Última importación: {{imported}} creadas, {{updated}} actualizadas, {{skipped}} omitidas.",
"loadError": "No se ha podido cargar esta integración.",
"pausedHint": "La sincronización está en pausa. Vuelve a conectar para reanudarla.",
"projectSection": "Proyecto",
"reconnect": "Volver a conectar",
"repositoryPathInvalid": "Introduce el repositorio como owner/name.",
"repositoryPathLabel": "Repositorio",
"repositorySection": "Repositorio",
"retry": "Reintentar",
"saveToken": "Guardar token",
"showSecret": "Mostrar secreto",
"signInDescription": "Usa un token que pueda leer el proyecto y sus issues.",
"signInTitle": "Inicia sesión en tu instancia",
"tokenStored": "Token guardado",
"tokenTitle": "Token de acceso",
"webhookSecret": "Secreto",
"webhookSection": "Webhook",
"webhookUrl": "URL"
},
"projectCustomFields": {
"fieldsDescription": "Arrastra para cambiar el orden en que aparecen en una tarea.",
"fieldsTitle": "Campos",
"newField": "Nuevo campo",
"pageTitle": "Campos personalizados",
"subtitle": "Detalles adicionales que puede registrar cada tarea de {{project}}, como el tamaño o el cliente.",
"subtitleFallback": "Detalles adicionales que puede registrar cada tarea de este proyecto, como el tamaño o el cliente.",
"title": "Campos personalizados"
},
"shared": {
"autosave": "Los cambios se guardan automáticamente"
},
"adminAuditLog": {
"actions": {
"sessionRevoked": "Revoked a session",
"sessionRevokedAll": "Revoked all sessions",
"userCreated": "Created user",
"userDeactivated": "Deactivated user",
"userDeleted": "Deleted user",
"userImpersonated": "Signed in as user",
"userPasswordSet": "Set user password",
"userReactivated": "Reactivated user",
"userRoleChanged": "Changed instance role",
"userUpdated": "Updated user details",
"workspaceMemberAdded": "Added workspace member",
"workspaceMemberRemoved": "Removed workspace member",
"workspaceMemberRoleChanged": "Changed workspace member role",
"workspaceOwnerTransferred": "Transferred workspace ownership",
"userAvatarChanged": "Changed profile picture",
"userAvatarRemoved": "Removed profile picture",
"userEmailVerified": "Marked email as verified",
"userPasswordResetSent": "Sent password reset link",
"userVerificationSent": "Sent verification email",
"apiKeyRevoked": "Revoked an API key",
"emailTestSent": "Sent test email",
"workspaceArchived": "Archived workspace",
"workspaceDeleted": "Deleted workspace",
"workspaceRestored": "Restored workspace",
"roleCreated": "Role created",
"roleDeleted": "Role deleted",
"roleUpdated": "Role updated",
"instanceSettingsUpdated": "Updated instance settings",
"webhookCreated": "Created webhook",
"webhookDeleted": "Deleted webhook",
"webhookSecretRotated": "Rotated webhook secret",
"webhookUpdated": "Updated webhook"
},
"categories": {
"all": "All actions",
"session": "Sessions",
"user": "Users",
"workspace": "Workspaces",
"apiKey": "API keys",
"email": "Email",
"role": "Roles",
"instance": "Instance settings",
"webhook": "Webhooks"
},
"categoryLabel": "Filter by category",
"clearFilter": "Show all actions",
"columns": {
"action": "Action",
"actor": "Administrator",
"target": "Target",
"time": "Time and IP"
},
"deletedActor": "Account deleted",
"details": {
"change": "{{from}} → {{to}}",
"fields": "Changed {{fields}}",
"memberChange": "{{member}}: {{from}} → {{to}}",
"memberWithRole": "{{member}} as {{role}}",
"noRole": "No role",
"reason": "Reason: {{reason}}",
"createdWithRole": "Role: {{role}}",
"sessionCount_many": "{{count}} sessions",
"sessionCount_one": "{{count}} session",
"sessionCount_other": "{{count}} sessions",
"workspaceContents": "{{members}} members, {{projects}} projects",
"permissionsChanged": "{{added}} permissions added, {{removed}} removed"
},
"directoryTitle": "Recorded actions",
"emptyTitle": "No actions recorded",
"fields": {
"email": "email",
"emailVerified": "email verification",
"image": "avatar",
"name": "name"
},
"loadError": "The audit log could not be loaded.",
"mobileSummary": "{{actor}} · {{target}} · {{time}}",
"next": "Next",
"pagination": "Page {{current}} of {{total}}",
"previous": "Previous",
"refreshing": "Refreshing audit log",
"retry": "Retry",
"targetTypes": {
"user": "User",
"workspace": "Workspace",
"role": "Role",
"instance": "Instance",
"webhook": "Webhook"
},
"title": "Audit log",
"unknownActor": "Unknown"
},
"sessions": {
"device": "{{browser}} on {{os}}",
"lastActive": "Active {{time}}",
"loadError": "Couldn't load sessions.",
"revoke": "Sign out",
"revokeConfirmDescription": "They'll be signed out right away.",
"revokeConfirmTitle": "Sign out {{device}}?",
"revokeLabel": "Sign out {{device}}",
"revoking": "Signing out...",
"signedIn": "Signed in {{date}}",
"thisDevice": "This device",
"toastRevoked": "Session signed out.",
"toastRevokeError": "Couldn't sign out the session.",
"unknownDevice": "Unknown device"
},
"adminSystem": {
"checkedAt": "Checked {{time}}",
"email": {
"down": "Can't connect to the mail server ({{code}})",
"notConfigured": "Set SMTP_HOST and SMTP_FROM to turn on email.",
"ok": "Connected to the mail server",
"send": "Send test email",
"sending": "Sending…",
"sendTest": "Test email",
"smtp": "SMTP",
"title": "Email"
},
"instance": {
"api": "API",
"apiDescription": "Up {{uptime}} · Node {{node}}",
"database": "Database",
"databaseDown": "Can't reach PostgreSQL ({{code}})",
"databaseVersion": "PostgreSQL {{version}}",
"latency": "{{ms}} ms",
"migrations_many": "{{count}} migrations applied",
"migrations_one": "{{count}} migration applied",
"migrations_other": "{{count}} migrations applied",
"realtime": "Live updates",
"realtimeConnections_many": "{{count}} open connections on this instance",
"realtimeConnections_one": "{{count}} open connection on this instance",
"realtimeConnections_other": "{{count}} open connections on this instance",
"realtimeInMemory": "delivered in memory",
"realtimeNotStarted": "WebSockets haven't started",
"realtimeRedis": "shared with other instances through Redis",
"realtimeRedisDown": "Redis is down, so only people on this instance get live updates",
"redis": "Redis",
"redisDown": "Can't reach Redis ({{code}})",
"redisModes": {
"cluster": "Cluster",
"sentinel": "Sentinel",
"standalone": "Standalone"
},
"redisNotConfigured": "Set REDIS_URL to share live updates across API instances.",
"redisOk": "{{mode}}, reachable",
"storage": "File storage",
"storageDown": "Can't reach the bucket ({{code}})",
"storageIncomplete": "Some S3 settings are missing, so uploads are off.",
"storageNotConfigured": "Set S3_ENDPOINT and S3_BUCKET to turn on uploads.",
"storageOk": "Bucket reachable",
"storageWarning": "Can't check the bucket with these credentials ({{code}}).",
"title": "Instance",
"version": "Kaneo version",
"versionUnknown": "Unknown"
},
"integrations": {
"available": "Available",
"connectedProjects_many": "Connected in {{count}} projects",
"connectedProjects_one": "Connected in {{count}} project",
"connectedProjects_other": "Connected in {{count}} projects",
"connectedUnknown": "Project count unavailable",
"instanceSetup": {
"down": "GitHub App unavailable",
"not_configured": "GitHub App not set up",
"ok": "GitHub App set up",
"warning": "Some GitHub App settings are missing"
},
"title": "Integrations"
},
"loadError": "System status could not be loaded.",
"refresh": "Refresh",
"refreshing": "Checking…",
"retry": "Retry",
"setupStatus": {
"down": "Down",
"not_configured": "Not configured",
"ok": "Configured",
"warning": "Incomplete"
},
"signIn": {
"emailOtpSignIn": "Email sign-in codes",
"guestAccess": "Guest access",
"off": "Off",
"on": "On",
"passwordRegistration": "Sign-up with a password",
"passwordSignIn": "Email and password sign-in",
"registration": "Registration",
"title": "Sign-in",
"workspaceCreation": "Workspace creation",
"customProvider": "OAuth or OpenID Connect"
},
"status": {
"down": "Down",
"not_configured": "Not configured",
"ok": "Operational",
"warning": "Warning"
},
"title": "System",
"toast": {
"testEmailError": "The test email could not be sent.",
"testEmailSent": "Test email sent to {{to}}"
}
},
"adminOverview": {
"activeUsers": "Active (30 days)",
"archivedWorkspaces": "Archived",
"configurationWarnings": "Configuration warnings",
"disabledUsers": "Disabled users",
"loadError": "Could not load the overview.",
"noActions": "No administrative actions",
"noUsers": "No users",
"recentActions": "Recent administrative actions",
"recentUsers": "Recent users",
"services": "Services",
"title": "Overview",
"totalUsers": "Total users",
"viewAuditLog": "View audit log",
"viewSystem": "View system",
"viewUsers": "View users",
"warnings": {
"noSecondAdmin": "Only one administrator has access. Assign a second admin in User management.",
"redisUnreachable": "Redis is unavailable. Check the connection.",
"registrationWithoutEmail": "Registration is open without email. Configure SMTP or set DISABLE_REGISTRATION=true.",
"smtpNotConfigured": "Email is not configured. Set SMTP_HOST and SMTP_FROM.",
"smtpUnreachable": "Email is unavailable. Check SMTP settings.",
"storageIncomplete": "Storage setup is incomplete. Check S3 settings.",
"storageUnreachable": "Storage needs attention. Check S3 access."
},
"workspaces": "Workspaces"
},
"adminRoles": {
"actions": "Actions for {{name}}",
"allPermissions": "All permissions",
"builtIn": "Built-in",
"create": "New role",
"deleteTitle": "Delete {{name}}?",
"dialog": {
"create": "Create role",
"createTitle": "New role",
"editTitle": "Edit role",
"name": "Name",
"nameHint": "Use 2–32 lowercase letters, digits, or hyphens, starting with a letter.",
"save": "Save"
},
"edit": "Edit",
"groups": {
"instance": "Instance",
"users": "Users",
"workspaces": "Workspaces"
},
"listTitle": "All roles",
"loadError": "Roles could not be loaded.",
"noPermissions": "No permissions",
"permissionCount_many": "{{count}} permissions",
"permissionCount_one": "{{count}} permission",
"permissionCount_other": "{{count}} permissions",
"permissions": {
"auditRead": "View the audit log",
"instanceSettings": "Change instance settings",
"systemRead": "View system status",
"usersApiKeys": "View and revoke API keys",
"usersCreate": "Create users",
"usersCredentials": "Send password reset and verification emails",
"usersDelete": "Delete users",
"usersDisable": "Deactivate and reactivate users",
"usersRead": "View users",
"usersSessions": "View and end sessions",
"usersUpdate": "Edit users and their roles",
"workspacesArchive": "Archive and restore workspaces",
"workspacesDelete": "Delete workspaces",
"workspacesManage": "Manage workspace members",
"workspacesRead": "View workspaces and members"
},
"title": "Roles",
"toast": {
"created": "Role created",
"deleted": "Role deleted",
"error": "The role could not be saved.",
"updated": "Role updated"
},
"userCount_many": "{{count}} users",
"userCount_one": "{{count}} user",
"userCount_other": "{{count}} users",
"viewUsers": "View users"
},
"adminSettings": {
"defaultRole": "Default role for new users",
"general": "General",
"instanceName": "Instance name",
"instanceUrl": "Instance URL",
"instanceUrlMissing": "Set KANEO_CLIENT_URL",
"integrations": "Integrations",
"loadError": "Couldn't load instance settings.",
"lockedByEnv": "Set by {{name}}",
"passwordRegistrationEnabled": "Email and password sign-up",
"registration": "Registration",
"registrationEnabled": "Open registration",
"requireEmailVerification": "Require email verification",
"requiresSmtp": "Requires SMTP",
"signInProviders": "Sign-in providers",
"title": "Settings",
"toast": {
"error": "Couldn't save settings",
"saved": "Settings saved"
},
"workspaceCreationRestricted": "Only administrators can create workspaces",
"workspaces": "Workspaces",
"save": "Save"
},
"adminWebhooks": {
"actions": "Actions for {{url}}",
"add": "Add webhook",
"attempts_many": "{{count}} attempts",
"attempts_one": "{{count}} attempt",
"attempts_other": "{{count}} attempts",
"categories": "Events",
"deleteTitle": "Delete webhook?",
"deliveries": "Recent deliveries",
"disabled": "Disabled",
"edit": "Edit webhook",
"empty": "No webhooks",
"enabled": "Enabled",
"errors": {
"destination": "Destination blocked",
"disabled": "Webhook disabled",
"http": "HTTP error",
"interrupted": "Delivery interrupted",
"network": "Connection failed",
"response": "Invalid response",
"signing": "Signing failed",
"timeout": "Timed out"
},
"failed": "Failed",
"httpStatus": "HTTP {{status}}",
"loadError": "Webhooks could not be loaded.",
"noDeliveries": "No deliveries",
"pending": "Pending",
"rotate": "Rotate secret",
"rotateTitle": "Rotate signing secret?",
"saveError": "The webhook could not be saved.",
"secretTitle": "Signing secret — save it now",
"sendTest": "Send test",
"setup": "Set NOTIFICATION_SECRET_ENCRYPTION_KEY to create webhooks.",
"signingSecret": "Signing secret",
"succeeded": "Delivered",
"testEvent": "Test event",
"testQueued": "Test event queued.",
"title": "Webhooks",
"url": "URL",
"save": "Save"
}
},
"navigation": {
"commandPalette": {
"suggestions": "Sugerencias",
"commands": "Comandos",
"projects": "Proyectos",
"search": "Buscar",
"members": "Miembros",
"createTask": "Crear una tarea",
"createProject": "Crear un proyecto",
"createWorkspace": "Crear espacio de trabajo",
"lightTheme": "Tema día",
"darkTheme": "Tema noche",
"systemTheme": "Tema del sistema",
"keyboardShortcuts": "Atajos de teclado",
"inputPlaceholder": "Buscar aplicaciones y comandos...",
"empty": "No se ha encontrado ningún resultado.",
"footer": {
"navigate": "Navegar",
"open": "Abrir",
"close": "Cerrar"
}
},
"sidebar": {
"projects": "Proyectos",
"members": "Miembros",
"invitations": "Invitaciones",
"more": "Más",
"backToBoard": "Volver al tablero",
"home": "Home",
"inbox": "Inbox",
"invitePeople": "Invite people",
"myTasks": "My tasks"
},
"projectList": {
"viewProject": "Ver Proyecto",
"shareProject": "Compartir Proyecto",
"linkCopied": "Enlace al proyecto copiaro al portapapeles",
"addProject": "Añadir proyecto",
"deleteConfirmTitle": "¿Eliminar proyecto?",
"deleteConfirmDescription": "Esto eliminará permanentemente el proyecto y todos sus datos. Esta acción no se puede deshacer.",
"deletedToast": "Proyecto eliminado",
"deleteProject": "Eliminar proyecto",
"projectSettings": "Ajustes del proyecto",
"switcherLabel": "Cambiar de proyecto o vista"
},
"search": {
"inputPlaceholder": "Busca tareas, proyectos, comentarios...",
"minCharsHint": "Escribe al menos 3 caracteres para buscar",
"groups": {
"task": "Tareas",
"project": "Proyectos",
"workspace": "Espacios de trabajo",
"comment": "Comentarios",
"activity": "Actividad",
"fallback": "Resultados"
}
},
"settingsLayout": {
"toggleSidebar": "Mostrar barra lateral",
"back": "Atrás"
},
"userMenu": {
"signedOutSuccess": "Sesión cerrada correctamente",
"signOutFailed": "Error al cerrar sesión",
"unnamedUser": "Usuario",
"settings": "Ajustes",
"signingOut": "Cerrando sesión...",
"logOut": "Cerrar sesión"
},
"workspaceSwitcher": {
"workspaces": "Espacios de trabajo",
"switching": "Cambiando...",
"addWorkspace": "Añadir espacio de trabajo",
"selectWorkspace": "Seleccionar espacio de trabajo"
},
"page": {
"settingsTitle": "Ajustes",
"backToWorkspace": "Volver al espacio de trabajo",
"settingsWorkspaceTab": "Espacio de trabajo"
},
"projectSettings": {
"projectLabel": "Proyecto"
},
"shortcuts": {
"categories": {
"general": "General",
"navigation": "Navegación",
"create": "Crear",
"views": "Vistas",
"tasks": "Tareas",
"list": "Tablero y lista",
"inbox": "Bandeja de entrada",
"filters": "Filtros",
"editor": "Editor"
},
"items": {
"openCommandMenu": "Abrir paleta de comandos",
"openSearch": "Búsqueda global",
"openShortcuts": "Mostrar atajos de teclado",
"submit": "Guardar o enviar",
"back": "Cerrar modal/ventana emergente",
"switchWorkspace": "Cambiar de espacio de trabajo",
"logOut": "Cerrar sesión",
"showDisplayOptions": "Opciones de visualización",
"dismissToasts": "Cerrar todos los avisos",
"toggleSidebar": "Abir barra lateral",
"goToHome": "Ir al inicio",
"goToInbox": "Ir a la bandeja de entrada",
"goToMyTasks": "Ir a mis tareas",
"goToProjects": "Ir a proyectos",
"goToSettings": "Ir a configuración",
"goToTasks": "Ir a las tareas",
"goToBacklog": "Ir al backlog",
"goToProject": "Ir al proyecto 1–9",
"openTask": "Abrir tarea",
"openProject": "Abrir proyecto",
"createTask": "Crear tarea",
"createProject": "Crear proyecto",
"toggleLayout": "Alternar entre tablero y lista",
"deleteTask": "Eliminar tarea",
"copyTaskUrl": "Copiar enlace a tarea",
"copyBranchName": "Copiar la rama de la tarea",
"nextTask": "Elemento siguiente",
"previousTask": "Elemento anterior",
"openFocusedTask": "Abrir elemento enfocado",
"selectAll": "Seleccionar todo",
"clearSelection": "Borrar selección",
"changeStatus": "Cambiar estado",
"changePriority": "Cambiar prioridad",
"assignTask": "Asignar",
"assignToMe": "Asignarme",
"changeLabels": "Cambiar etiquetas",
"setDueDate": "Establecer fecha límite",
"removeDueDate": "Quitar fecha límite",
"renameTask": "Renombrar",
"editDescription": "Editar descripción",
"commentOnTask": "Comentar",
"moveToProject": "Mover a otro proyecto",
"createSubtask": "Crear subtarea",
"setParent": "Establecer tarea principal",
"openParent": "Abrir tarea principal",
"openSubtask": "Abrir subtarea",
"markBlockedBy": "Marcar como bloqueada por",
"markBlocking": "Marcar como bloqueante",
"markRelated": "Marcar como relacionada",
"addLink": "Añadir un enlace",
"toggleResources": "Mostrar u ocultar recursos",
"copyTaskId": "Copiar ID de la tarea",
"copyTaskTitle": "Copiar título de la tarea",
"copyAsMarkdown": "Copiar como Markdown",
"peekTask": "Vista previa de la tarea enfocada",
"selectTask": "Seleccionar tarea",
"selectGroup": "Seleccionar todo en el grupo",
"copyPageUrl": "Copiar URL de la página",
"focusRight": "Columna siguiente",
"focusLeft": "Columna anterior",
"moveTaskTop": "Mover al principio del grupo",
"moveTaskUp": "Subir una posición",
"moveTaskDown": "Bajar una posición",
"moveTaskBottom": "Mover al final del grupo",
"moveTaskLeft": "Mover a la columna anterior",
"moveTaskRight": "Mover a la columna siguiente",
"toggleGroup": "Contraer o expandir grupo",
"toggleAllGroups": "Contraer o expandir todos los grupos",
"deleteNotification": "Eliminar notificación",
"deleteReadNotifications": "Eliminar todas las notificaciones leídas",
"toggleNotificationRead": "Marcar como leída o no leída",
"markAllNotificationsRead": "Marcar todas como leídas",
"addFilter": "Añadir filtro",
"clearAllFilters": "Quitar todos los filtros",
"clearLastFilter": "Quitar el último filtro",
"editorBold": "Negrita",
"editorItalic": "Cursiva",
"editorUnderline": "Subrayado",
"editorStrike": "Tachado",
"editorAttach": "Adjuntar imagen o archivo",
"editorInlineCode": "Código en línea",
"editorLink": "Convertir texto en enlace",
"editorQuote": "Cita",
"editorParagraph": "Texto normal",
"editorHeading1": "Título 1",
"editorHeading2": "Título 2",
"editorHeading3": "Título 3",
"editorChecklist": "Lista de verificación",
"editorToggleChecklist": "Marcar o desmarcar elemento",
"editorBulletList": "Lista con viñetas",
"editorNumberedList": "Lista numerada",
"editorCodeBlock": "Bloque de código",
"editorUndo": "Deshacer",
"editorRedo": "Rehacer"
},
"title": "Atajos de teclado",
"searchPlaceholder": "Buscar por acción o tecla",
"results_one": "{{count}} resultado",
"results_many": "{{count}} resultados",
"results_other": "{{count}} resultados",
"noResults": "Ningún atajo coincide",
"then": "luego",
"or": "o",
"thenEllipsis": "luego…"
}
},
"notifications": {
"newCount_one": "{{count}} nueva",
"newCount_other": "{{count}} nuevas",
"emptyTitle": "Ninguna notificación todavía",
"emptySubtitle": "Aquí verás tus actualizaciones y actividad.",
"clearAll": "Borrar todas las notificaciones",
"clearDialogTitle": "¿Borrar notificaciones?",
"clearDialogDescription": "Esto eliminará todas las notificaciones. Esta acción no puede deshacerse.",
"events": {
"task_created": {
"title": "Se ha creado una nueva tarea",
"content": "La tarea \"{{taskTitle}}\" ha sido creada"
},
"workspace_created": {
"title": "Se ha creado un espacio de trabajo",
"content": "Tu espacio de trabajo \"{{workspaceName}}\" ha sido creado correctamente"
},
"task_status_changed": {
"title": "El estado de una tarea ha cambiado",
"content": "El estado de la tarea \"{{taskTitle}}\" ha cambiado de \"{{oldStatus}}\" a \"{{newStatus}}\""
},
"task_assignee_changed": {
"title": "Se te ha asignado una tarea",
"content": "Se te ha asignado la tarea: {{taskTitle}}"
},
"time_entry_created": {
"title": "Monitoreo de tiempo activado",
"contentWithTask": "El monitoreo de la tarea se ha activado para: {{taskTitle}}",
"contentWithoutTask": "Se ha activado el monitoreo de una tarea"
},
"task_mention": {
"title": "{{mentionerName}} te ha mencionado",
"content": "{{mentionerName}} te ha mencionado en: {{taskTitle}}"
},
"task_comment": {
"title": "{{commenterName}} ha comentado en tu tarea",
"content": "Nuevo comentario en {{taskTitle}}: {{commentPreview}}"
},
"due_date_reminder": {
"title": "Tarea próxima a vencer",
"content": "{{taskTitle}} vence en {{leadTime}}"
},
"task_overdue": {
"title": "Tarea vencida",
"content": "{{taskTitle}} ha superado su fecha de vencimiento"
}
},
"reminderLeadTime": {
"minutes_one": "{{count}} minuto",
"minutes_other": "{{count}} minutos",
"hours_one": "{{count}} hora",
"hours_other": "{{count}} horas",
"days_one": "{{count}} día",
"days_other": "{{count}} días",
"days_many": "{{count}} días",
"hours_many": "{{count}} horas",
"minutes_many": "{{count}} minutos"
},
"newCount_many": "{{count}} nuevas",
"inbox": {
"back": "Inbox",
"earlier": "Earlier",
"emptyFilter": "Nothing here",
"filters": {
"all": "All",
"label": "Filter notifications",
"mentions": "Mentions",
"unread": "Unread"
},
"openTask": "Open task",
"pageTitle": "Inbox",
"recentActivity": "Recent activity",
"selectPrompt": "Select a notification to read it",
"taskUnavailable": "This task is no longer available.",
"today": "Today",
"unread": "Unread",
"loadError": "Notifications couldn't be loaded.",
"taskLoadError": "This task couldn’t be loaded.",
"actionError": "No se pudo actualizar tu bandeja de entrada. Inténtalo de nuevo.",
"readCleared": "Notificaciones leídas eliminadas"
}
},
"activity": {
"assignedToSelf": "se ha asignado la tarea a sí mismo",
"unassigned": "desasignado la tarea",
"assignedTo": "asignada la tarea a {{name}}",
"changedStatus": "cambio en el estado de {{from}} a {{to}}",
"changedPriority": "cambio en la prioridad de {{from}} a {{to}}",
"clearedDueDate": "eliminada la fecha de vencimiento",
"setDueDate": "ha configurado la fecha de vencimiento a {{date}}",
"changedDueDate": "ha cambiado la fecha de vencimiento de {{from}} a {{to}}",
"changedTitle": "ha cambiado el título de \"{{from}}\" a \"{{to}}\"",
"created": "ha creado esta tarea",
"moved": "ha movido la tarea de \"{{from}}\" a \"{{to}}\"",
"githubUser": "Usuario de GitHub",
"comment": {
"viewGithubProfile": "Ver perfil de GitHub",
"cannotBeEmpty": "El comentario no puede estar vacío",
"mustBeLoggedInToEdit": "Tienes que iniciar sesión para poder editar comentarios",
"updated": "Comentario actualizado",
"failedToUpdate": "Error al actualizar comentario",
"edit": "Editar comentario",
"editPlaceholder": "Editar comentario...",
"save": "Guardar",
"added": "Comentario añadido",
"failedToAdd": "Error al añadir comentario",
"leavePlaceholder": "Añadir un comentario...",
"attachFile": "Adjuntar un fichero",
"submitShortcut": "Enviar comentario",
"editor": {
"uploadsOnlyOnSavedTasks": "Adjuntar archivos sólo está disponible en tareas guardadas.",
"uploadingFile": "Subiendo archivo...",
"imageUploaded": "Imagen subida",
"fileAttached": "Fichero adjuntado",
"failedToUploadFile": "Error al subir fichero",
"plaintext": "Texto plano",
"autoDetect": "Detectar automáticamente",
"slashGroupText": "Texto",
"slashGroupLists": "Listas",
"slashGroupInsert": "Insertar",
"slashParagraph": "Texto",
"slashHeading": "Cabecera",
"slashBulletList": "Lista con bullets",
"slashTaskList": "Lista de To-dos",
"slashOrderedList": "Lista numerada",
"slashQuote": "Cita",
"slashCodeBlock": "Bloque de código",
"slashTable": "Tabla",
"slashFile": "Fichero",
"searchParagraph": "párrafo de texto normal",
"searchHeading": "cabecera h2",
"searchBulletList": "lista de bullets sin orden",
"searchTaskList": "lista de todos",
"searchOrderedList": "lista numerada",
"searchQuote": "cita",
"searchCodeBlock": "fragmento de código",
"searchTable": "tabla",
"searchFile": "fichero adjunto imagen foto",
"embedErrorInvalidUrl": "Introduce una URL válida",
"embedErrorYoutubeOnly": "Sólo los links de YouTube pueden ser incrustados.",
"embedVideo": "Incrustar vídeo",
"keepAsLink": "Mantener como enlace",
"hintTab": "Tab",
"hintEsc": "Esc",
"pasteUrl": "Pegar URL",
"asLink": "Como enlace",
"embed": "Incrustar",
"noCommands": "Sin comandos",
"ariaCommentContent": "Comentar contenido",
"ariaCommentEditor": "Editor de comentarios",
"ariaCopyCode": "Copiar código",
"ariaCopied": "Copiado",
"copy": "Copiar",
"copied": "Copiado",
"dropImageToUpload": "Arrastra una imagen para subir",
"previewImageAlt": "Vista previa de imagen",
"codeLang": {
"bash": "Bash",
"csharp": "C#",
"cpp": "C++",
"css": "CSS",
"go": "Golang",
"graphql": "GraphQL",
"html": "HTML",
"json": "JSON",
"java": "Java",
"javascript": "JavaScript",
"markdown": "Markdown",
"mermaid": "Mermaid",
"plaintext": "Plaintext",
"python": "Python",
"rust": "Rust",
"sql": "SQL",
"swift": "Swift",
"typescript": "TypeScript",
"yaml": "YAML"
},
"table": {
"addColumnBefore": "Insertar columna a la izquierda",
"addColumnAfter": "Insertar columna a la derecha",
"deleteColumn": "Eliminar columna",
"addRowBefore": "Insertar fila encima",
"addRowAfter": "Insertar fila debajo",
"deleteRow": "Eliminar fila",
"deleteTable": "Eliminar tabla"
},
"mermaid": {
"renderFailed": "No se pudo renderizar el diagrama de Mermaid"
}
},
"importedFrom": "Imported from {{source}}",
"importedBy": "Imported by {{name}}",
"commentedOnForge": "comentado en {{forge}}"
},
"movedFromOtherProject": "moved task from another project to \"{{to}}\""
},
"tasks": {
"dateFilter": {
"startDate": "Fecha de inicio",
"noDate": "Sin fecha",
"condition": "Condición de fecha",
"exact": "Fecha exacta",
"range": "Intervalo de fechas",
"before": "Antes de",
"after": "Después de",
"apply": "Aplicar filtro de fecha",
"exactValue": "El {{date}}",
"beforeValue": "Antes del {{date}}",
"afterValue": "Después del {{date}}",
"rangeValue": "{{date}} – {{end}}"
},
"title": "Tareas",
"status": {
"label": "Estado",
"to-do": "To Do",
"in-progress": "En progreso",
"in-review": "En revisión",
"done": "Hecho",
"archived": "Archivado",
"planned": "Planeado"
},
"priority": {
"label": "Prioridad",
"no-priority": "Sin prioridad",
"low": "Baja",
"medium": "Media",
"high": "Alta",
"urgent": "Urgente"
},
"view": {
"board": "Tablero",
"list": "Lista",
"backlog": "Backlog",
"gantt": "Gantt",
"heading": "Vista"
},
"common": {
"selectTask": "Seleccionar tarea",
"loadingTask": "Cargando tarea...",
"taskNotFound": "Tarea no encontrada",
"taskNotFoundDescription": "La tarea que buscas no existe o ha sido eliminada.",
"ticketAmbiguous": "El ID coincide con más de una tarea",
"ticketAmbiguousDescription": "{{ticketId}} coincide con tareas de más de un proyecto en este espacio de trabajo. Asigna una clave diferente a uno de esos proyectos para que el enlace funcione.",
"ticketNotFoundDescription": "No existe ninguna tarea con el ID {{ticketId}} en este espacio de trabajo, o no tienes acceso a ella.",
"customFields": "Custom Fields"
},
"detail": {
"subtaskOf": "Subtarea de",
"activity": "Actividad",
"noActivity": "No hay actividad",
"openInFullPage": "Abrir en página completa",
"titlePlaceholder": "Click para añadir título",
"addDescription": "Añadir una descripción...",
"editor": {
"ariaLabel": "Editor de descripción de tareas",
"placeholder": "Escribe una descripción...",
"previewImage": "Vista previa de imagen",
"autoDetect": "Auto detectar",
"copyCode": "Copiar código",
"copy": "Copiar",
"copied": "Copiado",
"attachFile": "Adjuntar fichero",
"dropToUpload": "Arrastra una imagen para subir",
"checkbox": {
"markIncomplete": "Marcar tarea como incompleta",
"markComplete": "Marcar tarea como completa"
},
"upload": {
"loading": "Subiendo fichero...",
"failed": "Error al subir fichero",
"imageSuccess": "Imagen subida",
"fileSuccess": "Fichero adjunto"
},
"slash": {
"groups": {
"text": "Texto",
"lists": "Listas",
"insert": "Insertar"
},
"empty": "Sin comandos",
"commands": {
"paragraph": "Texto",
"heading-2": "Cabecera",
"bullet-list": "Lista de bullets",
"task-list": "Lista de To-dos",
"ordered-list": "List numerada",
"blockquote": "Cita",
"code-block": "Bloque de código",
"table": "Tabla",
"file": "Fichero"
}
},
"languages": {
"bash": "Bash",
"csharp": "C#",
"cpp": "C++",
"css": "CSS",
"clojure": "Clojure",
"cypher": "Cypher",
"dart": "Dart",
"diff": "Diff",
"elixir": "Elixir",
"excel": "Excel",
"go": "Golang",
"graphql": "GraphQL",
"html": "HTML",
"haskell": "Haskell",
"json": "JSON",
"java": "Java",
"javascript": "JavaScript",
"kotlin": "Kotlin",
"makefile": "Makefile",
"markdown": "Markdown",
"mermaid": "Mermaid",
"ocaml": "OCaml",
"php": "PHP",
"perl": "Perl",
"plaintext": "Plaintext",
"python": "Python",
"r": "R",
"reasonml": "ReasonML",
"ruby": "Ruby",
"rust": "Rust",
"sql": "SQL",
"swift": "Swift",
"toml": "TOML",
"terraform": "Terraform",
"typescript": "TypeScript",
"xml": "XML",
"yaml": "YAML"
},
"embed": {
"choice": {
"embedVideo": "Incrustar vídeo",
"keepAsLink": "Mantener como enlace"
},
"inputPlaceholder": "Pegar URL",
"embeddedContent": "Contenido incrustado",
"asLink": "Como enlace",
"submit": "Incrustar",
"errors": {
"invalidUrl": "Introduce una URL válida",
"onlyYoutube": "Sólo los enlaces de YouTube pueden ser incrustados."
},
"onlyYoutubeInline": "Sólo los enlaces de YouTube pueden ser incrustados. Añádelo como enlace."
},
"mermaid": {
"renderFailed": "No se pudo renderizar el diagrama de Mermaid"
},
"image": {
"large": "Large",
"medium": "Medium",
"reset": "Reset size",
"resizeHandle": "Resize image",
"small": "Small"
},
"saved": "Saved",
"saving": "Saving…",
"saveFailed": "Changes could not be saved",
"retrySave": "Retry"
}
},
"entity": {
"task": "Tarea"
},
"relations": {
"title": "Relaciones",
"tasksInProject": "Tareas en el proyecto",
"linkError": "Error al vincular tarea",
"empty": "No hay tareas relacionadas",
"searchPlaceholder": "Buscar tareas para vincular...",
"noTasksFound": "No se han encontrado tareas",
"openTask": "Abrir tarea",
"removeRelation": "Eliminar relación",
"related": "Relacionadas",
"blocks": "Bloquea",
"selectTask": "Selecciona una tarea para vincular",
"types": {
"blocks": "bloquea",
"related": "relacionada con",
"blocked_by": "bloqueada por"
},
"blockedBy": "Bloqueada por",
"parentPlaceholder": "Establecer tarea principal…"
},
"subtasks": {
"title": "Sub-tareas",
"inputPlaceholder": "Título de la subtarea...",
"addAction": "Añadir",
"empty": "No hay subtareas aún",
"createError": "Error al crear subtarea",
"deleteSuccess": "Tarea eliminada correctamente",
"deleteError": "Error al eliminar tarea",
"deleteDialogTitle": "¿Eliminar tarea?",
"deleteDialogDescription": "Esto eliminará permanentemente la tarea y sus datos. Esta acción no puede deshacerse.",
"deleteAction": "Eliminar tarea",
"completeAria": "Marcar subtarea como completada",
"progress": "{{completed}} de {{total}} subtareas completadas",
"noCompletionColumn": "This project has no matching column for completing or reopening this subtask."
},
"properties": {
"title": "Propiedades",
"labels": "Etiquetas",
"addLabels": "Añadir etiquetas",
"copyTaskLink": "Copiar enlace a tarea",
"copyTaskBranch": "Copiar la rama de la tarea",
"taskLinkCopied": "Enlace de la tarea copiado",
"taskBranchCopied": "Nombre de la rama copiado",
"start": "Comenzar",
"startDate": "Fecha de inicio",
"noDate": "Sin fecha",
"dates": "Fechas",
"project": "Proyecto"
},
"popover": {
"assignee": {
"unassigned": "No asignada",
"updateError": "Error al actualizar el asignado a esta tarea"
},
"status": {
"updateError": "Error al actualizar el estado de esta tarea"
},
"priority": {
"updateError": "Error al actualizar la prioridad de esta tarea"
},
"dueDate": {
"updateError": "Error al actualizar la fehca de vencimiento de la tarea",
"clear": "Eliminar fecha"
},
"recurrence": {
"toggle": "Repetir",
"repeats": "Se repite",
"pattern": {
"daily": "Diariamente",
"weekly": "Semanalmente",
"monthly": "Mensualmente",
"yearly": "Anualmente",
"periodically": "Periódicamente"
},
"every": "Cada",
"interval": "Intervalo",
"unit": {
"label": "Unidad",
"days_many": "días",
"days_one": "día",
"days_other": "días",
"weeks_many": "semanas",
"weeks_one": "semana",
"weeks_other": "semanas",
"months_many": "meses",
"months_one": "mes",
"months_other": "meses",
"years_many": "años",
"years_one": "año",
"years_other": "años"
},
"onDays": "Estos días",
"hint": "Al completar esta tarea, se crea la siguiente.",
"updateError": "No se pudo actualizar la repetición de la tarea"
},
"startDate": {
"updateError": "Error al actualizar la fecha de inicio de la tarea",
"clear": "Eliminar fecha de inicio"
},
"labels": {
"searchPlaceholder": "Buscar etiquetas...",
"empty": "No se han encontrado etiquetas",
"create": "Crear \"{{name}}\"",
"chooseColor": "Elegir color",
"updateError": "Error al actualizar etiqueta",
"createSuccess": "Etiqueta creada y añadida",
"createError": "Error al crear etiqueta",
"colors": {
"stone": "Piedra",
"slate": "Pizarra",
"lavender": "Lavanda",
"sage": "Savia",
"forest": "Bosque",
"amber": "Ámbar",
"terracotta": "Terracota",
"rose": "Rosa",
"crimson": "Carmesí",
"lagoon": "Laguna",
"ocean": "Océano",
"orchid": "Orquídea",
"sky": "Cielo"
},
"editLabels": "Editar etiquetas"
}
},
"backlog": {
"pageTitle": "Backlog de {{name}}",
"noTasksToMove": "No hay tareas planeadas para mover",
"moveAllConfirm": "Mover las {{count}} tareas planeadas a To Do?",
"moveAllSuccess": "{{count}} tareas movidas correctamente a To Do",
"plan": "Planear",
"moveAllTooltip": "Mover todas las planeadas a To Do",
"moveAll": "Mover todas",
"addTask": "Añadir tarea",
"sections": {
"planned": "Planeadas",
"archived": "Archivadas"
},
"noTasksInSection": "No hay tareas en {{section}}",
"filters": {
"dueThisWeek": "Para esta semana",
"dueNextWeek": "Para la semana que viene",
"noDueDate": "Sin fecha de vencimiento"
}
},
"sort": {
"direction": "Dirección",
"ascending": "Ascendente",
"descending": "Descendente",
"fields": {
"position": "Manual (posición)",
"createdAt": "Fecha de creación",
"priority": "Prioridad",
"dueDate": "Fecha de vencimiento",
"title": "Título",
"number": "Número de tarea"
}
},
"boardFilters": {
"selectedCount": "{{count}} selecionadas",
"subjects": {
"status": "Estado",
"priority": "Prioridad",
"assignee": "Asignado",
"dueDate": "Fecha de vencimiento",
"labels": "Etiquetas"
},
"operators": {
"isAnyOf": "es alguno de",
"includeAnyOf": "incluye alguno de",
"is": "es",
"isNot": "no es",
"isNoneOf": "no es ninguno de",
"include": "incluye",
"exclude": "excluye"
},
"allCustomFieldValues": "All values",
"noCustomFieldValues": "No custom field values",
"noValuesUsedYet": "No values used yet"
},
"gantt": {
"searchPlaceholder": "Buscar tickets planificados...",
"pageTitle": "{{name}} / Gantt",
"title": "Diagrama de Gantt",
"hideTasks": "Esconder tareas",
"showTasks": "Mostrar tareas",
"noTasks": "No hay tareas planificadas",
"noTasksSubtitle": "Añade una fecha de comienzo, fecha de vencimiento o ambas para a las tareas para mostrarlas en la línea temporal del proyecto.",
"noTasksFound": "No se han encontrado tareas",
"taskHeader": "Tarea",
"updateDatesError": "Error al actualizar las fechas de la tarea",
"resizeStart": "Cambiar la fecha de comienzo",
"resizeDue": "Cambiar la fecha de vencimiento",
"taskAriaLabel": "{{title}}: abrir o arrastrar para mover",
"jumpToToday": "Jump to today",
"previousPeriod": "Previous period",
"nextPeriod": "Next period",
"periodStart": "Timeline start date",
"showTaskDates": "Show task dates"
},
"delete": {
"title": "¿Eliminar tarea?",
"description": "Esto eliminará permanentemente la tarea y sus datos. Esta acción no puede deshacerse.",
"action": "Eliminar tarea",
"success": "Tarea eliminada correctamente",
"error": "Error al eliminar la tarea"
},
"duplicate": {
"titleSuffix": "{{title}} (copia)",
"success": "Tarea duplicada correctamente",
"error": "Error al duplicar la tarea"
},
"archive": {
"success": "Se han archivado {{count}} tareas",
"confirmTitle_one": "¿Archivar {{count}} tarea completada?",
"confirmTitle_many": "¿Archivar {{count}} tareas completadas?",
"confirmTitle_other": "¿Archivar {{count}} tareas completadas?",
"confirmDescription": "Saldrán del tablero y pasarán a la sección «Archivadas» del backlog."
},
"listView": {
"addTask": "Añadir tarea",
"archiveAllTooltip": "Archivar todas las tareas completadas",
"noTasks": "No hay tareas",
"collapseSubtasks": "Ocultar sub-tareas de {{title}}",
"expandSubtasks": "Mostrar sub-tareas de {{title}}",
"subtaskLevel": "Sub-tarea, nivel {{level}}",
"subtasksLoadError": "No se pudieron cargar las sub-tareas, así que las tareas se muestran sin su jerarquía."
},
"kanban": {
"addTask": "Añadir tarea",
"automaticallySortedHint": "Ordenado automáticamente por {{sort}}"
},
"pr": {
"merged": "Mergeada",
"draft": "Borrador",
"open": "Abierta",
"label": "Pull Request",
"count_one": "{{count}} PR",
"count_other": "{{count}} PRs",
"count_many": "{{count}} PRs",
"closed": "Cerrado"
},
"assignee": {
"label": "Asignado",
"unassigned": "Sin asignar"
},
"dueDate": {
"label": "Fecha de vencimiento",
"clear": "Eliminar fecha",
"updateError": "Error al actualizar fecha de vencimiento",
"clearError": "Error al eliminar fecha de vencimiento"
},
"recurrence": {
"daily_many": "Cada {{count}} días",
"daily_one": "Cada día",
"daily_other": "Cada {{count}} días",
"weekly_many": "Cada {{count}} semanas",
"weekly_one": "Cada semana",
"weekly_other": "Cada {{count}} semanas",
"monthly_many": "Cada {{count}} meses",
"monthly_one": "Cada mes",
"monthly_other": "Cada {{count}} meses",
"yearly_many": "Cada {{count}} años",
"yearly_one": "Cada año",
"yearly_other": "Cada {{count}} años",
"onDays": "{{rule}}: {{days}}"
},
"labels": {
"empty": "No hay etiquetas disponibles"
},
"update": {
"error": "Error al actualizar tarea"
},
"contextMenu": {
"copyLink": "Copiar enlace",
"copyLinkSuccess": "¡Enlace a la tarea copiado!"
},
"actions": {
"duplicate": "Duplicar",
"archive": "Archivar",
"markAsPlanned": "Marcar como planeada",
"delete": "Eliminar..."
},
"bulk": {
"selectedCount": "{{count}} seleccionadas",
"moveToBacklog": "Mover al backlog",
"moveToBacklogSuccess": "Se han movido {{count}} tareas al backlog",
"moveToBacklogError": "Error al mover tareas al backlog",
"moveToBoard": "Mover al tablero",
"moveToBoardSuccess": "Se han movido {{count}} tareas al tablero",
"moveToBoardError": "Error al mover tareas al tablero",
"delete": "Eliminar tareas",
"deleteConfirmTitle_one": "¿Eliminar {{count}} tarea?",
"deleteConfirmTitle_many": "¿Eliminar {{count}} tareas?",
"deleteConfirmTitle_other": "¿Eliminar {{count}} tareas?",
"deleteConfirmDescription": "Esto eliminará permanentemente las tareas seleccionadas y todos sus datos. Esta acción no puede deshacerse.",
"deleteSuccess": "{{count}} tareas eliminadas",
"deleteError": "Error al eliminar tareas",
"archive": "Archivar tareas",
"archiveSuccess": "{{count}} tareas archivadas",
"archiveError": "Error al archivar tareas",
"updateSuccess": "{{count}} tareas actualizadas",
"updateError": "Error al actualizar tareas",
"assignTo": "Asignar a",
"assignSuccess": "{{count}} tareas asignadas",
"assignError": "Error al asignar tareas",
"setPriority": "Modificar prioridad",
"updatePriorityError": "Error al actualizar la prioridad",
"addLabel": "Añadir etiqueta",
"addLabelSuccess": "Etiqueta añadida a {{count}} tareas",
"addLabelError": "Error al añadir etiqueta",
"updateDueDateError": "Error al actualizar fecha de vencimiento",
"actions": "Actiones",
"searchActions": "Buscar acciones...",
"noActionsFound": "No se han encontrado acciones.",
"changeStatus": "Cambiar estado",
"clearSelection": "Borrar selección",
"selectAll": "Seleccionar todo",
"moreActions": "Más acciones",
"statusPlaceholder": "Cambiar estado…",
"priorityPlaceholder": "Establecer prioridad…",
"assigneePlaceholder": "Asignar a…",
"labelPlaceholder": "Añadir etiqueta…",
"columnPlaceholder": "Mover a la columna…"
},
"move": {
"title": "Mover tarea",
"projectLabel": "Proyecto de destino",
"projectPlaceholder": "Selecciona un proyecto",
"statusLabel": "Estado de destino",
"statusHintKeep": "El flujo de trabajo de este proyecto ya admite el estado actual.",
"statusHintAdjust": "Elige el estado que se usará en el proyecto de destino.",
"action": "Mover tarea",
"success": "Tarea movida correctamente",
"error": "Error al mover la tarea"
},
"editor": {
"table": {
"addColumnBefore": "Insertar columna a la izquierda",
"addColumnAfter": "Insertar columna a la derecha",
"deleteColumn": "Eliminar columna",
"addRowBefore": "Insertar fila encima",
"addRowAfter": "Insertar fila debajo",
"deleteRow": "Eliminar fila",
"deleteTable": "Eliminar tabla"
}
},
"calendar": {
"dayTasksAriaLabel": "Mostrar todas las tareas del {{date}}",
"moreTasks": "+{{count}} más",
"nextMonth": "Mes siguiente",
"noTasks": "No hay tareas planificadas",
"noTasksSubtitle": "Añade una fecha de inicio, una fecha de vencimiento o ambas a las tareas para mostrarlas en el calendario.",
"pageTitle": "{{name}} / Calendario",
"previousMonth": "Mes anterior",
"taskAriaLabel": "{{title}}, {{range}}: abrir tarea",
"title": "Calendario",
"today": "Hoy",
"loadError": "No se pudieron cargar las tareas.",
"noTasksThisMonth": "No hay nada planificado este mes"
},
"descriptionSearchLoading": "Searching full descriptions…",
"descriptionSearchError": "Description search failed. Results may be incomplete.",
"descriptionRetry": "Retry",
"descriptionLoading": "Loading description…",
"descriptionLoadError": "The description could not be loaded. Retry to load the current version.",
"checklistProgress": "{{completed}} de {{total}} elementos de la lista completados",
"customFields": {
"fields": "Campos",
"empty": "Vacío",
"required": "Obligatorio",
"enterKey": "Intro",
"toSave": "para guardar",
"clear": "Borrar",
"setValue": "Establecer {{field}}…",
"noMatches": "No hay opciones que coincidan",
"missingRequired_one": "{{count}} campo obligatorio está vacío",
"missingRequired_many": "{{count}} campos obligatorios están vacíos",
"missingRequired_other": "{{count}} campos obligatorios están vacíos",
"saveError": "No se pudo guardar {{field}}",
"moreFields_one": "{{count}} campo más",
"moreFields_many": "{{count}} campos más",
"moreFields_other": "{{count}} campos más",
"manage": "Gestionar campos"
},
"board": {
"reorderFailed": "Could not move task. Please try again.",
"keyboardInstructions": "Pulsa Espacio para ver la vista previa y Enter para abrir esta tarea. Usa Alt u Opción con las flechas para moverla.",
"loadErrorTitle": "Este tablero no se ha cargado",
"loadErrorDescription": "Algo salió mal al obtener sus tareas. Revisa tu conexión e inténtalo de nuevo.",
"refreshError": "No se pudo actualizar este tablero, así que puede estar desactualizado.",
"tryAgain": "Reintentar"
},
"toolbar": {
"search": "Buscar tareas",
"clearSearch": "Borrar búsqueda",
"taskCount_one": "{{count}} tarea",
"taskCount_many": "{{count}} tareas",
"taskCount_other": "{{count}} tareas",
"shownCount_one": "{{shown}} de {{count}} tarea",
"shownCount_many": "{{shown}} de {{count}} tareas",
"shownCount_other": "{{shown}} de {{count}} tareas"
},
"display": {
"title": "Visualización",
"sortBy": "Ordenar por",
"showOnCards": "Mostrar en tarjetas",
"showOnRows": "Mostrar en filas",
"checklistProgress": "Progreso de la lista",
"projectBackground": "Fondo del proyecto",
"layout": "Diseño",
"includeSubtasks": "Incluir subtareas",
"useProjectDefault": "Usar el valor predeterminado del proyecto"
},
"filterBar": {
"label": "Filtros activos",
"removeFilter": "Quitar filtro de {{name}}",
"noMatches": "Ninguna tarea coincide con tu búsqueda o tus filtros.",
"customFieldsLoading": "Loading custom-field values. Results are shown without custom-field filters.",
"customFieldsRefreshError": "Custom-field values could not be refreshed. Results may be out of date.",
"customFieldsUnavailable": "Custom-field values could not be loaded. Results are shown without custom-field filters."
},
"filterMenu": {
"addFilter": "Añadir filtro…",
"searchSubject": "{{name}}…",
"noResults": "Sin resultados"
},
"shortcuts": {
"assignedToMe": "Asignada a ti",
"idCopied": "ID de la tarea copiado",
"titleCopied": "Título de la tarea copiado",
"markdownCopied": "Copiado como Markdown",
"copyFailed": "No se ha podido copiar al portapapeles.",
"pageUrlCopied": "URL de la página copiada"
},
"due": {
"overdueDays_one": "{{count}} d de retraso",
"overdueDays_many": "{{count}} d de retraso",
"overdueDays_other": "{{count}} d de retraso",
"overdueWeeks_one": "{{count}} sem. de retraso",
"overdueWeeks_many": "{{count}} sem. de retraso",
"overdueWeeks_other": "{{count}} sem. de retraso",
"today": "Hoy",
"tomorrow": "Mañana",
"inDays_one": "En {{count}} día",
"inDays_many": "En {{count}} días",
"inDays_other": "En {{count}} días",
"fullDate": "Vence el {{date}}"
},
"datePicker": {
"dueDatePlaceholder": "Establecer fecha límite…",
"startDatePlaceholder": "Establecer fecha de inicio…",
"datePlaceholder": "Establecer fecha…",
"thisWeekend": "Este fin de semana",
"nextWeek": "La próxima semana",
"pickDate": "Elegir una fecha",
"startsOn": "Empieza: {{date}}",
"beforeStart": "{{date}} es anterior a la fecha de inicio",
"afterDue": "{{date}} es posterior a la fecha límite"
}
},
"invitations": {
"email": {
"subject": "{{inviterName}} te ha invitado a unirte a {{workspaceName}} en {{instanceName}}",
"preview": "Te han invitado a {{workspaceName}} en Kaneo",
"title": "Únete a {{workspaceName}}",
"subtitle": "{{inviterName}} ({{inviterEmail}}) te ha invitado a colaborar en Kaneo.",
"cta": "Aceptar invitación",
"sameEmail": "Puedes aceptarla con el mismo correo que recibió este mensaje.",
"ignore": "Si no esperabas este correo, puedes ignorarlo sin problema.",
"footer": "Invitación a un espacio de trabajo de Kaneo",
"details": {
"title": "Detalles de la invitación",
"sentTo": "Enviada a",
"instance": "Instancia",
"role": "Rol",
"expires": "Expira"
}
},
"pageTitle": "Invitaciones",
"pendingInvitations": "Invitaciones pendientes",
"acceptSubtitle": "Aceptar invitaciones para unirse a espacios de trabajo",
"noPendingTitle": "No hay invitaciones pendientes",
"noPendingDescription": "No tienes ninguna invitación pendiente a espacios de trabajo en este momento.",
"continueToSetup": "Continuar a la configuración",
"skipForNow": "Saltar por ahora",
"table": {
"workspace": "Espacio de trabajo",
"invitedBy": "Invitado Por",
"expires": "Expira"
},
"toast": {
"acceptError": "Error al aceptar invitación",
"acceptSuccess": "¡Invitación aceptada! Bienvenido al equipo.",
"rejectError": "Error al rechazar invitación",
"rejectSuccess": "Invitación rechazada"
}
},
"workspace": {
"projects": {
"pageTitle": "Proyectos",
"createProject": "Crear proyecto",
"title": "Título",
"progress": "Progreso",
"targetDate": "Fecha objetivo",
"dueDate": "Fecha de vencimiento",
"status": "Estado",
"emptyTitle": "No tienes proyectos aún",
"emptyDescription": "Comienza creando tu primer proyecto.",
"projectStatus": {
"notStarted": "Sin comenzar",
"complete": "Completado",
"inProgress": "En progreso"
},
"noDueDate": "Sin fecha de vencimiento",
"reorderHandle": "Reordenar proyecto",
"reorderError": "No se pudieron reordenar los proyectos",
"emptyDescriptionReadOnly": "Todavía no hay proyectos en este espacio de trabajo. Pide a un admin que cree uno.",
"unavailable": {
"backToWorkspace": "Back to workspace",
"noAccessDescription": "Ask a workspace admin to give you access.",
"noAccessTitle": "You don't have access to this project",
"notFoundDescription": "This project doesn't exist or has been deleted.",
"notFoundTitle": "Project not found"
}
},
"search": {
"pageTitle": "Buscar",
"backToDashboard": "Volver al panel de control",
"placeholder": "Busca tareas por título o identificador (e.g. DEP-23)...",
"hint": "Buscar en todos los proyectos de este espacio de trabajo. Usa identificadores como DEP-23 para encontrar tareas específicas.",
"searching": "Buscando...",
"resultsFound_one": "{{count}} resultado",
"resultsFound_other": "{{count}} resultados",
"noResultsTitle": "No se han encontrado resultados",
"noResultsDescription": "Intenta ajustar los términos de búsqueda o busca otra cosa",
"startTitle": "Empieza a buscar",
"startDescription": "Escribe algún término para encontrar tareas entre todos los proyectos",
"quickSearchesLabel": "Búsqueda rápida:",
"suggestionHighPriority": "Alta prioridad",
"suggestionBug": "Bugs",
"suggestionFeature": "Features",
"suggestionInProgress": "En progreso",
"suggestionCompleted": "Completadas",
"resultsFound_many": "{{count}} resultados"
},
"create": {
"pageTitle": "Crear espacio de trabajo",
"heading": "Crear un nuevo espacio de trabajo",
"subtitle": "Los espacios de trabajo son entornos compartidos donde los equipos pueden trabajar en proyectos, ciclos e issues.",
"nameLabel": "Nombre del espacio de trabajo",
"namePlaceholder": "Introduce un nombre para el espacio de trabajo",
"descriptionLabel": "Descripción (opcional)",
"descriptionPlaceholder": "Añade una descripción para tu espacio de trabajo",
"required": "Requerido",
"creating": "Creando...",
"submit": "Crear espacio de trabajo",
"success": "Espacio de trabajo creado correctamente",
"error": "Error al crear espacio de trabajo"
},
"home": {
"activity": {
"commented": "commented",
"empty": "Nothing has happened in the last 30 days.",
"loadError": "Activity couldn't be loaded.",
"title": "Activity",
"updated": "updated the task"
},
"greeting": {
"afternoon": "Good afternoon",
"evening": "Good evening",
"morning": "Good morning"
},
"newTask": "New task",
"pageTitle": "Home",
"projects": {
"all": "All projects",
"tasks_many": "{{count}} tasks",
"tasks_one": "{{count}} task",
"tasks_other": "{{count}} tasks",
"title": "Your projects",
"loadError": "Projects couldn't be loaded."
},
"upNext": {
"assigned_many": "{{count}} assigned to you",
"assigned_one": "{{count}} assigned to you",
"assigned_other": "{{count}} assigned to you",
"title": "Up next",
"viewAll": "View all"
},
"week": {
"more_many": "+{{count}} more",
"more_one": "+{{count}} more",
"more_other": "+{{count}} more",
"truncated": "The week preview includes only the first {{shown}} of {{total}} assigned tasks."
}
},
"myTasks": {
"emptyDescription": "Tasks assigned to you across this workspace show up here.",
"groupBy": {
"dueDate": "Due date",
"label": "Group by",
"project": "Project"
},
"pageTitle": "My tasks",
"truncated": "Showing the first {{shown}} of {{total}} tasks."
},
"myWork": {
"due": {
"later": "Later",
"noDueDate": "No due date",
"overdue": "Overdue",
"thisWeek": "This week",
"today": "Today",
"tomorrow": "Tomorrow"
},
"empty": "Nothing assigned to you",
"loadError": "Your tasks couldn't be loaded."
},
"archived": {
"description": "Contact an administrator to restore access.",
"manage": "Manage workspaces",
"otherWorkspaces": "Go to workspaces",
"title": "Workspace archived"
}
},
"team": {
"roles": {
"owner": "Propietario",
"admin": "Admin",
"member": "Miembro",
"viewer": "Observador"
},
"members": {
"pageTitle": "Miembros",
"inviteMember": "Invitar miembro",
"you": "Tú"
},
"invitations": {
"linkLabel": "Enlace de invitación",
"copyLink": "Copiar enlace",
"linkCopied": "Enlace de invitación copiado",
"copyFailed": "No se pudo copiar automáticamente. Selecciona el enlace y presiona Ctrl+C.",
"pendingBadge": "pendiente",
"expires": "Expira {{date}}"
},
"inviteModal": {
"title": "Invitar miembro al equipo",
"emailLabel": "Email",
"emailPlaceholder": "compi@company.com",
"sendInvitation": "Enviar invitación",
"success": "Invitación enviada correctamente",
"error": "Error al invitar miembro al equipo",
"createdTitle": "Invitación creada",
"shareLinkDescription": "Comparte este enlace con {{email}} para que se una al espacio de trabajo.",
"done": "Listo"
},
"membersTable": {
"emptyTitle": "No hay miembros en el equipo aún",
"emptyDescription": "Invita a tu primer miembro al equipo para comenzar.",
"columns": {
"name": "Nombre",
"role": "Rol",
"joined": "Unido",
"actions": "Acciones",
"projects": "Projects"
},
"memberRolePending": "{{role}} (Pendiente)",
"ariaCancelInvitation": "Cancelar invitacion",
"ariaInvitationActions": "Acciones de invitación",
"ariaRemoveMember": "Eliminar miembro",
"removeDialogTitle": "¿Eliminar miembro del equipo?",
"removeDialogDescription": "¿Estás seguro de que quieres eliminar a {{name}} del espacio de trabajo? Esta acción no puede deshacerse.",
"cancelDialogTitle": "¿Cancelar invitación?",
"cancelDialogDescription": "¿Estás seguro de que quieres cancelar la invitación para {{email}}? Esta acción no puede deshacerse.",
"removeMember": "Eliminar miembro",
"cancelInvitation": "Cancelar invitación",
"removeSuccess": "Miembro eliminado del equipo correctamente",
"removeError": "Error al eliminar miembro del equipo",
"cancelInviteSuccess": "Invitación cancelada correctamente",
"cancelInviteError": "Error al cancelar invitación",
"roleUpdateSuccess": "Rol actualizado",
"roleUpdateError": "Error al actualizar el rol"
},
"projectAccess": {
"allProjects": "All projects",
"allProjectsDescription": "Access every project in this workspace, including new ones.",
"description": "Choose which projects this person can see.",
"dialogDescription": "Choose which projects {{name}} can access.",
"dialogTitle": "Project access",
"editAria": "Change project access for {{name}} ({{access}})",
"label": "Project access",
"noProjects": "No projects in this workspace yet.",
"projectCount_many": "{{count}} projects",
"projectCount_one": "{{count}} project",
"projectCount_other": "{{count}} projects",
"projectsLabel": "Projects",
"save": "Save",
"selectAtLeastOne": "Choose at least one project.",
"selectedProjects": "Selected projects",
"selectedProjectsDescription": "Only access the projects you choose.",
"updateError": "Failed to update project access",
"updateSuccess": "Project access updated",
"archived": "Archived",
"allProjectsUnavailable": "Your own access is limited, so you can only give access to selected projects."
}
},
"publicProject": {
"pageTitle": "Vista pública",
"badge": "Público",
"readOnly": "Sólo lectura",
"error": {
"title": "Proyecto no encontrado",
"description": "Este proyecto no existe o no es accesible públicamente."
},
"taskCard": {
"viewDetailsAria": "Ver detalles de la tarea {{title}}"
},
"taskDetail": {
"labels": "Etiquetas",
"externalLinks": "Enlaces externos",
"pullRequestFallback": "Pull Request",
"issueFallback": "Issue",
"prStatusMerged": "Mergeada",
"prStatusDraft": "Borrador",
"prStatusOpen": "Abierta",
"dueWithDate": "Vencimiento: {{date}}",
"created": "Fecha de creación",
"dueDateLabel": "Fecha de vencimiento"
},
"theme": {
"switchToLight": "Cambiar a modo día",
"switchToDark": "Cambiar a modo oscuro"
},
"copyUrl": {
"successToast": "URL copiada",
"errorToast": "Error al copiar URL",
"copied": "Copiada",
"share": "Compartir"
},
"branding": {
"poweredBy": "Powered by"
}
},
"press": {
"title": "Press kit",
"headline": "Kaneo press kit",
"intro": "Kaneo logos and product screenshots for articles, videos, and other media.",
"description": "Kaneo press resources: product information, logos, screenshots, and contact details for journalists and creators.",
"downloadKit": "Download all assets",
"boilerplateTitle": "About Kaneo",
"boilerplate": "Kaneo is an open-source project management platform created by Andrej Acevski. Teams can organize tasks in board and list views, assign work, set priorities and due dates, and connect GitHub. Kaneo is available under the MIT license for self-hosting, or as a managed service through Kaneo Cloud.",
"logosTitle": "Logos",
"darkLogo": "Dark wordmark",
"darkLogoAlt": "Dark Kaneo logo on a light background",
"darkLogoDetail": "SVG",
"lightLogo": "Light wordmark",
"lightLogoAlt": "Light Kaneo logo on a dark background",
"lightLogoDetail": "SVG",
"icon": "App icon",
"iconAlt": "Kaneo app icon",
"iconDetail": "PNG, 512 × 512",
"download": "Download",
"screenshotsTitle": "Screenshots",
"lightScreenshot": "Board (light)",
"lightScreenshotAlt": "Kaneo board in light theme, with task cards arranged by status",
"darkScreenshot": "Board (dark)",
"darkScreenshotAlt": "Kaneo board in dark theme, with task cards arranged by status",
"contactTitle": "Press enquiries",
"contactBody": "Contact the Kaneo team for product questions, interviews, or additional materials.",
"usageContrast": "Choose the light wordmark for dark backgrounds and the dark wordmark for light backgrounds.",
"usageProportions": "Keep the original proportions and colours, without stretching or adding effects.",
"usageSpace": "Leave enough space around the logo to keep it clear and readable.",
"darkListScreenshot": "List (dark)",
"darkListScreenshotAlt": "Kaneo task list in dark theme, grouped by status with assignees, priorities, labels, and due dates",
"darkTaskScreenshot": "Task details (dark)",
"darkTaskScreenshotAlt": "Kaneo task details in dark theme, with a description, checklist, team comment, and task properties",
"darkTimelineScreenshot": "Timeline (dark)",
"darkTimelineScreenshotAlt": "Kaneo Gantt timeline in dark theme, showing scheduled tasks and their durations",
"lightListScreenshot": "List (light)",
"lightListScreenshotAlt": "Kaneo task list in light theme, grouped by status with assignees, priorities, labels, and due dates",
"lightTaskScreenshot": "Task details (light)",
"lightTaskScreenshotAlt": "Kaneo task details in light theme, with a description, checklist, team comment, and task properties",
"lightTimelineScreenshot": "Timeline (light)",
"lightTimelineScreenshotAlt": "Kaneo Gantt timeline in light theme, showing scheduled tasks and their durations"
},
"landing": {
"sponsors": {
"ciSponsor": "Socios"
},
"founder": {
"title": "Why Kaneo exists",
"intro": "I'm Andrej, and I created Kaneo because I was tired of project management tools that got in the way more than they helped. After years of using bloated, overcomplicated platforms that distracted from actual work, I knew there had to be a better way.",
"problem": "The problem wasn't that these tools lacked features - it was that they had too many. Every notification, every unnecessary button, every complex workflow was pulling my team away from what mattered: building great products.",
"principle": "I believe the best tools are invisible. They should amplify your team's natural workflow, not force you to adapt to theirs. Kaneo is built on the principle that less is more - every feature exists because it solves a real problem, not because it looks impressive in a demo."
},
"hero": {
"cloudCta": "Try Kaneo Cloud",
"trialNote": "14-day cloud trial. No credit card required.",
"github": "GitHub",
"productHunt": "Product Hunt",
"title": "Project management",
"titleAccent": "that doesn't become the project.",
"description": "Open-source project management with boards, Gantt charts, and GitHub integration. Self-host for free with SSO included, or let Kaneo Cloud handle the hosting.",
"pricingCta": "See pricing",
"appStore": "App Store"
},
"navigation": {
"product": "Product",
"pricing": "Pricing",
"resources": "Resources",
"docs": "Documentation",
"blog": "Blog",
"guides": "Guides",
"comparisons": "Compare tools",
"roadmap": "Roadmap",
"community": "Comunidad",
"menu": "Menu",
"closeMenu": "Close menu",
"home": "Kaneo home",
"signIn": "Sign In",
"getStarted": "Get Started"
},
"showcase": {
"label": "Kaneo product views",
"controls": "Choose a product view",
"play": "Play product views",
"pause": "Pause product views",
"board": "Board",
"list": "Backlog",
"gantt": "Gantt"
},
"features": {
"tasks": {
"label": "Subtasks & context",
"title": "Big tasks. Clear next steps.",
"description": "Break work into subtasks, assign each one, and track progress without losing the original brief. Every detail stays with the work."
},
"github": {
"label": "GitHub integration",
"title": "From pull request to done.",
"description": "Issues and labels sync both ways. Linked pull requests move tasks through review to done as your code is opened and merged.",
"link": "Set up GitHub"
},
"hosting": {
"title": "Run it on your own server.",
"description": "Deploy with Docker and keep your workspace on infrastructure you control.",
"link": "Self-host Kaneo"
},
"source": {
"title": "The code is open, too.",
"description": "Read the source, report an issue, or contribute a change. Development happens on GitHub.",
"link": "View the source"
},
"preview": {
"taskAlt": "Interactive Kaneo task and subtask preview.",
"githubAlt": "Interactive preview of a GitHub merge updating a Kaneo task.",
"taskTitle": "Publish the new homepage",
"taskDescription": "Update the copy and check the layout before the next release.",
"checklistDone": "Review the copy",
"checklistOpen": "Check the mobile layout",
"inProgress": "In Progress",
"high": "High",
"date": "Oct 12",
"design": "design",
"done": "Done",
"relationsAlt": "Interactive Kaneo task dependencies preview.",
"inReview": "In Review",
"trySubtasks": "Try checking off a subtask.",
"tryGithub": "Preview a merge to see the task update.",
"tryRelations": "Open a linked task to follow the connection.",
"mergeAction": "Preview merge",
"resetAction": "Reset preview",
"mergedHint": "Pull request merged. Task moved to Done.",
"progress": "{{completed}} of {{total}} subtasks complete",
"backToTask": "Back to the homepage task",
"releaseNotes": "Write the release notes",
"dependencyDescription": "The homepage is waiting on the mobile review. Keep the launch notes linked for context.",
"mobileDescription": "Check the new homepage on narrow screens before it goes live.",
"notesDescription": "Capture what changed for the launch announcement."
},
"relations": {
"label": "Linked tasks & dependencies",
"title": "See what’s holding things up.",
"description": "Connect blockers, follow dependencies, and keep related work close. Open a linked task to see the context behind the next step."
}
},
"seo": {
"title": "Kaneo — Open-source, self-hosted project management",
"description": "Open-source project management with boards, Gantt charts, and GitHub integration. Self-host for free with SSO included, or use Kaneo Cloud."
},
"resources": {
"eyebrow": "Make it your own",
"title": "A clear path from trying it to using it.",
"description": "Set up your server, connect your tools, or compare Kaneo with your current tracker.",
"sso": {
"title": "Bring your own identity provider",
"description": "Configure OIDC single sign-on in the free self-hosted build."
},
"mcp": {
"title": "Connect your AI tools",
"description": "Use MCP to work with tasks and projects through an AI client."
},
"linear": {
"title": "Compare Kaneo and Linear",
"description": "See the differences in hosting, licensing, and workflow."
},
"startups": {
"description": "What a startup needs from a tracker, and what Kaneo Cloud costs as you hire.",
"title": "Project management for startups"
}
},
"product": {
"title": "Before you get started",
"description": "The practical details about hosting, planning, and connecting your team.",
"overview": "Kaneo is an open-source, MIT-licensed project management platform with boards, backlog, Gantt and calendar views, custom fields, time tracking, and GitHub integration. Self-host it on your own infrastructure or use Kaneo Cloud.",
"hosting": {
"question": "Is Kaneo free to self-host?",
"answer": "Yes. Kaneo is MIT licensed and free to self-host, with single sign-on included. Run the application alongside PostgreSQL using Docker Compose, or deploy with the official Helm chart. You manage infrastructure, updates, and backups.",
"link": "Read the installation guide"
},
"planning": {
"question": "Does Kaneo have Gantt charts?",
"answer": "Yes. Kaneo includes Gantt and calendar views alongside boards, lists, and backlog planning. Use task start dates and due dates to plan work on a timeline. Budgeting, baseline comparisons, and sprint burndown reports are outside its current scope.",
"link": "Compare planning features"
},
"sso": {
"question": "Is single sign-on included?",
"answer": "Yes. The free self-hosted build supports Google, GitHub, Discord, and custom OAuth/OIDC providers. Configure your provider on your instance without purchasing a separate Kaneo edition.",
"link": "Configure OIDC"
},
"agents": {
"question": "Can AI clients work with Kaneo?",
"answer": "Yes. Kaneo provides an MCP server through the @kaneo/mcp package and an HTTP endpoint. Compatible AI clients can read and update tasks using an API key tied to a user, subject to workspace permissions.",
"link": "Read the MCP guide"
},
"mobile": {
"answer": "Yes. Kaneo is on the App Store for iPhone and iPad, and Android is coming soon. The app is free for Kaneo Cloud accounts. Connecting it to a self-hosted server is a one-time $9.99 unlock per person, and like the rest of Kaneo, the app is open source.",
"link": "Download on the App Store",
"question": "Is there a mobile app?"
}
},
"comparison": {
"feature": "Feature",
"yes": "Yes",
"no": "No"
},
"selfHostingGuide": {
"summary": "What self-hosting involves, with links to the maintained Docker Compose configuration and installation steps.",
"answer": "To self-host Kaneo, run the application and PostgreSQL with Docker Compose, configure your public URL and secrets, and put a TLS reverse proxy in front. The installation guide specifies at least 2 GB of RAM and 10 GB of disk space. Plan for ongoing updates, database backups, and storage for uploaded files.",
"requirements": "The documented minimum is 2 GB of RAM and 10 GB of disk space, with Docker 20.10 or newer and Docker Compose V2. Allow more capacity for your workload, database growth, and uploaded files.",
"compose": "Use the maintained compose.yml in the Docker Compose guide. It defines PostgreSQL, a persistent database volume, the Kaneo application, and health checks. Configure the environment file before starting the services; for production, pin an image version so updates are deliberate.",
"backups": "Back up both PostgreSQL and any object storage used for uploads. Choose a schedule based on how much work your team can afford to lose, store copies off the application server, and test restoring them before you need them.",
"worth": "Self-hosting makes sense when you need control over infrastructure and data, and someone can own maintenance. Include server capacity, storage, backups, and that maintenance time when comparing costs with a managed service.",
"minimum": "The installation guide specifies Docker 20.10 or newer, Docker Compose V2, at least 2 GB of RAM, and 10 GB of disk space. The Compose setup includes PostgreSQL. Redis is optional for a single API instance.",
"composeLink": "Docker Compose configuration",
"composeLinkDescription": "The maintained compose.yml with persistent storage and health checks.",
"startLink": "Start and verify the services",
"startLinkDescription": "Start the stack, inspect its status, and check that the application is available."
}
},
"mobile": {
"common": {
"save": "Guardar",
"cancel": "Cancelar",
"delete": "Eliminar",
"retry": "Reintentar",
"somethingWrong": "Algo ha salido mal",
"close": "Cerrar"
},
"errors": {
"notSignedIn": "No has iniciado sesión",
"unreachable": "No se puede conectar con el servidor. Comprueba tu conexión y la dirección del servidor.",
"sessionExpired": "Tu sesión ha caducado. Vuelve a iniciar sesión.",
"forbidden": "No tienes permiso para hacer eso.",
"notFound": "No encontrado.",
"tooManyRequests": "Demasiadas solicitudes. Espera un momento.",
"serverProblem": "El servidor ha tenido un problema ({{status}}).",
"requestFailed": "La solicitud ha fallado ({{status}}).",
"notKaneo": "{{url}} no parece un servidor de Kaneo.",
"noInstance": "No se ha encontrado ninguna instancia de Kaneo en {{url}} (HTTP {{status}}).",
"noSession": "El servidor no ha devuelto ninguna sesión. Prueba a iniciar sesión desde el navegador.",
"deviceFailed": "Error al iniciar sesión en el dispositivo (HTTP {{status}}).",
"apiKeyRejected": "Esa clave de API ha sido rechazada.",
"signInRejected": "El servidor no ha aceptado el inicio de sesión.",
"uploadFailed": "Error al subir el archivo ({{status}})"
},
"signIn": {
"tagline": "Gestión de proyectos sencilla. Conéctate a Kaneo Cloud o a tu propia instancia.",
"cloud": "Kaneo Cloud",
"selfHosted": "Autoalojado",
"captcha": "Este servidor requiere una verificación en el navegador para este paso. Usa «Continuar en el navegador».",
"invalidClient": "Este servidor no permite iniciar sesión con dispositivos. Pide a su administrador que añada «kaneo-cli» a DEVICE_AUTH_CLIENT_IDS, o inicia sesión con contraseña o clave de API.",
"serverAddress": "Dirección del servidor",
"serverAddressHint": "La dirección en la que abres Kaneo. Usa http:// para servidores sin TLS. Si la API está en otro host, introduce la dirección de la API.",
"connect": "Conectar",
"recent": "Recientes",
"change": "Cambiar",
"email": "Correo electrónico",
"password": "Contraseña",
"togglePassword": "Mostrar u ocultar contraseña",
"signIn": "Iniciar sesión",
"or": "o",
"continueInBrowser": "Continuar en el navegador",
"browserHint": "GitHub, Google, Discord o SSO",
"emailCode": "Enviarme un código por correo",
"sendTo": "Enviar a {{email}}",
"noPassword": "Sin contraseña",
"useApiKey": "Usar una clave de API",
"newToKaneo": "¿Nuevo en Kaneo?",
"createAccount": "Crear cuenta",
"code": {
"title": "Iniciar sesión con un código",
"message": "Te enviaremos un código de 6 dígitos por correo. Sin contraseña.",
"send": "Enviar código",
"checkEmail": "Revisa tu correo",
"sent": "Hemos enviado un código de 6 dígitos a {{email}}",
"verify": "Verificar",
"didntGet": "¿No te ha llegado?",
"resend": "Reenviar código"
},
"device": {
"denied": "Se ha denegado el inicio de sesión en el navegador.",
"expired": "El código de inicio de sesión ha caducado. Vuelve a empezar para obtener uno nuevo.",
"openFailed": "No se ha podido abrir el navegador. Copia el enlace.",
"message": "Aprueba este dispositivo desde la web de Kaneo. Allí funcionan GitHub, Google, Discord y SSO.",
"yourCode": "Tu código",
"copyCode": "Copiar código",
"codeCopied": "Código copiado",
"copyLink": "Copiar enlace",
"linkCopied": "Enlace copiado",
"openBrowser": "Abrir navegador",
"tryAgain": "Reintentar",
"waiting": "Esperando aprobación…",
"gettingCode": "Obteniendo un código…"
},
"apiKey": {
"message": "Crea una en la web, en Ajustes > Claves de API. Funciona aunque los demás métodos de inicio de sesión estén desactivados.",
"label": "Clave de API"
},
"signUp": {
"name": "Nombre",
"passwordHint": "Al menos 8 caracteres"
},
"unlock": {
"buy": "Unlock for {{price}}",
"buyNoPrice": "Unlock",
"message": "Signing in to Kaneo Cloud is always included. Connecting the app to a self-hosted server is a one-time purchase that supports Kaneo's development.",
"nothingToRestore": "No earlier purchase was found for this store account.",
"restore": "Restore purchase",
"title": "Connect your own server",
"unavailable": "Purchases aren't available right now. Try again later."
}
},
"invitations": {
"accepted": "Invitación aceptada",
"declined": "Invitación rechazada",
"title": "Invitaciones",
"description": "Espacios de trabajo a los que te han invitado.",
"emptyTitle": "No hay invitaciones pendientes",
"emptyMessage": "Las invitaciones aparecen aquí cuando tu correo esté verificado. Siempre puedes unirte con el enlace del correo.",
"invitedYou": "{{name}} te ha invitado",
"decline": "Rechazar",
"accept": "Aceptar",
"joinWithLink": "Unirse con un enlace de invitación",
"linkPlaceholder": "Pega el enlace de tu correo",
"join": "Unirse"
},
"taskDetail": {
"someone": "Alguien",
"status": {
"planned": "Planeada",
"archived": "Archivada"
},
"section": {
"addTo": "Añadir a {{title}}"
},
"fields": {
"title": "Campos",
"empty": "Vacío",
"none": "Ninguno"
},
"subtasks": {
"title": "Subtareas",
"add": "Añadir subtarea",
"parent": "Tarea principal",
"empty": "Sin subtareas"
},
"relations": {
"title": "Relaciones",
"link": "Vincular una tarea",
"blocks": "Bloquea",
"blockedBy": "Bloqueada por",
"related": "Relacionadas",
"relatedTo": "Relacionada con",
"remove": "Quitar relación",
"empty": "Sin tareas relacionadas",
"removeTitle": "¿Quitar la relación?",
"removeMessage": "Las tareas se conservan; solo se elimina el vínculo entre ellas.",
"removeConfirm": "Quitar",
"searchPlaceholder": "Buscar tareas por título o número"
},
"links": {
"title": "Enlaces",
"add": "Añadir enlace",
"remove": "Quitar enlace",
"synced": "Sincronizado",
"empty": "Sin enlaces",
"url": "URL",
"titleLabel": "Título",
"optional": "Opcional"
},
"time": {
"title": "Tiempo",
"total": "{{duration}} en total",
"log": "Registrar tiempo",
"editEntry": "Editar registro de tiempo",
"logged": "Tiempo registrado",
"stop": "Detener",
"start": "Iniciar temporizador",
"running": "{{time}} (en curso)",
"hoursUnit": "h",
"minutesUnit": "min",
"chipMinutes": "{{count}} min",
"chipHours": "{{count}} h",
"logDuration": "Registrar {{duration}}",
"durationHoursMinutes": "{{hours}} h {{minutes}} min",
"durationMinutes": "{{minutes}} min",
"date": "Fecha",
"notePlaceholder": "¿En qué has trabajado?"
},
"activity": {
"title": "Actividad",
"comment": "Comentar",
"edit": "Editar",
"editComment": "Editar comentario",
"edited": "{{time}}, editado",
"deleteTitle": "¿Eliminar el comentario?",
"deleteMessage": "Esta acción no se puede deshacer.",
"entry": "{{name}} {{action}}"
},
"menu": {
"share": "Compartir",
"duplicate": "Duplicar",
"move": "Mover a proyecto…",
"refresh": "Actualizar",
"delete": "Eliminar tarea",
"moveTitle": "Mover a proyecto",
"duplicated": "Tarea duplicada",
"moved": "Tarea movida",
"deleted": "Tarea eliminada",
"deleteTitle": "¿Eliminar la tarea?",
"deleteMessage": "«{{title}}» y sus comentarios se eliminarán de forma permanente."
},
"screen": {
"copyLink": "Copiar enlace",
"linkCopied": "Enlace copiado",
"more": "Más",
"editTitle": "Editar título",
"addDescription": "Añade una descripción…"
}
},
"workspaceNew": {
"title": "Nuevo espacio de trabajo",
"description": "Un lugar para los proyectos de tu equipo. Después podrás invitar a otras personas.",
"name": "Nombre",
"namePlaceholder": "Estudio de diseño",
"descriptionLabel": "Descripción",
"optional": "Opcional",
"descriptionPlaceholder": "¿Para qué es este espacio de trabajo?",
"create": "Crear espacio de trabajo"
},
"taskFields": {
"status": "Estado",
"planned": "Planeada",
"priority": "Prioridad",
"assignee": "Asignado",
"unassigned": "Sin asignar",
"startDate": "Fecha de inicio",
"dueDate": "Fecha de vencimiento",
"labels": "Etiquetas",
"none": "Ninguna",
"searchPeople": "Buscar personas",
"you": "{{name}} (tú)",
"addNumber": "Añadir un número",
"empty": "Vacío",
"archived": "Archivada",
"doneColumn": "Columna de completadas",
"starts": "Inicio: {{date}}",
"overdue_one": "{{date}}, {{count}} día de retraso",
"overdue_other": "{{date}}, {{count}} días de retraso",
"done": "Completada",
"searchOrCreate": "Buscar o crear",
"createLabel": "Crear etiqueta «{{name}}»",
"labelColor": "Color de la nueva etiqueta",
"noLabels": "Aún no hay etiquetas. Escribe un nombre para crear una.",
"overdue_many": "{{date}}, {{count}} días de retraso"
},
"taskNew": {
"newSubtask": "Nueva subtarea",
"project": "Proyecto",
"create": "Crear",
"taskTitle": "Título de la tarea",
"noLabels": "Aún no hay etiquetas en este espacio de trabajo.",
"labelsAndParentFailed": "Tarea creada, pero no se han podido guardar algunas etiquetas ni el vínculo con la tarea principal.",
"labelsFailed": "Tarea creada, pero no se han podido añadir algunas etiquetas.",
"parentFailed": "Tarea creada, pero no se ha podido vincular a la tarea principal."
},
"editor": {
"placeholder": "Añade una descripción… Admite Markdown.",
"bold": "Negrita",
"italic": "Cursiva",
"heading": "Encabezado",
"list": "Lista",
"code": "Código",
"link": "Enlace",
"insertImage": "Insertar imagen",
"attachment": "Adjunto",
"applyLink": "Apply",
"checklist": "Checklist",
"linkUrl": "URL",
"numberedList": "Numbered list",
"quote": "Quote",
"removeLink": "Remove link",
"hideKeyboard": "Hide keyboard"
},
"composer": {
"reply": "Responder a {{name}}…",
"placeholder": "Añade un comentario…",
"mentionSomeone": "Mencionar a alguien",
"attachImage": "Adjuntar imagen",
"sendComment": "Enviar comentario",
"mention": "Mencionar",
"searchPeople": "Buscar personas"
},
"board": {
"filterTasksActive": "Filtrar tareas… (filtros activos: {{count}})",
"movedTask": "{{ticket}} movida a {{status}}",
"showTasks_one": "Mostrar {{count}} tarea",
"showTasks_other": "Mostrar {{count}} tareas",
"memberYou": "{{name}} (tú)",
"dueDateOverdue_one": "{{date}}, {{count}} d de retraso",
"dueDateOverdue_other": "{{date}}, {{count}} d de retraso",
"projects": "Proyectos",
"back": "Atrás",
"boardView": "Vista de tablero",
"listView": "Vista de lista",
"more": "Más",
"switchProject": "Cambiar de proyecto",
"noTasksMatchTheFilters": "Ninguna tarea coincide con los filtros",
"nothingPlannedYet": "Aún no hay nada planeado",
"noTasksHere": "No hay tareas aquí",
"addTask": "Añadir tarea",
"noTasksMatch": "Ninguna tarea coincide",
"noTasksYet": "Aún no hay tareas",
"filters": "Filtros",
"filterTasks": "Filtrar tareas…",
"me": "Yo",
"newTask": "Nueva tarea",
"board": "Tablero",
"projectSettings": "Ajustes del proyecto",
"hidePlanned": "Ocultar planeadas",
"showPlanned": "Mostrar planeadas",
"hideArchived": "Ocultar archivadas",
"showArchived": "Mostrar archivadas",
"refresh": "Actualizar",
"planned": "Planeadas",
"archived": "Archivadas",
"reset": "Restablecer",
"assignee": "Asignado",
"unassigned": "Sin asignar",
"priority": "Prioridad",
"labels": "Etiquetas",
"overdueOnly": "Solo vencidas",
"tasksNotOnTheBoardYet": "Tareas que aún no están en el tablero",
"moveTo": "Mover a",
"assignToMe": "Asignarme",
"sendToTopOfColumn": "Enviar al principio de la columna",
"sendToBottomOfColumn": "Enviar al final de la columna",
"openTask": "Abrir tarea",
"searchPeople": "Buscar personas",
"dueDateOverdue_many": "{{date}}, {{count}} d de retraso",
"showTasks_many": "Mostrar {{count}} tareas"
},
"projectSettings": {
"deleteNamedTitle": "¿Eliminar «{{name}}»?",
"text": "Texto",
"number": "Número",
"date": "Fecha",
"checkbox": "Casilla",
"dropdown": "Desplegable",
"multiSelect": "Selección múltiple",
"projectUpdated": "Proyecto actualizado",
"project": "Proyecto",
"projectSettings": "Ajustes del proyecto",
"general": "General",
"publicBoard": "Tablero público",
"anyoneWithTheLinkCanViewTheBoard": "Cualquiera con el enlace puede ver el tablero",
"columns": "Columnas",
"addColumn": "Añadir columna",
"doneColumn": "Columna de completadas",
"moveUp": "Subir",
"moveDown": "Bajar",
"customFields": "Campos personalizados",
"addField": "Añadir campo",
"noCustomFields": "Sin campos personalizados",
"projectRestored": "Proyecto restaurado",
"archiveProjectTitle": "¿Archivar el proyecto?",
"itDisappearsFromTheProjectListYouCanRestoreItLater": "Desaparecerá de la lista de proyectos. Podrás restaurarlo más tarde.",
"archive": "Archivar",
"projectArchived": "Proyecto archivado",
"restoreProject": "Restaurar proyecto",
"archiveProject": "Archivar proyecto",
"moveToAnotherWorkspace": "Mover a otro espacio de trabajo",
"deleteProjectTitle": "¿Eliminar el proyecto?",
"allTasksCommentsAndTimeEntriesInThisProjectWillBePermanentlyDeleted": "Todas las tareas, comentarios y registros de tiempo de este proyecto se eliminarán de forma permanente.",
"projectDeleted": "Proyecto eliminado",
"deleteProject": "Eliminar proyecto",
"column": "Columna",
"rename": "Renombrar",
"unmarkAsDoneColumn": "Desmarcar como columna de completadas",
"markAsDoneColumn": "Marcar como columna de completadas",
"deleteColumn": "Eliminar columna",
"tasksInThisColumnMayNeedToBeMovedFirst": "Puede que antes tengas que mover las tareas de esta columna.",
"columnDeleted": "Columna eliminada",
"renameColumn": "Renombrar columna",
"field": "Campo",
"deleteField": "Eliminar campo",
"valuesStoredInThisFieldAreDeletedFromEveryTask": "Los valores de este campo se eliminan de todas las tareas.",
"fieldDeleted": "Campo eliminado",
"moveToWorkspace": "Mover a espacio de trabajo",
"projectMoved": "Proyecto movido",
"ok": "OK",
"name": "Nombre",
"key": "Clave",
"changesFutureAndExistingTaskIDs": "Cambia los ID de las tareas actuales y futuras",
"saveChanges": "Guardar cambios",
"newColumn": "Nueva columna",
"blocked": "Bloqueada",
"tasksHereCountAsFinished": "Las tareas de aquí cuentan como terminadas",
"newCustomField": "Nuevo campo personalizado",
"platform": "Plataforma",
"type": "Tipo",
"options": "Opciones",
"separateWithCommas": "Separa con comas",
"androidIOSWeb": "Android, iOS, Web",
"required": "Obligatorio",
"checked": "Marcada",
"chooseDefault": "Elige un valor por defecto",
"defaultValue": "Valor por defecto",
"multiselectOptionsRequired": "Añade al menos dos opciones distintas.",
"unchecked": "Sin marcar",
"validDefaultRequired": "Introduce un valor por defecto válido para este campo obligatorio."
},
"projectNew": {
"newProject": "Nuevo proyecto",
"name": "Nombre",
"customerPortal": "Portal de clientes",
"key": "Clave",
"usedInTaskIDs": "Se usa en los ID de las tareas",
"createProject": "Crear proyecto"
},
"home": {
"noWorkspace": {
"title": "Aún no hay espacio de trabajo",
"body": "Los espacios de trabajo reúnen tus proyectos y tu equipo. Crea uno o acepta una invitación.",
"create": "Crear espacio de trabajo",
"viewInvitations_one": "Ver {{count}} invitación",
"viewInvitations_other": "Ver {{count}} invitaciones",
"joinWithLink": "Unirse con un enlace de invitación",
"signedInAs": "Sesión iniciada como {{email}}",
"viewInvitations_many": "Ver {{count}} invitaciones"
},
"switchWorkspace": "Cambiar de espacio de trabajo",
"search": "Buscar",
"account": "Cuenta",
"archived": "Archivado",
"due": "Vence: {{date}}",
"progress": "{{done}} de {{total}}",
"noTasks": "Sin tareas",
"upNext": "A continuación",
"viewAll": "Ver todo",
"projects": "Proyectos",
"newProject": "Nuevo proyecto",
"empty": {
"title": "Aún no hay proyectos",
"message": "Los proyectos reúnen tus tableros y tareas."
},
"hideArchived": "Ocultar proyectos archivados",
"showArchived": "Mostrar proyectos archivados"
},
"inbox": {
"title": "Notificaciones",
"markAllRead": "Marcar todo como leído",
"allCaughtUpToast": "Todo leído",
"more": "Más",
"empty": {
"title": "Estás al día",
"message": "Aquí aparecen asignaciones, comentarios y menciones."
},
"today": "Hoy",
"earlier": "Anteriores",
"recent": "Recientes",
"clearAll": "Borrar todas las notificaciones",
"confirmClear": {
"title": "¿Borrar todas las notificaciones?",
"message": "Se eliminarán todas las notificaciones de este espacio de trabajo.",
"confirm": "Borrar todo"
}
},
"activity": {
"title": "Actividad",
"subtitle": "Todo lo que pasa en {{workspace}}",
"empty": "No hay actividad reciente",
"someone": "Alguien",
"commentedOn": "ha comentado en {{target}}"
},
"myTasks": {
"title": "Mis tareas",
"by": {
"due": "Vencimiento",
"project": "Proyecto",
"status": "Estado"
},
"due": {
"overdue": "Vencidas",
"today": "Hoy",
"thisWeek": "Esta semana",
"later": "Más adelante",
"none": "Sin fecha de vencimiento"
},
"empty": {
"title": "No tienes nada asignado",
"message": "Aquí aparecen las tareas que tienes asignadas en este espacio de trabajo."
},
"showing": "Mostrando {{shown}} de {{total}} tareas",
"assigned_one": "{{count}} asignada",
"assigned_other": "{{count}} asignadas",
"assigned_many": "{{count}} asignadas"
},
"nav": {
"home": "Inicio",
"tasks": "Mis tareas",
"inbox": "Notificaciones",
"activity": "Actividad",
"inboxUnread": "Notificaciones, {{count}} sin leer"
},
"workspaceSwitcher": {
"title": "Espacios de trabajo",
"settings": "Ajustes del espacio de trabajo",
"members": "Miembros",
"labels": "Etiquetas",
"invitations": "Invitaciones",
"create": "Crear espacio de trabajo"
},
"search": {
"placeholder": "Buscar tareas, proyectos, comentarios",
"clear": "Borrar",
"kinds": {
"all": "Todo",
"tasks": "Tareas",
"projects": "Proyectos",
"comments": "Comentarios",
"activity": "Actividad"
},
"empty": {
"title": "Buscar en este espacio de trabajo",
"message": "Encuentra tareas por título o número, proyectos y comentarios."
},
"failed": "La búsqueda ha fallado",
"noResults": "No hay resultados para «{{query}}»",
"commentMeta": "{{name}}, {{when}}"
},
"notificationText": {
"activity": {
"created": "ha creado la tarea",
"commented": "ha comentado: {{text}}",
"statusChanged": "la ha movido de {{from}} a {{to}}",
"priorityChanged": "ha cambiado la prioridad de {{from}} a {{to}}",
"assigneeChanged": "ha cambiado la asignación",
"selfAssigned": "se la ha asignado",
"assignedTo": "se la ha asignado a {{assignee}}",
"unassigned": "ha quitado la asignación",
"dueDateSet": "ha fijado la fecha de vencimiento: {{date}}",
"dueDateRemoved": "ha quitado la fecha de vencimiento",
"renamed": "la ha renombrado a «{{title}}»",
"titleChanged": "ha cambiado el título",
"descriptionChanged": "ha actualizado la descripción",
"taskUpdated": "ha actualizado la tarea"
},
"taskCreated": "Nueva tarea asignada a ti",
"assignedByActor": "{{actor}} te ha asignado una tarea",
"assignedToTask": "Te han asignado «{{title}}»",
"assignedToUntitled": "Te han asignado una tarea",
"statusChangedOnTask": "Estado cambiado en «{{title}}»",
"statusChangedOnUntitled": "Estado cambiado en una tarea",
"statusTransition": "{{from}} → {{to}}",
"commentedByActor": "{{actor}} ha comentado",
"newComment": "Nuevo comentario",
"mentionedByActor": "{{actor}} te ha mencionado",
"mentioned": "Te han mencionado",
"timeLoggedOnTask": "Tiempo registrado en «{{title}}»",
"timeLoggedOnUntitled": "Tiempo registrado en una tarea",
"workspaceCreated": "Espacio de trabajo «{{name}}» creado"
},
"background": {
"summary_one": "{{count}} notificación nueva más",
"summary_other": "{{count}} notificaciones nuevas más",
"channelName": "Actividad de Kaneo",
"channelDescription": "Asignaciones, comentarios y menciones de tus espacios de trabajo",
"summary_many": "{{count}} notificaciones nuevas más"
},
"ui": {
"back": "Atrás",
"loadFailed": "No se ha podido cargar",
"search": "Buscar",
"nothingMatches": "Nada coincide con «{{query}}»"
},
"picker": {
"clear": "Borrar",
"nextWeek": "La semana que viene",
"previousMonth": "Mes anterior",
"nextMonth": "Mes siguiente"
},
"time": {
"now": "ahora",
"justNow": "ahora mismo",
"minutesShort_one": "{{count}} min",
"minutesShort_other": "{{count}} min",
"hoursShort_one": "{{count}} h",
"hoursShort_other": "{{count}} h",
"secondsShort_one": "{{count}} s",
"secondsShort_other": "{{count}} s",
"minutesAgo_one": "hace {{count}} min",
"minutesAgo_other": "hace {{count}} min",
"hoursAgo_one": "hace {{count}} h",
"hoursAgo_other": "hace {{count}} h",
"durationHoursMinutes": "{{hours}} h {{minutes}} min",
"goodEvening": "Buenas noches",
"goodMorning": "Buenos días",
"goodAfternoon": "Buenas tardes",
"today": "Hoy",
"tomorrow": "Mañana",
"yesterday": "Ayer",
"minutes_one": "{{count}} min",
"minutes_other": "{{count}} min",
"hours_one": "{{count}} h",
"hours_other": "{{count}} h",
"hours_many": "{{count}} h",
"hoursAgo_many": "hace {{count}} h",
"hoursShort_many": "{{count}} h",
"minutes_many": "{{count}} min",
"minutesAgo_many": "hace {{count}} min",
"minutesShort_many": "{{count}} min",
"secondsShort_many": "{{count}} s"
},
"meta": {
"priority": {
"noPriority": "Sin prioridad",
"low": "Baja",
"medium": "Media",
"high": "Alta",
"urgent": "Urgente"
},
"labelColor": {
"stone": "Piedra",
"slate": "Pizarra",
"lavender": "Lavanda",
"sage": "Salvia",
"forest": "Bosque",
"amber": "Ámbar",
"terracotta": "Terracota",
"rose": "Rosa",
"crimson": "Carmesí",
"ocean": "Océano",
"sky": "Cielo",
"lagoon": "Laguna",
"orchid": "Orquídea"
},
"role": {
"owner": "Propietario",
"admin": "Administrador",
"member": "Miembro",
"viewer": "Observador"
},
"roleHint": {
"owner": "Control total, incluso eliminar el espacio de trabajo",
"admin": "También puede gestionar miembros y ajustes",
"member": "Puede crear y editar tareas",
"viewer": "Puede ver proyectos y tareas"
}
},
"account": {
"title": "Cuenta",
"description": "Cómo te ven tus compañeros en todos los espacios de trabajo.",
"profile": {
"title": "Perfil",
"photo": "Foto de perfil",
"photoFormats": "PNG, JPG o WebP",
"change": "Cambiar",
"name": "Nombre",
"changePassword": "Cambiar contraseña"
},
"notifications": {
"title": "Notificaciones",
"phone": "Notificaciones en el móvil",
"phoneHint": "Se comprueban cada 15 minutos aprox.",
"delivery": "Entrega y eventos",
"deliveryHint": "Correo, ntfy, Gotify, webhooks",
"invitations": "Invitaciones",
"permissionDenied": "Primero permite las notificaciones de Kaneo en los ajustes del sistema."
},
"connection": {
"title": "Conexión",
"server": "Servidor",
"signedInWith": "Sesión iniciada con",
"apiKey": "Clave de API",
"sessionToken": "Token de sesión",
"appVersion": "Versión de la app"
},
"signOut": {
"button": "Cerrar sesión",
"title": "¿Cerrar sesión?",
"message": "Puedes volver a iniciar sesión cuando quieras."
},
"photoMenu": {
"choose": "Elegir foto",
"remove": "Quitar foto"
},
"toast": {
"photoUpdated": "Foto actualizada",
"photoRemoved": "Foto eliminada",
"nameUpdated": "Nombre actualizado",
"passwordChanged": "Contraseña cambiada"
},
"password": {
"title": "Cambiar contraseña",
"current": "Contraseña actual",
"new": "Nueva contraseña",
"confirm": "Confirmar nueva contraseña",
"confirmPlaceholder": "Escríbela otra vez",
"mismatch": "Las contraseñas no coinciden",
"signOutOthers": "Cerrar sesión en otros dispositivos"
},
"deleteAccount": {
"confirm": "Delete account",
"confirmLabel": "Type {{email}} to confirm",
"description": "Permanently delete your account and its data.",
"modalDescription": "This permanently deletes your account and cannot be undone. Workspaces only you belong to are deleted with it. Elsewhere, your tasks stay and become unassigned, and your comments are removed.",
"modalTitle": "Delete your account?",
"noPassword": "This account has no password. Leave the field empty.",
"password": "Password",
"passwordHint": "Leave empty if you sign in without a password.",
"sectionTitle": "Danger zone",
"sessionTooOld": "For your security, enter your password, or sign out and sign in again before deleting your account.",
"success": "Your account was deleted",
"title": "Delete account",
"wrongPassword": "That password is not correct."
}
},
"notificationSettings": {
"title": "Notificaciones",
"description": "Dónde te avisa Kaneo y de qué.",
"on": "Activadas",
"off": "Desactivadas",
"notSet": "Sin configurar",
"delivery": {
"title": "Entrega",
"email": "Correo electrónico",
"emailHint": "Se envía al correo de tu cuenta",
"ntfyHint": "Enviar notificaciones a un tema de ntfy",
"gotifyHint": "Enviar notificaciones a un servidor Gotify",
"webhook": "Webhook",
"webhookHint": "Enviar notificaciones por POST a una URL"
},
"events": {
"title": "Avisarme de",
"assignments": "Asignaciones",
"assignmentsHint": "Cuando te asignan una tarea",
"comments": "Comentarios",
"commentsHint": "Comentarios nuevos en tus tareas",
"statusChanges": "Cambios de estado",
"statusChangesHint": "Cuando tus tareas cambian de columna",
"dueDate": "Recordatorios de vencimiento",
"dueDateHint": "Antes de que venza una tarea que tienes asignada",
"remindMe": "Recordarme",
"remindBefore": "{{time}} antes",
"remindPickerTitle": "Recordarme antes"
},
"leadTime": {
"minutes15": "15 minutos",
"hour1": "1 hora",
"hours3": "3 horas",
"day1": "1 día",
"days2": "2 días",
"week1": "1 semana",
"minutes_one": "{{count}} minuto",
"minutes_other": "{{count}} minutos",
"minutes_many": "{{count}} minutos"
},
"channel": {
"enabled": "Enviar notificaciones aquí",
"webhookUrl": "URL del webhook",
"serverUrl": "URL del servidor",
"topic": "Tema",
"accessToken": "Token de acceso",
"appToken": "Token de la app",
"signingSecret": "Secreto de firma",
"secretSaved": "Guardado. Introduce uno nuevo para reemplazarlo",
"secretOptional": "Opcional"
}
},
"workspaceSettings": {
"title": "Espacio de trabajo",
"description": "Ajustes para todos en {{name}}.",
"thisWorkspace": "este espacio de trabajo",
"general": {
"title": "General",
"name": "Nombre",
"description": "Descripción",
"slug": "Slug: <mono>{{slug}}</mono>",
"save": "Guardar cambios"
},
"manage": {
"title": "Gestionar",
"members": "Miembros",
"labels": "Etiquetas"
},
"danger": {
"title": "Zona de peligro",
"leave": "Salir del espacio de trabajo",
"leaveHint": "Puedes volver a unirte con una nueva invitación",
"leaveButton": "Salir",
"delete": "Eliminar espacio de trabajo",
"deleteHint": "Elimina todos sus proyectos y tareas"
},
"confirm": {
"deleteTitle": "¿Eliminar el espacio de trabajo?",
"leaveTitle": "¿Salir del espacio de trabajo?",
"deleteMessage": "Todos los proyectos, tareas y comentarios de {{name}} se eliminarán de forma permanente.",
"leaveMessage": "Perderás el acceso hasta que alguien vuelva a invitarte."
},
"toast": {
"updated": "Espacio de trabajo actualizado",
"deleted": "Espacio de trabajo eliminado",
"left": "Has salido del espacio de trabajo"
}
},
"members": {
"title": "Miembros",
"description_one": "{{count}} persona en {{name}}",
"description_other": "{{count}} personas en {{name}}",
"thisWorkspace": "este espacio de trabajo",
"invite": "Invitar",
"pending": {
"title": "Invitaciones pendientes",
"expires": "{{role}}, caduca: {{date}}",
"manage": "Gestionar"
},
"people": {
"title": "Personas",
"unknown": "Desconocido",
"you": "(tú)"
},
"memberMenu": {
"fallbackTitle": "Miembro",
"changeRole": "Cambiar rol",
"remove": "Quitar del espacio de trabajo"
},
"rolePicker": {
"title": "Rol"
},
"remove": {
"title": "¿Quitar al miembro?",
"message": "{{name}} perderá el acceso a {{workspace}}.",
"they": "Esta persona",
"confirm": "Quitar"
},
"inviteMenu": {
"fallbackTitle": "Invitación",
"resend": "Reenviar invitación",
"cancel": "Cancelar invitación"
},
"inviteForm": {
"title": "Invitar a un miembro",
"intro": "Recibirá un correo con un enlace para unirse a {{workspace}}.",
"email": "Correo electrónico",
"role": "Rol",
"send": "Enviar invitación"
},
"toast": {
"roleUpdated": "Rol actualizado",
"removed": "Miembro quitado",
"resent": "Invitación reenviada",
"canceled": "Invitación cancelada",
"sent": "Invitación enviada a {{email}}"
},
"description_many": "{{count}} personas en {{name}}"
},
"labels": {
"title": "Etiquetas",
"description": "Las etiquetas te ayudan a agrupar y filtrar tareas.",
"new": "Nueva etiqueta",
"edit": "Editar etiqueta",
"delete": "Eliminar etiqueta",
"fallbackTitle": "Etiqueta",
"empty": {
"title": "Sin etiquetas",
"message": "Crea etiquetas para agrupar y filtrar tareas en todos los proyectos."
},
"actions": "Acciones para {{name}}",
"deleteTitle": "¿Eliminar «{{name}}»?",
"deleteMessage": "La etiqueta se quitará de todas las tareas de este espacio de trabajo.",
"form": {
"name": "Nombre",
"color": "Color"
},
"toast": {
"deleted": "Etiqueta eliminada"
}
},
"permissions": {
"photos": "Kaneo usa tus fotos para adjuntar imágenes a tareas y comentarios, y para tu foto de perfil."
}
}
}