{
  "Chat.SendMessageError": "No se pudo enviar el mensaje.",
  "Chat.LoadMessagesError": "No se pudieron cargar los mensajes.",
  "Chat.Notification.NewMessage": "Nuevo mensaje",
  "Chat.Notification.Attachment": "📎 Adjunto",
  "Layout.FiscalData.SaveError": "No se pudieron guardar los datos fiscales. Inténtalo de nuevo más tarde.",
  "Auth.CreateAccount.AttemptsExhausted": "Has agotado los intentos. Espera 30 minutos.",
  "Auth.CreateAccount.Completed": "¡Cuenta creada correctamente!\u003cbr /\u003eAhora puedes iniciar sesión con tus credenciales.",
  "Auth.CreateAccount.ConfirmPasswordLabel": "Confirmar contraseña",
  "Auth.CreateAccount.CreateButton": "Crear cuenta",
  "Auth.CreateAccount.CreatePassword": "Crea una contraseña segura:",
  "Auth.CreateAccount.CreateUserError": "No se pudo crear el usuario. Inténtalo de nuevo.",
  "Auth.CreateAccount.EmailIntro": "Si ya tienes una cuenta de WodBuster, pon el email que tienes vinculado para ir al Login. Si no, se creará una cuenta nueva. Introduce tu email para continuar:",
  "Auth.CreateAccount.EmailLabel": "Email",
  "Auth.CreateAccount.EmailPlaceholder": "ejemplo@correo.com",
  "Auth.CreateAccount.EnterCode": "Introduce el código de verificación.",
  "Auth.CreateAccount.GoToLogin": "Ir al login",
  "Auth.CreateAccount.InvalidEmail": "El formato del email no es válido.",
  "Auth.CreateAccount.NewCodeSent": "Si esta dirección puede registrarse, enviaremos un nuevo código de verificación.",
  "Auth.CreateAccount.PasswordLabel": "Contraseña",
  "Auth.CreateAccount.PasswordRequirements": "Requisitos contraseña",
  "Auth.CreateAccount.PasswordsMismatch": "Las contraseñas no coinciden.",
  "Auth.CreateAccount.Req.Lowercase": "Al menos una letra minúscula",
  "Auth.CreateAccount.Req.Match": "Las contraseñas coinciden",
  "Auth.CreateAccount.Req.MinLength": "Al menos 8 caracteres",
  "Auth.CreateAccount.Req.Number": "Al menos un número",
  "Auth.CreateAccount.Req.Special": "Al menos un carácter especial (!, @, #, $, %, etc.)",
  "Auth.CreateAccount.Req.Uppercase": "Al menos una letra mayúscula",
  "Auth.CreateAccount.ResendCode": "Reenviar código",
  "Auth.CreateAccount.ResendCodeError": "No se pudo reenviar el código. Intenta más tarde.",
  "Auth.CreateAccount.SendCodeError": "No se pudo enviar el código de verificación. Intenta de nuevo.",
  "Auth.CreateAccount.Title": "Crea tu cuenta",
  "Auth.CreateAccount.VerificationCodeLabel": "Código de verificación",
  "Auth.CreateAccount.VerificationCodePlaceholder": "Ej: 123456",
  "Auth.CreateAccount.VerificationCodeSent": "Si esta dirección puede registrarse, enviaremos un código a \u003cstrong\u003e{0}\u003c/strong\u003e. Si ya tienes una cuenta, inicia sesión.",
  "Auth.CreateAccount.VerifyCode": "Verificar código",
  "Auth.CreateAccount.VerifyCodeError": "Error al verificar el código.",
  "Auth.LoginError": "❌ El usuario no existe o hubo un error de conexión.",
  "Auth.SessionCheckUnavailable": "No se pudo comprobar la sesión. Inténtalo de nuevo en unos segundos.",
  "Auth.Password.MinLength": "Debe tener al menos 8 caracteres.",
  "Auth.Password.NeedLowercase": "Debe contener al menos una letra minúscula.",
  "Auth.Password.NeedNumber": "Debe contener al menos un número.",
  "Auth.Password.NeedSpecial": "Debe contener al menos un carácter especial (!, @, #, $, %, etc.).",
  "Auth.Password.NeedUppercase": "Debe contener al menos una letra mayúscula.",
  "Auth.Password.Required": "La contraseña es obligatoria.",
  "Audio.Cancel": "Cancelar grabación",
  "Audio.Delete": "Descartar audio",
  "Audio.Record": "Grabar audio",
  "Audio.Send": "Enviar audio",
  "Audio.Stop": "Detener grabación",
  "Badges.Title": "Insignias",
  "Badges.Level": "Nivel {0}",
  "Badges.MaxLevel": "Nivel máximo",
  "Badges.TapHint": "Toca una insignia para ver los niveles y cómo subir.",
  "Badges.Detail.LevelsTitle": "Niveles",
  "Badges.Detail.Achieved": "Conseguido",
  "Badges.Detail.Remaining": "Te faltan {0} {1}",
  "Badges.Celebration.Title": "¡Nueva insignia!",
  "Badges.Celebration.Continue": "¡Seguimos!",
  "Badges.Constancia.Name": "Constancia",
  "Badges.Constancia.Desc": "Semanas seguidas entrenando. Una semana cuenta si completas al menos un entreno; tu racha sube por cada semana consecutiva con actividad. Cuenta tu mejor racha histórica.",
  "Badges.Constancia.Unit": "semanas",
  "Badges.Constancia.Achievement": "¡Racha de {0} semanas seguidas entrenando!",
  "Badges.Trabajo.Name": "Trabajo hecho",
  "Badges.Trabajo.Desc": "Bloques de entrenamiento completados en total. Cada bloque que marcas como hecho suma para esta insignia.",
  "Badges.Trabajo.Unit": "bloques",
  "Badges.Trabajo.Achievement": "¡Has completado {0} bloques!",
  "Badges.Cuaderno.Name": "Cuaderno al día",
  "Badges.Cuaderno.Desc": "Resultados que registras en tus entrenamientos. Apuntar tus marcas te acerca al siguiente nivel.",
  "Badges.Cuaderno.Unit": "resultados",
  "Badges.Cuaderno.Achievement": "¡Has registrado {0} resultados!",
  "Badges.Comunidad.Name": "Comunidad",
  "Badges.Comunidad.Desc": "Tu participación en la parte social: cada publicación que compartes y cada comentario que escribes suma.",
  "Badges.Comunidad.Unit": "aportaciones",
  "Badges.Comunidad.Achievement": "¡Has hecho {0} aportaciones a la comunidad!",
  "Block.Actions": "Acciones",
  "Block.Adapted": "Adaptado",
  "Block.AdaptedTraining": "¿HAS ADAPTADO EL ENTRENAMIENTO?",
  "Block.AddComment": "Añadir comentario",
  "Block.AddPhotoVideo": "Añadir foto o vídeo",
  "Block.AddResult": "Añadir resultado",
  "Block.AttachCoachOnly": "Privado",
  "Block.AttachMedia": "Adjuntar",
  "Block.Attachment": "Adjunto",
  "Block.AttachUploadError": "Error al subir el archivo adjunto",
  "Block.AttachVisibleAll": "Público",
  "Block.AverageObjective": "Media objetivo",
  "Block.AverageReps": "Media repeticiones",
  "Block.AverageTime": "Media tiempo",
  "Block.AvgReps": "Media reps:",
  "Block.AvgTarget": "Media objetivo:",
  "Block.AvgTime": "Media tiempos:",
  "Block.BestResult": "Mejor resultado:",
  "Block.BlockComments": "Comentarios del bloque:",
  "Block.BlockHistory": "Historial de Bloques",
  "Block.BlockPersonalizationsFor": "Personalización de \"{0}\"",
  "Block.Board": "Tablón",
  "Block.CaloriesMinError": "Las calorías debe ser mayor o igual a 0.",
  "Block.CaloriesPlaceholder": "Ej: 300",
  "Block.Cancel": "Cancelar",
  "Block.ChangesSaved": "Cambios guardados correctamente.",
  "Block.ChangesSaveError": "Error al guardar los cambios.",
  "Block.Classification": "Clasificación",
  "Block.CoachNotes": "Notas para el coach:",
  "Block.CoachOnlyNotes": "NOTAS PARA EL COACH",
  "Block.CoachOnlyNotesInfo": "Este comentario solo será visible por el coach.",
  "Block.CoachOnlyPlaceholder": "Solo visible para el entrenador...",
  "Block.Comment": "Comentar",
  "Block.CommentNoText": "El comentario no puede estar vacío",
  "Block.Comments": "Comentarios",
  "Block.WriteComment": "Escribe un comentario...",
  "Block.NoCommentsYet": "Aún no hay comentarios",
  "Block.CommentVerb": "Comentar",
  "FeedbackPrivado.Title": "Feedback",
  "FeedbackPrivado.Empty": "Aún no hay feedback en este hilo",
  "FeedbackPrivado.WriteReply": "Escribe una respuesta...",
  "FeedbackPrivado.NotifText": "te ha enviado feedback en",
  "FeedbackPrivado.NotifReplyText": "ha respondido a tu feedback en",
  "Block.CompletedReps": "Repeticiones completadas",
  "Block.ConfirmDelete": "¿Estás seguro de que quieres eliminar el bloque?",
  "Block.ConfirmDeleteNamed": "¿Estás seguro de que quieres eliminar el bloque \u0027{0}\u0027?",
  "Block.CopyBlock": "Copiar bloque",
  "Block.AddPersonalization": "Añadir personalización al bloque",
  "Block.CurrentlyHiddenFor": "Actualmente oculto para:",
  "Block.DeleteBlock": "Eliminar Bloque",
  "Block.DeleteResult": "Eliminar Resultado",
  "Block.DistanceMinError": "La distancia debe ser mayor o igual a 0.",
  "Block.DistancePlaceholder": "Ej: 1000",
  "Block.DownloadBlack": "Descargar como imagen (negro)",
  "Block.DownloadImageBlack": "Descargar imagen (negro)",
  "Block.DownloadImageWhite": "Descargar imagen (blanco)",
  "Block.DownloadWhite": "Descargar como imagen (blanco)",
  "Block.EditComment": "Editar comentario",
  "Block.EditResult": "Editar resultado",
  "Block.EnterMark": "Resultado",
  "Block.EnterMarkGeneric": "Resultado",
  "Block.EnterYourMark": "Resultado",
  "Block.ErrorLoadingGroups": "Error al cargar los grupos",
  "Block.ErrorSavingHiddenUsers": "Error al guardar los usuarios ocultos",
  "Block.Exclusive": "Exclusivo",
  "Block.ExclusiveBlock": "Bloque exclusivo",
  "Block.ExportDownloadError": "No se pudo generar la descarga.",
  "Block.Exported": "Exportado",
  "Block.ExportError": "Error al exportar",
  "Block.ExportErrorDownload": "Error al descargar la exportación",
  "Block.ExportErrorNoKey": "No se ha configurado la clave de exportación",
  "Block.ExportNoKey": "No se pudo exportar (sin key).",
  "Block.Feedback": "Feedback",
  "Block.FeedbackChatError": "Error al abrir el chat de feedback",
  "Block.FeedbackCommentNotFound": "Comentario de feedback no encontrado",
  "Block.FeedbackConnectionError": "Error de conexión al enviar feedback",
  "Block.FeedbackSessionError": "Error de sesión al enviar feedback",
  "Block.FeedbackUnexpectedError": "Error inesperado al enviar feedback",
  "Block.FeedbackUserNotFound": "Usuario de feedback no encontrado",
  "Block.FinishedTraining": "¿HAS TERMINADO EL ENTRENAMIENTO?",
  "Block.GenderWeightInfo": "Para las chicas, el peso se pondera.",
  "Block.GeneralComment": "Comentario general",
  "Block.GiveFeedback": "Dar feedback",
  "Block.Group": "Grupo",
  "Block.HasAdaptedTraining": "¿Adaptado?",
  "Block.HasFinishedTraining": "¿Terminado?",
  "Block.Hidden": "Oculto",
  "Block.HiddenUserRemoved": "Usuario eliminado de ocultos.",
  "Block.HiddenUserRemoveError": "No se pudo eliminar el usuario de los ocultos.",
  "Block.HideBlock": "Ocultar bloque",
  "Block.MoveUp": "Mover arriba",
  "Block.MoveDown": "Mover abajo",
  "Block.HideBlockDesc": "Selecciona los usuarios para los que este bloque no será visible:",
  "Block.HideBlockMessage": "Los usuarios seleccionados no verán este bloque",
  "Block.IsPublicResult": "Resultado público",
  "Block.MarkCompleted": "Marcar completado",
  "Block.Men": "Hombres",
  "Block.Mixed": "Mixto",
  "Block.No": "No",
  "Block.NoAssignedUsers": "No hay usuarios asignados",
  "Block.NoBlockHistory": "No hay historial de bloques",
  "Block.History.Week": "Semana",
  "Block.History.Pending": "No completados",
  "Block.History.AllTitles": "Todos",
  "Block.History.Label": "Historial",
  "Block.History.Completed": "Completados",
  "Block.NoDescription": "Este bloque no tiene descripción adicional.",
  "Block.NoExclusiveUsers": "No hay usuarios exclusivos.",
  "Block.NoHistoryBlocks": "No hay bloques anteriores con este nombre.",
  "Block.NoPersonalizations": "No hay personalizaciones",
  "Block.Notes": "Notas:",
  "Block.Notes.Translate": "Traducir",
  "Block.Notes.TranslateTo": "Traducir a",
  "Block.Notes.ShowOriginal": "Ver original",
  "Block.Notes.Translating": "Traduciendo...",
  "Block.Notes.TranslatedByAI": "Traducido por IA",
  "Block.Notes.TranslateError": "No se pudo traducir. Inténtalo de nuevo.",
  "Ia.Wod.Generate": "Generar con IA",
  "Ia.Wod.ModalTitle": "Generar WOD con IA",
  "Ia.Wod.Placeholder": "Describe el WOD: objetivo, material disponible, duración, nivel...",
  "Ia.Wod.Action": "Generar",
  "Ia.Wod.Generating": "Generando...",
  "Ia.Wod.Error": "No se pudo generar el WOD. Inténtalo de nuevo.",
  "Ia.Assistant.Open": "Asistente IA",
  "Ia.Assistant.Title": "Asistente IA del WOD",
  "Ia.Assistant.Explain": "Explicar",
  "Ia.Assistant.Scale": "Escalar",
  "Ia.Assistant.Substitute": "Sustituir",
  "Ia.Assistant.ExplainHint": "Explica el objetivo, los targets y las horquillas por nivel.",
  "Ia.Assistant.ScaleHint": "Elige el nivel al que escalar el WOD.",
  "Ia.Assistant.SubstituteHint": "Indica el material no disponible o la lesión.",
  "Ia.Assistant.SubstitutePlaceholder": "Ej.: sin barra, solo mancuernas / lesión de hombro",
  "Ia.Assistant.Run": "Generar",
  "Ia.Assistant.Generating": "Generando...",
  "Ia.Assistant.Error": "No se pudo completar. Inténtalo de nuevo.",
  "Ia.Assistant.Length": "Extensión",
  "Ia.Assistant.LengthShort": "Breve",
  "Ia.Assistant.LengthDetailed": "Detallado",
  "Ia.Assistant.Focus": "Enfoque",
  "Ia.Assistant.FocusTechnique": "Técnica",
  "Ia.Assistant.FocusStrategy": "Estrategia",
  "Ia.Assistant.FocusLoads": "Cargas",
  "Ia.Assistant.Language": "Idioma",
  "Ia.Assistant.LanguageAuto": "Automático",
  "Ia.Assistant.Equipment": "Material",
  "Ia.Assistant.EquipmentPlaceholder": "Ej.: solo mancuernas y kettlebell",
  "Ia.Assistant.ExtraInstructions": "Instrucciones adicionales",
  "Ia.Assistant.ExtraInstructionsPlaceholder": "Ej.: mantén el mismo tiempo de trabajo, evita carrera...",
  "Ia.Timer.Open": "Iniciar timer",
  "Ia.Timer.Title": "Configurar timer",
  "Ia.Timer.Detecting": "Detectando el timer...",
  "Ia.Timer.Review": "Revisa la configuración detectada por la IA antes de iniciar el timer.",
  "Ia.Timer.Error": "No se ha podido detectar el timer. Inténtalo de nuevo.",
  "Ia.Timer.Retry": "Reintentar",
  "Ia.Timer.Type": "Tipo de timer",
  "Ia.Timer.TypeAmrap": "AMRAP",
  "Ia.Timer.TypeForTime": "For Time",
  "Ia.Timer.TypeEmom": "EMOM",
  "Ia.Timer.TypeTabata": "Intervalos",
  "Ia.Timer.Duration": "Duración",
  "Ia.Timer.RoundDuration": "Duración de cada ronda",
  "Ia.Timer.Work": "Trabajo",
  "Ia.Timer.Rounds": "Rondas",
  "Ia.Timer.Intervals": "Intervalos",
  "Ia.Timer.Rest": "Descanso",
  "Ia.Timer.Minutes": "min",
  "Ia.Timer.Seconds": "seg",
  "Ia.Timer.UseSeries": "Por series (con descanso entre ellas)",
  "Ia.Timer.SeriesCount": "Nº de series",
  "Ia.Timer.SeriesRest": "Descanso entre series",
  "Ia.Timer.Block": "Bloque",
  "Ia.Timer.AddBlock": "Añadir bloque",
  "Ia.Timer.RemoveBlock": "Quitar bloque",
  "Ia.Timer.Repetitions": "Repeticiones del bloque",
  "Ia.Timer.RestAfter": "Descanso después",
  "Ia.Timer.Start": "Iniciar timer",
  "Block.NotesForCoach": "Notas para el entrenador",
  "Block.Personalizations": "Personalizaciones del bloque",
  "Block.Personalized": "Personalizado",
  "Block.PersonalizedForYou": "Personalizado para ti",
  "Block.PlaceholderCalories": "ej: 500",
  "Block.PlaceholderCompletedReps": "Repeticiones completadas",
  "Block.PlaceholderDefault": "Introduce tu resultado",
  "Block.PlaceholderMeters": "ej: 1000",
  "Block.PlaceholderReps": "ej: 10",
  "Block.PlaceholderTime": "mm:ss",
  "Block.PlaceholderWeight": "ej: 80",
  "Block.PublicResult": "¿RESULTADO PÚBLICO?",
  "Block.PublicResultInfo": "Si eliges poner el resultado público, será visible para todos.",
  "Block.PublicResultPlaceholder": "Escribe tu resultado público...",
  "Block.Ranking": "Ranking",
  "Block.RateWeeklyRanking": "Puntua Ranking Semanal",
  "Block.RepsIntError": "Las repeticiones deben ser un número entero.",
  "Block.RepsPlaceholder": "Ej: 15",
  "Block.ResultDeleted": "¡Resultado eliminado correctamente!",
  "Block.ResultDeleteError": "No se pudo eliminar el resultado.",
  "Block.ResultEdited": "¡Resultado editado correctamente!",
  "Block.ResultEditError": "No se pudo editar el resultado.",
  "Block.Results": "Resultados",
  "Block.ResultSaved": "¡Resultado guardado correctamente!",
  "Block.ResultSaveError": "¡Error! No se pudo guardar el resultado.",
  "Block.RPE": "RPE (ESFUERZO PERCIBIDO)",
  "Block.RpeLabel": "RPE",
  "Block.Save": "Guardar",
  "Block.SaveAsTemplate": "Guardar plantilla",
  "Block.SaveResult": "Guardar Resultado",
  "Block.SaveTemplate": "Guardar plantilla",
  "Block.SaveTemplateInfo": "Este bloque se guardará como una plantilla reutilizable.",
  "Block.SaveTemplateMessage": "El bloque se guardará como plantilla para reutilizarlo en el futuro",
  "Block.SearchUser": "Buscar usuario...",
  "Block.SelectAction": "Selecciona una acción para {0}",
  "Block.SelectActionFor": "Selecciona una acción para {0}",
  "Block.SelectGroup": "-- Selecciona un grupo --",
  "Block.ShareBlack": "Compartir entrenamiento (negro)",
  "Block.ShareTrainingBlack": "Compartir entrenamiento (negro)",
  "Block.ShareTrainingWhite": "Compartir entrenamiento (blanco)",
  "Block.ShareTraining.Modal": "Compartir como imagen…",
  "Block.ShareTraining.Title": "Compartir entrenamiento",
  "Block.ShareTraining.TransparentHint": "Imagen PNG con fondo transparente, lista para stories o feed.",
  "Block.ShareTraining.Style": "Color del texto",
  "Block.ShareTraining.StyleWhite": "Blanco",
  "Block.ShareTraining.StyleBlack": "Negro",
  "Block.ShareTraining.Format": "Formato",
  "Block.ShareTraining.FormatStory": "Story (9:16)",
  "Block.ShareTraining.FormatSquare": "Cuadrado",
  "Block.ShareTraining.Align": "Alineación",
  "Block.ShareTraining.AlignLeft": "Izquierda",
  "Block.ShareTraining.AlignCenter": "Centro",
  "Block.ShareTraining.AlignRight": "Derecha",
  "Block.ShareTraining.Download": "Descargar",
  "Block.ShareTraining.Share": "Compartir",
  "Block.ShareWhite": "Compartir entrenamiento (blanco)",
  "Block.ShareToFeed": "Compartir al feed",
  "Block.ShareToFeed.BlockOnly": "Bloque",
  "Block.ShareToFeed.WithResult": "Bloque + resultados",
  "Block.ShareToFeed.ResultMode": "¿Qué quieres publicar?",
  "Block.ShareToFeed.ResultHint": "Incluye tus marcas en todas las clasificaciones de este bloque que tengan valor registrado.",
  "Block.ShareToFeed.OnSaveResult": "¿Compartir al feed?",
  "Block.ShareToFeed.OnSaveResultHint": "Si eliges Sí, al guardar se abrirá la misma pantalla que al compartir desde el menú del bloque: solo bloque o bloque con resultado(s), comentario y fotos o vídeo opcionales.",
  "Block.ShareToFeed.MediaOptional": "Opcional: fotos o vídeo en el post",
  "Block.ShareToFeed.AddMediaTitle": "Adjuntar foto o vídeo",
  "Block.ShareToFeed.CaptionForFeed": "Texto del post",
  "Block.ShareToFriends": "Compartir para amigos",
  "Block.ShareToFriendsDescription": "Descripción para el feed",
  "Block.Stats": "Estadísticas",
  "Block.Stats.Adapted": "Adaptados",
  "Block.Stats.Average": "Media",
  "Block.Stats.BetterThanAvg": "mejor que la media",
  "Block.Stats.EqualToAvg": "Igual que la media",
  "Block.Stats.Participants": "Participantes",
  "Block.Stats.WorseThanAvg": "peor que la media",
  "Block.Stats.YourResult": "Tu resultado",
  "Block.TemplateCreated": "¡Plantilla {0} creada correctamente!",
  "Block.TemplateCreateError": "No se pudo crear la plantilla.",
  "Block.TemplateName": "Nombre de la plantilla",
  "Block.TemplateNamePlaceholder": "Ej: Warm-up general",
  "Block.TemplateNameRequired": "Debes indicar un nombre para la plantilla.",
  "Block.TemplateSaveError": "Error al guardar la plantilla",
  "Block.TemplateSaveErrorEmpty": "El bloque está vacío y no se puede guardar como plantilla",
  "Block.TemplateSaveErrorName": "Debes introducir un nombre para la plantilla",
  "Block.ThisBlock": "este bloque",
  "Block.TimeFormat": "mm:ss",
  "Block.TimeFormatError": "El tiempo debe tener el formato mm:ss.",
  "Block.TimePlaceholder": "Ej: 05:30",
  "Block.TrainingExported": "¡Entrenamiento exportado!",
  "Block.UnnamedResource": "Recurso sin nombre",
  "Block.UserComment": "Comentario",
  "Block.Users": "Usuarios",
  "Block.ValidationCalories": "Las calorías deben ser un número positivo",
  "Block.ValidationDistance": "La distancia debe ser un número positivo",
  "Block.ValidationReps": "Las repeticiones deben ser un número entero positivo",
  "Block.ValidationTime": "El formato de tiempo debe ser mm:ss",
  "Block.ValidationWeight": "El peso debe ser un número positivo",
  "Block.Videos": "Vídeos:",
  "Block.Resources": "Recursos:",
  "Block.ViewBlockInfo": "Bloque",
  "Block.ViewComments": "Ver Comentarios",
  "Block.ViewOptions": "Ver opciones bloque",
  "Block.ViewRanking": "Ver Ranking",
  "Block.ViewStats": "Ver Estadísticas",
  "Block.WeeklyRankingScores": "Ranking semanal",
  "Block.WeightDescription": "Peso según género del usuario",
  "Block.WeightMinError": "El peso debe ser mayor o igual que 0.",
  "Block.WeightPlaceholder": "Ej: 100.5",
  "Block.Women": "Mujeres",
  "Block.Yes": "Sí",
  "Chat.AudioNotSupported": "Tu navegador no soporta la reproducción de audio.",
  "Chat.AudioSendError": "Error al enviar el audio.",
  "Chat.Edit": "Editar",
  "Chat.Editing": "Editando",
  "Chat.EditError": "No se pudo editar el mensaje.",
  "Chat.EditWindowExpired": "Ya no se puede editar este mensaje (máx. 15 min).",
  "Chat.CannotDetermineAthlete": "No se pudo determinar el atleta del chat para mostrar resultados.",
  "Chat.CannotIdentifyUser": "No se pudo identificar al usuario actual.",
  "Chat.CannotLoadBlock": "No se pudo cargar el bloque asociado.",
  "Chat.Coach": "COACH",
  "Chat.StaffChannel": "@coaches",
  "Chat.CoachNotes": "Notas para el Coach:",
  "Chat.Comment": "Comentario:",
  "Chat.DownloadFile": "Descargar Archivo",
  "Chat.DownloadPDF": "Descargar PDF",
  "Chat.Preview.Audio": "🎵 Audio",
  "Chat.Preview.Image": "📷 Foto",
  "Chat.Preview.Video": "🎥 Vídeo",
  "Chat.Preview.PDF": "📄 PDF",
  "Chat.PollOpen": "Encuesta",
  "Chat.PollTitle": "Crear encuesta",
  "Chat.PollQuestion": "Pregunta",
  "Chat.PollQuestionPlaceholder": "Pregunta de la encuesta",
  "Chat.PollOptions": "Opciones",
  "Chat.PollOptionPlaceholder": "Opción {0}",
  "Chat.PollAddOption": "Añadir opción",
  "Chat.PollAllowMultiple": "Permitir varias respuestas",
  "Chat.PollMultiHint": "Selecciona una o varias opciones",
  "Chat.PollSingleHint": "Selecciona una opción",
  "Chat.PollVoteButton": "Enviar voto",
  "Chat.PollSeeVotes": "Ver votos · {0}",
  "Chat.PollVoteError": "No se pudo registrar el voto.",
  "Chat.PollErrorQuestion": "Escribe la pregunta de la encuesta.",
  "Chat.PollErrorOptions": "Añade al menos dos opciones con texto.",
  "Chat.PollErrorCreate": "No se pudo crear la encuesta.",
  "Chat.PollNoVotes": "Aún no hay votos.",
  "Chat.Preview.File": "📎 Archivo",
  "Chat.FeedbackAboutBlock": "Feedback sobre bloque \u0027{0}\u0027",
  "Chat.FeedbackContextLabel": "Feedback",
  "Chat.TapOpenBlock": "Ver bloque relacionado",
  "Chat.FeedbackOn": "Feedback de {0}",
  "Chat.FileTooLarge": "El archivo es demasiado grande (máximo 200 MB).",
  "Chat.FileUploadedNoRegister": "El archivo se subió pero no se pudo registrar.",
  "Chat.GroupChat": "Chat grupal",
  "Chat.LinkedBlock": "Bloque asociado",
  "Chat.LoadBlockError": "Error al cargar el bloque.",
  "Chat.LoadingBlock": "Cargando bloque...",
  "Chat.LoadMore": "Ver más mensajes",
  "Chat.NoBlockLinked": "Este mensaje no tiene un bloque asociado.",
  "Chat.NobodySeen": "Nadie lo ha visto todavía.",
  "Chat.NoParticipants": "No hay participantes.",
  "Chat.NoPermission.Message": "No tienes permisos para acceder a este chat.",
  "Chat.NoPermission.Title": "¡Ups!",
  "Chat.MarketReadOnly": "Ya estás inscrito en esta programación. Usa el chat de tu programación para comunicarte.",
  "Chat.Reactions": "Reacciones",
  "Chat.TapToRemove": "Pulsa para quitar",
  "Chat.NoResult": "Sin resultado para {0}.",
  "Chat.NoResultFor": "Sin resultado para {0}",
  "Chat.Notes": "Notas:",
  "Chat.Participants": "Participantes",
  "Chat.ParticipantsCount": "{0} participantes",
  "Chat.Preview": "Vista Previa",
  "Chat.PrivateChat": "Chat privado",
  "Chat.Ranking": "Ranking",
  "Chat.ReadCount": "{0} / {1} leyeron este mensaje",
  "Chat.Result": "Resultado:",
  "Chat.SeenBy": "Visto por",
  "Chat.SendFileError": "Error al enviar el archivo al chat.",
  "Chat.Today": "Hoy",
  "Chat.Unknown": "Chat Desconocido",
  "Chat.UploadError": "¡Error! No se pudo guardar el resultado. Intenta más tarde.",
  "Chat.UploadFileError": "Error al subir el archivo. Intenta de nuevo.",
  "Chat.User": "Usuario",
  "Chat.VideoNotSupported": "Tu navegador no soporta la reproducción de vídeo.",
  "Chat.ViewProfile": "Ver perfil",
  "Chat.WriteMessage": "Escribe tu mensaje...",
  "Chat.Yesterday": "Ayer",
  "Chat.You": "Tú",
  "CoachAssign.Title": "Asignar coach",
  "CoachAssign.SearchAthlete": "Buscar atleta...",
  "CoachAssign.Unassigned": "Sin asignar",
  "CoachAssign.NoneHere": "No hay atletas aquí.",
  "CoachAssign.NoCoaches": "Este programa no tiene coaches. Asigna primero el rol de coach desde \u0027Atletas activos\u0027.",
  "CoachAssign.AthletesOf": "Atletas de {0}",
  "CoachAssign.FilterByCoach": "Filtrar por coach",
  "CoachAssign.LoadError": "No se pudieron cargar las asignaciones de coach.",
  "CoachAssign.SaveError": "No se pudo guardar la asignación. Inténtalo de nuevo.",
  "Common.Accept": "Aceptar",
  "Common.Actions": "Acciones",
  "Common.Add": "Añadir",
  "Common.Adapted": "Adaptados",
  "Common.Back": "Volver",
  "Common.Cancel": "Cancelar",
  "Common.Close": "Cerrar",
  "Common.Color": "Color",
  "Common.Confirm": "Confirmar",
  "Common.Continue": "Continuar",
  "Common.Copy": "Copiar",
  "Common.Create": "Crear",
  "Common.Date": "Fecha",
  "Common.Delete": "Eliminar",
  "Common.Description": "Descripción",
  "Common.Download": "Descargar",
  "Common.Edit": "Editar",
  "Common.Email": "Email",
  "Common.Filter": "Filtrar",
  "Common.Free": "GRATIS",
  "Common.From": "Desde",
  "Common.Group": "Grupo",
  "Common.Info": "Info",
  "Common.Loading": "Cargando...",
  "Common.Members": "Miembros",
  "Common.More": "Más",
  "Common.Move": "Mover",
  "Common.Name": "Nombre",
  "Common.No": "No",
  "Common.Price": "Precio",
  "Common.Private": "Privado",
  "Common.Public": "Público",
  "Common.Reps": "reps",
  "Common.Retry": "Reintentar",
  "Common.Save": "Guardar",
  "Common.Save.Changes": "Guardar cambios",
  "Common.Suggestions": "Sugerencias",
  "Common.Saving": "Guardando...",
  "Common.Sending": "Enviando...",
  "Common.Search": "Buscar",
  "Common.Send": "Enviar",
  "Common.Status": "Estado",
  "Common.Title": "Título",
  "Common.To": "Hasta",
  "Common.Uploading": "Subiendo...",
  "Common.Users": "Usuarios",
  "Common.Weight": "Peso",
  "Common.Yes": "Sí",
  "Common.Archived": "archivado",
  "Common.Login": "Iniciar sesión",
  "Common.SaveError": "Ocurrió un error al guardar.",
  "Packs.MyTitle": "Mis Packs",
  "Packs.New": "Nuevo pack",
  "Packs.EmptyHint": "Aún no has creado ningún pack.",
  "Packs.ProgramsCount": "Programaciones",
  "Packs.Archive": "Archivar",
  "Packs.ArchiveConfirm": "¿Archivar este pack? Los compradores existentes conservan el acceso.",
  "Packs.Archived": "Pack archivado.",
  "Packs.Created": "Pack creado.",
  "Packs.Saved": "Pack guardado.",
  "Packs.NotFound": "Pack no encontrado.",
  "Packs.NameRequired": "El nombre del pack es obligatorio.",
  "Packs.NewTitle": "Nuevo pack",
  "Packs.EditTitle": "Editar pack",
  "Packs.IncludedPrograms": "Programaciones incluidas",
  "Packs.NoPrograms": "Este pack todavía no incluye ninguna programación.",
  "Packs.AddProgram": "Añadir programación",
  "Packs.SelectProgram": "Selecciona una programación",
  "Packs.RemoveProgram": "Quitar del pack",
  "Packs.InitialPrograms": "Programaciones iniciales",
  "Packs.InitialProgramsHint": "Elige las programaciones que se incluirán desde el principio. Podrás cambiarlas después.",
  "Packs.NoOwnedPrograms": "Todavía no tienes ninguna programación creada por ti.",
  "Packs.Buy": "Comprar pack",
  "Packs.CreatorNotPayable": "Este coach aún no tiene cuenta de cobros configurada.",
  "Packs.MarketSection": "Packs",
  "Packs.BadgePack": "Pack de {0}",
  "Packs.Badge": "PACK",
  "Packs.ProgramsShort": "programaciones",
  "Packs.AlsoInPacks": "También disponible como parte de un pack:",
  "Packs.PaymentTypeHint": "En packs recurrentes (mensual, trimestral…) la renovación se cobra automáticamente off-session.",
  "Packs.CancelSubscription": "Cancelar suscripción al pack",
  "Packs.ConfirmCancelSubscription": "¿Cancelar tu suscripción a este pack? Perderás el acceso a las programaciones incluidas al final del periodo actual.",
  "Packs.SubscriptionCanceled": "Suscripción al pack cancelada.",
  "Packs.AlreadySubscribed": "Estás suscrito a este pack.",
  "Packs.IncludedInPack": "Incluida en el pack: {0}",
  "Packs.IncludedHint": "Esta programación forma parte de un pack que adquiriste. Pulsa para abrirlo.",
  "Day.Action": "Acción",
  "Day.Actions": "Acciones",
  "Day.AddClassification": "Añadir Clasificación",
  "Day.AddCustomization": "Añadir personalización",
  "Day.AddDescription": "Añade una descripción",
  "Day.AddedFromGroup": "Añadido desde grupo",
  "Day.AddPersonalization": "Añadir personalización",
  "Day.AddResource": "Añadir recurso",
  "Day.AddResourceMessage": "Selecciona un recurso para añadir al día",
  "Day.AddResourceTitle": "Añadir Recurso",
  "Day.AddTitle": "AÑADE UN TÍTULO",
  "Day.AllSessionsBlocksDeleted": "Se han eliminado todas las sesiones y bloques del día",
  "Day.AllSessionsDeleted": "Todas las sesiones y bloques de {0} eliminadas correctamente.",
  "Day.AlreadySelected": "Ya seleccionado",
  "Day.BlockCopied": "¡Bloque copiado! Puedes pegarlo en cualquier programa.",
  "Day.BlockCreated": "Bloque creado correctamente",
  "Day.BlockDeleted": "Bloque eliminado correctamente",
  "Day.BlockEdited": "Bloque editado correctamente",
  "Day.BlockNameRequired": "¡El nombre del bloque no puede estar vacío!",
  "Day.BlockNotes": "Notas",
  "Day.BlocksDeleted": "Bloques del día {0} eliminados correctamente.",
  "Day.BlockTemplate": "Bloque - plantilla",
  "Day.ExerciseLibrary": "Biblioteca de ejercicios",
  "ExerciseLibrary.Title": "Biblioteca de ejercicios",
  "ExerciseLibrary.Subtitle": "Inserta un benchmark o ejercicio como bloque en este día.",
  "ExerciseLibrary.AllCategories": "Todas",
  "ExerciseLibrary.SearchPlaceholder": "Buscar ejercicio...",
  "ExerciseLibrary.New": "Nuevo ejercicio",
  "ExerciseLibrary.NamePlaceholder": "Nombre del ejercicio",
  "ExerciseLibrary.Category": "Categoría",
  "ExerciseLibrary.SuggestedScore": "Puntuación sugerida",
  "ExerciseLibrary.DescriptionPlaceholder": "Descripción del WOD / benchmark",
  "ExerciseLibrary.VideoUrlPlaceholder": "URL del vídeo demostrativo (opcional)",
  "ExerciseLibrary.Empty": "No hay ejercicios en esta categoría.",
  "ExerciseLibrary.WatchDemo": "Ver demo",
  "ExerciseLibrary.Insert": "Insertar",
  "ExerciseLibrary.NameRequired": "El nombre es obligatorio.",
  "ExerciseLibrary.Saved": "Ejercicio guardado.",
  "ExerciseLibrary.SaveError": "No se pudo guardar el ejercicio.",
  "ExerciseLibrary.Deleted": "Ejercicio eliminado.",
  "ExerciseLibrary.DeleteError": "No se pudo eliminar el ejercicio.",
  "ExerciseLibrary.BlockAdded": "Bloque añadido desde la biblioteca.",
  "ExerciseLibrary.Category.Hyrox": "Hyrox",
  "ExerciseLibrary.Category.BenchmarkCrossFit": "Benchmark CrossFit",
  "ExerciseLibrary.Category.Halterofilia": "Halterofilia",
  "ExerciseLibrary.Category.Gimnasticos": "Gimnásticos",
  "ExerciseLibrary.Category.Cardio": "Cardio",
  "ExerciseLibrary.Category.Otro": "Otro",
  "Day.CalcNoWeightRMs": "No hay RMs de tipo Peso.",
  "Day.CalcPRs": "PRs",
  "Day.CalcTitle": "Calculadora de cargas",
  "Day.Calculator": "Calculadora",
  "Day.CalcWeight": "Peso",
  "Day.CalcWeightPlaceholder": "Ej. 90",
  "Day.Cancel": "Cancelar",
  "Day.Classification": "Clasificación",
  "Day.ClassificationLabel": "Clasificación:",
  "Day.ClassificationName": "Clasificación",
  "Day.Close": "Cerrar",
  "Day.Collapsed": "¡Día plegado!",
  "Day.CollapseDay": "Plegar día",
  "Day.CollapseBlocks": "Plegar bloques",
  "Day.ExpandBlocks": "Desplegar bloques",
  "Day.Color": "Color",
  "Day.ColorLabel": "COLOR",
  "Day.Confirm": "Confirmar",
  "Day.Copied": "Copiado",
  "Day.Copying": "Copiando...",
  "Day.Copy": "Copiar",
  "Day.CopyDay": "Copiar día",
  "Day.CreationDate": "Fecha de creación",
  "Day.CustomBlockCreated": "¡Bien! Bloque personalizado creado correctamente.",
  "Day.CustomBlockError": "¡Error! Ocurrió un error al crear el bloque personalizado.",
  "Day.CustomizeBlock": "Personalizar Bloque",
  "Day.CustomizeBlockDesc": "Selecciona los usuarios para los que personalizarás este bloque:",
  "Day.CustomizeBlockMessage": "Personaliza este bloque para usuarios específicos",
  "Day.CustomizeBlockTitle": "Personalizar bloque",
  "Day.DayBlocksDeleted": "Bloques del día eliminados",
  "Day.DayCollapsed": "Día colapsado",
  "Day.DayCopied": "¡Día copiado! Puedes pegarlo en cualquier programa.",
  "Day.DayPasted": "Día pegado correctamente",
  "Day.DayPasteError": "Error al pegar el día",
  "Day.DayTemplate": "Plantilla de día",
  "Day.HideDayBlocks": "Ocultar bloques",
  "Day.HideDayBlocksMessage": "Selecciona los atletas a los que quieres ocultar todos los bloques de este día",
  "Day.HideDaySaved": "Bloques del día ocultados correctamente",
  "Day.HideDayError": "Error al ocultar los bloques del día",
  "Day.SelectedAthletes": "Atletas seleccionados",
  "Day.DayTemplateDeleted": "¡Plantilla {0} eliminada correctamente!",
  "Day.DayTemplateDeleteError": "¡Error! No se pudo eliminar la plantilla de día.",
  "Day.DayTemplateImported": "Bloques de la plantilla {0} añadidos a la sesión.",
  "Day.DayTemplateImportError": "Error al importar la plantilla de día.",
  "Day.DayTemplateMessage": "Guarda los bloques del día como plantilla",
  "Day.DayTemplateOption": "Día - plantilla",
  "Day.DayTemplateSaved": "¡Plantilla {0} guardada correctamente!",
  "Day.DayTemplateTitle": "Plantilla de día",
  "Day.Delete": "Eliminar",
  "Day.DeleteBlockError": "¡Error! No se pudo eliminar el bloque.",
  "Day.DeleteBlocksError": "Ocurrió un error al eliminar los bloques o sesiones del día.",
  "Day.DeleteDay": "Eliminar Día",
  "Day.DeleteDayBlocks": "Eliminar bloques del dia",
  "Day.DeleteDayConfirm": "¿Estás seguro de que deseas borrar todos los bloques de este día?",
  "Day.DeleteDayMessage": "¿Estás seguro de que quieres eliminar los bloques y sesiones de este día?",
  "Day.DeleteDayTitle": "Eliminar día",
  "Day.DeleteTemplate": "Eliminar Plantilla",
  "Day.DeleteTemplateConfirm": "¿Estás seguro de que quieres eliminar esta plantilla?",
  "Day.DeleteTemplateMessage": "¿Estás seguro de que quieres eliminar esta plantilla?",
  "Day.DeleteTemplateTitle": "Eliminar plantilla",
  "Day.Description": "Descripción",
  "Day.DescriptionPlaceholder": "Añade una descripción...",
  "Day.EditBlockError": "Ocurrió un error al editar el bloque.",
  "Day.ErrorAddingGroup": "Error al añadir el grupo",
  "Day.ErrorBlockDestination": "Error: destino del bloque no válido",
  "Day.ErrorCreatingCustomBlock": "Error al crear el bloque personalizado",
  "Day.ErrorCreatingSession": "Error al crear la sesión",
  "Day.ErrorDayNotAvailable": "Este día no está disponible",
  "Day.ErrorDeletingBlock": "Error al eliminar el bloque",
  "Day.ErrorDeletingDayBlocksSessions": "Error al eliminar bloques y sesiones del día",
  "Day.ErrorDeletingDayTemplate": "Error al eliminar la plantilla de día",
  "Day.ErrorDeletingTemplate": "Error al eliminar la plantilla",
  "Day.ErrorEditingBlock": "Error al editar el bloque",
  "Day.ErrorImportingDayTemplate": "Error al importar la plantilla de día",
  "Day.ErrorLoadingGroupMembers": "Error al cargar los miembros del grupo",
  "Day.ErrorLoadingGroups": "Error al cargar los grupos",
  "Day.ErrorLoadingClassifications": "Error al cargar las clasificaciones",
  "Day.ErrorMovingCopyingBlock": "Error al mover/copiar el bloque",
  "Day.ErrorSavingBlock": "Error al guardar el bloque",
  "Day.ErrorUpdatingBlock": "Error al actualizar el bloque",
  "Day.Group": "Grupo",
  "Day.GroupHasNoMembers": "El grupo no tiene miembros",
  "Day.InvalidDay": "Día no válido.",
  "Day.LessIsBetter": "Menos es mejor",
  "Day.LinkAnotherClassification": "Añadir clasificación vinculada",
  "Day.NoLinkableClassifications": "No hay clasificaciones disponibles para vincular.",
  "Day.LinkClassification": "Vincular Clasificación",
  "Day.LinkClassificationTitle": "Vincular clasificación",
  "Day.LinkedClassification": "Clasificación vinculada:",
  "Day.LoadCalculator": "Cargar calculadora",
  "Day.MoreIsBetter": "Más es mejor",
  "Day.Move": "Mover",
  "Day.MoveBlockError": "¡Error al mover/copiar el bloque!",
  "Day.Moved": "Movido",
  "Day.Moving": "Moviendo...",
  "Day.Name": "Nombre",
  "Day.AddNew": "Nuevo",
  "Day.NewBlock": "Nuevo bloque",
  "Day.NewCustomBlock": "Bloque personalizado",
  "Day.CustomizeNeedsAthletes": "Selecciona al menos un atleta o grupo para personalizar.",
  "Day.MarkAsCompleted": "Marcar como completada",
  "Day.SessionCompleted": "Sesión marcada como completada",
  "Day.SessionUncompleted": "Sesión desmarcada",
  "Day.SessionAdded": "Sesión añadida",
  "Day.SessionDeleted": "Sesión eliminada",
  "Day.AddSession": "Añadir sesión",
  "Day.ConfirmDeleteSession": "¿Eliminar esta sesión y todo su contenido?",
  "Day.NewSession": "Nueva Sesión",
  "Day.NewSessionDescription": "Configura los detalles de la nueva sesión para el día.",
  "Day.NewSessionMessage": "Introduce el nombre de la nueva sesión",
  "Day.NewSessionOption": "Nueva sesión",
  "Day.NewSessionTitle": "Nueva sesión",
  "Day.No": "No",
  "Day.NoBlocksOrSessions": "No hay bloques ni sesiones",
  "Day.NoBocksOrSessions": "{0} no contiene bloques ni sesiones.",
  "Day.NoResources": "No se encontraron recursos.",
  "Day.NoResourcesFound": "No se encontraron recursos",
  "Day.NoResourcesHint": "Para crear recursos ve a Configuración → Biblioteca de recursos y añade los que quieras.",
  "Day.NoTemplates": "NO HAY PLANTILLAS DISPONIBLES",
  "Day.NoTemplatesAvailable": "No hay plantillas disponibles",
  "Day.Notes": "Notas",
  "Day.TrainingType": "Tipo de entreno",
  "Day.SearchIcon": "Buscar icono",
  "Block.TrainingType.Metcon": "Metcon",
  "Block.TrainingType.Gimnasia": "Gimnasia",
  "Block.TrainingType.Fuerza": "Fuerza / Halterofilia",
  "Block.TrainingType.Strongman": "Strongman",
  "Block.TrainingType.Carrera": "Carrera",
  "Block.TrainingType.Bici": "Bici",
  "Block.TrainingType.Natacion": "Natación",
  "Block.TrainingType.Remo": "Remo",
  "Block.TrainingType.Ski": "Ski",
  "Block.TrainingType.Endurance": "Endurance",
  "Block.TrainingType.Yoga": "Yoga",
  "Block.TrainingType.Descanso": "Descanso",
  "Block.TrainingType.Otro": "Otro",
  "Day.NotesPlaceholder": "Notas del bloque...",
  "Day.NoTrainings": "No hay entrenamientos para este día",
  "Day.NoWeightRMs": "Sin RMs de peso registrados",
  "Day.Order": "Orden",
  "Day.PasteBlock": "Pegar bloque",
  "Day.PasteDay": "Pegar día",
  "Day.PasteDayMessage": "Se reemplazará el contenido de este día con el día copiado. ¿Continuar?",
  "Day.PasteDayTitle": "Pegar día copiado",
  "Day.Ranking": "Clasificación",
  "Day.RankingLabel": "Ranking",
  "Day.RankingName": "Nombre",
  "Day.RankingTitle": "Título Ranking",
  "Day.RankingTitlePlaceholder": "Título del ranking...",
  "Day.ResourceSelected": "Recurso seleccionado",
  "Day.Save": "Guardar",
  "Day.SaveBlockError": "Ocurrió un error al guardar el bloque.",
  "Day.SaveChanges": "Guardar cambios",
  "Day.SaveCustomBlock": "Guardar bloque personalizado",
  "Day.SaveDayTemplate": "Guardar plantilla día",
  "Day.SaveDayTemplateInfo": "Guardarás los elementos seleccionados como una plantilla.",
  "Day.SaveSession": "Guardar sesión",
  "Day.Score": "Puntuación",
  "Day.SearchClassification": "Buscar clasificación...",
  "Day.SearchDayTemplate": "Buscar plantilla día",
  "Day.SearchResource": "Buscar recurso...",
  "Day.SearchTemplate": "Buscar plantilla",
  "Day.SearchUser": "Buscar usuario",
  "Day.SelectAction": "Selecciona una acción",
  "Day.SelectAGroup": "Selecciona un grupo",
  "Day.SelectDayAction": "Selecciona una acción este día",
  "Day.SelectGroup": "Seleccionar grupo",
  "Day.SelectResource": "Selecciona uno de tus recursos disponibles.",
  "Day.SessionNameLabel": "Nombre de la sesión",
  "Day.SessionNamePlaceholder": "Nombre de la sesión...",
  "Day.SessionNameQuestion": "¿Cómo se llama esta sesión?",
  "Day.SessionNameRequired": "El nombre de la sesión es obligatorio",
  "Day.TemplateAction": "ACCIÓN",
  "Day.TemplateAdded": "Plantilla añadida",
  "Day.TemplateBlocksAddedToSession": "Bloques de la plantilla añadidos a la sesión",
  "Day.TemplateBlocksImported": "Bloques de la plantilla importados",
  "Day.TemplateCreated": "¡Plantilla {0} creada correctamente!",
  "Day.TemplateDate": "FECHA CREACIÓN",
  "Day.TemplateDeleted": "¡Plantilla {0} eliminada correctamente!",
  "Day.TemplateDeleteError": "¡Error! No se pudo eliminar la plantilla",
  "Day.TemplateEmpty": "La plantilla está vacía",
  "Day.TemplateImported": "Plantilla añadida correctamente.",
  "Day.TemplateName": "NOMBRE",
  "Day.TemplateNameQuestion": "¿Cómo se llama esta plantilla?",
  "Day.TemplateNameRequired": "No se pudo guardar la plantilla. ¡El nombre es obligatorio!",
  "Day.Templates": "PLANTILLAS",
  "Day.TemplateSessionsImported": "Sesiones de la plantilla importadas",
  "Day.Title": "Título",
  "Day.Users": "Usuarios",
  "Day.Utilities": "Utilidades",
  "Day.WeeklyScoreable": "Ranking semanal",
  "Day.WeeklyScored": "Puntuable Semanal",
  "Day.Weight": "Peso",
  "Day.WriteDescription": "Escribe la descripción...",
  "Day.Yes": "Sí",
  "DayAbbr.Fri": "V",
  "DayAbbr.Mon": "L",
  "DayAbbr.Sat": "S",
  "DayAbbr.Sun": "D",
  "DayAbbr.Thu": "J",
  "DayAbbr.Tue": "M",
  "DayAbbr.Wed": "X",
  "DayName.Friday": "viernes",
  "DayName.Monday": "lunes",
  "DayName.Saturday": "sábado",
  "DayName.Sunday": "domingo",
  "DayName.Thursday": "jueves",
  "DayName.Tuesday": "martes",
  "DayName.Wednesday": "miércoles",
  "Error.Boundary.DefaultMessage": "Ha ocurrido un error inesperado. Por favor, intenta más tarde.",
  "Error.Boundary.Retry": "Reintentar",
  "Error.Boundary.Title": "¡Uy! Algo salió mal",
  "Error.Boundary.WorkingOnIt": "Estamos trabajando para solucionarlo.",
  "Error.MissingConfig": "Falta fichero de configuración",
  "Error.NotFound": "No encontramos esta página.",
  "Lang.English": "English",
  "Lang.Spanish": "Español",
  "Layout.Calc.NoWeightRMs": "No hay RMs de tipo Peso.",
  "Layout.Calc.Placeholder": "Ej. 90",
  "Layout.Calc.PRs": "PRs",
  "Layout.Calc.PRTableTime": "Tiempo",
  "Layout.Calc.RunAddPRFormKicker": "Nuevo PR de carrera",
  "Layout.Calc.RunHourUnit": "h",
  "Layout.Calc.RunMinUnit": "min",
  "Layout.Calc.RunNoPRs": "Introduce un ritmo base o registra tus PRs de carrera para cargarlos aquí.",
  "Layout.Calc.RunPRsAddFirstCta": "Añadir un PR de carrera",
  "Layout.Calc.RunPRsLabel": "PRs de carrera",
  "Layout.Calc.RunPaceLabel": "Ritmo base (min/km)",
  "Layout.Calc.RunPacePreview": "≈ {0} min/km",
  "Layout.Calc.RunSecUnit": "seg",
  "Layout.Calc.RunSpeedInline": "≈ {0} km/h · {1} /milla",
  "Layout.Calc.RunToolProjection": "Proyec.",
  "Layout.Calc.RunToolPercents": "%",
  "Layout.Calc.RunToolSplits": "Parciales",
  "Layout.Calc.RunToolTarget": "Objetivo",
  "Layout.Calc.RunToolZones": "Zonas",
  "Layout.Calc.RunProjConstant": "Constante",
  "Layout.Calc.RunProjRealistic": "Realista",
  "Layout.Calc.RunProjBenchmarkPr": "Referencia: {0} ({1})",
  "Layout.Calc.RunProjBenchmarkPace": "Referencia: ritmo actual sobre 5 km",
  "Layout.Calc.RunCustomDistanceLabel": "Otra distancia (km)",
  "Layout.Calc.RunSplitsDistanceLabel": "Distancia",
  "Layout.Calc.RunLap400": "Vuelta 400 m: {0}",
  "Layout.Calc.RunTargetDistanceLabel": "¿Qué distancia quieres correr? (km)",
  "Layout.Calc.RunTargetTimeLabel": "¿En cuánto tiempo?",
  "Layout.Calc.RunProjExplain": "Cuánto tardarías en cada distancia. «Constante» mantiene tu ritmo; «Realista» lo ajusta por fatiga al subir de distancia.",
  "Layout.Calc.RunPercentsExplain": "Tu ritmo base escalado por velocidad: 100% es tu ritmo; por encima vas más rápido y por debajo más lento.",
  "Layout.Calc.RunSplitsExplain": "Elige una distancia y te damos el tiempo de paso por cada kilómetro (y lo que tardas en cada vuelta de 400 m).",
  "Layout.Calc.RunTargetExplain": "¿Qué distancia quieres correr y en cuánto tiempo? Con eso calculamos el ritmo al que debes ir.",
  "Layout.Calc.RunZonesExplain": "A partir de tu ritmo o PR estimamos tu VDOT y los ritmos de cada zona de entrenamiento (fácil, maratón, umbral, intervalo y repetición).",
  "Layout.Calc.RunZonesVdot": "VDOT {0}",
  "Layout.Calc.RunZoneEasy": "Fácil",
  "Layout.Calc.RunZoneMarathon": "Maratón",
  "Layout.Calc.RunZoneThreshold": "Umbral",
  "Layout.Calc.RunZoneInterval": "Intervalo",
  "Layout.Calc.RunZoneRep": "Repetición",
  "Layout.Calc.RunZonesEmpty": "Introduce un ritmo o elige un PR de carrera para estimar tus zonas.",
  "Layout.Calc.RunVdotWhat": "El VDOT es una nota única de tu forma de carrera (tu VO₂máx «de correr»): resume a qué ritmos puedes rodar. Aquí lo estimamos con tu ritmo o PR; relojes como Garmin lo calculan en tiempo real cruzando tu ritmo por GPS con tu frecuencia cardiaca.",
  "Layout.Calc.RunHrMaxLabel": "FC máxima",
  "Layout.Calc.RunHrMaxHint": "≈ 220 − tu edad. Si la pones, cada zona muestra su franja de frecuencia cardiaca (% de tu FC máx). Es orientativa: la FC sube con calor, fatiga o cafeína.",
  "Layout.Calc.RunHrBpm": "ppm",
  "Layout.Calc.RunZoneEasySub": "Rodajes y recuperación",
  "Layout.Calc.RunZoneMarathonSub": "Ritmo de fondo / maratón",
  "Layout.Calc.RunZoneThresholdSub": "Tempo, umbral de lactato",
  "Layout.Calc.RunZoneIntervalSub": "VO₂máx, series largas",
  "Layout.Calc.RunZoneRepSub": "Velocidad y economía",
  "Layout.Calc.IntensityMax": "Máximo",
  "Layout.Calc.IntensityHigh": "Alto",
  "Layout.Calc.IntensityMedium": "Medio",
  "Layout.Calc.IntensityLight": "Ligero",
  "Layout.Calc.IntensityVeryLight": "Muy ligero",
  "Layout.Calc.RunTimeLabel": "Tiempo (mm:ss)",
  "Layout.Calc.RunTotalTimeLabel": "Tiempo total en {0}",
  "Layout.Calc.SelectPR": "Selecciona un PR...",
  "Layout.Calc.TabCalculator": "Calculadora",
  "Layout.Calc.TabPercentages": "Porcentajes",
  "Layout.Calc.TabRun": "Carrera",
  "Layout.Calc.TabWeight": "Peso",
  "Layout.Calc.Title": "Calculadora",
  "Layout.Calc.Weight": "Peso",
  "Layout.Calc.AddPR": "Añadir PR",
  "Layout.Calc.AddPRFormKicker": "Nuevo RM de peso",
  "Layout.Calc.SearchPR": "Buscar PR…",
  "Layout.Calc.NoRMReferences": "No hay ejercicios de referencia de peso en el catálogo. Contacta con soporte si deberían aparecer.",
  "Layout.Calc.PRFormIncomplete": "Completa ejercicio y un valor válido.",
  "Layout.Calc.PRValueInvalid": "Introduce un peso mayor que cero (kg).",
  "Layout.Calc.PRSaveError": "No se pudo guardar el PR. ¿Quizá ya existe para ese ejercicio?",
  "Layout.Calc.PRListNoFilterMatch": "Ningún PR coincide con la búsqueda.",
  "Layout.Calc.PRTableExercise": "Ejercicio",
  "Layout.Calc.PRTableWeight": "Peso (kg)",
  "Layout.Calc.PRTableFirstDate": "Registrado",
  "Layout.Calc.PRTableLastUpdate": "Última mejora",
  "Layout.Calc.PRTableActions": "Acciones",
  "Layout.Calc.PRDeleteConfirmTitle": "Quitar PR",
  "Layout.Calc.PRDeleteConfirmMessage": "¿Eliminar \"{0}\" de tu lista? No se puede deshacer.",
  "Layout.Calc.PREvolutionSummary": "Llevas {0} PRs de peso. Última mejora: {1} el {2}.",
  "Layout.Calc.PRsQuickViewMore": "Ver más",
  "Layout.Calc.PRsAddFirstCta": "Añadir un PR de peso",
  "Layout.Calc.PRUpdateError": "No se pudo actualizar el PR.",
  "Layout.Calc.PRDeleteError": "No se pudo eliminar el PR.",
  "Layout.CompleteProfile.Message": "Para continuar, necesitas completar tu perfil con al menos tu nombre.",
  "Layout.CompleteProfile.Title": "Completa tu perfil",
  "Layout.CompleteProfile.Understood": "Entendido",
  "Layout.FiscalData.Address": "Dirección",
  "Layout.FiscalData.City": "Ciudad",
  "Layout.FiscalData.Country": "País",
  "Layout.FiscalData.FullName": "Nombre completo / Razón social",
  "Layout.FiscalData.Intro": "Necesitamos tus datos fiscales para poder operar con Stripe.",
  "Layout.FiscalData.NIF": "NIF / CIF",
  "Layout.FiscalData.SaveButton": "Guardar datos fiscales",
  "Layout.FiscalData.Saved": "Datos fiscales guardados correctamente.",
  "Layout.FiscalData.Title": "Datos de facturación",
  "Layout.Footer.Address1": "C/ Valentín Beato nº24 piso 3 oficina 5,",
  "Layout.Footer.Address2": "C.P. 28037",
  "Layout.Footer.Barcelona": "(Barcelona)",
  "Layout.Footer.Copyright": "© WodbusterTechnologies Ltd 2021. Todos los derechos reservados.",
  "Layout.Footer.Home": "Home",
  "Layout.Footer.LegalLinks": "Aviso legal | Política de privacidad | Política de cookies",
  "Layout.Footer.LegalNotice": "Aviso legal y condiciones del Box",
  "Layout.Footer.Madrid": "(Madrid)",
  "Layout.Footer.PoweredBy": "POWERED BY",
  "Layout.Footer.ServiceContract": "Contrato de servicio",
  "Layout.Footer.TvView": "Vista Tv",
  "Layout.Footer.WhatsAppHours": "(L-V 9:00-17:00)",
  "Layout.SortableRecovery.Failed": "No se ha podido activar el movimiento de elementos. Puedes continuar trabajando con el resto de la página e intentarlo de nuevo más tarde.",
  "Layout.SortableRecovery.Retrying": "El movimiento de elementos no está disponible. Estamos intentando activarlo de nuevo...",
  "Layout.SortableRecovery.Succeeded": "Movimiento de elementos activado. Ya puedes volver a mover o copiar elementos.",
  "Layout.SortableRecovery.Title": "Mover elementos",
  "Market.Box": "BOX",
  "Market.Detail.AlreadyPurchased": "Ya has adquirido este programa",
  "Market.Detail.AssignedRate": "Tarifa asignada",
  "Market.Detail.BasePrice": "Precio base",
  "Market.Detail.BoughtSuccess": "¡Bien! Has comprado {0}.",
  "Market.Detail.Buy": "Comprar",
  "Market.Detail.TryFree": "Probar gratis {0} mes(es)",
  "Market.Detail.TryFreeWeeks": "Probar gratis {0} semana(s)",
  "Market.Detail.TryFreeSuccess": "¡Genial! Has activado la prueba gratuita de {0}.",
  "Market.Detail.DiscountDuration": "Durante {0} cobros",
  "Market.Detail.FreeTrialBadge": "{0} meses gratis",
  "Market.Detail.FreeTrialBadgeSingular": "{0} mes gratis",
  "Market.Detail.FreeTrialBadgeWeeks": "{0} semanas gratis",
  "Market.Detail.FreeTrialBadgeWeekSingular": "{0} semana gratis",
  "Market.Detail.NotLoggedIn": "Parece que no has iniciado sesión en \u003cstrong\u003eWB Coach. Para ello haz \u0027Login\u0027 con una cuenta válida o crea una nueva cuenta. Ambas opciones están disponibles en el panel superior (escritorio) o panel inferior (móvil). \u003c/strong\u003e.",
  "Market.Detail.Oops": "¡Ups!",
  "Market.Detail.PersonalizedPrice": "Esta programación tiene un precio personalizado para ti.",
  "Market.Detail.SelectRate": "Selecciona tarifa",
  "Market.Detail.Title": "Detalles de la programación",
  "Market.Discount": "DESCUENTO",
  "Market.Filters": "Filtros",
  "Market.ClearFilters": "Limpiar filtros",
  "Market.LoadError": "❌ No se pudieron cargar las programaciones. Intenta más tarde.",
  "Market.NotSubscribed": "¡Ups! No estás inscrito en {0}.",
  "Market.Period.Annual": "/ Año",
  "Market.Period.Biannual": "/ Semestre",
  "Market.Period.Monthly": "/ Mes",
  "Market.Period.OneTime": "/ Único",
  "Market.Period.Quarterly": "/ Trimestre",
  "Market.SearchPlaceholder": "Buscar programación...",
  "Market.Title": "Market",
  "Market.Detail.Contact": "Contactar",
  "Market.MyInquiries": "Mis consultas",
  "Market.NoInquiries": "No tienes consultas activas",
  "Market.Subscriptions": "Atletas inscritos",
  "Market.LoadMore": "Cargar más",
  "Market.PrevPage": "Página anterior",
  "Market.NextPage": "Página siguiente",
  "MonthName.April": "Abril",
  "MonthName.August": "Agosto",
  "MonthName.December": "Diciembre",
  "MonthName.February": "Febrero",
  "MonthName.January": "Enero",
  "MonthName.July": "Julio",
  "MonthName.June": "Junio",
  "MonthName.March": "Marzo",
  "MonthName.May": "Mayo",
  "MonthName.November": "Noviembre",
  "MonthName.October": "Octubre",
  "MonthName.September": "Septiembre",
  "Onboarding.Title": "Bienvenida",
  "Onboarding.Next": "Siguiente",
  "Onboarding.Start": "Empezar",
  "Onboarding.Skip": "Saltar",
  "Onboarding.Coach.Slide1.Title": "¡Bienvenido a WodBuster Coach!",
  "Onboarding.Coach.Slide1.Body": "Tu espacio para crear, vender y gestionar tus programas de entrenamiento, todo en un mismo lugar.",
  "Onboarding.Coach.Slide1.Bullet1": "Organiza tu contenido por semanas, días y bloques.",
  "Onboarding.Coach.Slide1.Bullet2": "Reutiliza plantillas y ahorra tiempo.",
  "Onboarding.Coach.Slide1.Bullet3": "Todo sincronizado con tus atletas en tiempo real.",
  "Onboarding.Coach.Slide2.Title": "Crea tus programas",
  "Onboarding.Coach.Slide2.Body": "Diseña entrenamientos completos con ejercicios, series, cargas y vídeos de referencia.",
  "Onboarding.Coach.Slide2.Bullet1": "Fuerza, WODs, benchmarks y mucho más.",
  "Onboarding.Coach.Slide2.Bullet2": "Adjunta vídeos y notas en cada ejercicio.",
  "Onboarding.Coach.Slide2.Bullet3": "Programa por fechas o en formato continuo (rolling).",
  "Onboarding.Coach.Slide3.Title": "Publica y cobra",
  "Onboarding.Coach.Slide3.Body": "Comparte tus programas en el Marketplace y monetiza tu trabajo sin complicaciones.",
  "Onboarding.Coach.Slide3.Bullet1": "Cobros automáticos y recurrentes con Stripe.",
  "Onboarding.Coach.Slide3.Bullet2": "Ofrece pruebas gratis y descuentos.",
  "Onboarding.Coach.Slide3.Bullet3": "Consulta ingresos y facturas desde tu panel.",
  "Onboarding.Coach.Slide4.Title": "Comunícate con tus atletas",
  "Onboarding.Coach.Slide4.Body": "Mantén a tus atletas motivados e informados en cada paso.",
  "Onboarding.Coach.Slide4.Bullet1": "Chat directo con cada atleta.",
  "Onboarding.Coach.Slide4.Bullet2": "Notificaciones al publicar bloques o semanas.",
  "Onboarding.Coach.Slide4.Bullet3": "Resuelve dudas sin salir de la app.",
  "Onboarding.Coach.Slide5.Title": "Haz crecer tu marca",
  "Onboarding.Coach.Slide5.Body": "Tu perfil es tu escaparate ante nuevos atletas.",
  "Onboarding.Coach.Slide5.Bullet1": "Completa tu biografía y tu foto.",
  "Onboarding.Coach.Slide5.Bullet2": "Consigue el distintivo de verificado.",
  "Onboarding.Coach.Slide5.Bullet3": "Comparte novedades en el feed social.",
  "Onboarding.Athlete.Slide1.Title": "¡Bienvenido a WodBuster Coach!",
  "Onboarding.Athlete.Slide1.Body": "Aquí entrenas, registras tu progreso y compartes con la comunidad.",
  "Onboarding.Athlete.Slide1.Bullet1": "Sigue el plan de tu coach día a día.",
  "Onboarding.Athlete.Slide1.Bullet2": "Entrena desde cualquier dispositivo.",
  "Onboarding.Athlete.Slide1.Bullet3": "Todo tu progreso en un solo sitio.",
  "Onboarding.Athlete.Slide2.Title": "Únete a un programa",
  "Onboarding.Athlete.Slide2.Body": "Encuentra el entrenamiento perfecto para tus objetivos.",
  "Onboarding.Athlete.Slide2.Bullet1": "Explora programas en el Marketplace.",
  "Onboarding.Athlete.Slide2.Bullet2": "Prueba gratis antes de suscribirte.",
  "Onboarding.Athlete.Slide2.Bullet3": "Apúntate al programa de tu coach.",
  "Onboarding.Athlete.Slide3.Title": "Registra tus resultados",
  "Onboarding.Athlete.Slide3.Body": "Anota cada sesión y mide tu evolución con el tiempo.",
  "Onboarding.Athlete.Slide3.Bullet1": "Guarda marcas, tiempos y repeticiones.",
  "Onboarding.Athlete.Slide3.Bullet2": "Lleva el control de tus récords (PRs).",
  "Onboarding.Athlete.Slide3.Bullet3": "Usa la calculadora de cargas y el cronómetro.",
  "Onboarding.Athlete.Slide4.Title": "Compite y motívate",
  "Onboarding.Athlete.Slide4.Body": "Compara tu rendimiento y supérate cada semana.",
  "Onboarding.Athlete.Slide4.Bullet1": "Clasificaciones por bloque y por semana.",
  "Onboarding.Athlete.Slide4.Bullet2": "Rankings y retos de la comunidad.",
  "Onboarding.Athlete.Slide4.Bullet3": "Bate tus propias marcas.",
  "Onboarding.Athlete.Slide5.Title": "Comunidad e insignias",
  "Onboarding.Athlete.Slide5.Body": "Entrenar es más divertido en compañía.",
  "Onboarding.Athlete.Slide5.Bullet1": "Comparte tus entrenos en el feed.",
  "Onboarding.Athlete.Slide5.Bullet2": "Haz amigos y síguelos.",
  "Onboarding.Athlete.Slide5.Bullet3": "Desbloquea insignias por tu constancia.",
  "Tour.Next": "Siguiente",
  "Tour.Prev": "Atrás",
  "Tour.Done": "Entendido",
  "Tour.Progress": "{{current}} de {{total}}",
  "Tour.Relaunch": "Ver tutorial",
  "Tour.Programs.Welcome.Title": "Empecemos por aquí",
  "Tour.Programs.Welcome.Body": "Te enseño lo esencial para crear tu primer programa. Es rápido, en menos de un minuto.",
  "Tour.Programs.Create.Title": "Crea tu programa",
  "Tour.Programs.Create.Body": "Desde este botón puedes crear un programa desde cero, importarlo de TrueCoach o crear un pack de varios programas.",
  "Tour.Programs.Next.Title": "Y dentro del programa...",
  "Tour.Programs.Next.Body": "Al abrir un programa organizarás su contenido en ciclos, semanas, días y bloques. Te lo enseño cuando entres en uno.",
  "Tour.Editor.Welcome.Title": "Este es el editor",
  "Tour.Editor.Welcome.Body": "Aquí construyes el contenido de tu programa. Vamos con lo básico.",
  "Tour.Editor.Config.Title": "Configuración del programa",
  "Tour.Editor.Config.Body": "Desde aquí creas ciclos, gestionas atletas y coaches, precios, plantillas y los ajustes del programa.",
  "Tour.Editor.AddWeek.Title": "Añade contenido",
  "Tour.Editor.AddWeek.Body": "Crea semanas para tu programa. Dentro de cada semana añadirás días y, en cada día, los bloques de entrenamiento.",
  "Tour.Editor.Weeks.Title": "Navega entre semanas",
  "Tour.Editor.Weeks.Body": "Usa este selector para moverte entre las semanas del programa.",
  "Tour.Editor.Publish.Title": "Publica cuando estés listo",
  "Tour.Editor.Publish.Body": "Cuando tu programa tenga contenido, cambia su visibilidad a pública para que tus atletas puedan verlo y suscribirse.",
  "Nav.Calculator": "Calculadora",
  "Nav.Soporte": "Soporte",
  "Nav.CreateAccount": "Crear Cuenta",
  "Nav.Login": "Login",
  "Nav.Logout": "Logout",
  "Nav.Market": "Market",
  "Nav.Profile": "Perfil",
  "Nav.Programs": "Programas",
  "Nav.Social": "Social",
  "Nav.Timer": "Timer",
  "Nav.Admin": "Admin",
  "Admin.Title": "Panel de administración",
  "Admin.Tab.Summary": "Resumen",
  "Admin.Tab.Statistics": "Estadísticas",
  "Admin.Tab.Logs": "Logs",
  "Admin.Tab.Programs": "Programaciones",
  "Admin.Tab.Users": "Usuarios",
  "Admin.Tab.Payments": "Pagos",
  "Admin.Tab.Support": "Soporte",
  "Admin.HealthError": "No se pudo cargar el resumen.",
  "ProgramDetail.Statistics": "Estadísticas",
  "ProgramStats.Kpi.RevenuePeriod": "Ingresos del periodo",
  "ProgramStats.Kpi.RevenueTotal": "Facturación total",
  "ProgramStats.Kpi.PayingAthletes": "Atletas de pago",
  "ProgramStats.Kpi.AvgTicket": "Ingreso medio por atleta",
  "ProgramStats.Kpi.ActiveSubs": "Suscripciones activas",
  "ProgramStats.Kpi.FailedCharges": "Cobros fallidos",
  "ProgramStats.Kpi.AtRisk": "En riesgo",
  "ProgramStats.Kpi.NewSignups": "Altas",
  "ProgramStats.Kpi.Churn": "Bajas",
  "ProgramStats.Kpi.PaidChurn": "De pago",
  "ProgramStats.MonthlyRevenue": "Ingresos por mes (últimos 12 meses)",
  "ProgramStats.Section.Activity": "Actividad",
  "ActivityTracking.Title": "Actividad Atletas",
  "ActivityTracking.Subtitle": "Atletas ordenados por tiempo sin entrenar. Combina bloques y días completados y resultados registrados.",
  "ActivityTracking.Threshold": "Marcar como inactivo tras (días)",
  "ActivityTracking.Tab.Inactive": "Inactivos",
  "ActivityTracking.Tab.Risk": "En riesgo",
  "ActivityTracking.Tab.Active": "Al día",
  "ActivityTracking.NoAthletes": "No hay atletas inscritos.",
  "ActivityTracking.EmptyTab": "No hay atletas en esta categoría.",
  "ActivityTracking.NeverEnrolled": "Sin actividad · inscrito hace {0} días",
  "ActivityTracking.LastSeen": "Última actividad hace {0} días",
  "ActivityTracking.Today": "Última actividad hoy",
  "ActivityTracking.Yesterday": "Última actividad ayer",
  "ActivityTracking.OpenChatHint": "Abrir chat con el atleta",
  "ProgramStats.Kpi.Athletes": "Atletas inscritos",
  "ProgramStats.Kpi.ActiveAthletes": "Atletas activos",
  "ProgramStats.Kpi.Adherence": "Adherencia",
  "ProgramStats.Kpi.CompletedBlocks": "Bloques completados",
  "ProgramStats.Kpi.Results": "Resultados registrados",
  "ProgramStats.Kpi.Messages": "Mensajes enviados",
  "ProgramStats.Top.MostActive": "Atletas más activos",
  "ProgramStats.Top.Results": "Más resultados registrados",
  "ProgramStats.Top.CompletedBlocks": "Más bloques completados",
  "Admin.Stats.NoData": "Sin datos suficientes todavía.",
  "Admin.Stats.Period.Week": "Semana",
  "Admin.Stats.Period.Month": "Mes",
  "Admin.Stats.Period.Year": "Año",
  "Admin.Stats.Period.AllTime": "Histórico",
  "Admin.Stats.TestBadge.Title": "Probar celebración de insignia",
  "Admin.Stats.TestBadge.Button": "Lanzar celebración",
  "Admin.Stats.Kpi.CommissionPeriod": "Comisión del periodo (app)",
  "Admin.Stats.MonthlyCommission": "Comisiones por mes (últimos 12 meses)",
  "Admin.Stats.NewUsers.Title": "Nuevos usuarios",
  "Admin.Stats.NewUsers.Daily": "Diario",
  "Admin.Stats.NewUsers.Weekly": "Semanal",
  "Admin.Stats.ViewingMonth": "Mostrando datos de {0}",
  "Admin.Stats.ViewAll": "Ver todo",
  "Admin.Stats.GrossLabel": "Bruto: {0}",
  "Admin.Stats.ActivityBreakdown": "{0} mensajes · {1} resultados",
  "Admin.Stats.ChurnBreakdown": "{0} con suscripción de pago",
  "Admin.Stats.Kpi.Churn": "Bajas de atletas",
  "Admin.Stats.Kpi.ChurnPaid": "De pago",
  "Admin.Stats.Top.Churn": "Programaciones con más bajas",
  "Admin.Stats.Info.Churn": "Programaciones ordenadas por el número de atletas que se han dado de baja durante el periodo. Entre paréntesis, cuántas de esas bajas tenían una suscripción de pago activa.",
  "Admin.Stats.Kpi.Users": "Usuarios totales",
  "Admin.Stats.Kpi.Coaches": "Entrenadores",
  "Admin.Stats.Kpi.Programs": "Programaciones",
  "Admin.Stats.Kpi.Athletes": "Inscripciones de atletas",
  "Admin.Stats.Kpi.CommissionTotal": "Comisión total (app)",
  "Admin.Stats.Kpi.ThisMonth": "Este mes",
  "Admin.Stats.Kpi.GrossRevenue": "Volumen bruto procesado",
  "Admin.Stats.Kpi.CommissionRate": "Comisión",
  "Admin.Stats.Kpi.CompletedBlocks": "Bloques completados",
  "Admin.Stats.Kpi.Results": "Resultados registrados",
  "Admin.Stats.Kpi.Messages": "Mensajes enviados",
  "Admin.Stats.Kpi.Posts": "Publicaciones",
  "Admin.Stats.Kpi.ActiveUsers7d": "Usuarios activos (7 días)",
  "Admin.Stats.Kpi.ActiveUsers30d": "30 días",
  "Admin.Stats.Info.AppAccess": "Usuarios ordenados por el número de veces que han entrado a la app (sesiones registradas). El subtítulo muestra la fecha del último acceso.",
  "Admin.Stats.Top.AppAccess": "Usuarios que más entran a la app",
  "Admin.Stats.Info.Title": "¿Qué mide este ranking?",
  "Admin.Stats.Info.Revenue": "Programaciones ordenadas por la comisión que genera la app (un porcentaje de cada pago exitoso) durante el periodo seleccionado. El valor entre paréntesis es el importe bruto procesado.",
  "Admin.Stats.Info.MostAthletes": "Programaciones con más inscripciones de atletas en el periodo. En «Histórico» se cuentan todas las inscripciones registradas.",
  "Admin.Stats.Info.MostActive": "Programaciones con más actividad: suma de mensajes enviados en su chat y resultados registrados por sus atletas durante el periodo.",
  "Admin.Stats.Info.Creators": "Usuarios ordenados por el número de programaciones que han creado. Es un total acumulado (no depende del periodo, porque las programaciones no tienen fecha de creación).",
  "Admin.Stats.Info.Coaches": "Entrenadores ordenados por el número de atletas inscritos en las programaciones que han creado durante el periodo.",
  "Admin.Stats.Info.CompletedBlocks": "Usuarios ordenados por el número de bloques marcados como completados durante el periodo.",
  "Admin.Stats.Info.Results": "Usuarios ordenados por el número de resultados que han registrado durante el periodo.",
  "Admin.Stats.Top.Revenue": "Programaciones que más ingresos generan",
  "Admin.Stats.Top.MostAthletes": "Programaciones con más atletas",
  "Admin.Stats.Top.MostActive": "Programaciones más activas",
  "Admin.Stats.Top.Creators": "Usuarios con más programaciones creadas",
  "Admin.Stats.Top.Coaches": "Entrenadores con más atletas",
  "Admin.Stats.Top.CompletedBlocks": "Usuarios con más bloques completados",
  "Admin.Stats.Top.Results": "Usuarios con más resultados registrados",
  "Admin.Stat.TotalUsers": "Usuarios totales",
  "Admin.Stat.TotalPrograms": "Programaciones",
  "Admin.Stat.PaymentsToday": "Pagos hoy",
  "Admin.Stat.MessagesToday": "Mensajes hoy",
  "Admin.Stat.VsYesterday": "Ayer",
  "Admin.Stat.Errors24h": "Errores (24h)",
  "Admin.Stat.ActiveUsers24h": "Activos (24h)",
  "Admin.Logs.Level": "Nivel",
  "Admin.Logs.AllLevels": "Todos",
  "Admin.Logs.From": "Desde",
  "Admin.Logs.To": "Hasta",
  "Admin.Logs.Text": "Texto",
  "Admin.Logs.TextPlaceholder": "Buscar en mensaje…",
  "Admin.Logs.Search": "Buscar",
  "Admin.Logs.Empty": "Sin entradas.",
  "Admin.Logs.Total": "Entradas",
  "Admin.Logs.ColTime": "Hora",
  "Admin.Logs.ColLevel": "Nivel",
  "Admin.Logs.ColMessage": "Mensaje",
  "Admin.Logs.HasStack": "(stacktrace)",
  "Admin.Search": "Buscar",
  "Admin.Open": "Abrir",
  "Admin.Details": "Detalle",
  "Admin.Programs.SearchPlaceholder": "Id, nombre o email del creador…",
  "Admin.Programs.Total": "Resultados",
  "Admin.Programs.Name": "Nombre",
  "Admin.Programs.Creator": "Creador",
  "Admin.Programs.Email": "Email",
  "Admin.Programs.Members": "Miembros",
  "Admin.Programs.Chats": "Chats",
  "Admin.FreePrivate.Title": "Programas privados gratuitos",
  "Admin.FreePrivate.Subtitle": "Privados y sin cobro: no generan comisión. Revisa los que acumulan muchos atletas (posible uso para esquivar la comisión).",
  "Admin.FreePrivate.Refresh": "Actualizar",
  "Admin.FreePrivate.Programs": "Programas",
  "Admin.FreePrivate.ActiveAthletes": "Atletas activos",
  "Admin.FreePrivate.TotalAthletes": "Inscritos",
  "Admin.FreePrivate.Empty": "No hay programas privados gratuitos con atletas.",
  "Admin.Users.SearchPlaceholder": "Id, email o nombre…",
  "Admin.Users.Total": "Resultados",
  "Admin.Users.Email": "Email",
  "Admin.Users.Name": "Nombre",
  "Admin.Users.SuperAdmin": "Superadmin",
  "Admin.Users.Coach": "Coach",
  "Admin.Users.Verified": "Verificado",
  "Admin.Users.MakeVerified": "Marcar como verificado",
  "Admin.Users.RemoveVerified": "Quitar verificado",
  "Admin.Users.VerifiedUpdated": "Estado de verificación actualizado",
  "Admin.Users.VerifiedUpdateError": "No se pudo actualizar la verificación",
  "Admin.Users.LastActivity": "Última actividad",
  "Admin.Users.JoinDate": "Fecha de inclusión",
  "Admin.Users.StripeAccount": "Cuenta Stripe",
  "Admin.Users.ProgramsList": "Programaciones",
  "Admin.Users.Creator": "Creador",
  "Admin.Users.SupportChat": "Chat soporte",
  "Admin.Users.OpenSupportChat": "Abrir chat de soporte con este usuario",
  "Admin.Users.OpenSupportChatError": "No se pudo abrir el chat de soporte",
  "Admin.Payments.From": "Desde",
  "Admin.Payments.To": "Hasta",
  "Admin.Payments.FilterStatus": "Estado",
  "Admin.Payments.All": "Todos",
  "Admin.Payments.Success": "OK",
  "Admin.Payments.Failed": "Fallido",
  "Admin.Payments.Actions": "Acciones",
  "Admin.Payments.Refund": "Reembolsar",
  "Admin.Payments.Refunded": "Reembolsado",
  "Admin.Payments.Refund.ConfirmTitle": "Confirmar reembolso",
  "Admin.Payments.Refund.ConfirmText": "Vas a reembolsar {0} a {1} por la programación «{2}». Esta acción no se puede deshacer.",
  "Admin.Payments.Refund.ConfirmHint": "Se devuelve el importe al cliente (la comisión de la plataforma no se reembolsa) y el atleta mantiene el acceso. Stripe enviará el email de reembolso si la cuenta lo tiene activado.",
  "Admin.Payments.Refund.Success": "Reembolso realizado correctamente",
  "Admin.Payments.Refund.Error": "No se pudo realizar el reembolso",
  "Admin.Payments.Refund.NotFound": "No se encontró el pago",
  "Admin.Payments.Refund.NotSuccessful": "Solo se pueden reembolsar pagos exitosos",
  "Admin.Payments.Refund.AlreadyRefunded": "Este pago ya está reembolsado",
  "Admin.Payments.Refund.NoPaymentIntent": "El pago no tiene PaymentIntent de Stripe",
  "Admin.Payments.Refund.NoConnectedAccount": "El creador no tiene cuenta de Stripe conectada",
  "Admin.Payments.Total": "Registros",
  "Admin.Payments.Sum": "Suma OK (página)",
  "Admin.Payments.Earned": "Ganado en el periodo",
  "Admin.Payments.Commission": "Comisión ({0}%)",
  "Admin.Payments.SuccessCount": "{0} pagos OK",
  "Admin.Payments.Date": "Fecha",
  "Admin.Payments.User": "Usuario",
  "Admin.Payments.Program": "Programación",
  "Admin.Payments.Amount": "Importe",
  "Admin.Payments.ColStatus": "Estado",
  "Admin.Payments.Stripe": "Stripe",
  "Admin.Anomalies.Title": "Salud de pagos",
  "Admin.Anomalies.Description": "Detección automática de posibles anomalías en suscripciones de pago recurrente. Pulsa una tarjeta para ver el detalle.",
  "Admin.Anomalies.Cron": "Cron de cobros",
  "Admin.Anomalies.CronOk": "OK",
  "Admin.Anomalies.CronAlert": "Revisar",
  "Admin.Anomalies.CronLast": "Hace {0} h",
  "Admin.Anomalies.CronPending": "{0} cobros pendientes",
  "Admin.Anomalies.AdvancedDate": "Fecha adelantada sin cobro",
  "Admin.Anomalies.Overdue": "Activos pero morosos",
  "Admin.Anomalies.NoMethod": "Activos sin medio de cobro",
  "Admin.Anomalies.Failures": "Fallos de cobro recurrentes",
  "Admin.Anomalies.Duplicates": "Posibles cobros duplicados",
  "Admin.Anomalies.Amount": "Importe incoherente",
  "Admin.Anomalies.Empty": "Sin casos en esta categoría.",
  "Admin.Anomalies.Yes": "Sí",
  "Admin.Anomalies.No": "No",
  "Admin.Anomalies.Col.Type": "Tipo",
  "Admin.Anomalies.Col.Active": "Activa",
  "Admin.Anomalies.Col.LastPaymentDate": "FechaÚltimoPago",
  "Admin.Anomalies.Col.RealPayment": "Último cobro real",
  "Admin.Anomalies.Col.Detail": "Detalle",
  "Admin.Pager.Prev": "Anterior",
  "Admin.Pager.Next": "Siguiente",
  "Admin.Pager.Page": "Página",
  "Payment.Error.BackToMarket": "Volver al Marketplace",
  "Payment.Error.Message": "No se ha podido completar la operación",
  "Payment.Error.Title": "El pago ha fallado",
  "Payment.Error.TryLater": "Por favor, intenta de nuevo más tarde.",
  "Payment.Success.BackToPrograms": "Volver a mis programaciones",
  "Payment.Success.Completed": "¡Pago completado con éxito!",
  "Payment.Success.CardUpdated": "¡Tarjeta actualizada!",
  "Payment.Success.CardUpdatedDesc": "Tu método de pago se ha actualizado correctamente. Los próximos cobros se realizarán con la nueva tarjeta.",
  "Payment.Success.Problem": "Hubo un problema al confirmar el pago",
  "Payment.Success.Processing": "Procesando…",
  "Payment.Success.ProcessingTitle": "Procesando pago…",
  "Payment.Success.ProgramAdded": "La programación se añadió a tu cuenta.",
  "Payment.Success.PackCompleted": "¡Compra del pack completada!",
  "Payment.Success.PackAddedDesc": "Las programaciones del pack se han añadido a tu cuenta.",
  "Payment.Success.Title": "¡Pago completado!",
  "Payment.Success.WithIssues": "Pago con incidencias",
  "Profile.AgeLabel": "Edad",
  "Profile.AgePlaceholder": "Tu edad",
  "Profile.AutoPayments": "Cobros Automáticos",
  "Profile.AutoPaymentsDescription": "Ejecuta manualmente los cobros automáticos pendientes. Solo SuperAdmins pueden usar este botón.",
  "Profile.AutoPaymentsError": "Error realizando los cobros automáticos.",
  "Profile.AutoPaymentsException": "Error ejecutando cobros: {0}",
  "Profile.AutoPaymentsOk": "Cobros automáticos ejecutados correctamente.",
  "Profile.CenterLabel": "Centro",
  "Profile.CenterPlaceholder": "Nombre de tu centro",
  "Profile.Change": "Cambiar",
  "Profile.DescriptionLabel": "Descripción",
  "Profile.DescriptionPlaceholder": "Escribe algo sobre tí :)",
  "Profile.EditPR": "Editar PR",
  "Profile.EmailLabel": "Email",
  "Profile.ExecutePayments": "Ejecutar pagos",
  "Profile.Exercise": "Ejercicio",
  "Profile.FiscalAddress": "Dirección:",
  "Profile.FiscalCity": "Ciudad",
  "Profile.FiscalCountry": "País",
  "Profile.FiscalData": "Tus datos fiscales:",
  "Profile.FiscalDNI": "DNI / NIF / CIF",
  "Profile.FiscalFullName": "Nombre completo / Razón social",
  "Profile.FiscalIVA": "IVA",
  "Profile.FiscalValidationDate": "Fecha de validación",
  "Profile.GenderLabel": "Género",
  "Profile.LoadingRecords": "Cargando records...",
  "Profile.Logout": "Cerrar sesión",
  "Profile.MetricUnitLabel": "Unidad Métrica",
  "Profile.NameError": "¡Error! El nombre es obligatorio.",
  "Profile.NameLabel": "Nombre",
  "Profile.NamePlaceholder": "Ingresa tu nombre",
  "Profile.NameRequired": "¡Ups! Debes introducir tu nombre para continuar.",
  "Profile.LastNameLabel": "Apellidos",
  "Profile.LastNamePlaceholder": "Ingresa tus apellidos",
  "Profile.LastNameRequired": "¡Ups! Debes introducir tus apellidos para continuar.",
  "Profile.NewPR": "Nuevo PR",
  "Profile.NoRecords": "No tienes records aún.",
  "Profile.PaymentDescription": "Si quieres que tu programación sea de pago, debes gestionar los pagos con  Stripe.",
  "Profile.PaymentManagement": "Gestión de Pagos",
  "Profile.PersonalRecords": "Records Personales",
  "Profile.PublicProfileLabel": "Perfil público",
  "Profile.PublicProfileDesc": "Si lo activas, cualquier usuario podrá ver tus publicaciones sin necesidad de ser tu amigo. Si está desactivado, solo lo verán tus amigos.",
  "Profile.PRManageInCalculator": "Los records de peso (RM) los puedes ver, añadir y usar en la calculadora de cargas del menú (icono calculadora).",
  "Profile.RepsPlaceholder": "Repeticiones",
  "Profile.SavedOk": "¡Bien! Perfil guardado correctamente.",
  "Profile.SaveError": "No se pudo guardar el perfil. Intenta más tarde.",
  "Profile.StripeConfigured": "Tu cuenta de Stripe ya está configurada correctamente.",
  "Profile.StripeConnectError": "No se pudo conectar con Stripe. Inténtalo de nuevo.",
  "Stripe.Onboarding.Checking": "Comprobando el estado de tus cobros…",
  "Stripe.Onboarding.Ready": "Cobros activados. Tu cuenta de Stripe está lista.",
  "Stripe.Onboarding.Pending": "Configuración pendiente. Te faltan unos pasos en Stripe.",
  "Stripe.Onboarding.NotConfigured": "Aún no has configurado los cobros con Stripe.",
  "Stripe.Onboarding.BankInfo": "Cuenta bancaria",
  "Stripe.Onboarding.Email": "Email",
  "Stripe.Onboarding.Country": "País",
  "Stripe.Onboarding.Currency": "Moneda",
  "Stripe.Onboarding.Configure": "Configurar cobros con Stripe",
  "Stripe.Onboarding.Continue": "Continuar configuración",
  "Stripe.Onboarding.Manage": "Gestionar en Stripe",
  "Stripe.Onboarding.Redirecting": "Redirigiendo a Stripe…",
  "Stripe.Onboarding.StatusError": "No se pudo comprobar el estado de tu cuenta de Stripe.",
  "Stripe.Onboarding.Retry": "Reintentar",
  "Stripe.Onboarding.AlreadyDone": "Tu cuenta de Stripe ya está configurada correctamente.",
  "Stripe.Onboarding.ConnectError": "No se pudo conectar con Stripe. Inténtalo de nuevo.",
  "Stripe.Return.Checking": "Comprobando tu cuenta de Stripe…",
  "Stripe.Return.SuccessTitle": "¡Cobros configurados!",
  "Stripe.Return.SuccessDesc": "Tu cuenta de Stripe está lista. Ya puedes vender programaciones de pago.",
  "Stripe.Return.PendingTitle": "Configuración aún incompleta",
  "Stripe.Return.PendingDesc": "Stripe necesita algún dato más para activar tus cobros. Puedes continuar ahora o terminarlo más tarde desde tu perfil.",
  "Stripe.Return.Continue": "Continuar en Stripe",
  "Stripe.Return.BackToProfile": "Volver a mi perfil",
  "Stripe.Return.BackToProgram": "Volver a mis programaciones",
  "Profile.ActiveSubscriptions": "Mis suscripciones",
  "Profile.ActiveSubscriptionsDesc": "Gestiona los métodos de pago de tus suscripciones activas.",
  "Profile.ChangeCard": "Cambiar tarjeta",
  "Profile.ChangeCardError": "No se pudo iniciar el cambio de tarjeta. Inténtalo de nuevo.",
  "Profile.TimePlaceholder": "Ej: 05:30",
  "Profile.Title": "Perfil",
  "Profile.Value": "Valor",
  "Profile.Viewer.Loading": "Cargando perfil...",
  "Profile.Viewer.NoBio": "Sin biografía",
  "Profile.Viewer.NoName": "Sin nombre",
  "Profile.Viewer.NoRecords": "Este atleta aún no tiene records registrados.",
  "Profile.Viewer.NotFound": "No se encontró información del perfil.",
  "Profile.Viewer.Title": "Perfil de atleta",
  "Profile.Viewer.SubscriptionTitle": "Suscripción y pagos",
  "Profile.Viewer.JoinDate": "Fecha de inscripción",
  "Profile.Viewer.SubscriptionStatus": "Estado de suscripción",
  "Profile.Viewer.Active": "Activa",
  "Profile.Viewer.Inactive": "Inactiva",
  "Profile.Viewer.PaymentType": "Tipo de pago",
  "Profile.Viewer.LastPayment": "Último pago",
  "Profile.Viewer.NextPayment": "Siguiente pago",
  "Profile.Viewer.TrialPeriod": "Periodo de prueba",
  "Profile.Viewer.SubscriptionStart": "Inicio de suscripción",
  "Profile.Viewer.PayOnce": "Pago único",
  "Profile.Viewer.PayMonthly": "Mensual",
  "Profile.Viewer.PayQuarterly": "Trimestral",
  "Profile.Viewer.PaySemiannual": "Semestral",
  "Profile.Viewer.PayAnnual": "Anual",
  "Profile.Viewer.PayFree": "Gratis",
  "Profile.Viewer.CoachNotesTitle": "Notas entre coaches",
  "Profile.Viewer.CoachNotesHint": "Visible y editable por todos los coaches de esta programación.",
  "Profile.Viewer.CoachNotesPlaceholder": "Observaciones sobre el atleta en esta programación…",
  "Profile.Viewer.CoachNotesSaved": "Notas guardadas.",
  "Profile.Viewer.CoachNotesSave": "Guardar notas",
  "Profile.Viewer.CoachNotesLastEdit": "Última actualización",
  "Profile.Viewer.CoachNotesError": "No se pudieron guardar las notas.",
  "Profile.Viewer.CoachNotesLoadError": "No se pudieron cargar las notas (comprueba conexión o permisos). Aun así puedes escribir y guardar.",
  "Profile.Viewer.CoachNotesEmpty": "Todavía no hay notas para este atleta en esta programación.",
  "Profile.Viewer.CoachNotesEdit": "Editar",
  "Profile.Viewer.CoachNotesAdd": "Añadir notas",
  "Profile.Viewer.CoachNotesCancel": "Cancelar",
  "Profile.Viewer.CoachNotesAddedLabel": "Última modificación:",
  "Profile.Viewer.StripeAccountIdLabel": "ID de cuenta de Stripe",
  "Profile.Viewer.StripeAccountIdNone": "Sin cuenta de Stripe vinculada",
  "Profile.WeightPlaceholder": "Peso en kg",
  "Profile.WeightUnitLabel": "Unidad de Pesos",
  "ProgramDetail.Actions": "Acciones",
  "ProgramDetail.ActiveAthletes": "Atletas Activos",
  "ProgramDetail.RelativeStart": "Fecha de inicio",
  "ProgramDetail.RelativeCurrentDay": "Día actual",
  "ProgramDetail.RelativeStartUpdated": "Fecha de inicio actualizada.",
  "ProgramDetail.RelativeStartSaveError": "No se pudo actualizar la fecha de inicio. Inténtalo de nuevo.",
  "ProgramDetail.RelativeCadenceHint": "Elige cómo se libera el contenido para los atletas: Semanal (una semana cada vez) o Mensual (un mes cada vez).",
  "ProgramDetail.Role": "Rol",
  "ProgramDetail.Subscription": "Tarifa",
  "ProgramDetail.SubscriptionStatus": "Estado suscripción",
  "ProgramDetail.Creator": "Creador",
  "ProgramDetail.ActiveAthletesCount": "Atletas activos ({0})",
  "ProgramDetail.ActiveChats": "Chats activos",
  "ProgramDetail.ActiveUsers": "Usuarios activos",
  "ProgramDetail.AddCustomRate": "Añadir tarifa personalizada",
  "ProgramDetail.AddMember": "Añadir miembro",
  "ProgramDetail.AddMemberError": "Error al añadir miembro",
  "ProgramDetail.AddRate": "Añadir tarifa",
  "ProgramDetail.AddResource": "Añadir recurso",
  "ProgramDetail.AddToProgram": "Añadir al programa",
  "ProgramDetail.AddUser": "Añadir usuario",
  "ProgramDetail.AddUserConfirm": "¿Quieres añadir este usuario al programa?",
  "ProgramDetail.AddUserError": "¡Error! No se pudo añadir el usuario.",
  "ProgramDetail.AddBlock": "Añadir bloque",
  "ProgramDetail.AddWeek": "Añadir semana",
  "ProgramDetail.AlreadyInGroup": "El usuario ya está en el grupo",
  "ProgramDetail.Amount": "Importe",
  "ProgramDetail.AssignToGroup": "Asignar a grupo",
  "ProgramDetail.AssociatedBlock": "Bloque asociado",
  "ProgramDetail.BlockUnit": "BLOQUE",
  "ProgramDetail.Athlete": "Atletas",
  "ProgramDetail.AthleteActivity": "Actividad del atleta",
  "ProgramDetail.FichaBlocksCompleted": "{0} bloques completados",
  "ProgramDetail.FichaBlocksCompletedSingular": "{0} bloque completado",
  "ProgramDetail.AthleteAdded": "Atleta {0} añadido.",
  "ProgramDetail.AthleteAddError": "No se pudo añadir el atleta.",
  "ProgramDetail.AthleteDeleteError": "¡Error! No se ha podido eliminar al atleta.",
  "ProgramDetail.AthleteEmailPlaceholder": "Email del atleta...",
  "ProgramDetail.AthleteGroups": "Grupos de Atletas",
  "ProgramDetail.Athletes.ActiveUsers": "Usuarios activos:",
  "ProgramDetail.Athletes.AddUser": "Añadir usuario:",
  "ProgramDetail.Athletes.AddUserConfirm": "¿Deseas añadir a {0}?",
  "ProgramDetail.Athletes.Athlete": "Atleta",
  "ProgramDetail.Athletes.Coach": "COACH",
  "ProgramDetail.Athletes.ConfirmDelete": "¿Estás seguro de que deseas eliminar a este atleta?",
  "ProgramDetail.Athletes.EmailPlaceholder": "Email exacto del atleta...",
  "ProgramDetail.Athletes.FreeTrial30": "Prueba gratuita de 30 días",
  "ProgramDetail.Athletes.FreeTrial7": "Prueba gratuita de 7 días",
  "ProgramDetail.Athletes.MakeCoach": "Hacer Coach",
  "ProgramDetail.Athletes.MakeCoachConfirm": "¿Deseas hacer coach a {0}?",
  "ProgramDetail.Athletes.NoFreeTrial": "Sin prueba gratuita",
  "ProgramDetail.Athletes.NoMatches": "No hay coincidencias.",
  "ProgramDetail.Athletes.RemoveCoach": "Deshacer Coach",
  "ProgramDetail.Athletes.RemoveCoachConfirm": "¿Deseas quitar permisos de coach a {0}?",
  "ProgramDetail.Athletes.SearchPlaceholder": "Buscar atleta por nombre...",
  "ProgramDetail.Athletes.Since": "Desde",
  "ProgramDetail.Athletes.UserNotFound": "❌ No se encontró ningún usuario con ese email.",
  "ProgramDetail.Athletes.ViewProfile": "Ver perfil",
  "ProgramDetail.Billing": "Facturación",
  "ProgramDetail.Billing.AmountCol": "Importe",
  "ProgramDetail.Billing.DateCol": "Fecha",
  "ProgramDetail.Billing.DateSearch": "Búsqueda por fecha:",
  "ProgramDetail.Billing.EmailCol": "Email",
  "ProgramDetail.Billing.ExportExcel": "Exportar Excel",
  "ProgramDetail.Billing.LastPayment": "Último pago",
  "ProgramDetail.Billing.NameCol": "Nombre",
  "ProgramDetail.Billing.NoPayments": "No hay pagos en el periodo seleccionado.",
  "ProgramDetail.Billing.NoUsers": "Sin usuarios.",
  "ProgramDetail.Billing.PaymentIntentCol": "PaymentIntent",
  "ProgramDetail.Billing.Payments": "Pagos:",
  "ProgramDetail.Billing.ProgramUsers": "Usuarios de la programación:",
  "ProgramDetail.Billing.StatusCol": "Estado",
  "ProgramDetail.Billing.Title": "Facturación",
  "ProgramDetail.BillingLoadError": "Error cargando la facturación.",
  "ProgramDetail.Block": "Bloque",
  "ProgramDetail.BlockColor": "COLOR DEL BLOQUE",
  "ProgramDetail.BlockComments": "Comentarios del bloque",
  "ProgramDetail.BlockDescription": "DESCRIPCIÓN",
  "ProgramDetail.BlockDescriptionPlaceholder": "Escribe la descripción",
  "ProgramDetail.BlockLoadError": "Error al cargar el bloque",
  "ProgramDetail.BlockLoadErrorOccurred": "Ha ocurrido un error al cargar el bloque",
  "ProgramDetail.BlockScore": "PUNTUACIÓN",
  "ProgramDetail.BlockTitle": "TÍTULO DEL BLOQUE",
  "ProgramDetail.BlockTitlePlaceholder": "Escribe el título del bloque",
  "ProgramDetail.BoxPriceError": "Error al gestionar el precio del box",
  "ProgramDetail.BoxUnlinked": "Box desvinculado",
  "ProgramDetail.BoxUnlinkError": "Error al desvincular el box",
  "ProgramDetail.Cancel": "Cancelar",
  "ProgramDetail.ChatOpenError": "Error al abrir el chat",
  "ProgramDetail.Chats": "Chats",
  "ProgramDetail.Chats.Active": "Chats Activos",
  "ProgramDetail.Chats.FileSent": "Archivo enviado",
  "ProgramDetail.Chats.Groups": "Grupos:",
  "ProgramDetail.Chats.NoChats": "No hay chats en esta programación.",
  "ProgramDetail.Chats.OneToOne": "One-To-One:",
  "ProgramDetail.Chats.SearchUser": "Buscar usuario...",
  "ProgramDetail.ChooseRate": "Elige tarifa",
  "ProgramDetail.Close": "Cerrar",
  "ProgramDetail.CoachRemoved": "Entrenador eliminado",
  "ProgramDetail.CoachRemoveError": "Error al eliminar al entrenador",
  "ProgramDetail.Config": "Configuración",
  "ProgramDetail.ConfigParams": "Parámetros Configuración",
  "ProgramDetail.Configuration": "Configuración",
  "ProgramDetail.CoachesPresent": "Coaches viendo esta programación",
  "ProgramDetail.Confirm": "Confirmar",
  "ProgramDetail.Copy": "Copiar",
  "ProgramDetail.CopyError": "Error al copiar",
  "ProgramDetail.Create": "Crear",
  "ProgramDetail.CreateEditRates": "Crear/Editar Tarifas",
  "ProgramDetail.CreateGroup": "Crear grupo",
  "ProgramDetail.CreateNewRate": "Crear nueva tarifa",
  "ProgramDetail.CustomRate": "Tarifa personalizada",
  "ProgramDetail.CustomRateCreated": "Tarifa personalizada creada",
  "ProgramDetail.CustomRates": "Tarifas personalizadas",
  "ProgramDetail.Date": "Fecha",
  "ProgramDetail.Day": "Día",
  "ProgramDetail.DeactivateDiscount": "Desactivar descuento",
  "ProgramDetail.Delete": "Eliminar",
  "ProgramDetail.DeleteAthlete": "Eliminar atleta",
  "ProgramDetail.DeleteAthleteConfirm": "¿Estás seguro de que quieres eliminar a este atleta del programa?",
  "ProgramDetail.DeleteResource": "Eliminar recurso",
  "ProgramDetail.DeleteResourceConfirm": "¿Estás seguro de que quieres eliminar este recurso?",
  "ProgramDetail.Description": "Descripción",
  "ProgramDetail.DescriptionOptional": "Descripción (opcional)",
  "ProgramDetail.DescriptionPlaceholder": "Introduce una descripción...",
  "ProgramDetail.Discount": "Descuento",
  "ProgramDetail.DiscountActive": "Descuento activo",
  "ProgramDetail.DiscountPercentage": "Porcentaje de descuento",
  "ProgramDetail.DiscountDurationCycles": "Duración del descuento (nº de cobros)",
  "ProgramDetail.DiscountDurationHint": "Nº de cobros a los que se aplica el descuento, incluido el primero. Vacío o 1 = solo el primer pago.",
  "ProgramDetail.FreeTrial": "Prueba gratuita",
  "ProgramDetail.FreeTrialMonths": "Meses de prueba gratis",
  "ProgramDetail.FreeTrialDuration": "Duración de la prueba gratis",
  "ProgramDetail.FreeTrialUnit": "Unidad",
  "ProgramDetail.FreeTrialUnitWeeks": "Semanas",
  "ProgramDetail.FreeTrialUnitMonths": "Meses",
  "ProgramDetail.FreeTrialHint": "Tiempo de acceso gratuito al inscribirse (sin tarjeta) según la unidad elegida. Al terminar, el atleta deberá comprar la programación. Vacío o 0 = sin prueba.",
  "ProgramDetail.SaveFreeTrial": "Guardar prueba gratuita",
  "ProgramDetail.PaymentOptions": "Opciones de pago",
  "ProgramDetail.PaymentOptionsHint": "Ofrece varias periodicidades con precios distintos (opcional). Si no añades ninguna, se usa el precio único de arriba.",
  "ProgramDetail.Periodicity": "Periodicidad",
  "ProgramDetail.AddPaymentOption": "Añadir opción",
  "ProgramDetail.SavePaymentOptions": "Guardar opciones de pago",
  "ProgramDetail.PaymentOptionsSaved": "Opciones de pago actualizadas",
  "ProgramDetail.PaymentOptionsSaveError": "Error al guardar las opciones de pago",
  "ProgramDetail.PaymentOptionInvalidPrice": "Introduce un precio válido",
  "Periodicity.Unico": "Pago único",
  "Periodicity.Mensual": "Mensual",
  "Periodicity.Trimestral": "Trimestral",
  "Periodicity.Semestral": "Semestral",
  "Periodicity.Anual": "Anual",
  "Periodicity.Gratis": "Gratis",
  "Market.Detail.SelectPaymentOption": "Elige tu plan de pago",
  "ProgramDetail.DiscountUpdated": "Descuento actualizado",
  "ProgramDetail.DiscountUpdateError": "Error al actualizar el descuento",
  "ProgramDetail.Download": "Descargar",
  "ProgramDetail.EditBoxPrice": "Editar precio Box",
  "ProgramDetail.EditDiscount": "Editar descuento",
  "ProgramDetail.EditRate": "Editar tarifa",
  "ProgramDetail.EditWelcomeMessage": "Editar mensaje de bienvenida",
  "ProgramDetail.ExportExcel": "Exportar Excel",
  "ProgramDetail.Feedback.AthleteActivity": "Actividad de los atletas:",
  "ProgramDetail.Feedback.Block": "Bloque",
  "ProgramDetail.FilterByBlock": "Filtrar por bloque",
  "ProgramDetail.FilterByAthlete": "Filtrar por atleta",
  "ProgramDetail.FeedbacksAllAthletes": "Todos los atletas",
  "ProgramDetail.FeedbacksRemoveAthleteFilter": "Quitar filtro de atleta",
  "ProgramDetail.FilterByDay": "Filtrar por día",
  "ProgramDetail.WholeWeek": "Semana",
  "ProgramDetail.FilterAll": "Todos",
  "ProgramDetail.Feedback.BlockComments": "Comentarios del bloque:",
  "ProgramDetail.Feedback.CoachNotes": "Notas para el coach:",
  "ProgramDetail.Feedback.GiveFeedback": "Dar feedback",
  "ProgramDetail.Feedback.MarkSeen": "Marcar visto",
  "ProgramDetail.Feedback.NoResults": "Aún no hay resultados para esta semana.",
  "ProgramDetail.Feedback.Read": "Leído",
  "ProgramDetail.Feedback.ResultLabel": "Resultado:",
  "ProgramDetail.Feedback.SelectWeek": "Seleccionar semana:",
  "ProgramDetail.Feedback.Title": "Feedbacks recientes",
  "ProgramDetail.Feedback.WeekLabel": "Semana",
  "ProgramDetail.FeedbackAnswered": "Feedback respondido",
  "ProgramDetail.FeedbackCommentError": "Error al enviar el comentario de feedback",
  "ProgramDetail.FeedbackError": "Ocurrió un error al iniciar el feedback.",
  "ProgramDetail.FeedbackMarkError": "Error al marcar el feedback",
  "ProgramDetail.Feedbacks": "Feedbacks",
  "ProgramDetail.FeedbackTabActivity": "Actividad",
  "ProgramDetail.FeedbackTabFichas": "Fichas",
  "ProgramDetail.FeedbackBackToList": "Volver",
  "ProgramDetail.FeedbackSent": "¡Feedback contestado!",
  "ProgramDetail.FeedbackUserError": "Error al obtener el usuario de feedback",
  "ProgramDetail.FileSent": "Archivo enviado",
  "ProgramDetail.Filter": "Filtrar",
  "ProgramDetail.FreeTrial30": "Prueba gratuita 30 días",
  "ProgramDetail.FreeTrial7": "Prueba gratuita 7 días",
  "ProgramDetail.From": "Desde",
  "ProgramDetail.GeneralPrice": "Precio general",
  "ProgramDetail.GiveFeedback": "Dar feedback",
  "ProgramDetail.GoBack": "Volver",
  "ProgramDetail.Group": "Grupo",
  "ProgramDetail.GroupCreated": "Grupo creado",
  "ProgramDetail.GroupCreateError": "Error al crear el grupo",
  "ProgramDetail.GroupCreateErrorOccurred": "Ha ocurrido un error al crear el grupo",
  "ProgramDetail.GroupDeleted": "Grupo eliminado",
  "ProgramDetail.GroupDeleteError": "Error al eliminar el grupo",
  "ProgramDetail.GroupLoadError": "Error al cargar el grupo",
  "ProgramDetail.GroupNamePlaceholder": "Nombre del grupo...",
  "ProgramDetail.GroupNameRequired": "El nombre del grupo es obligatorio",
  "ProgramDetail.GroupOpenError": "Error al abrir el grupo",
  "ProgramDetail.GroupRenameError": "Error al renombrar el grupo",
  "ProgramDetail.Groups": "Grupos",
  "ProgramDetail.Groups.AddMember": "Añadir miembro",
  "ProgramDetail.Groups.Create": "Crear grupo",
  "ProgramDetail.Groups.GroupCol": "Grupo",
  "ProgramDetail.Groups.GroupDescLabel": "Descripción (opcional)",
  "ProgramDetail.Groups.GroupLabel": "Grupo:",
  "ProgramDetail.Groups.GroupNameLabel": "Nombre del grupo",
  "ProgramDetail.Groups.MembersCol": "Miembros",
  "ProgramDetail.Groups.NoCandidates": "No hay candidatos...",
  "ProgramDetail.Groups.NoGroups": "No hay grupos todavía...",
  "ProgramDetail.Groups.NoMembers": "Sin miembros.",
  "ProgramDetail.Groups.Rename": "Renombrar grupo",
  "ProgramDetail.Groups.SearchMember": "Buscar atleta por nombre o email…",
  "ProgramDetail.Groups.Title": "Grupos",
  "ProgramDetail.GroupSelected": "Grupo seleccionado",
  "ProgramDetail.GroupsLoadError": "Error al cargar los grupos",
  "ProgramDetail.GroupUpdated": "Grupo actualizado",
  "ProgramDetail.HelloAthlete": "¡Hola atleta!",
  "ProgramDetail.Hour": "Hora",
  "ProgramDetail.HourRangeError": "La hora debe estar entre 0 y 23",
  "ProgramDetail.InvalidMonth": "Mes inválido",
  "ProgramDetail.InvalidUrl": "¡Error! La URL no parece ser un enlace válido.",
  "ProgramDetail.InvalidYoutubeUrl": "URL de YouTube no válida",
  "ProgramDetail.InvalidVideoUrl": "La URL debe ser un enlace HTTPS válido",
  "ProgramDetail.Invoice": "Factura",
  "ProgramDetail.InvoiceDownloaded": "¡Factura descargada!",
  "ProgramDetail.InvoiceDownloadError": "Error al descargar la factura",
  "ProgramDetail.InvoiceDownloadErrorOccurred": "Ha ocurrido un error al descargar la factura",
  "ProgramDetail.Invoices.AmountCol": "Importe",
  "ProgramDetail.Invoices.DateCol": "Fecha",
  "ProgramDetail.Invoices.InvoiceCol": "Factura",
  "ProgramDetail.Invoices.NoInvoices": "No hay facturas todavía.",
  "ProgramDetail.Invoices.Title": "Facturas",
  "ProgramDetail.InvoicesCount": "Facturas ({0})",
  "ProgramDetail.InvoicesLoadError": "Error al cargar las facturas",
  "ProgramDetail.InvoicesOpenError": "Error al abrir las facturas",
  "ProgramDetail.LastPayment": "Ãšltimo pago",
  "ProgramDetail.Library": "Biblioteca",
  "BlockResources.TabMine": "Mis recursos",
  "BlockResources.TabOthers": "Otros coaches",
  "BlockResources.AuthorPrefix": "De {0}",
  "BlockResources.MineLoadError": "No se pudieron cargar tus recursos. Inténtalo de nuevo.",
  "BlockResources.OthersLoadError": "No se pudieron cargar los recursos de otros coaches.",
  "BlockResources.TabGlobal": "WodBuster",
  "Resources.GlobalNamePlaceholder": "Nombre del recurso",
  "Resources.GlobalUrlPlaceholder": "URL (YouTube o enlace)",
  "Resources.GlobalResourceCreated": "Recurso añadido a la biblioteca WodBuster",
  "Resources.GlobalResourceCreateError": "No se pudo añadir el recurso global.",
  "Resources.RootFolder": "Inicio",
  "Resources.NewFolder": "Nueva carpeta",
  "Resources.FolderNamePlaceholder": "Nombre de la carpeta",
  "Resources.DeleteFolder": "Eliminar carpeta",
  "Resources.DeleteFolderConfirm": "Se eliminará la carpeta. Su contenido (recursos y subcarpetas) se moverá a la carpeta superior.",
  "Resources.MoveToFolder": "Mover a carpeta",
  "Resources.MoveResourceTitle": "Mover recurso a…",
  "Resources.FolderNameRequired": "El nombre de la carpeta no puede estar vacío.",
  "Resources.FolderCreated": "Carpeta creada",
  "Resources.FolderCreateError": "No se pudo crear la carpeta.",
  "Resources.FolderRenamed": "Carpeta renombrada",
  "Resources.FolderRenameError": "No se pudo renombrar la carpeta.",
  "Resources.FolderDeleted": "Carpeta eliminada",
  "Resources.FolderDeleteError": "No se pudo eliminar la carpeta.",
  "Resources.ResourceMoved": "Recurso movido",
  "Resources.ResourceMoveError": "No se pudo mover el recurso.",
  "ProgramDetail.LinkCopied": "Enlace copiado",
  "ProgramDetail.LinkedBoxPrices": "Precios de box vinculados",
  "ProgramDetail.Loading": "Cargando...",
  "ProgramDetail.LoadingBlock": "Cargando bloque...",
  "ProgramDetail.MakeCoach": "Hacer entrenador",
  "ProgramDetail.MakeCoachConfirm": "¿Quieres convertir a este usuario en entrenador?",
  "ProgramDetail.ManageResources": "Gestionar recursos",
  "ProgramDetail.MarkRead": "Marcar como leído",
  "ProgramDetail.FeedbackRead": "Leído",
  "ProgramDetail.MarkAllRead": "Leer todos",
  "ProgramDetail.MemberAdded": "Miembro añadido.",
  "ProgramDetail.MemberAddError": "Error al añadir miembro.",
  "ProgramDetail.MemberRemoved": "Miembro eliminado",
  "ProgramDetail.Members": "Miembros",
  "ProgramDetail.MessageEdited": "Mensaje editado",
  "ProgramDetail.Name": "Nombre",
  "ProgramDetail.NewTemplate": "Nueva Plantilla",
  "ProgramDetail.NextWeekAvailable": "La siguiente semana estará disponible el {0}",
  "ProgramDetail.No": "No",
  "ProgramDetail.NoBlockAssociated": "Sin bloque asociado",
  "ProgramDetail.NoCandidates": "No hay candidatos",
  "ProgramDetail.NoChats": "No hay chats",
  "ProgramDetail.Yesterday": "Ayer",
  "ProgramDetail.NoFreeTrial": "Sin prueba gratuita",
  "ProgramDetail.NoGroupAssign": "No se puede asignar al grupo",
  "ProgramDetail.NoGroups": "No hay grupos",
  "ProgramDetail.NoInvoices": "No hay facturas",
  "ProgramDetail.NoMatches": "Sin coincidencias",
  "ProgramDetail.NoMembers": "No hay miembros",
  "ProgramDetail.None": "Ninguno",
  "ProgramDetail.NoNewRateAssignments": "No hay nuevas asignaciones de tarifa",
  "ProgramDetail.NoPayments": "No hay pagos",
  "ProgramDetail.NoResources": "No hay recursos",
  "ProgramDetail.NoResultsYet": "Aún no hay resultados",
  "ProgramDetail.NotAUser": "No es un usuario",
  "ProgramDetail.Notes": "Notas",
  "ProgramDetail.NotesForCoach": "Notas para el entrenador",
  "ProgramDetail.NoUsers": "No hay usuarios",
  "ProgramDetail.NowCoach": "¡Bien! Ahora {0} es coach.",
  "ProgramDetail.NoSessionsInBlock": "Este bloque no tiene sesiones aún",
  "ProgramDetail.NoWeeksAvailable": "No hay semanas disponibles para mostrar.",
  "ProgramDetail.NoWeeksThisMonth": "No hay semanas para este mes.",
  "ProgramDetail.OneToOne": "Individual",
  "ProgramDetail.Oops": "¡Vaya!",
  "ProgramDetail.Options": "Opciones",
  "ProgramDetail.Parameters": "Parámetros",
  "ProgramDetail.Params.Day": "Día",
  "ProgramDetail.Params.Hour": "Hora (0–23 h)",
  "ProgramDetail.Params.PublishDayTime": "Día y Hora Publicación Semanal",
  "ProgramDetail.Params.Title": "Parámetros",
  "ProgramDetail.ParamsOpenError": "Error al abrir los parámetros",
  "ProgramDetail.ParamsSaveError": "Error al guardar los parámetros",
  "ProgramDetail.ParamsUpdated": "✅ Parámetros actualizados correctamente.",
  "ProgramDetail.ParamsUpdateError": "⚠️ No se pudo actualizar los parámetros.",
  "ProgramDetail.PaymentInfo": "Información de Pagos",
  "ProgramDetail.PaymentSummaryTitle": "Resumen",
  "ProgramDetail.PaymentTotalAllTime": "Cobrado total (histórico)",
  "ProgramDetail.PaymentTotalInPeriod": "Cobrado en el periodo (exitoso)",
  "ProgramDetail.PaymentChargesOk": "Cobros exitosos (periodo)",
  "ProgramDetail.PaymentChargesKo": "Cobros fallidos (periodo)",
  "ProgramDetail.PaymentNewEnrollments": "Nuevas inscripciones (periodo)",
  "ProgramDetail.PaymentActiveSubscribers": "Suscriptores activos (ahora)",
  "ProgramDetail.PaymentInactiveSubscribers": "Inactivos (foto actual)",
  "ProgramDetail.PaymentStatsNote": "«Inactivos» es el estado ahora; no indica bajas solo de este periodo (no hay historial de bajas).",
  "ProgramDetail.Payments": "Pagos",
  "ProgramDetail.PaymentType": "Tipo de pago",
  "ProgramDetail.Price": "Precio",
  "ProgramDetail.ConfigReadOnly": "Parámetros no editables",
  "ProgramDetail.ConfigReadOnlyHint": "Estos valores se fijaron al crear la programación y no se pueden cambiar.",
  "ProgramDetail.NotSpecified": "No especificado",
  "ProgramDetail.ProgramTypeSetOnceHint": "Esta programación no tiene tipo asignado (creada en una versión anterior). Selecciónalo una vez: no podrá cambiarse después.",
  "ProgramDetail.PriceEur": "Precio (€)",
  "ProgramDetail.PriceEurPlaceholder": "0.00",
  "ProgramDetail.Prices": "Precios",
  "ProgramDetail.PricesUpdated": "Precios actualizados",
  "ProgramDetail.PriceUpdated": "Precio actualizado",
  "ProgramDetail.ProgramUsers": "Usuarios del programa",
  "ProgramDetail.PromoText": "Texto promocional",
  "ProgramDetail.Private": "Privado",
  "ProgramDetail.Public": "Público",
  "ProgramDetail.PurchaseLink": "Enlace de compra",
  "ProgramDetail.Rate": "Tarifa",
  "ProgramDetail.RateAssignedToGroup": "Tarifa asignada al grupo",
  "ProgramDetail.RateAssignGroupError": "Error al asignar tarifa al grupo",
  "ProgramDetail.RateCreated": "Tarifa creada",
  "ProgramDetail.RateDeleted": "Tarifa eliminada",
  "ProgramDetail.RateEdited": "Tarifa editada",
  "ProgramDetail.RateNamePlaceholder": "Nombre de la tarifa...",
  "ProgramDetail.RatePublicQuestion": "¿Esta tarifa es pública?",
  "ProgramDetail.Rates": "Tarifas",
  "ProgramDetail.Rates.AddPersonalized": "Añadir tarifa personalizada",
  "ProgramDetail.Rates.AddRate": "Añadir tarifa",
  "ProgramDetail.Rates.AssignGroup": "Asignar a un grupo completo:",
  "ProgramDetail.Rates.AthleteCol": "Atleta",
  "ProgramDetail.Rates.BoxCol": "Box",
  "ProgramDetail.Rates.ChooseRate": "-- Elige una tarifa --",
  "ProgramDetail.Rates.CreateRate": "Crear nueva tarifa",
  "ProgramDetail.Rates.DisableDiscount": "Desactivar descuento",
  "ProgramDetail.Rates.DiscountActive": "¿Descuento activo?",
  "ProgramDetail.Rates.DiscountLabel": "Descuento:",
  "ProgramDetail.Rates.DiscountPercent": "Porcentaje de descuento (%)",
  "ProgramDetail.Rates.EditDiscount": "Editar descuento",
  "ProgramDetail.Rates.EditRate": "Editar tarifa",
  "ProgramDetail.Rates.GeneralPrice": "Precio General",
  "ProgramDetail.Rates.IsPublicLabel": "¿Tarifa pública (seleccionable en Market-Place)?",
  "ProgramDetail.Rates.LinkedBoxPrices": "Precios Boxes Linkados:",
  "ProgramDetail.Rates.MembersCount": "miembros",
  "ProgramDetail.Rates.NoGroupAssign": "-- No asignar a grupo --",
  "ProgramDetail.Rates.NoShort": "NO",
  "ProgramDetail.Rates.PersonalizedRates": "Tarifas personalizadas:",
  "ProgramDetail.Rates.PersonalizedTitle": "Tarifa personalizada",
  "ProgramDetail.Rates.PriceCol": "Precio",
  "ProgramDetail.Rates.PricePlaceholder": "Ej: 20",
  "ProgramDetail.Rates.Prices": "Precio(s):",
  "ProgramDetail.Rates.PromoPlaceholder": "Ej: ¡20% de descuento esta semana!",
  "ProgramDetail.Rates.PromoText": "Texto promocional",
  "ProgramDetail.Rates.RateCol": "Tarifa",
  "ProgramDetail.Rates.RateName": "Nombre",
  "ProgramDetail.Rates.RateNameLabel": "Nombre de la tarifa",
  "ProgramDetail.Rates.RatePrice": "Precio (€)",
  "ProgramDetail.Rates.RatePriceLabel": "Precio (€)",
  "ProgramDetail.Rates.RatePublic": "Publica",
  "ProgramDetail.Rates.RatesLabel": "Tarifas:",
  "ProgramDetail.Rates.SaveDiscount": "Guardar descuento",
  "ProgramDetail.Rates.SelectRate": "Selecciona una tarifa:",
  "ProgramDetail.Rates.SelectUser": "Selecciona un usuario:",
  "ProgramDetail.Rates.Title": "Tarifas y descuento",
  "ProgramDetail.Rates.UpdatePrice": "Actualizar Precio",
  "ProgramDetail.Rates.YesShort": "SI",
  "ProgramDetail.RatesAndDiscount": "Tarifas y descuento",
  "ProgramDetail.Reactivate": "Reactivar",
  "ProgramDetail.Read": "Leído",
  "ProgramDetail.RecentFeedbacks": "Feedbacks recientes",
  "ProgramDetail.Notifications": "Notificaciones",
  "ProgramDetail.NotifAlta": "se ha unido a la programación",
  "ProgramDetail.NotifBaja": "se ha dado de baja de la programación",
  "ProgramDetail.Reload": "Recargar",
  "ProgramDetail.RemoveCoach": "Quitar entrenador",
  "ProgramDetail.RemoveCoachConfirm": "¿Quieres quitar a este usuario como entrenador?",
  "ProgramDetail.RemoveMemberError": "Error al eliminar el miembro",
  "ProgramDetail.RenameGroup": "Renombrar grupo",
  "ProgramDetail.Reps": "Repeticiones",
  "ProgramDetail.ResourceDeleted": "Recurso eliminado",
  "ProgramDetail.ResourceDeleteError": "Ocurrió un error al eliminar el recurso.",
  "ProgramDetail.ResourceDeleteErrorOccurred": "Ha ocurrido un error al eliminar el recurso",
  "ProgramDetail.ResourceFieldsRequired": "El nombre y la URL del recurso son obligatorios",
  "ProgramDetail.ResourceNameRequired": "El nombre del recurso no puede estar vacío",
  "ProgramDetail.ResourceNameUpdated": "Nombre del recurso actualizado",
  "ProgramDetail.ResourceNameUpdateError": "Error al actualizar el nombre del recurso",
  "ProgramDetail.ResourceLibrary": "Biblioteca de recursos",
  "ProgramDetail.ResourceName": "Nombre del recurso",
  "ProgramDetail.ResourceModeLink": "Enlace",
  "ProgramDetail.ResourceModeFile": "Archivo",
  "ProgramDetail.ResourceFileLabel": "Archivo (imagen, PDF o vídeo)",
  "ProgramDetail.ResourcePickFile": "Elegir archivo",
  "ProgramDetail.ResourceFileHint": "Formatos: imagen, PDF o vídeo. Máx. 100 MB (500 MB en vídeo).",
  "ProgramDetail.ResourceNamePlaceholder": "Nombre del recurso...",
  "ProgramDetail.ResourceNameUrlRequired": "¡Error! El nombre y la URL son obligatorios.",
  "ProgramDetail.Resources.ConfirmDelete": "¿Estás seguro de que deseas eliminar este recurso?",
  "ProgramDetail.Resources.PurchaseLink": "Link de compra",
  "ProgramDetail.ResourceSaved": "Recurso guardado con éxito.",
  "ProgramDetail.ResourceSaveDesc": "Guardar recurso en la biblioteca",
  "ProgramDetail.ResourceSaveError": "¡Error! No se ha podido guardar el video.",
  "ProgramDetail.Result": "Resultado",
  "ProgramDetail.Save": "Guardar",
  "ProgramDetail.SaveDiscount": "Guardar descuento",
  "ProgramDetail.SaveTemplate": "Guardar Plantilla",
  "ProgramDetail.SaveWelcomeMessage": "Guardar mensaje de bienvenida",
  "ProgramDetail.Scoring": "Puntuación",
  "ProgramDetail.Search": "Buscar",
  "ProgramDetail.SearchAthleteByNameEmail": "Buscar atleta por nombre o email",
  "ProgramDetail.SearchAthletePlaceholder": "Buscar atleta...",
  "ProgramDetail.SearchByDate": "Buscar por fecha",
  "ProgramDetail.SearchResourcePlaceholder": "Buscar recurso...",
  "ProgramDetail.SearchUserPlaceholder": "Buscar usuario...",
  "ProgramDetail.SelectedGroupMembers": "Miembros del grupo seleccionado",
  "ProgramDetail.SelectRate": "Seleccionar tarifa",
  "ProgramDetail.SelectRateRequired": "Debes seleccionar una tarifa",
  "ProgramDetail.SelectUser": "Seleccionar usuario",
  "ProgramDetail.SelectUserOrGroup": "Selecciona un usuario o grupo",
  "ProgramDetail.SelectWeek": "Seleccionar semana",
  "ProgramDetail.SelectDay": "Día de la actividad:",
  "ProgramDetail.Session": "sesión",
  "ProgramDetail.Sessions": "sesiones",
  "ProgramDetail.SessionExpired": "Tu sesión expiró. Reautentica, por favor.",
  "ProgramDetail.MaxSessionsReached": "Máximo 7 sesiones por bloque",
  "ProgramDetail.ShareLink": "Compartir (Link)",
  "ProgramDetail.Since": "Desde",
  "ProgramDetail.Status": "Estado",
  "ProgramDetail.Visibility": "Visibilidad",
  "ProgramDetail.StripeNotConfigured": "No tienes Stripe configurado.",
  "ProgramDetail.Subscription.LastPayment": "Último pago:",
  "ProgramDetail.Subscription.PaymentType": "Tipo de pago:",
  "ProgramDetail.Subscription.Price": "Precio:",
  "ProgramDetail.Subscription.Required": "Suscripción requerida",
  "ProgramDetail.Subscription.Status": "Estado:",
  "ProgramDetail.Subscribe": "Suscribirse",
  "ProgramDetail.SubscriptionNeeded": "Suscripción necesaria",
  "ProgramDetail.SubscriptionRequired": "Se requiere suscripción",
  "ProgramDetail.TrialExpiredMessage": "Tu prueba gratuita de {0} ha terminado. Suscríbete para seguir accediendo.",
  "ProgramDetail.TimedAccessExpiredMessage": "Tu acceso a {0} ha caducado. Vuelve a pagar para seguir accediendo.",
  "ProgramDetail.AccessDurationLabel": "Días de acceso por compra",
  "ProgramDetail.AccessDurationHint": "Solo para Duración fija de pago único. Cuando pasan los días, se corta el acceso y el atleta puede volver a pagar para renovarlo (conserva su progreso). Vacío o 0 = acceso permanente.",
  "ProgramDetail.AccessDurationPlaceholder": "Ej. 30 (vacío = permanente)",
  "ProgramDetail.NeedSubscribeMessage": "Necesitas suscribirte para acceder a {0}.",
  "ProgramDetail.TemplateNameRequired": "¡Error! El nombre de la plantilla no puede estar vacío.",
  "ProgramDetail.Templates": "Plantillas",
  "ProgramDetail.TemplateSaved": "¡Plantilla guardada con éxito!",
  "ProgramDetail.TemplateSaveError": "¡Error! No se ha podido guardar la plantilla.",
  "ProgramDetail.Time": "Tiempo",
  "ProgramDetail.To": "Hasta",
  "ProgramDetail.Update": "Actualizar",
  "ProgramDetail.UpdatePrice": "Actualizar precio",
  "ProgramDetail.UserAddError": "Error al añadir usuario",
  "ProgramDetail.UserAlreadyHasRate": "El usuario ya tiene esta tarifa",
  "ProgramDetail.UserAlreadyInProgram": "El usuario {0} ya pertenece a la programación.",
  "ProgramDetail.UserNotFound": "No se encontró el usuario del comentario.",
  "ProgramDetail.UserNotFoundOrAlreadyIn": "Usuario no encontrado o ya está en el programa",
  "ProgramDetail.ViewWeekRanking": "Ver ranking semanal",
  "ProgramDetail.Week": "SEMANA",
  "ProgramDetail.Weeks": "Semanas",
  "ProgramDetail.WeekLocked": "Completa las sesiones anteriores para desbloquear esta semana",
  "ProgramDetail.Blocks": "Bloques",
  "ProgramDetail.WeekAdded": "Semana añadida (7 sesiones).",
  "ProgramDetail.WeekCreateError": "Error al crear la semana",
  "ProgramDetail.WeeklyPublishDayTime": "Día y hora de publicación semanal",
  "ProgramDetail.AllowAthleteAudios": "Permitir audios de atletas",
  "ProgramDetail.AllowAthleteAudiosHint": "Si lo desactivas, los atletas no verán el botón de nota de voz en el chat; los coaches seguirán pudiendo enviar audios.",
  "ProgramDetail.AllowAthleteAudiosCheck": "Sí, permitir a los atletas",
  "ProgramDetail.SharedCoachChat": "Chat de coaches compartido",
  "ProgramDetail.SharedCoachChatHint": "Si se activa, cada atleta tiene un único chat con todos los coaches (@coaches) en vez de un chat privado con cada coach.",
  "ProgramDetail.SharedCoachChatCheck": "Sí, compartir un único chat con todos los coaches",
  "ProgramDetail.ShowSubscriberCountMarket": "Mostrar número de clientes en el marketplace",
  "ProgramDetail.ShowSubscriberCountMarketHint": "Si se activa, el marketplace muestra el número de clientes activos de esta programación. Si se desactiva, ese contador queda oculto.",
  "ProgramDetail.ShowSubscriberCountMarketCheck": "Sí, mostrar el número de clientes en el marketplace",
  "ProgramDetail.AllowDrip": "Permitir goteo",
  "ProgramDetail.AllowDripHint": "Si está activado, el atleta debe completar la sesión anterior para desbloquear la siguiente. Si lo desactivas, podrá ver y moverse libremente entre sesiones con contenido (los días vacíos se siguen saltando).",
  "ProgramDetail.AllowDripCheck": "Sí, liberar contenido por goteo",
  "ProgramDetail.WeeklyRanking": "Clasificación semanal",
  "ProgramDetail.Weight": "Peso",
  "ProgramDetail.WelcomeEmail": "Correo de bienvenida",
  "ProgramDetail.WelcomeEmailDesc": "Envía automáticamente un correo al atleta cuando se une a la programación.",
  "ProgramDetail.WelcomeEmailOn": "Activado",
  "ProgramDetail.WelcomeEmailOff": "Desactivado",
  "ProgramDetail.WelcomeEmailSubjectPlaceholder": "Asunto del correo",
  "ProgramDetail.WelcomeEmailBodyPlaceholder": "Escribe el contenido del correo...",
  "ProgramDetail.WelcomeMessage": "Mensaje Bienvenida",
  "ProgramDetail.WelcomeMessageDesc": "Este mensaje se enviará automáticamente a los nuevos atletas",
  "ProgramDetail.WelcomeMessagePlaceholder": "Escribe tu mensaje de bienvenida...",
  "ProgramDetail.WelcomeMsg.Default": "¡Hola atleta!",
  "ProgramDetail.WelcomeMsg.Description": "Este será el mensaje que se le mostrará a los nuevos atletas al unirse.",
  "ProgramDetail.WelcomeMsg.Label": "Mensaje Bienvenida",
  "ProgramDetail.WelcomeMsg.Placeholder": "Escribe un mensaje de bienvenida...",
  "ProgramDetail.WelcomeMsg.Save": "Guardar mensaje bienvenida",
  "ProgramDetail.WelcomeMsg.Title": "Editar Mensaje Bienvenida",
  "ProgramDetail.Yes": "Sí",
  "ProgramDetail.You": "Tú",
  "ProgramDetail.YouTubeUrl": "URL de YouTube",
  "ProgramDetail.VideoUrl": "URL del vídeo",
  "ProgramModal.ChangeImage": "Cambiar",
  "ProgramModal.CreatedSuccess": "Creada con éxito",
  "ProgramModal.CreateSuccess": "Programación creada correctamente",
  "ProgramModal.CreateTitle": "Crear programación",
  "ProgramModal.DescriptionInfo": "Una breve descripción sobre los contenidos.",
  "ProgramModal.DescriptionLabel": "Descripción",
  "ProgramModal.DescriptionPlaceholder": "Escribe la descripción...",
  "ProgramModal.DescriptionRequired": "La descripción no puede estar vacía.",
  "ProgramModal.EditedSuccess": "Editada con éxito",
  "ProgramModal.EditSuccess": "Programación editada correctamente",
  "ProgramModal.EditTitle": "Editar programación",
  "ProgramModal.Error.DescriptionEmpty": "La descripción no puede estar vacía",
  "ProgramModal.Error.MinTags": "Debes seleccionar al menos 3 etiquetas",
  "ProgramModal.Error.NameEmpty": "El nombre no puede estar vacío",
  "ProgramModal.Error.PriceInvalid": "El precio no es válido",
  "ProgramModal.Error.ProfilePhotoRequired": "Es necesario una foto de perfil",
  "ProgramModal.Error.SaveFailed": "Error al guardar la programación",
  "ProgramModal.Error.StripeConnectFailed": "Error al conectar con Stripe",
  "ProgramModal.Error.StripeIncomplete": "La configuración de Stripe no está completa",
  "ProgramModal.FeaturedImage": "Imagen destacada de tu programación...",
  "ProgramModal.FixedLength": "Longitud Fija",
  "ProgramModal.ForBox": "¿Es tu programación apta para Box/Centro?",
  "ProgramModal.Indefinite": "Indefinida",
  "ProgramModal.MinTags": "Debes seleccionar al menos 3 etiquetas.",
  "ProgramModal.Monthly": "Mensual",
  "ProgramModal.NameDescription": "Es el nombre de tu programación...",
  "ProgramModal.NameLabel": "Nombre",
  "ProgramModal.NamePlaceholder": "Ingresa el nombre",
  "ProgramModal.NameRequired": "El nombre no puede estar vacío.",
  "ProgramModal.PaymentDescription": "Si quieres que tu programación sea de pago, debes gestionar los pagos con Stripe.",
  "ProgramModal.PaymentManagement": "Gestión de Pagos",
  "ProgramModal.PaymentPeriod": "Periodicidad pago:",
  "ProgramModal.PaymentPeriodDescription": "Único = un solo pago. Mensual/Trimestral/Semestral/Anual = cobro recurrente al atleta.",
  "ProgramModal.PriceDescription": "Introduce el precio total.",
  "ProgramModal.PriceInvalid": "El precio no puede ser menor que 0.",
  "ProgramModal.PriceLabel": "Precio",
  "ProgramModal.PricePlaceholder": "Ingresa el precio",
  "ProgramModal.ProfilePhotoRequired": "Debes seleccionar una foto de perfil distinta.",
  "ProgramModal.ProgramType": "Tipo programación:",
  "ProgramModal.ProgramTypeDescription": "Rolling Calendar: la programación sigue el calendario real (cada semana corresponde a una semana del año). Duración fija: la programación tiene un número fijo de semanas y empieza desde la semana 1 cuando el atleta se suscribe.",
  "ProgramModal.ProgramTypeLocked": "El tipo de programa no se puede cambiar una vez creada la programación.",
  "ProgramModal.PublishDescription": "Define cómo se muestra el contenido:",
  "ProgramModal.PublishOptions": "Opciones de publicación:",
  "ProgramModal.PublishOptionsDescription": "Indefinida: los atletas ven todas las semanas desde el principio. Mensual: solo ven el mes actual. Semanal: solo ven la semana actual, el contenido se libera progresivamente.",
  "ProgramModal.RollingCalendar": "Rolling Calendar",
  "ProgramModal.StripeAccountError": "No se pudo crear cuenta Stripe",
  "ProgramModal.StripeGetError": "No se pudo obtener la cuenta de Stripe",
  "ProgramModal.StripeIncomplete": "Ups! Tu cuenta de Stripe está incompleta.",
  "ProgramModal.Tags": "Etiquetas:",
  "ProgramModal.TagsDescription": "Añade etiquetas que describan tu programación.",
  "ProgramModal.Visibility": "Visibilidad:",
  "ProgramModal.VisibilityDescription": "Pública: aparece en el market y cualquier usuario puede verla y adquirirla. Privada: solo accesible para los atletas que invites manualmente.",
  "ProgramModal.Weekly": "Semanal",
  "Programs.CancelSubscription": "Cancelar Suscripción",
  "Programs.ConfirmDelete.Message": "¿Estás seguro de que deseas eliminar esta programación?",
  "Programs.ConfirmDelete.Title": "Confirmar Eliminación",
  "Programs.ConfirmUnsubscribe": "Vas a cancelar la suscripción. Seguirás teniendo acceso hasta el final del periodo actual y no se realizarán más cobros. La programación se mantendrá en tu lista marcada como inactiva y podrás reactivarla cuando quieras.",
  "Programs.Contents": "Contenidos",
  "Programs.Create": "Crear",
  "Programs.Import": "Importar",
  "Programs.New": "Nuevo",
  "Programs.CreateImport": "Crear / Importar",
  "Programs.CreateNew": "Crear nueva programación",
  "Programs.ImportTC": "Importar desde TrueCoach",
  "Programs.Support": "Soporte",
  "Programs.CreateProgram": "Crear programa",
  "Programs.DeleteProgram": "Borrar Programacion",
  "Programs.DeleteSuccess": "Programación eliminada correctamente",
  "Programs.Error.DeleteFailed": "Error al eliminar la programación",
  "Programs.Error.IdentifyFailed": "Error al identificar al usuario",
  "Programs.Error.NoProgramSelected": "No se ha seleccionado ninguna programación",
  "Programs.Error.UnsubscribeFailed": "Error al cancelar la suscripción",
  "Programs.Error.RemoveFromListFailed": "Error al quitar la programación de tu lista",
  "Programs.RemoveFromList": "Eliminar de mi lista",
  "Programs.ConfirmRemoveFromList": "Esta programación dejará de aparecer en tu lista. Podrás volver a inscribirte desde el market en cualquier momento.",
  "Programs.ConfirmRemoveFromList.FromPack": "Aviso: esta programación proviene de un pack. Solo se ocultará esta entrada; el resto del pack seguirá activo y sus cobros (si los hay) continuarán. Si quieres dar de baja el pack entero usa «Cancelar suscripción».",
  "Programs.ConfirmRemoveFromList.LastFromPack": "Esta es la última programación del pack que te queda en la lista. Al eliminarla, la suscripción del pack se cancelará automáticamente: no se realizarán más cobros y mantendrás acceso a lo que quede del pack hasta el final del periodo actual.",
  "Programs.ConfirmRemoveFromList.ActiveSubscription": "Tu suscripción a esta programación se cancelará automáticamente: no se realizarán más cobros y mantendrás acceso hasta el final del periodo actual. Esta acción es definitiva, pero podrás volver a inscribirte desde el market cuando quieras.",
  "Programs.RemoveFromListSuccess": "«{0}» eliminada de tu lista",
  "Programs.NextPayment": "Próximo Pago",
  "Programs.NextPaymentLabel": "Próximo pago:",
  "Programs.NoPrograms": "Aún no estás inscrito en ninguna programación.",
  "Programs.OFF": "OFF",
  "Programs.ON": "ON",
  "Programs.Reactivate": "Reactivar",
  "Programs.Error.ReactivateFailed": "No se pudo reactivar la suscripción",
  "Programs.StatusLabel": "Estado:",
  "Programs.SubscribedPrograms": "Programas inscritos",
  "Programs.YourPrograms": "Tus programas",
  "Programs.YourSubscriptions": "Tus suscripciones",
  "Programs.Subscription": "Suscripción",
  "Programs.SubscriptionDate": "Fecha Inscripción",
  "Programs.SubscriptionDateLabel": "Fecha Inscripción:",
  "Programs.SubscriptionInfo": "Información de suscripción",
  "Programs.Title": "Programas",
  "Programs.SearchPlaceholder": "Buscar programas…",
  "Programs.Unsubscribe": "Dar de baja",
  "Programs.UnsubscribeSuccess": "Suscripción cancelada correctamente",
  "Programs.ViewPrograms": "Ver programas",
  "Programs.Welcome": "¡Bienvenido a Coach!",
  "Programs.Actions": "Acciones",
  "Programs.SelectAction": "Selecciona una acción para esta programación",
  "Programs.ViewContents": "Ver contenido",
  "Programs.MoveUp": "Mover arriba",
  "Programs.MoveDown": "Mover abajo",
  "Programs.DueTo.Title": "Atención requerida",
  "Programs.DueTo.NoDays": "Sin contenido programado",
  "Programs.DueTo.DaysLeft": "días restantes",
  "Programs.DueTo.NoWeek": "Sin semana creada",
  "Ranking.AverageBlockPoints": "Media de puntos por bloque",
  "Ranking.AvgBlockPoints": "Media puntos bloque:",
  "Ranking.BlocksTop5": "Bloques en Top 5",
  "Ranking.BlocksWon": "Bloques ganados",
  "Ranking.LoadError": "Error al obtener ranking",
  "Ranking.Loading": "Cargando clasificación...",
  "Ranking.Men": "Hombres",
  "Ranking.Mixed": "Mixto",
  "Ranking.NoResults": "No hay resultados para esta semana.",
  "Ranking.ScoredBlocks": "Bloques puntuados:",
  "Ranking.Stats": "Estadísticas",
  "Ranking.Top5Blocks": "Bloques Top 5:",
  "Ranking.TotalPoints": "Puntos totales:",
  "Ranking.ViewStats": "Ver estadísticas",
  "Ranking.WeeklyInfo": "El ranking semanal se calcula sumando los puntos.",
  "Ranking.MonthlyInfo": "El ranking mensual suma los puntos de todas las semanas del mes.",
  "Ranking.Week": "Semana",
  "Ranking.Month": "Mes",
  "Ranking.Women": "Mujeres",
  "Ranking.WonBlocks": "Bloques ganados:",
  "Session.Actions": "Acciones sesión",
  "Session.BlockTemplate": "Bloque - plantilla",
  "Session.CannotUndo": "Esta acción no se puede deshacer",
  "Session.Color": "Color",
  "Session.DayTemplate": "Día - plantilla",
  "Session.Delete": "Eliminar",
  "Session.DeleteConfirm": "¿Seguro que quieres eliminar la sesión {0}?",
  "Session.Deleted": "Sesión {0} eliminada correctamente.",
  "Session.DeleteSession": "Eliminar sesión",
  "Session.DeleteSessionConfirm": "¿Estás seguro de que quieres eliminar esta sesión y todos sus bloques?",
  "Session.DeleteSessionTitle": "Eliminar sesión",
  "Session.Editing": "Editando la sesión...",
  "Session.EditingSession": "Editando sesión",
  "Session.EditSession": "Editar sesión",
  "Session.EditSessionTitle": "Editar sesión",
  "Session.ErrorUpdating": "Error al actualizar la sesión",
  "Session.HideContent": "Ocultar contenido",
  "Session.NewBlock": "Nuevo bloque",
  "Session.PasteBlock": "Pegar bloque",
  "Session.SaveAsTemplate": "Guardar plantilla de sesión",
  "Session.SaveChanges": "Guardar cambios",
  "Session.SavedAsTemplate": "Sesión {0} guardada como plantilla.",
  "Session.SaveTemplateMessage": "El contenido de la sesión se guardará como plantilla",
  "Session.SaveTemplateTitle": "Guardar como plantilla",
  "Session.SelectAction": "Selecciona una acción para {0}",
  "Session.SessionName": "Nombre de la sesión",
  "Session.SessionNameLabel": "Nombre de la sesión",
  "Session.ShowContent": "Mostrar contenido",
  "Session.TemplateNamePrompt": "Introduce un nombre para guardar la plantilla:",
  "Session.ThisSession": "esta sesión",
  "Session.Updated": "Sesión actualizada correctamente.",
  "Session.UpdateError": "Error al actualizar la sesión.",
  "Timer.AddMultipleAmraps": "Añadir varios AMRAPs (opcional)",
  "Timer.AddSeries": "Añadir series (opcional)",
  "Timer.Amrap.Desc": "Tantas rondas como puedas",
  "Timer.Amrap.Subtitle": "Tantas rondas como puedas en:",
  "Timer.BackToMenu": "Volver al menú",
  "Timer.Emom.Desc": "Cada minuto en punto",
  "Timer.Emom.Subtitle": "Cada {0}, durante {1} rondas",
  "Timer.Finished": "¡Se acabó!",
  "Timer.FinishedMessage": "¡Buen trabajo!",
  "Timer.ForTime.Desc": "Tan rápido como puedas",
  "Timer.ForTime.Subtitle": "Completa lo más rápido posible",
  "Timer.IntervalTime": "Tiempo de intervalo",
  "Timer.PressToContinue": "Pulsa para continuar",
  "Timer.PressToPause": "Pulsa para pausar",
  "Timer.PressToStart": "Pulsa para empezar",
  "Timer.Rest": "DESCANSO",
  "Timer.RestTime": "Descanso",
  "Timer.Round": "Ronda",
  "Timer.Rounds": "Rondas",
  "Timer.Minutes": "min",
  "Timer.Seconds": "seg",
  "Timer.Series": "Series",
  "Timer.SeriesCount": "Número de series",
  "Timer.SeriesRestTime": "Descanso entre series",
  "Timer.Start": "¡Vamos!",
  "Timer.Tabata.Desc": "Intervalos de alta intensidad",
  "Timer.TimeLimit": "Tiempo límite",
  "Timer.WorkTime": "Tiempo de trabajo",
  "Utilities.Confirmation": "Confirmación",
  "Utilities.Offline": "Sin conexión — algunos datos pueden no estar disponibles",
  "Utilities.Preview": "Vista previa",
  "Utilities.SearchTags": "Buscar etiquetas...",
  "Utilities.SuccessDefault": "Operación realizada con éxito.",
  "Utilities.UploadedActionFailed": "El archivo se ha guardado, pero no se pudo completar la acción posterior. Revisa la pantalla antes de repetir la acción.",
  "Utilities.Uploading": "Subiendo archivo…",
  "Utilities.UploadingVideo": "Subiendo media…",
  "Utilities.WriteHere": "Escribe aquí...",
  "Week.Action": "Acción",
  "Week.Actions": "Acciones de semana",
  "Week.AddDescription": "Añade una descripción",
  "Week.BackToCoachView": "Volver a Vista de Coach",
  "Week.Cancel": "Cancelar",
  "Week.CleanWeek": "Limpiar semana",
  "Week.CleanWeekConfirm": "¿Seguro que quieres eliminar todos los bloques de esta semana?",
  "Week.CleanWeekMessage": "Se eliminarán todos los bloques y sesiones de esta semana",
  "Week.CleanWeekTitle": "Limpiar semana",
  "Week.CoachView": "Vista de entrenador",
  "Week.CoachViewLabel": "Vista coach",
  "Week.CollapseBlocks": "Plegar bloques",
  "Week.ExpandBlocks": "Desplegar bloques",
  "Week.CopyWeek": "Copiar semana",
  "Week.ExportPdf": "Exportar a PDF",
  "Program.SendNotification": "Mandar notificación",
  "Program.SendNotification.Confirm": "¿Enviar una notificación a todos los usuarios del programa?",
  "Program.SendNotification.Sent": "Notificación enviada",
  "Program.SendNotification.Error": "No se pudo enviar la notificación",
  "Week.WeekCopied": "¡Semana copiada! Puedes pegarla en cualquier programa.",
  "Week.PasteWeek": "Pegar semana",
  "Week.PasteWeekTitle": "Pegar semana copiada",
  "Week.PasteWeekMessage": "Se reemplazará el contenido de esta semana con la semana copiada. ¿Continuar?",
  "Week.WeekPasted": "Semana pegada correctamente",
  "Week.WeekPasteError": "Error al pegar la semana",
  "Week.CreationDate": "Fecha de creación",
  "Week.DeleteWeek": "Eliminar semana",
  "Week.DeleteWeekConfirm": "¿Seguro que quieres eliminar la semana?",
  "Week.DeleteWeekMessage": "¿Estás seguro de que quieres eliminar esta semana?",
  "Week.DeleteWeekTitle": "Eliminar semana",
  "Week.Description": "Descripción",
  "Week.ErrorDeletingTemplate": "Error al eliminar la plantilla",
  "Week.ErrorImportingTemplate": "Error al importar la plantilla",
  "Week.ErrorSavingNotes": "Error al guardar las notas",
  "Week.ErrorSavingTemplate": "Error al guardar la plantilla",
  "Week.ImportWeekTemplate": "Importar Plantilla de Semana",
  "Week.LoadWeekTemplate": "Cargar plantilla semana",
  "Week.Name": "Nombre",
  "Week.NoDataToSave": "No hay días en esta semana para guardar como plantilla.",
  "Week.NoDaysToSaveAsTemplate": "No hay días con contenido para guardar como plantilla",
  "Week.NoTemplatesAvailable": "No hay plantillas disponibles",
  "Week.Notes": "Notas",
  "Week.NotesPlaceholder": "Notas de la semana...",
  "Week.NotesSaved": "Notas guardadas correctamente.",
  "Week.NotesSaveError": "Error al guardar las notas.",
  "Week.NameSaved": "Nombre guardado correctamente.",
  "Week.ErrorSavingName": "Error al guardar el nombre.",
  "Week.Save": "Guardar",
  "Week.SaveProfileError": "No se pudo guardar el perfil. Intenta más tarde.",
  "Week.SaveTemplateInfo": "Guardarás los elementos seleccionados como una plantilla.",
  "Week.SaveWeekTemplate": "Guardar plantilla semana",
  "Week.SearchUser": "Buscar usuario",
  "Week.SearchUserPlaceholder": "Buscar usuario...",
  "Week.SearchWeekTemplate": "Buscar plantilla semana",
  "Week.SelectAction": "Selecciona una acción",
  "Week.TemplateDeleted": "Plantilla {0} eliminada correctamente.",
  "Week.TemplateImported": "Plantilla {0} importada correctamente.",
  "Week.TemplateImportError": "Error al importar la plantilla de semana.",
  "Week.TemplateName": "Nombre de la plantilla",
  "Week.TemplateNameQuestion": "¿Cómo se llama esta plantilla?",
  "Week.Templates": "Plantillas",
  "Week.TemplateSaved": "Plantilla {0} guardada correctamente.",
  "Week.Title": "Título",
  "Week.UserView": "Vista como usuario",
  "Week.UserViewLabel": "Vista usuario",
  "Week.ViewAsUser": "Ver semana como usuario",
  "Week.ViewAsUserTitle": "Ver como usuario",
  "Week.ViewWeeklyRanking": "Ver clasificación semanal",
  "Week.WeekCleaned": "Semana limpiada",
  "Week.WeekDeleted": "Semana eliminada",
  "Week.WeekDeleteError": "No se pudo borrar la semana.",
  "Week.WeeklyRanking": "Clasificación semanal",
  "Week.WeekOf": "Semana de",
  "Week.WeekTemplate": "PLANTILLA DE SEMANA",
  "Week.WeekTemplateMessage": "Guarda el contenido de la semana como plantilla",
  "Week.WeekTemplateTitle": "Plantilla de semana",
  "Common.Options": "Opciones",
  "Common.Coach": "COACH",
  "Common.On": "ON",
  "Common.Off": "OFF",
  "Common.Ok": "OK",
  "Common.Ko": "KO",
  "Common.Box": "Box",
  "Common.PaymentIntent": "PaymentIntent",
  "Common.ConvertToTemplate": "CONVERTIR EN PLANTILLA",
  "Common.TemplateName": "NOMBRE DE LA PLANTILLA",
  "Placeholder.WriteDescription": "Escribe la descripción",
  "Placeholder.WriteName": "Escribe un nombre para la plantilla",
  "Placeholder.Example20": "Ej: 20",
  "Placeholder.ExampleDiscount": "Ej: ¡20% de descuento esta semana!",
  "Placeholder.Example90": "Ej. 90",
  "Placeholder.YoutubeUrl": "https://youtube.com/...",
  "Placeholder.Email": "Email",
  "Language.Spanish": "Español",
  "Language.English": "English",
  "Language.Portuguese": "Português",
  "Language.French": "Français",
  "Language.German": "Deutsch",
  "Language.Italian": "Italiano",
  "Language.Japanese": "日本語",
  "Language.Catalan": "Catalán",
  "Language.Basque": "Euskera",
  "Language.Chinese": "Chino (simplificado)",
  "Language.PortuguesePortugal": "Portugués (Portugal)",
  "Language.Polish": "Polski",
  "Language.Select": "Idioma",
  "Invitation.ManageLinks": "Links de invitación",
  "Invitation.InvitationLinks": "Enlaces generados",
  "Invitation.Generate": "Generar",
  "Invitation.NewLinkReady": "¡Nuevo enlace listo!",
  "Invitation.Copy": "Copiar",
  "Invitation.Copied": "¡Copiado al portapapeles!",
  "Invitation.Date": "Fecha",
  "Invitation.Status": "Estado",
  "Invitation.Used": "Usado",
  "Invitation.Expired": "Expirado",
  "Invitation.Active": "Activo",
  "Invitation.NoInvitations": "No hay invitaciones generadas.",
  "Invitation.Loading": "Verificando invitación...",
  "Invitation.Title": "Has sido invitado",
  "Invitation.NeedLogin": "Necesitas iniciar sesión o crear una cuenta para unirte a esta programación.",
  "Invitation.LoginButton": "Iniciar sesión / Registrarse",
  "Invitation.Joining": "Uniéndote a la programación...",
  "Invitation.Success": "¡Te has unido correctamente!",
  "Invitation.SuccessDesc": "Ya eres parte de esta programación. ¡Empieza a entrenar!",
  "Invitation.GoToProgram": "Ir a la programación",
  "Invitation.Error": "No se pudo completar",
  "Invitation.ErrorDesc": "La invitación ya fue usada, ha expirado o ya perteneces a esta programación.",
  "Invitation.GoHome": "Ir al inicio",
  "Invitation.Invalid": "Invitación no válida",
  "Invitation.InvalidDesc": "Este enlace de invitación no es válido, ha expirado o ya ha sido utilizado.",
  "Invitation.TrialDays": "Días de prueba",
  "Invitation.NoTrial": "Sin prueba gratuita",
  "Invitation.Days": "días gratis",
  "Invitation.Trial": "Prueba",
  "Invitation.TrialGranted": "Tienes {0} días de prueba gratuita. ¡Aprovecha!",
  "Invitation.NeedPayment": "Esta programación es de pago. Accede para completar tu suscripción.",
  "Invitation.GoToPay": "Ir a pagar",

  "Templates.Title": "Gestión de plantillas",
  "Templates.TabBlocks": "Bloques",
  "Templates.TabDays": "Días",
  "Templates.TabWeeks": "Semanas",
  "Templates.Name": "Nombre",
  "Templates.Date": "Fecha",
  "Templates.Actions": "Acciones",
  "Templates.DaysCount": "Días",
  "Templates.View": "Ver contenido",
  "Templates.Edit": "Editar nombre",
  "Templates.Delete": "Eliminar",
  "Templates.Cancel": "Cancelar",
  "Templates.NoTemplates": "No hay plantillas guardadas.",
  "Templates.ConfirmDeleteTitle": "Eliminar plantilla",
  "Templates.ConfirmDeleteMessage": "¿Estás seguro de que quieres eliminar la plantilla \"{0}\"?",
  "Templates.NameUpdated": "Nombre actualizado correctamente.",
  "Templates.Deleted": "Plantilla eliminada.",
  "Templates.ErrorLoading": "Error al cargar las plantillas.",
  "Templates.ErrorUpdating": "Error al actualizar el nombre.",
  "Templates.ErrorDeleting": "Error al eliminar la plantilla.",
  "Templates.Preview": "Vista previa",
  "Templates.NoContent": "Esta plantilla no tiene contenido.",
  "Templates.NoDayBlocks": "Este día no tiene bloques.",
  "Templates.ScoringType": "Puntuación",
  "Templates.DayOf": "Día",
  "Templates.ClickToEditBlock": "Clic para editar este bloque",
  "Templates.EditBlockTitle": "Editar bloque",
  "Templates.SaveBlock": "Guardar bloque",
  "Templates.BlockColor": "Color (hex)",
  "Templates.BlockUpdated": "Bloque actualizado.",
  "Templates.BlockUpdateError": "No se pudo guardar el bloque.",
  "Templates.BlockLoadError": "No se pudo cargar el bloque para editar.",
  "Templates.BlockNameRequired": "El bloque necesita un nombre.",
  "ImageEditor.Crop": "Recortar",
  "ImageEditor.Draw": "Dibujar",
  "ImageEditor.Text": "Texto",
  "ImageEditor.Rotate": "Rotar",
  "ImageEditor.Undo": "Deshacer",
  "ImageEditor.ApplyCrop": "Aplicar recorte",
  "VideoTrimmer.Start": "Inicio",
  "VideoTrimmer.End": "Fin",
  "VideoTrimmer.Trimming": "Recortando vídeo...",
  "Cycle.Title": "Ciclos",
  "Cycle.SearchCycles": "Buscar ciclos…",
  "Cycle.SearchNoResults": "Ningún ciclo coincide con la búsqueda.",
  "Cycle.Create": "Crear ciclo",
  "Cycle.Weeks": "Semanas",
  "Cycle.WeeksLower": "semanas",
  "Cycle.Created": "Creado",
  "Cycle.Empty": "No tienes ciclos creados.",
  "Cycle.NewCycle": "Nuevo ciclo",
  "Cycle.ConfirmDelete.Title": "Eliminar ciclo",
  "Cycle.ConfirmDelete.Message": "¿Estás seguro de que quieres eliminar este ciclo? Esta acción no se puede deshacer.",
  "Cycle.ConfirmDeleteWeek.Title": "Eliminar semana",
  "Cycle.ConfirmDeleteWeek.Message": "¿Estás seguro de que quieres eliminar esta semana del ciclo?",
  "Cycle.NamePlaceholder": "Nombre del ciclo",
  "Cycle.AddWeek": "Añadir semana",
  "Cycle.Day": "día",
  "Cycle.Days": "días",
  "Cycle.NotFound": "Ciclo no encontrado.",
  "Cycle.DesktopOnly": "El planificador de ciclos solo está disponible en la versión de escritorio.",
  "Cycle.Saved": "Ciclo guardado correctamente.",
  "Cycle.ImportCycle": "Importar ciclo",
  "Cycle.SelectCycle": "Selecciona un ciclo",
  "Cycle.NoCyclesAvailable": "No hay ciclos disponibles.",
  "Cycle.ImportRange": "Rango de importación",
  "Cycle.ImportWarningTitle": "Atención: semanas con contenido existente",
  "Cycle.ImportWarningHasContent": "ya tiene contenido. Se añadirá sin borrar lo existente.",
  "Cycle.ImportWarningNotEnoughWeeks": "No hay suficientes semanas en la programación para importar todo el ciclo.",
  "Cycle.Importing": "Importando",
  "Cycle.ConfirmImport": "Confirmar importación",
  "Cycle.ImportSuccess": "Ciclo importado correctamente.",
  "Cycle.DateRange": "Fechas",
  "Cycle.Status": "Estado",
  "Cycle.NewWeek": "Nueva",
  "Cycle.HasContent": "Con contenido",
  "Cycle.ImportStartDay": "El ciclo empieza en (día de la semana destino)",
  "Cycle.Weekday.0": "Lunes",
  "Cycle.Weekday.1": "Martes",
  "Cycle.Weekday.2": "Miércoles",
  "Cycle.Weekday.3": "Jueves",
  "Cycle.Weekday.4": "Viernes",
  "Cycle.Weekday.5": "Sábado",
  "Cycle.Weekday.6": "Domingo",

  "Nav.Faq": "FAQs",

  "Faq.PageTitle": "Preguntas Frecuentes",
  "Faq.Subtitle": "Encuentra respuestas a las preguntas más comunes sobre WB Coach.",
  "Faq.ShowSteps": "Ver pasos detallados",

  "Faq.Section.GettingStarted": "Primeros pasos",
  "Faq.GettingStarted.CreateAccount.Q": "¿Cómo creo mi cuenta?",
  "Faq.GettingStarted.CreateAccount.A": "Puedes crear tu cuenta directamente desde la aplicación con tu correo electrónico.",
  "Faq.GettingStarted.CreateAccount.Step1": "Pulsa \"Crear Cuenta\" en la barra de navegación.",
  "Faq.GettingStarted.CreateAccount.Step2": "Introduce tu dirección de email.",
  "Faq.GettingStarted.CreateAccount.Step3": "Verifica tu email con el código que recibirás.",
  "Faq.GettingStarted.CreateAccount.Step4": "Crea una contraseña segura y confirma.",
  "Faq.GettingStarted.CompleteProfile.Q": "¿Cómo completo mi perfil?",
  "Faq.GettingStarted.CompleteProfile.A": "Tu perfil incluye nombre, foto, biografía, edad, género y unidades de medida.",
  "Faq.GettingStarted.CompleteProfile.Step1": "Pulsa en \"Perfil\" en la barra de navegación.",
  "Faq.GettingStarted.CompleteProfile.Step2": "Rellena los campos: nombre (obligatorio), foto, biografía, edad y género.",
  "Faq.GettingStarted.CompleteProfile.Step3": "Selecciona tus unidades de peso y medida preferidas. Los cambios se guardan automáticamente.",
  "Faq.GettingStarted.Login.Q": "¿Cómo inicio o cierro sesión?",
  "Faq.GettingStarted.Login.A": "Inicia sesión con tus credenciales de WodBuster. Para cerrar sesión, accede a tu perfil.",
  "Faq.GettingStarted.Login.Step1": "Pulsa \"Login\" en la barra de navegación para ir a la página de inicio de sesión.",
  "Faq.GettingStarted.Login.Step2": "Introduce tu email y contraseña.",
  "Faq.GettingStarted.Login.Step3": "Para cerrar sesión, abre tu perfil y pulsa \"Cerrar sesión\" en la parte inferior.",

  "Faq.Section.Programs": "Programaciones",
  "Faq.Programs.Create.Q": "¿Cómo creo una programación?",
  "Faq.Programs.Create.A": "Crea programaciones desde la pantalla principal pulsando el botón \"Crear\".",
  "Faq.Programs.Create.Step1": "Ve a la pantalla de Programas y pulsa \"Crear\".",
  "Faq.Programs.Create.Step2": "Sube una imagen de portada y escribe el nombre de tu programación.",
  "Faq.Programs.Create.Step3": "Configura la visibilidad, tipo de programa, precio y periodicidad de pago.",
  "Faq.Programs.Create.Step4": "Añade una descripción y al menos 3 etiquetas. Pulsa guardar.",
  "Faq.Programs.Edit.Q": "¿Cómo edito una programación existente?",
  "Faq.Programs.Edit.A": "Puedes editar cualquier programación que hayas creado desde sus opciones.",
  "Faq.Programs.Edit.Step1": "Abre la programación que quieras editar.",
  "Faq.Programs.Edit.Step2": "Pulsa en el menú de opciones (⋯) de la programación.",
  "Faq.Programs.Edit.Step3": "Modifica los campos que desees y guarda los cambios.",
  "Faq.Programs.Visibility.Q": "¿Qué significa la visibilidad pública o privada?",
  "Faq.Programs.Visibility.A": "Una programación pública aparece en el Marketplace para que cualquiera pueda verla y suscribirse. Una programación privada solo es accesible mediante enlace de invitación.",
  "Faq.Programs.Types.Q": "¿Qué tipos de programación existen?",
  "Faq.Programs.Types.A": "Existen tres tipos: Indefinida (sin fecha de fin, contenido continuo), Semanal (publicación semanal programada) y Mensual (planificación mensual). El tipo determina cómo se estructura y publica el contenido para tus atletas.",
  "Faq.Programs.WelcomeMessage.Q": "¿Cómo configuro el mensaje de bienvenida?",
  "Faq.Programs.WelcomeMessage.A": "El mensaje de bienvenida se envía automáticamente a cada nuevo atleta que se une a tu programación.",
  "Faq.Programs.WelcomeMessage.Step1": "Abre las opciones de tu programación.",
  "Faq.Programs.WelcomeMessage.Step2": "Selecciona \"Mensaje Bienvenida\".",
  "Faq.Programs.WelcomeMessage.Step3": "Escribe el mensaje que recibirán tus nuevos atletas y guarda.",
  "Faq.Programs.Parameters.Q": "¿Cómo configuro el día y hora de publicación semanal?",
  "Faq.Programs.Parameters.A": "Si tu programación es de tipo semanal, puedes definir cuándo se publican las nuevas semanas.",
  "Faq.Programs.Parameters.Step1": "Abre las opciones de tu programación y selecciona \"Parámetros\".",
  "Faq.Programs.Parameters.Step2": "Configura el día de la semana y la hora de publicación.",
  "Faq.Programs.Parameters.Step3": "Pulsa \"Guardar\" para aplicar los cambios.",

  "Faq.Section.Blocks": "Semanas, días y bloques",
  "Faq.Blocks.Structure.Q": "¿Cómo se estructura una programación?",
  "Faq.Blocks.Structure.A": "Cada programación se organiza en semanas. Cada semana tiene 7 días, y cada día puede contener bloques de entrenamiento y sesiones.",
  "Faq.Blocks.Create.Q": "¿Cómo creo un bloque nuevo?",
  "Faq.Blocks.Create.A": "Los bloques se crean dentro de un día específico de la programación.",
  "Faq.Blocks.Create.Step1": "Navega al día donde quieras añadir el bloque.",
  "Faq.Blocks.Create.Step2": "Pulsa \"Nuevo bloque\".",
  "Faq.Blocks.Create.Step3": "Rellena el título (obligatorio), descripción, notas, color y clasificaciones si lo deseas.",
  "Faq.Blocks.Create.Step4": "Pulsa \"Guardar\" para crear el bloque.",
  "Faq.Blocks.EditCopyDelete.Q": "¿Cómo edito, copio o elimino un bloque?",
  "Faq.Blocks.EditCopyDelete.A": "Pulsa sobre el bloque para editarlo. Usa el menú de acciones para copiar, mover o eliminar.",
  "Faq.Blocks.EditCopyDelete.Step1": "Pulsa sobre el bloque para abrir el editor.",
  "Faq.Blocks.EditCopyDelete.Step2": "Para copiar o mover, usa las opciones del menú de acciones del bloque.",
  "Faq.Blocks.EditCopyDelete.Step3": "Para eliminar, selecciona \"Eliminar\" en las acciones y confirma.",
  "Faq.Blocks.Personalize.Q": "¿Cómo personalizo un bloque para usuarios específicos?",
  "Faq.Blocks.Personalize.A": "Puedes crear versiones personalizadas de un bloque para usuarios o grupos concretos.",
  "Faq.Blocks.Personalize.Step1": "Abre el editor del bloque.",
  "Faq.Blocks.Personalize.Step2": "En la sección de personalización, selecciona los usuarios o grupos.",
  "Faq.Blocks.Personalize.Step3": "Modifica el contenido para esos usuarios y guarda el bloque personalizado.",
  "Faq.Blocks.Sessions.Q": "¿Cómo creo sesiones dentro de un día?",
  "Faq.Blocks.Sessions.A": "Las sesiones te permiten agrupar bloques dentro de un mismo día (ej. sesión de mañana y sesión de tarde).",
  "Faq.Blocks.Sessions.Step1": "Ve al día donde quieras crear la sesión.",
  "Faq.Blocks.Sessions.Step2": "Pulsa \"Nueva sesión\" e introduce un nombre.",
  "Faq.Blocks.Sessions.Step3": "Dentro de la sesión podrás añadir bloques como lo harías en un día normal.",
  "Faq.Blocks.HideBlock.Q": "¿Cómo oculto un bloque para ciertos atletas?",
  "Faq.Blocks.HideBlock.A": "Puedes seleccionar atletas específicos para los que un bloque no será visible.",
  "Faq.Blocks.HideBlock.Step1": "Abre las acciones del bloque.",
  "Faq.Blocks.HideBlock.Step2": "Selecciona \"Ocultar bloque\".",
  "Faq.Blocks.HideBlock.Step3": "Marca los atletas que no deben ver este bloque y guarda.",
  "Faq.Blocks.Results.Q": "¿Cómo registran los atletas sus resultados?",
  "Faq.Blocks.Results.A": "Si un bloque tiene clasificaciones (ranking), los atletas pueden añadir su resultado directamente desde el bloque. El resultado puede ser de tiempo, peso, repeticiones, distancia o calorías según la configuración.",
  "Faq.Blocks.ShareExport.Q": "¿Cómo comparto o descargo un entrenamiento como imagen?",
  "Faq.Blocks.ShareExport.A": "Puedes descargar o compartir un bloque como imagen en formato negro o blanco.",
  "Faq.Blocks.ShareExport.Step1": "Abre las acciones del bloque.",
  "Faq.Blocks.ShareExport.Step2": "Selecciona \"Compartir entrenamiento (negro)\" o \"Compartir entrenamiento (blanco)\".",
  "Faq.Blocks.ShareExport.Step3": "Se generará una imagen que podrás descargar o compartir directamente.",

  "Faq.Section.WeekDay": "Gestión de semanas y días",
  "Faq.WeekDay.CopyPaste.Q": "¿Cómo copio y pego semanas o días?",
  "Faq.WeekDay.CopyPaste.A": "Puedes copiar semanas o días completos y pegarlos en otra ubicación para ahorrar tiempo.",
  "Faq.WeekDay.CopyPaste.Step1": "Abre las acciones de la semana o del día.",
  "Faq.WeekDay.CopyPaste.Step2": "Selecciona \"Copiar semana\" o \"Copiar día\".",
  "Faq.WeekDay.CopyPaste.Step3": "Navega a la semana o día destino y selecciona \"Pegar semana\" o \"Pegar día\".",
  "Faq.WeekDay.WeekNotes.Q": "¿Cómo añado notas a una semana?",
  "Faq.WeekDay.WeekNotes.A": "Cada semana tiene un campo de notas donde puedes escribir indicaciones generales para tus atletas.",
  "Faq.WeekDay.WeekNotes.Step1": "Abre la vista de la semana.",
  "Faq.WeekDay.WeekNotes.Step2": "Pulsa en el campo de \"Notas\" de la semana.",
  "Faq.WeekDay.WeekNotes.Step3": "Escribe tus notas. Se guardan automáticamente.",
  "Faq.WeekDay.CoachUserView.Q": "¿Cómo veo la semana desde el punto de vista del atleta?",
  "Faq.WeekDay.CoachUserView.A": "Puedes alternar entre la vista de coach y la vista de usuario para ver cómo ven tus atletas el contenido.",
  "Faq.WeekDay.CoachUserView.Step1": "Abre la vista de la semana.",
  "Faq.WeekDay.CoachUserView.Step2": "Pulsa \"Vista usuario\" para ver la semana como la vería un atleta.",
  "Faq.WeekDay.CoachUserView.Step3": "Pulsa \"Vista coach\" para volver a tu vista habitual de edición.",
  "Faq.WeekDay.WeeklyRanking.Q": "¿Cómo funciona el ranking semanal?",
  "Faq.WeekDay.WeeklyRanking.A": "El ranking semanal acumula los puntos de los atletas en los bloques con clasificación marcada como \"Ranking semanal\". Puedes verlo desde las acciones de la semana seleccionando \"Ver clasificación semanal\".",

  "Faq.Section.Templates": "Plantillas",
  "Faq.Templates.Save.Q": "¿Cómo guardo una plantilla?",
  "Faq.Templates.Save.A": "Puedes guardar bloques, días o semanas como plantillas reutilizables.",
  "Faq.Templates.Save.Step1": "Abre las acciones del bloque, día o semana.",
  "Faq.Templates.Save.Step2": "Selecciona \"Guardar como plantilla\".",
  "Faq.Templates.Save.Step3": "Escribe un nombre para la plantilla y confirma.",
  "Faq.Templates.Use.Q": "¿Cómo uso una plantilla existente?",
  "Faq.Templates.Use.A": "Las plantillas se aplican al crear contenido nuevo en un día o semana.",
  "Faq.Templates.Use.Step1": "Ve al día donde quieras aplicar la plantilla.",
  "Faq.Templates.Use.Step2": "Selecciona \"Bloque - plantilla\" o \"Día - plantilla\" según corresponda.",
  "Faq.Templates.Use.Step3": "Elige la plantilla deseada de la lista y se añadirá automáticamente.",
  "Faq.Templates.Manage.Q": "¿Cómo gestiono mis plantillas?",
  "Faq.Templates.Manage.A": "Desde las opciones de tu programación puedes ver, renombrar y eliminar tus plantillas organizadas por tipo (bloques, días, semanas).",

  "Faq.Section.Cycles": "Ciclos",
  "Faq.Cycles.WhatIs.Q": "¿Qué es un ciclo?",
  "Faq.Cycles.WhatIs.A": "Un ciclo es un bloque de varias semanas de entrenamiento que puedes diseñar una vez y reutilizar importándolo a tus programaciones. Solo está disponible en la versión de escritorio.",
  "Faq.Cycles.Create.Q": "¿Cómo creo y edito un ciclo?",
  "Faq.Cycles.Create.A": "Los ciclos se crean y editan desde la sección de ciclos de tu programación.",
  "Faq.Cycles.Create.Step1": "Abre las opciones de tu programación y selecciona \"Ciclos\".",
  "Faq.Cycles.Create.Step2": "Pulsa \"Crear ciclo\" para generar uno nuevo.",
  "Faq.Cycles.Create.Step3": "Edita las semanas del ciclo añadiendo bloques y sesiones como en una programación normal.",
  "Faq.Cycles.Import.Q": "¿Cómo importo un ciclo a mi programación?",
  "Faq.Cycles.Import.A": "Una vez creado el ciclo, puedes importarlo directamente a las semanas de tu programación.",
  "Faq.Cycles.Import.Step1": "Desde la vista de semanas de tu programación, selecciona \"Importar ciclo\".",
  "Faq.Cycles.Import.Step2": "Elige el ciclo que deseas importar.",
  "Faq.Cycles.Import.Step3": "Selecciona el rango de semanas destino y confirma la importación.",

  "Faq.Section.Resources": "Biblioteca de recursos",
  "Faq.Resources.WhatIs.Q": "¿Qué es la biblioteca de recursos?",
  "Faq.Resources.WhatIs.A": "Es el conjunto de vídeos (por ejemplo de YouTube) y enlaces que guardas para esa programación. Sirve para no repetir URLs: un mismo recurso puedes enlazarlo en varios bloques o a nivel de día. Los atletas lo ven como enlace o miniatura. Accedes desde las opciones de la programación con \"Gestionar recursos\", o al pulsar \"Añadir recurso\" en un bloque o en el día: se abre el modal \"Biblioteca\" con el buscador y la lista.",
  "Faq.Resources.Add.Q": "¿Cómo añado un recurso a mi biblioteca?",
  "Faq.Resources.Add.A": "Añades vídeos de YouTube u otros enlaces con nombre y URL; quedan guardados en la programación para reutilizarlos.",
  "Faq.Resources.Add.Step1": "Abre las opciones de tu programación y elige \"Gestionar recursos\", o abre \"Añadir recurso\" desde un bloque o un día y en el modal \"Biblioteca\" pulsa el botón para añadir recurso.",
  "Faq.Resources.Add.Step2": "Introduce la URL del vídeo (por ejemplo de YouTube) y un nombre descriptivo.",
  "Faq.Resources.Add.Step3": "Pulsa \"Guardar\". El recurso aparecerá en la lista y podrás seleccionarlo cuando quieras.",
  "Faq.Resources.UseInBlock.Q": "¿Cómo adjunto recursos de la biblioteca a un bloque?",
  "Faq.Resources.UseInBlock.A": "En el editor del bloque, la sección de recursos abre el mismo modal \"Biblioteca\" para buscar y elegir lo que ya guardaste.",
  "Faq.Resources.UseInBlock.Step1": "Abre el bloque (nuevo o existente) en modo edición.",
  "Faq.Resources.UseInBlock.Step2": "En la zona de recursos, pulsa \"Añadir recurso\" para abrir \"Biblioteca\".",
  "Faq.Resources.UseInBlock.Step3": "Usa el buscador, elige un recurso de la lista y confirma; quedará asociado a ese bloque.",
  "Faq.Resources.DayLevel.Q": "¿Puedo poner recursos en el día además de en los bloques?",
  "Faq.Resources.DayLevel.A": "Sí. En la vista del día puedes añadir recursos de la biblioteca a nivel de día (visibles en ese día junto a los bloques).",
  "Faq.Resources.DayLevel.Step1": "Abre el día de la semana que quieras.",
  "Faq.Resources.DayLevel.Step2": "Pulsa \"Añadir recurso\" (icono de vídeo) para abrir la biblioteca.",
  "Faq.Resources.DayLevel.Step3": "Selecciona un recurso existente o crea uno nuevo con el botón de añadir; se mostrará en la cabecera del día.",
  "Faq.Resources.SaveToLibrary.Q": "¿Cómo guardo un vídeo en la biblioteca al crearlo?",
  "Faq.Resources.SaveToLibrary.A": "Al añadir un recurso nuevo con URL y nombre desde el modal de \"Añadir recurso\", al guardar se almacena en la biblioteca de esa programación.",
  "Faq.Resources.SaveToLibrary.Step1": "Desde \"Gestionar recursos\" o desde \"Biblioteca\" al pulsar añadir recurso, completa URL (p. ej. YouTube) y nombre.",
  "Faq.Resources.SaveToLibrary.Step2": "Pulsa guardar; ya podrás reutilizarlo en otros bloques o días sin volver a escribir el enlace.",
  "Faq.Resources.Manage.Q": "¿Cómo busco, renombro o elimino recursos?",
  "Faq.Resources.Manage.A": "En \"Gestionar recursos\" tienes la lista completa con buscador; puedes editar el nombre o borrar recursos que ya no uses.",
  "Faq.Resources.Manage.Step1": "En las opciones de la programación, abre \"Gestionar recursos\".",
  "Faq.Resources.Manage.Step2": "Usa el campo de búsqueda para filtrar por nombre.",
  "Faq.Resources.Manage.Step3": "Renombra el recurso si lo necesitas o elimínalo con la acción de borrar (te pedirá confirmación).",

  "Faq.Section.Invitations": "Invitaciones y atletas",
  "Faq.Invitations.Invite.Q": "¿Cómo invito atletas a mi programación?",
  "Faq.Invitations.Invite.A": "Genera enlaces de invitación y compártelos con tus atletas.",
  "Faq.Invitations.Invite.Step1": "Abre las opciones de tu programación y selecciona \"Links de invitación\".",
  "Faq.Invitations.Invite.Step2": "Si la programación es de pago, elige si quieres ofrecer un periodo de prueba (7 o 30 días).",
  "Faq.Invitations.Invite.Step3": "Pulsa \"Generar\" para crear un nuevo enlace.",
  "Faq.Invitations.Invite.Step4": "Copia el enlace y compártelo con tus atletas.",
  "Faq.Invitations.ManageAthletes.Q": "¿Cómo gestiono mis atletas?",
  "Faq.Invitations.ManageAthletes.A": "Desde el modal de atletas activos puedes ver la lista, promover a coach o eliminar atletas.",
  "Faq.Invitations.ManageAthletes.Step1": "Abre las opciones de tu programación y selecciona \"Atletas Activos\".",
  "Faq.Invitations.ManageAthletes.Step2": "Usa la búsqueda para encontrar un atleta por nombre.",
  "Faq.Invitations.ManageAthletes.Step3": "Para hacerlo coach, pulsa \"+COACH\" junto a su nombre. Para eliminarlo, usa el botón de eliminar.",

  "Faq.Section.Groups": "Grupos de atletas",
  "Faq.Groups.Create.Q": "¿Cómo creo un grupo de atletas?",
  "Faq.Groups.Create.A": "Los grupos te permiten organizar a tus atletas para personalizar bloques y asignar tarifas.",
  "Faq.Groups.Create.Step1": "Abre las opciones de tu programación y selecciona \"Grupos\".",
  "Faq.Groups.Create.Step2": "Pulsa \"Crear grupo\" e introduce un nombre.",
  "Faq.Groups.Create.Step3": "Añade miembros buscándolos por nombre o email.",
  "Faq.Groups.Manage.Q": "¿Cómo gestiono los miembros de un grupo?",
  "Faq.Groups.Manage.A": "Desde la sección de grupos puedes añadir o eliminar miembros, renombrar el grupo o eliminarlo.",
  "Faq.Groups.Manage.Step1": "Abre las opciones de tu programación y selecciona \"Grupos\".",
  "Faq.Groups.Manage.Step2": "Pulsa sobre el grupo que quieras gestionar.",
  "Faq.Groups.Manage.Step3": "Usa los botones de añadir/eliminar miembros o renombrar el grupo según necesites.",

  "Faq.Section.Rates": "Tarifas y pagos",
  "Faq.Rates.ConnectStripe.Q": "¿Cómo conecto mi cuenta de Stripe?",
  "Faq.Rates.ConnectStripe.A": "Necesitas una cuenta de Stripe para cobrar por tus programaciones.",
  "Faq.Rates.ConnectStripe.Step1": "Abre tu perfil y ve a la sección \"Gestión de Pagos\".",
  "Faq.Rates.ConnectStripe.Step2": "Pulsa el botón para conectar con Stripe.",
  "Faq.Rates.ConnectStripe.Step3": "Sigue las instrucciones de Stripe para completar la configuración de tu cuenta.",
  "Faq.Rates.SetPrice.Q": "¿Cómo configuro el precio de mi programación?",
  "Faq.Rates.SetPrice.A": "Define el precio al crear la programación o desde la gestión de tarifas.",
  "Faq.Rates.SetPrice.Step1": "Abre las opciones de la programación y selecciona \"Crear/Editar Tarifas\".",
  "Faq.Rates.SetPrice.Step2": "Modifica el precio general y pulsa \"Actualizar Precio\".",
  "Faq.Rates.SetPrice.Step3": "También puedes crear tarifas personalizadas con precios diferentes para distintos usuarios o grupos.",
  "Faq.Rates.Discounts.Q": "¿Cómo activo descuentos?",
  "Faq.Rates.Discounts.A": "Los descuentos se configuran desde la sección de tarifas de tu programación.",
  "Faq.Rates.Discounts.Step1": "Abre \"Crear/Editar Tarifas\" en las opciones de tu programación.",
  "Faq.Rates.Discounts.Step2": "Activa la opción de descuento.",
  "Faq.Rates.Discounts.Step3": "Define el porcentaje de descuento y un texto promocional. Pulsa \"Guardar descuento\".",

  "Faq.Section.Feedbacks": "Panel de feedbacks",
  "Faq.Feedbacks.View.Q": "¿Cómo accedo al panel de feedbacks?",
  "Faq.Feedbacks.View.A": "El panel de feedbacks te muestra los resultados y comentarios de tus atletas organizados por semana.",
  "Faq.Feedbacks.View.Step1": "Abre tu programación y pulsa en \"Feedbacks\" en el menú de opciones.",
  "Faq.Feedbacks.View.Step2": "Selecciona la semana que quieres revisar.",
  "Faq.Feedbacks.View.Step3": "Verás los resultados de cada atleta en cada bloque, junto con sus comentarios y notas para el coach.",
  "Faq.Feedbacks.Respond.Q": "¿Cómo respondo a un feedback?",
  "Faq.Feedbacks.Respond.A": "Puedes dar feedback directo a un atleta sobre su resultado en un bloque, abriendo un chat vinculado.",
  "Faq.Feedbacks.Respond.Step1": "En el panel de feedbacks, localiza el resultado del atleta.",
  "Faq.Feedbacks.Respond.Step2": "Pulsa \"Dar feedback\" junto al resultado.",
  "Faq.Feedbacks.Respond.Step3": "Se abrirá un chat con el contexto del bloque. Escribe tu comentario y el atleta recibirá una notificación.",
  "Faq.Feedbacks.MarkSeen.Q": "¿Cómo marco un feedback como leído?",
  "Faq.Feedbacks.MarkSeen.A": "Pulsa el botón \"Marcar visto\" junto a cualquier resultado en el panel de feedbacks para indicar que ya lo has revisado.",

  "Faq.Section.Chat": "Chat",
  "Faq.Chat.GroupChat.Q": "¿Cómo accedo al chat grupal?",
  "Faq.Chat.GroupChat.A": "Cada programación tiene un chat grupal que se crea automáticamente.",
  "Faq.Chat.GroupChat.Step1": "Abre tu programación y pulsa en \"Chats\" en el menú de opciones.",
  "Faq.Chat.GroupChat.Step2": "Selecciona el chat grupal de la sección \"Grupos\".",
  "Faq.Chat.PrivateChat.Q": "¿Cómo inicio un chat privado?",
  "Faq.Chat.PrivateChat.A": "Los chats privados se crean automáticamente entre cada coach y cada atleta de la programación.",
  "Faq.Chat.PrivateChat.Step1": "Abre \"Chats\" en las opciones de tu programación.",
  "Faq.Chat.PrivateChat.Step2": "Busca al usuario en la sección \"One-To-One\" y pulsa sobre su nombre.",
  "Faq.Chat.SendMedia.Q": "¿Cómo envío archivos, audio o imágenes?",
  "Faq.Chat.SendMedia.A": "Dentro del chat puedes adjuntar imágenes, vídeos, archivos PDF y grabar audio.",
  "Faq.Chat.SendMedia.Step1": "Abre un chat y pulsa el botón de adjuntar para enviar imágenes o archivos.",
  "Faq.Chat.SendMedia.Step2": "Pulsa el botón de micrófono para grabar y enviar mensajes de audio.",
  "Faq.Chat.Feedback.Q": "¿Cómo doy feedback en un bloque?",
  "Faq.Chat.Feedback.A": "Los coaches pueden dar feedback directo sobre los resultados de un atleta en un bloque.",
  "Faq.Chat.Feedback.Step1": "Desde la sección de feedbacks de tu programación, selecciona un resultado de un atleta.",
  "Faq.Chat.Feedback.Step2": "Pulsa \"Dar feedback\" para abrir un chat vinculado al bloque.",
  "Faq.Chat.Feedback.Step3": "Escribe tu comentario. El atleta recibirá la notificación y podrá ver el bloque asociado.",

  "Faq.Section.Marketplace": "Marketplace",
  "Faq.Marketplace.Publish.Q": "¿Cómo publico mi programación en el marketplace?",
  "Faq.Marketplace.Publish.A": "Las programaciones con visibilidad \"Pública\" aparecen automáticamente en el marketplace.",
  "Faq.Marketplace.Publish.Step1": "Al crear o editar tu programación, selecciona la visibilidad \"Pública\".",
  "Faq.Marketplace.Publish.Step2": "Asegúrate de tener una buena imagen de portada, descripción y al menos 3 etiquetas.",
  "Faq.Marketplace.Publish.Step3": "Una vez guardada, tu programación será visible en el marketplace para todos los usuarios.",
  "Faq.Marketplace.Browse.Q": "¿Cómo busco programaciones en el marketplace?",
  "Faq.Marketplace.Browse.A": "Navega al marketplace desde el menú principal y usa el buscador para encontrar programaciones.",
  "Faq.Marketplace.Browse.Step1": "Pulsa \"Market\" en la barra de navegación.",
  "Faq.Marketplace.Browse.Step2": "Usa la barra de búsqueda para filtrar por nombre de programación.",
  "Faq.Marketplace.Browse.Step3": "Pulsa sobre una programación para ver sus detalles, precio y opciones de suscripción.",

  "Faq.Section.Support": "Soporte",
  "Faq.Support.Contact.Q": "¿Cómo contacto con soporte?",
  "Faq.Support.Contact.A": "Accede al chat de soporte directamente desde la pantalla de programas.",
  "Faq.Support.Contact.Step1": "Ve a la pantalla de \"Programas\".",
  "Faq.Support.Contact.Step2": "Pulsa el botón \"Soporte\" que aparece en la parte superior.",
  "Faq.Support.Contact.Step3": "Se abrirá un chat directo con el equipo de soporte donde podrás escribir tu consulta.",

  "Faq.Section.Profile": "Perfil y configuración",
  "Faq.Profile.Edit.Q": "¿Cómo edito mi perfil?",
  "Faq.Profile.Edit.A": "Accede a tu perfil desde la barra de navegación para modificar tus datos personales.",
  "Faq.Profile.Edit.Step1": "Pulsa \"Perfil\" en la barra de navegación.",
  "Faq.Profile.Edit.Step2": "Modifica tu nombre, foto, biografía, edad, género y unidades de medida.",
  "Faq.Profile.Edit.Step3": "Los cambios se guardan automáticamente.",
  "Faq.Profile.Records.Q": "¿Cómo gestiono mis records personales (PRs)?",
  "Faq.Profile.Records.A": "Registra y gestiona tus marcas personales desde la sección de records de tu perfil.",
  "Faq.Profile.Records.Step1": "Abre tu perfil.",
  "Faq.Profile.Records.Step2": "Ve a la sección \"Records Personales\".",
  "Faq.Profile.Records.Step3": "Pulsa \"Nuevo PR\" para añadir un record, selecciona el ejercicio y registra el valor.",
  "Faq.Profile.Language.Q": "¿Cómo cambio el idioma de la aplicación?",
  "Faq.Profile.Language.A": "Usa el selector de idioma en la barra de navegación para cambiar entre los idiomas disponibles (español, inglés, portugués, italiano, alemán, francés y japonés).",
  "Faq.Profile.Subscriptions.Q": "¿Cómo veo mis suscripciones activas?",
  "Faq.Profile.Subscriptions.A": "Tus suscripciones activas aparecen en tu perfil, donde puedes ver el estado y cambiar la tarjeta de pago si es necesario.",

  "Faq.Section.Timer": "Timer",
  "Faq.Timer.Modes.Q": "¿Qué modos de timer hay disponibles?",
  "Faq.Timer.Modes.A": "La aplicación ofrece cuatro modos de timer: AMRAP (tantas rondas como puedas), For Time (tan rápido como puedas), EMOM (cada minuto en punto) y Tabata (intervalos de alta intensidad).",
  "Faq.Timer.Access.Q": "¿Cómo accedo al timer?",
  "Faq.Timer.Access.A": "Abre el timer desde la barra de navegación pulsando \"Timer\". Se abrirá un modal donde podrás seleccionar el modo y configurar los parámetros.",
  "Import.TC.Title": "Importar desde TrueCoach",
  "Import.TC.Subtitle": "Conecta tu cuenta de TrueCoach para importar programas completos.",
  "Import.TC.LoginTitle": "Conectar con TrueCoach",
  "Import.TC.Email": "Email",
  "Import.TC.Password": "Contraseña",
  "Import.TC.Connect": "Conectar",
  "Import.TC.SelectProgram": "Selecciona un programa",
  "Import.TC.Back": "Volver",
  "Import.TC.DateRange": "Rango de fechas",
  "Import.TC.ProgramName": "Nombre de la programación",
  "Import.TC.ProgramNamePlaceholder": "Ej: Fuerza Enero-Marzo",
  "Import.TC.StartDate": "Fecha inicio",
  "Import.TC.EndDate": "Fecha fin",
  "Import.TC.Preview": "Vista previa",
  "Import.TC.PreviewTitle": "Vista previa de la importación",
  "Import.TC.Weeks": "Semanas",
  "Import.TC.Days": "Días",
  "Import.TC.Blocks": "Bloques",
  "Import.TC.BlocksLower": "bloques",
  "Import.TC.WeekN": "Semana",
  "Import.TC.ConfirmImport": "Importar",
  "Import.TC.FillCredentials": "Introduce email y contraseña.",
  "Import.TC.LoginFailed": "No se pudo conectar. Revisa tus credenciales.",
  "Import.TC.NameRequired": "El nombre de la programación es obligatorio.",
  "Import.TC.InvalidDates": "La fecha de inicio debe ser anterior a la de fin.",
  "Import.TC.NoWorkouts": "No se encontraron entrenamientos en el rango seleccionado.",
  "Import.TC.NoPrograms": "No se encontraron programas en tu cuenta.",
  "Import.TC.SearchPrograms": "Buscar programa...",
  "Import.TC.NoMatch": "No hay programas que coincidan con la búsqueda.",
  "Import.TC.ProgramType": "Tipo de programación",
  "Import.TC.TypeRolling": "Rolling Calendar",
  "Import.TC.TypeRelative": "Rolling Relativo",
  "Import.TC.TypeFixed": "Duración fija",
  "Import.TC.WeekPlacement": "Ubicación de semanas",
  "Import.TC.WeeksBefore": "Hasta la semana actual (semanas pasadas)",
  "Import.TC.WeeksAfter": "Desde la semana actual (semanas futuras)",
  "Import.TC.PreviewError": "Error al obtener la vista previa.",
  "Import.TC.ImportError": "Error al importar. Inténtalo de nuevo.",
  "Import.TC.Success": "¡Programación importada correctamente!",
  "Import.TCWeek.MenuOption": "Importar semana desde TrueCoach",
  "Import.TCWeek.Title": "Importar semana desde TrueCoach",
  "Import.TCWeek.Subtitle": "Conecta tu cuenta de TrueCoach para importar una semana en esta.",
  "Import.TCWeek.SelectWeek": "Selecciona la semana a importar",
  "Import.TCWeek.UseThisWeek": "Usar esta semana",
  "Import.TCWeek.HowItLooks": "Así quedará esta semana",
  "Import.TCWeek.EmptyDay": "vacío",
  "Import.TCWeek.OverwriteWarning": "Se sobrescribirá todo el contenido actual de esta semana. Esta acción no se puede deshacer.",
  "Import.TCWeek.ConfirmOverwrite": "Sí, sobrescribir",
  "Import.TCWeek.UnnamedBlock": "Bloque",
  "Import.TCWeek.Success": "Semana importada correctamente.",
  "Import.TCRes.MenuOption": "Importar desde TC",
  "Import.TCRes.Title": "Importar recursos desde TrueCoach",
  "Import.TCRes.Subtitle": "Conecta tu cuenta de TrueCoach para importar vídeos de tu biblioteca de ejercicios.",
  "Import.TCRes.None": "No se encontraron ejercicios con vídeo en tu cuenta de TrueCoach.",
  "Import.TCRes.SearchPlaceholder": "Buscar ejercicio...",
  "Import.TCRes.SelectAll": "Seleccionar todos",
  "Import.TCRes.DeselectAll": "Quitar selección",
  "Import.TCRes.ImportN": "Importar ({0})",
  "Import.TCRes.LoadError": "Error al cargar los ejercicios.",
  "Import.TCRes.ImportError": "Error al importar. Inténtalo de nuevo.",
  "Import.TCRes.Success": "{0} recursos importados, {1} omitidos (ya existían).",
  "Import.TCRes.Loading": "Cargando ejercicios desde TrueCoach… {0}",
  "Import.TCRes.Count": "{0} ejercicios",
  "Import.TCRes.Selected": "{0} seleccionados",
  "Import.TC.LoadingPrograms": "Cargando programas…",
  "Import.TC.LoadingWeeks": "Cargando semanas…",
  "Clipboard.Block": "Bloque copiado",
  "Clipboard.Day": "Día copiado",
  "Clipboard.Week": "Semana copiada",
  "Clipboard.Clear": "Limpiar portapapeles",
  "Social.Title": "Social",
  "Social.Tab.Feed": "Feed",
  "Social.Tab.Tablon": "Tablón",
  "Social.Tab.Friends": "Amigos",
  "Social.Tab.Notifications": "Notificaciones",
  "Social.Verified": "Perfil verificado",
  "Social.Tablon.Empty": "Aún no hay publicaciones en el tablón",
  "Social.Tablon.EmptyHint": "Aquí aparecerán los anuncios y novedades de la app.",
  "Social.Tablon.ComposerPlaceholder": "Comparte una novedad con la comunidad...",
  "Social.Notifications.Title": "Notificaciones",
  "Social.Notifications.Empty": "No tienes notificaciones todavía.",
  "Social.Notifications.MarkAllRead": "Marcar todas como leídas",
  "Social.Notifications.LoadMore": "Ver más",
  "Social.Notifications.Delete": "Eliminar notificación",
  "Social.Notifications.Type.MentionPost": "te ha mencionado en una publicación",
  "Social.Notifications.Type.MentionComment": "te ha mencionado en un comentario",
  "Social.Notifications.Type.NewComment": "ha comentado en una publicación",
  "Social.Notifications.Type.LikePost": "ha reaccionado a tu publicación",
  "Social.Notifications.Type.LikeComment": "ha reaccionado a tu comentario",
  "Social.Notifications.Type.FriendRequest": "te ha enviado una solicitud de amistad",
  "Social.Notifications.Type.FriendAccepted": "ha aceptado tu solicitud de amistad",
  "Social.Notifications.Type.BadgeEarned": "¡Has ganado una insignia!",
  "Social.Feed.Empty": "Aún no hay nada por aquí.",
  "Social.Feed.EmptyHint": "Añade amigos y comparte tu primer entreno para empezar.",
  "Social.Feed.LoadMore": "Cargar más",
  "Social.Composer.Placeholder": "¿Cómo ha ido el entreno?",
  "Social.Composer.AddMedia": "Añadir foto/vídeo",
  "Social.Composer.Publish": "Publicar",
  "Social.Friends.Mine": "Mis amigos",
  "Social.Friends.Requests": "Solicitudes pendientes",
  "Social.Friends.None": "Aún no tienes amigos.",
  "Social.Friends.NoneHint": "Explora las sugerencias o busca por nombre.",
  "Social.Friends.Accept": "Aceptar",
  "Social.Friends.Reject": "Rechazar",
  "Social.Friends.Remove": "Quitar",
  "Social.Friends.Add": "Añadir amigo",
  "Social.Friends.RequestSent": "Solicitud enviada",
  "Social.Friends.OutgoingPending": "Esperando respuesta",
  "Social.Friends.WithdrawRequest": "Retirar solicitud",
  "Social.Search.Placeholder": "Busca por nombre o email...",
  "Social.Search.Hint": "Escribe al menos 3 caracteres.",
  "Social.Search.NoResults": "No hay resultados.",
  "Social.Profile.ModalTitle": "Perfil público",
  "Social.Profile.Posts": "Publicaciones",
  "Social.Profile.NoPosts": "Aún no hay publicaciones.",
  "Social.Profile.NotFriendsYet": "Tenéis que ser amigos para ver sus publicaciones.",
  "Social.Comments.Placeholder": "Escribe un comentario...",
  "Social.Post.DeleteTitle": "Eliminar publicación",
  "Social.Post.DeleteMessage": "¿Seguro que quieres eliminar esta publicación? Esta acción no se puede deshacer.",
  "Social.Block.User": "Bloquear usuario",
  "Social.Block.ConfirmTitle": "¿Bloquear a este usuario?",
  "Social.Block.ConfirmMessage": "Dejará de ver sus publicaciones y no podrá interactuar contigo en Social. Puedes desbloquearlo más adelante desde su perfil.",
  "Social.Block.Unblock": "Desbloquear",
  "Social.Block.BlockedYouBadge": "Te ha bloqueado",
  "Social.Block.BlockedYouMessage": "Este usuario te ha bloqueado. No puedes ver sus publicaciones ni enviarle solicitudes.",
  "Social.Block.YouBlockedHint": "Has bloqueado a este usuario. Pulsa «Desbloquear» para volver a ver sus publicaciones o enviarle una solicitud.",
  "Social.Post.Edit": "Editar",
  "Social.Post.Edited": "editado",
  "Social.Post.EditError": "No se han podido guardar los cambios. Inténtalo de nuevo.",
  "Social.Post.Like": "Me gusta",
  "Social.Post.Comment": "Comentar",
  "Social.Post.ViewLikes": "Ver me gustas",
  "Social.Post.ViewAllComments": "Ver los {0} comentarios",
  "Social.Post.LikesTitle": "Me gusta",
  "Social.Post.LikesEmpty": "Aún no hay me gustas.",
  "Social.Time.JustNow": "Ahora",
  "Social.Time.MinutesAgo": "Hace {0} min",
  "Social.Time.HoursAgo": "Hace {0} h",
  "Social.Time.DaysAgo": "Hace {0} d",
  "Social.ShareToFeed.Title": "¿Compartir en el feed?",
  "Social.ShareToFeed.Intro": "Tu resultado se ha guardado. ¿Quieres compartirlo con tus amigos en el feed Social?",
  "Social.ShareToFeed.Placeholder": "Añade un comentario opcional...",
  "Social.ShareToFeed.PlaceholderCaption": "Comentario",
  "Social.Ranking.Type.Peso": "Peso",
  "Social.Ranking.Type.Reps": "Repeticiones",
  "Social.Ranking.Type.Time": "Tiempo",
  "Social.Ranking.Type.Calories": "Calorías",
  "Social.Ranking.Type.Meters": "Metros",
  "Social.Ranking.Type.Comment": "Comentario",
  "Social.Ranking.Type.Generic": "Resultado",
  "Social.ShareToFeed.Publish": "Compartir",
  "Social.ShareToFeed.Skip": "No, gracias",
  "Social.SharedToFeed": "¡Compartido en el feed!",
  "Social.ShareError": "No se pudo compartir el post.",
  "Social.Panel.AriaSidebar": "Tu resumen social",
  "Social.Panel.LoadError": "No se pudo cargar el panel.",
  "Social.Panel.MyProfile": "Ver tu perfil",
  "Social.Panel.Following": "Siguiendo",
  "Social.Panel.Followers": "Seguidores",
  "Social.Panel.StatFriends": "Amigos",
  "Social.Panel.StatActivities": "Actividades",
  "Social.Panel.TrainingTitle": "Tu entrenamiento",
  "Social.Stats.Title": "Estadísticas",
  "Social.Panel.StatPosts": "Posts",
  "Social.Panel.Workouts": "Entrenos",
  "Social.Panel.PostsInFeed": "publicaciones en el feed",
  "Social.Panel.YourSeries": "Tu serie",
  "Social.Panel.MutualHint": "Las amistades son mutuas: sigues y te siguen las mismas personas.",
  "Social.Panel.RecentActivity": "Actividad más reciente",
  "Social.Panel.NoRecentActivity": "Aún no tienes actividad reciente.",
  "Social.Mentions.AriaList": "Sugerencias de amigos para mencionar",
  "Social.Panel.Streak": "Racha de entrenos",
  "Social.Panel.WeeksStreak": "semanas seguidas con entreno",
  "Social.Panel.WeeksStreak.Short": "Semanas",
  "Social.Panel.DaysStreak": "días de racha",
  "Social.Panel.TrainingLog": "Tu registro de entrenamiento",
  "Social.Carousel.SlideOf": "{0} / {1}",
  "Social.Carousel.Prev": "Anterior",
  "Social.Carousel.Next": "Siguiente",
  "Social.Carousel.GoToSlide": "Ir al recurso {0}",
  "Social.Streak.WeeksLabel": "semanas seguidas",
  "Social.Streak.DaysLabel": "días de racha",
  "Social.Streak.DaysShort": "Días",
  "Social.Streak.WeeksShort": "Semanas",
  "Social.Streak.MonthsShort": "Meses",
  "Social.Suggestions.Title": "Atletas que quizá conozcas",
  "Social.Suggestions.Empty": "No hay sugerencias por ahora. Completa entrenos o únete a una programación.",
  "Social.Suggestions.Add": "Seguir",
  "Social.Suggestions.Sent": "Enviado",
  "Social.Suggestions.Reason.Program": "Entrenáis en {0}",
  "Social.Suggestions.Reason.Box": "Sois del mismo box",
  "Social.Suggestions.Reason.MutualOne": "1 amigo en común",
  "Social.Suggestions.Reason.Mutual": "{0} amigos en común",
  "Social.Suggestions.Prev": "Anterior",
  "Social.Suggestions.Next": "Siguiente",
  "Social.Suggestions.Reason.SameWod": "Mismo WOD esta semana",
  "Social.Suggestions.Reason.Popular": "Muy seguido en la comunidad",
  "Social.Suggestions.Reason.Active": "Entrena con constancia",
  "Social.Suggestions.Reason.NewToApp": "Nuevo en la app",
  "Social.Suggestions.Reason.Generic": "Atleta de la comunidad",
  "Social.Panel.Progress": "Tu progreso",
  "Social.Panel.WorkoutsThisWeek": "Entrenos esta semana",
  "Social.Panel.PRsThisMonth": "PRs este mes",
  "Social.Panel.Consistency30d": "Consistencia (30 días)",
  "Social.Panel.WeekDeltaUp": "+{0} vs semana pasada",
  "Social.Panel.WeekDeltaDown": "-{0} vs semana pasada",
  "Social.Panel.WeekDeltaSame": "Igual que la semana pasada",
  "Social.Ranking.Title": "Ranking de amigos",
  "Social.Ranking.ThisWeek": "Esta semana",
  "Social.Ranking.You": "Tú",
  "Social.Ranking.YourPosition": "Vas {0}º de {1} esta semana",
  "Social.Ranking.SeeMore": "Ver más",
  "Social.Ranking.SeeLess": "Ver menos",
  "Social.Weekly.Title": "Tu semana",
  "Social.Weekly.ThisWeek": "Esta semana",
  "Social.Weekly.Empty": "Aún no has entrenado esta semana. ¡A por ello!",
  "Social.Weekly.Workouts": "Entrenos",
  "Social.Weekly.Days": "Días",
  "Social.Weekly.Results": "Resultados",
  "Social.Weekly.Streak": "Racha semanas",
  "Social.Weekly.AvgRpe": "RPE medio",
  "Social.Weekly.NewPrs": "Nuevos PRs",
  "Social.Weekly.NewBadges": "Insignias",
  "Social.Weekly.MovementsTitle": "Volumen de la semana",
  "Social.Weekly.MovementsNote": "Recuento aproximado a partir de los bloques que has completado.",
  "Social.Weekly.Level": "Nivel {0}",
  "Social.Weekly.VsLastWeek": "vs. semana anterior",
  "Social.Weekly.Evolution": "Evolución mensual",
  "Social.Weekly.ShareHint": "Comparte tu semana en tus redes. La imagen se genera con fondo transparente.",
  "Social.Monthly.Title": "Tu mes",
  "Social.Monthly.Empty": "Aún no has entrenado este mes. ¡A por ello!",
  "Social.Monthly.Streak": "Racha meses",
  "Social.Monthly.VsLastMonth": "vs. mes anterior",
  "Social.Monthly.MovementsTitle": "Volumen del mes",
  "Social.Monthly.ShareHint": "Comparte tu mes en tus redes. La imagen se genera con fondo transparente.",
  "ApiError.athlete_id_invalid": "El atleta no es válido.",
  "ApiError.attachment_resource_invalid": "El adjunto no es válido.",
  "ApiError.audience_exclusion_user_invalid": "La lista de usuarios excluidos contiene identificadores inválidos o repetidos.",
  "ApiError.authentication_upstream_unavailable": "No se ha podido comprobar la sesión. Inténtalo de nuevo en unos segundos.",
  "ApiError.bad_request": "La solicitud no es válida.",
  "ApiError.block_destination_required": "El bloque debe tener un destino válido.",
  "ApiError.block_history_name_invalid": "El nombre del bloque no es válido.",
  "ApiError.block_personalization_recipient_out_of_scope": "Algún destinatario ya no pertenece a la programación. Actualiza la lista e inténtalo de nuevo.",
  "ApiError.block_personalization_recipients_invalid": "Debes seleccionar destinatarios válidos.",
  "ApiError.block_personalization_scope_mismatch": "No se puede eliminar un bloque con personalizaciones en otro ámbito.",
  "ApiError.block_recipients_required": "Selecciona al menos un destinatario.",
  "ApiError.block_reciprocal_blocked": "Este usuario te ha bloqueado. No puedes bloquearle hasta que te desbloquee.",
  "ApiError.block_request_invalid": "La solicitud del bloque no es válida.",
  "ApiError.block_scope_mismatch": "El bloque, su destino y sus clasificaciones vinculadas deben pertenecer al mismo ámbito.",
  "ApiError.block_self": "No puedes bloquearte a ti mismo.",
  "ApiError.block_template_invalid": "La plantilla de bloque no es válida.",
  "ApiError.block_template_not_found": "La plantilla de bloque ya no existe.",
  "ApiError.chat_message_id_invalid": "El mensaje no es válido.",
  "ApiError.chat_message_not_found": "El mensaje ya no existe o no puedes notificarlo.",
  "ApiError.checkout_not_complete": "El pago todavía no se ha completado.",
  "ApiError.checkout_reference_invalid": "La referencia del pago no es válida.",
  "ApiError.checkout_selection_ambiguous": "No se puede elegir simultáneamente una tarifa y una opción de pago.",
  "ApiError.classification_duplicate_in_request": "La solicitud contiene la misma clasificación más de una vez.",
  "ApiError.classification_has_published_results": "No se puede eliminar porque alguno de sus resultados está incluido en una publicación.",
  "ApiError.classification_id_invalid": "La clasificación seleccionada no es válida.",
  "ApiError.classification_intent_invalid": "La intención de clasificación no es válida.",
  "ApiError.classification_link_duplicate": "Ese ranking ya está vinculado al bloque.",
  "ApiError.classification_link_same_block": "No se puede vincular una clasificación con otra del mismo bloque.",
  "ApiError.classification_link_scope_mismatch": "Solo se pueden vincular rankings de la misma semana.",
  "ApiError.classification_link_source_invalid": "La clasificación que se quiere vincular no es válida.",
  "ApiError.classification_link_source_missing": "Alguna clasificación seleccionada ya no existe. Actualiza el listado e inténtalo de nuevo.",
  "ApiError.classification_not_in_block": "Alguna clasificación ya no pertenece a este bloque. Actualiza los datos e inténtalo de nuevo.",
  "ApiError.classification_result_rpe_invalid": "El esfuerzo percibido debe estar entre 1 y 10.",
  "ApiError.classification_result_text_too_long": "Los comentarios no pueden superar los 10000 caracteres.",
  "ApiError.client_upgrade_required": "La versión de Coach ha cambiado. Carga la versión compatible para continuar.",
  "ApiError.comment_empty": "El comentario debe tener texto o un adjunto.",
  "ApiError.concurrency_conflict": "Los datos han cambiado. Recarga la información e inténtalo de nuevo.",
  "ApiError.conversation_attachment_not_owned": "El archivo adjunto no pertenece al usuario autenticado.",
  "ApiError.conversation_audio_not_allowed": "No puedes enviar audio en esta conversación.",
  "ApiError.conversation_message_edit_window_expired": "El tiempo para editar este mensaje ha expirado.",
  "ApiError.conversation_message_empty": "El mensaje no puede estar vacío.",
  "ApiError.conversation_message_not_editable": "Este tipo de mensaje no se puede editar.",
  "ApiError.conversation_not_found": "La conversación no existe o no puedes acceder a ella.",
  "ApiError.conversation_participant_invalid": "El participante no es válido.",
  "ApiError.conversation_participant_out_of_scope": "El usuario ya no pertenece a la programación.",
  "ApiError.conversation_poll_not_found": "La encuesta no existe o no puedes acceder a ella.",
  "ApiError.conversation_poll_option_count_invalid": "Debes indicar entre 2 y 12 opciones.",
  "ApiError.conversation_poll_option_out_of_scope": "Has seleccionado una opción que no pertenece a esta encuesta.",
  "ApiError.conversation_poll_option_too_long": "Una o más opciones superan la longitud máxima permitida.",
  "ApiError.conversation_poll_question_invalid": "La pregunta no es válida o supera la longitud máxima permitida.",
  "ApiError.conversation_poll_single_choice_required": "Esta encuesta solo permite votar una opción.",
  "ApiError.conversation_resource_id_invalid": "El identificador no es válido.",
  "ApiError.covered_program_id_invalid": "La programación solicitada no es válida.",
  "ApiError.datos_fiscales_not_found": "El usuario no tiene datos fiscales.",
  "ApiError.day_not_found": "No existe día para esa fecha en la programación.",
  "ApiError.day_template_not_found": "La plantilla de día ya no existe.",
  "ApiError.exercise_description_too_long": "La descripción no puede superar los 20.000 caracteres.",
  "ApiError.exercise_id_invalid": "El ejercicio seleccionado no es válido.",
  "ApiError.exercise_name_or_modality_invalid": "El nombre y la modalidad del ejercicio no son válidos.",
  "ApiError.exercise_not_found": "El ejercicio ya no existe.",
  "ApiError.exercise_option_invalid": "Alguna opción del ejercicio no es válida.",
  "ApiError.exercise_search_too_long": "La búsqueda no puede superar los 100 caracteres.",
  "ApiError.exercise_video_url_invalid": "La URL del vídeo no es válida.",
  "ApiError.expired": "La petición ha caducado.",
  "ApiError.external_error": "No se pudo completar la operación con el servicio externo.",
  "ApiError.feedback_attachment_not_owned": "El archivo adjunto no pertenece al usuario autenticado.",
  "ApiError.feedback_block_out_of_scope": "El bloque ya no pertenece a la programación de esta conversación.",
  "ApiError.forbidden": "No tienes permiso para realizar esta acción.",
  "ApiError.friend_blocked_by_you": "Has bloqueado a este usuario. Desbloquéalo para poder enviar una solicitud.",
  "ApiError.friend_blocked_you": "Este usuario te ha bloqueado. No es posible enviar una solicitud.",
  "ApiError.friend_not_recipient": "No puedes responder a esta solicitud.",
  "ApiError.friend_self": "No puedes enviarte una solicitud a ti mismo.",
  "ApiError.global_media_folder_invalid": "La carpeta no es válida.",
  "ApiError.global_media_folder_unavailable": "La carpeta global ya no existe.",
  "ApiError.global_media_name_invalid": "El nombre del recurso no es válido.",
  "ApiError.global_media_url_invalid": "La URL debe ser HTTPS.",
  "ApiError.group_id_invalid": "El grupo no es válido.",
  "ApiError.http_error": "No se pudo completar la solicitud.",
  "ApiError.idempotency_key_required": "No se ha podido identificar la operación.",
  "ApiError.idempotency_key_invalid": "La identificación de la operación no es válida.",
  "ApiError.idempotency_key_reused": "La operación ya se utilizó con otros datos.",
  "ApiError.internal_error": "Ha ocurrido un error. Inténtalo de nuevo más tarde.",
  "ApiError.invalid_authenticated_identity": "No se ha podido identificar al usuario autenticado.",
  "ApiError.invalid_block_batch": "Debes indicar bloques válidos y sin duplicados para eliminar.",
  "ApiError.invalid_calendar_period": "El mes o el año no son válidos.",
  "ApiError.invalid_date": "La petición ha caducado.",
  "ApiError.invalid_email": "El email no es válido.",
  "ApiError.invalid_email_format": "El formato del email no es válido.",
  "ApiError.invalid_epoch": "El valor de 'Epoch' no es válido.",
  "ApiError.invalid_operation": "No se pudo completar la operación.",
  "ApiError.invalid_params": "Faltan datos obligatorios.",
  "ApiError.invalid_programacion_id": "El identificador de la programación no es válido.",
  "ApiError.invalid_request": "Revisa los datos enviados e inténtalo de nuevo.",
  "ApiError.invalid_resource_id": "El identificador del recurso no es válido.",
  "ApiError.invalid_response": "El servidor ha devuelto una respuesta no válida.",
  "ApiError.invalid_signature": "Firma inválida.",
  "ApiError.layout_destination_mismatch": "La sesión de destino ya no pertenece al día indicado. Recarga la programación e inténtalo de nuevo.",
  "ApiError.layout_invalid_session_order": "El nuevo orden debe contener exactamente las sesiones actuales del día.",
  "ApiError.layout_scope_mismatch": "No se pueden mover ni copiar bloques entre ámbitos diferentes.",
  "ApiError.linked_classification_result_conflict": "Hay más de un resultado propio en este ranking vinculado. Contacta con soporte para corregirlo.",
  "ApiError.linked_classification_scope_conflict": "El ranking vinculado contiene clasificaciones de ámbitos distintos.",
  "ApiError.managed_user_email_exists": "Ya existe un usuario con ese email.",
  "ApiError.managed_user_email_invalid": "El email no es válido.",
  "ApiError.marketplace_own_program": "No puedes abrir una consulta sobre tu propia programación.",
  "ApiError.marketplace_program_id_invalid": "La programación no es válida.",
  "ApiError.marketplace_program_unavailable": "La programación ya no está disponible en el marketplace.",
  "ApiError.media_asset_name_required": "El nombre del recurso es obligatorio.",
  "ApiError.media_asset_not_downloadable": "El recurso no es un archivo descargable.",
  "ApiError.media_asset_not_found": "El recurso no existe o no pertenece al usuario autenticado.",
  "ApiError.media_content_type_invalid": "El formato del archivo no está permitido.",
  "ApiError.media_file_extension_mismatch": "La extensión del archivo no coincide con su formato.",
  "ApiError.media_file_name_invalid": "El nombre del archivo no es válido.",
  "ApiError.media_file_name_required": "El nombre del archivo es obligatorio.",
  "ApiError.media_file_size_invalid": "El tamaño del archivo no está permitido.",
  "ApiError.media_image_invalid": "La imagen no es válida o supera las dimensiones permitidas.",
  "ApiError.media_folder_invalid": "La carpeta no es válida.",
  "ApiError.media_folder_name_required": "El nombre de la carpeta es obligatorio.",
  "ApiError.media_folder_not_found": "La carpeta no existe o no pertenece al usuario autenticado.",
  "ApiError.media_link_invalid": "La URL debe ser un enlace HTTPS válido de YouTube.",
  "ApiError.media_link_name_required": "El nombre del enlace es obligatorio.",
  "ApiError.media_link_url_required": "La URL del enlace es obligatoria.",
  "ApiError.media_object_key_required": "La referencia del archivo es obligatoria.",
  "ApiError.media_object_not_found": "El archivo todavía no está disponible. Vuelve a subirlo.",
  "ApiError.media_object_not_owned": "El archivo no pertenece al usuario autenticado.",
  "ApiError.media_parent_folder_not_found": "La carpeta padre no existe o no pertenece al usuario autenticado.",
  "ApiError.media_search_too_long": "La búsqueda es demasiado larga.",
  "ApiError.member_group_description_invalid": "La descripción no puede superar 300 caracteres.",
  "ApiError.member_group_member_out_of_scope": "Algún usuario ya no pertenece a la programación. Actualiza la lista e inténtalo de nuevo.",
  "ApiError.member_group_members_invalid": "Debes indicar usuarios válidos.",
  "ApiError.member_group_name_conflict": "Ya existe un grupo con ese nombre en la programación.",
  "ApiError.member_group_name_invalid": "El nombre del grupo es obligatorio y no puede superar 120 caracteres.",
  "ApiError.member_group_not_found": "El grupo ya no existe.",
  "ApiError.network_error": "No se pudo conectar con el servidor. Comprueba tu conexión e inténtalo de nuevo.",
  "ApiError.not_found": "El recurso no existe o ya no está disponible.",
  "ApiError.pack_description_too_long": "La descripción del pack no puede superar los 4.000 caracteres.",
  "ApiError.pack_id_invalid": "El pack no es válido.",
  "ApiError.pack_image_invalid": "La imagen seleccionada no es válida.",
  "ApiError.pack_image_not_owned": "La imagen seleccionada no pertenece a tu biblioteca.",
  "ApiError.pack_image_type_invalid": "El recurso seleccionado no es una imagen.",
  "ApiError.pack_name_invalid": "El nombre del pack debe tener entre 1 y 200 caracteres.",
  "ApiError.pack_not_found": "El pack ya no existe.",
  "ApiError.pack_payment_type_invalid": "La periodicidad del pack no es válida.",
  "ApiError.pack_price_invalid": "El precio del pack no es válido.",
  "ApiError.pack_program_invalid": "La programación no es válida.",
  "ApiError.pack_program_not_found": "La programación no forma parte del pack.",
  "ApiError.pack_program_not_owned": "Solo puedes incluir programaciones de las que eres creador.",
  "ApiError.pack_program_order_invalid": "El orden no es válido.",
  "ApiError.pack_rate_already_assigned": "Esa tarifa ya está asignada a este usuario.",
  "ApiError.pack_subscription_not_found": "No existe una suscripción activa a ese pack.",
  "ApiError.pack_visibility_invalid": "La visibilidad del pack no es válida.",
  "ApiError.payment_date_range_invalid": "La fecha inicial no puede ser posterior a la fecha final.",
  "ApiError.payment_option_duplicate_interval": "Cada periodicidad solo puede aparecer una vez.",
  "ApiError.payment_option_invalid": "Las opciones de pago no son válidas.",
  "ApiError.payment_option_not_available": "La opción de pago ya no está disponible.",
  "ApiError.payment_options_limit_exceeded": "No se pueden configurar más de cinco opciones de pago.",
  "ApiError.payout_account_incomplete": "Completa la configuración de cobros antes de crear una programación de pago.",
  "ApiError.personal_best_id_invalid": "El récord seleccionado no es válido.",
  "ApiError.personal_best_not_found": "El récord personal ya no existe.",
  "ApiError.personal_best_reference_invalid": "La referencia seleccionada no es válida.",
  "ApiError.personal_best_reference_not_found": "La referencia seleccionada ya no existe.",
  "ApiError.personal_best_value_invalid": "El valor del récord debe ser mayor que cero.",
  "ApiError.post_block_required": "Selecciona un bloque para compartir.",
  "ApiError.post_content_required": "La publicación debe tener texto o al menos un recurso.",
  "ApiError.post_destination_invalid": "El destino de la publicación no es válido.",
  "ApiError.post_forbidden": "No tienes acceso a este post.",
  "ApiError.post_invalid_resultados": "Uno o más resultados no existen o no pertenecen al autor del post.",
  "ApiError.post_not_found": "El post no existe.",
  "ApiError.post_personal_record_required": "Selecciona un récord personal para compartir.",
  "ApiError.post_reference_count_invalid": "La referencia debe identificar un único recurso.",
  "ApiError.post_reference_invalid": "La referencia de la publicación no es válida.",
  "ApiError.post_results_mixed_blocks": "Los resultados compartidos deben pertenecer al mismo bloque.",
  "ApiError.post_results_required": "Selecciona al menos un resultado para compartir.",
  "ApiError.post_session_required": "Selecciona una sesión para compartir.",
  "ApiError.post_tablon_no_comentarios": "El Tablón no admite comentarios.",
  "ApiError.post_type_invalid": "El tipo de publicación no es válido.",
  "ApiError.private_feedback_empty": "El mensaje no puede estar vacío.",
  "ApiError.profile_age_invalid": "La edad no es válida.",
  "ApiError.profile_biography_too_long": "La biografía no puede superar los 2.000 caracteres.",
  "ApiError.profile_image_id_invalid": "La imagen seleccionada no es válida.",
  "ApiError.profile_image_not_owned": "La imagen seleccionada no pertenece a tu biblioteca.",
  "ApiError.profile_name_required": "El nombre y los apellidos son obligatorios.",
  "ApiError.profile_name_too_long": "El nombre y los apellidos no pueden superar los 100 caracteres.",
  "ApiError.profile_not_found": "Tu perfil no existe.",
  "ApiError.profile_option_invalid": "Alguna de las opciones del perfil no es válida.",
  "ApiError.program_athlete_not_found": "El atleta ya no pertenece a la programación.",
  "ApiError.program_coach_invalid": "El coach seleccionado no pertenece a la programación o ya no tiene ese rol.",
  "ApiError.program_discount_duration_invalid": "La duración del descuento no es válida.",
  "ApiError.program_discount_invalid": "El porcentaje de descuento no es válido.",
  "ApiError.program_enrollment_option_changed": "La modalidad de acceso de la programación ha cambiado. Recarga la página.",
  "ApiError.program_facility_invalid": "El centro no es válido.",
  "ApiError.program_facility_price_invalid": "El precio para el centro no es válido.",
  "ApiError.program_fields_required": "El nombre y la descripción son obligatorios.",
  "ApiError.program_fields_too_long": "Algún campo de la programación es demasiado largo.",
  "ApiError.program_id_invalid": "La programación seleccionada no es válida.",
  "ApiError.program_image_required": "Selecciona una imagen para la programación.",
  "ApiError.program_cadence_indefinite_not_allowed": "Un programa relativo debe usar desbloqueo semanal o mensual.",
  "ApiError.program_image_unavailable": "La imagen seleccionada ya no está disponible.",
  "ApiError.program_invitation_not_found": "La invitación no es válida, ha caducado o ya se ha utilizado.",
  "ApiError.program_invitation_trial_invalid": "La prueba de la invitación debe ser de 7 o 30 días.",
  "ApiError.program_member_already_exists": "El usuario ya pertenece a esta programación.",
  "ApiError.program_member_not_found": "El atleta no pertenece a esta programación.",
  "ApiError.program_member_trial_invalid": "La prueba debe ser de 7 o 30 días.",
  "ApiError.program_member_user_invalid": "El usuario no es válido.",
  "ApiError.program_member_user_not_found": "El usuario que quieres añadir no existe.",
  "ApiError.program_membership_not_found": "No perteneces a esta programación.",
  "ApiError.program_model_invalid": "Alguna opción del modelo de programa no es válida.",
  "ApiError.program_delete_blocked_by_pack": "La programación forma parte de un pack. Retírala del pack antes de eliminarla.",
  "ApiError.program_not_found": "La programación ya no existe.",
  "ApiError.program_option_invalid": "Alguna opción de la programación no es válida.",
  "ApiError.program_payment_period_required": "Selecciona un periodo de pago válido.",
  "ApiError.program_price_invalid": "El precio de la programación no es válido.",
  "ApiError.program_promotional_text_too_long": "El texto promocional es demasiado largo.",
  "ApiError.program_purchase_required": "Esta programación requiere completar la compra.",
  "ApiError.program_rate_already_assigned": "El usuario ya tiene una tarifa asignada en esta programación.",
  "ApiError.program_reference_invalid": "La programación no es válida.",
  "ApiError.program_release_day_invalid": "El día de publicación no es válido.",
  "ApiError.program_release_hour_invalid": "La hora de publicación no es válida.",
  "ApiError.program_subscription_billing_details_missing": "No se puede reactivar porque faltan los datos de cobro. Inicia una nueva compra.",
  "ApiError.program_subscription_coach_membership": "La relación de coach no se gestiona como una suscripción.",
  "ApiError.program_subscription_managed_by_pack": "Esta suscripción forma parte de un pack y debe gestionarse desde ese pack.",
  "ApiError.program_subscription_not_found": "La suscripción no existe.",
  "ApiError.program_subscription_not_recurring": "Esta inscripción no es una suscripción recurrente reactivable.",
  "ApiError.program_subscription_paid_period_expired": "El periodo pagado ya ha vencido. Inicia una nueva compra para recuperar el acceso.",
  "ApiError.program_tags_required": "Selecciona al menos tres etiquetas distintas.",
  "ApiError.program_tags_unavailable": "Alguna etiqueta seleccionada ya no está disponible.",
  "ApiError.program_trial_duration_invalid": "La duración de la prueba gratuita no es válida.",
  "ApiError.program_trial_unit_ambiguous": "Indica la prueba gratuita en días o en meses, no en ambos.",
  "ApiError.program_welcome_message_too_long": "El mensaje de bienvenida es demasiado largo.",
  "ApiError.program_welcome_email_body_too_long": "El contenido del correo de bienvenida es demasiado largo.",
  "ApiError.program_welcome_email_incomplete": "Indica tanto el asunto como el contenido, o deja ambos vacíos.",
  "ApiError.program_welcome_email_subject_too_long": "El asunto del correo de bienvenida es demasiado largo.",
  "ApiError.purchase_not_available": "El producto ya no está disponible.",
  "ApiError.purchase_price_invalid": "El producto no tiene un precio válido.",
  "ApiError.quoted_message_out_of_scope": "El mensaje citado no pertenece a esta conversación.",
  "ApiError.ranking_period_invalid": "El periodo del ranking no es válido.",
  "ApiError.rate_assignment_id_invalid": "La asignación no es válida.",
  "ApiError.rate_id_invalid": "La tarifa no es válida.",
  "ApiError.invalid_verification_code": "El código no es válido o ha caducado.",
  "ApiError.registration_verification_required": "Debes verificar el correo antes de crear la cuenta.",
  "ApiError.rate_limit_exceeded": "Se han realizado demasiadas solicitudes. Espera un momento e inténtalo de nuevo.",
  "ApiError.rate_name_required": "El nombre de la tarifa es obligatorio.",
  "ApiError.rate_name_too_long": "El nombre de la tarifa no puede superar los 120 caracteres.",
  "ApiError.rate_not_eligible": "La tarifa seleccionada no está disponible para tu cuenta.",
  "ApiError.rate_price_invalid": "El precio de la tarifa no es válido.",
  "ApiError.reaction_emoji_invalid": "La reacción no es válida.",
  "ApiError.reaction_targets_invalid": "Debes indicar entre 1 y 100 recursos válidos.",
  "ApiError.recipient_user_id_invalid": "Algún destinatario seleccionado no es válido.",
  "ApiError.request_timeout": "La solicitud ha tardado demasiado. Inténtalo de nuevo.",
  "ApiError.resource_id_invalid": "Algún recurso indicado no es válido.",
  "ApiError.resource_required": "Debe indicarse al menos un recurso.",
  "ApiError.result_comment_content_required": "El comentario debe incluir texto o un adjunto.",
  "ApiError.result_comment_id_invalid": "El comentario no es válido.",
  "ApiError.result_comment_text_too_long": "El comentario no puede superar los 4000 caracteres.",
  "ApiError.seller_not_payable": "El vendedor todavía no puede recibir pagos.",
  "ApiError.server_error": "Ha ocurrido un error. Inténtalo de nuevo más tarde.",
  "ApiError.stripe_account_missing": "El coach no tiene Stripe conectado.",
  "ApiError.support_user_not_found": "El usuario ya no existe.",
  "ApiError.tablon_forbidden": "No tienes permiso para publicar en el Tablón.",
  "ApiError.tax_country_invalid": "El código de país no es válido.",
  "ApiError.tax_country_required": "El país es obligatorio.",
  "ApiError.tax_identifier_required": "El identificador fiscal es obligatorio.",
  "ApiError.tax_legal_name_required": "El nombre legal es obligatorio.",
  "ApiError.tax_validation_unavailable": "No se pudo validar la información fiscal. Inténtalo de nuevo más tarde.",
  "ApiError.training_cycle_changed": "El ciclo ha cambiado mientras lo editabas. Recárgalo antes de guardar.",
  "ApiError.training_cycle_day_name_invalid": "El nombre del día no puede superar los 120 caracteres.",
  "ApiError.training_cycle_import_invalid": "La solicitud de importación no es válida.",
  "ApiError.training_cycle_layout_invalid": "La estructura editable del ciclo no es válida.",
  "ApiError.training_cycle_minimum_weeks": "Un ciclo debe conservar al menos dos semanas.",
  "ApiError.training_cycle_name_invalid": "El nombre del ciclo no puede superar 120 caracteres.",
  "ApiError.training_cycle_not_found": "El ciclo ya no existe.",
  "ApiError.training_cycle_start_day_invalid": "El día inicial debe estar entre lunes y domingo.",
  "ApiError.training_cycle_week_name_invalid": "El nombre de la semana no puede superar los 120 caracteres.",
  "ApiError.training_cycle_week_not_found": "La semana del ciclo ya no existe.",
  "ApiError.training_cycle_week_notes_invalid": "Las notas de la semana no pueden superar los 2000 caracteres.",
  "ApiError.training_day_not_found": "El día de entrenamiento ya no existe.",
  "ApiError.training_block_not_found": "El bloque de entrenamiento ya no existe.",
  "ApiError.training_session_color_invalid": "El color de la sesión no es válido.",
  "ApiError.training_session_name_invalid": "El nombre de la sesión no puede superar los 100 caracteres.",
  "ApiError.training_session_not_found": "La sesión de entrenamiento ya no existe.",
  "ApiError.training_template_name_invalid": "El nombre de la plantilla no es válido.",
  "ApiError.training_template_source_not_found": "El contenido origen ya no existe.",
  "ApiError.training_week_content_invalid": "El contenido de la semana no es válido.",
  "ApiError.training_week_day_limit_reached": "La semana ya contiene el máximo de siete días de entrenamiento.",
  "ApiError.truecoach_credentials_invalid": "Las credenciales de TrueCoach no son válidas.",
  "ApiError.truecoach_credentials_required": "Indica el correo y la contraseña de TrueCoach.",
  "ApiError.truecoach_exercise_limit_exceeded": "No se pueden importar más de 500 ejercicios a la vez.",
  "ApiError.truecoach_exercises_required": "Selecciona al menos un ejercicio para importar.",
  "ApiError.truecoach_page_invalid": "La página solicitada no es válida.",
  "ApiError.truecoach_program_has_no_workouts": "El programa de TrueCoach no contiene entrenamientos importables.",
  "ApiError.truecoach_program_required": "Selecciona un programa de TrueCoach.",
  "ApiError.truecoach_session_invalid": "La sesión de TrueCoach no es válida. Vuelve a iniciar sesión.",
  "ApiError.truecoach_timeline_type_invalid": "El tipo de programación no es válido.",
  "ApiError.truecoach_week_placement_invalid": "La colocación de las semanas no es válida.",
  "ApiError.unauthorized": "Debes iniciar sesión para continuar.",
  "ApiError.upstream_timeout": "Un servicio necesario no respondió a tiempo. Inténtalo de nuevo.",
  "ApiError.user_id_invalid": "El usuario no es válido.",
  "ApiError.user_lookup_email_invalid": "El email no es válido.",
  "ApiError.user_not_found": "El usuario no existe.",
  "ApiError.weak_password": "La contraseña debe tener al menos 8 caracteres, incluyendo una mayúscula, una minúscula, un número y un caracter especial (!, @, #, $, %, etc.).",
  "ApiError.week_not_found": "La semana ya no existe.",
  "ApiError.week_template_not_found": "La plantilla de semana ya no existe."
}
