import demoEs from "./demo-es"
import { Translations } from "./en"

const es: Translations = {
  common: {
    ok: "OK",
    cancel: "Cancelar",
    save: "Guardar",
    back: "Volver",
    logOut: "Cerrar sesión",
    copied: "Copiado",
  },
  welcomeScreen: {
    postscript:
      "psst — Esto probablemente no es cómo se va a ver tu app. (A menos que tu diseñador te haya enviado estas pantallas, y en ese caso, ¡lánzalas en producción!)",
    readyForLaunch: "Tu app, casi lista para su lanzamiento",
    exciting: "(¡ohh, esto es emocionante!)",
    letsGo: "¡Vamos!",
  },
  errorScreen: {
    title: "¡Algo salió mal!",
    friendlySubtitle:
      "Esta es la pantalla que verán tus usuarios en producción cuando haya un error. Vas a querer personalizar este mensaje (que está ubicado en `app/i18n/es.ts`) y probablemente también su diseño (`app/screens/ErrorScreen`). Si quieres eliminarlo completamente, revisa `app/app.tsx` y el componente <ErrorBoundary>.",
    reset: "REINICIA LA APP",
    traceTitle: "Error desde %{name}",
  },
  emptyStateComponent: {
    generic: {
      heading: "Muy vacío... muy triste",
      content:
        "No se han encontrado datos por el momento. Intenta darle clic en el botón para refrescar o recargar la app.",
      button: "Intentemos de nuevo",
    },
  },

  errors: {
    invalidEmail: "Email inválido.",
  },
  authErrors: {
    timeout: "Tiempo de espera agotado. Por favor, inténtelo de nuevo.",
    cannotConnect: "No se puede conectar al servidor. Por favor, verifique su red.",
    serverError: "Error del servidor. Por favor, inténtelo más tarde.",
    badData: "Respuesta inválida del servidor.",
    unknownError: "Se produjo un error desconocido.",
    E001: "El nombre de usuario ya existe.",
    E002: "El correo electrónico ya está registrado.",
    E003: "Código de referencia inválido.",
    E004: "No hay solicitud de registro pendiente.",
    E005: "Código de verificación inválido.",
    E006: "Código de referencia ya vinculado.",
    E007: "No puedes usar tu propio código de referencia.",
    E011: "Correo electrónico o contraseña inválidos.",
    E012: "Cuenta bloqueada temporalmente. Por favor, inténtelo más tarde.",
    E013: "No hay solicitud de inicio de sesión pendiente.",
    E014: "El usuario no existe o ha sido deshabilitado.",
    E015: "Código de verificación inválido.",
    E016: "Autenticación de Telegram inválida.",
    E017: "Formato de datos de Telegram inválido.",
    E018: "Autenticación de Google fallida.",
    E019: "Por favor, proporcione el token de Google.",
    E021: "La contraseña actual es incorrecta.",
    E022: "La nueva contraseña no puede ser igual a la actual.",
    E023: "El correo electrónico no está registrado.",
    E024: "La cuenta ha sido deshabilitada.",
    E025: "No hay solicitud de restablecimiento de contraseña pendiente.",
    E026: "El código de restablecimiento de contraseña ha expirado.",
    E027: "Código de restablecimiento de contraseña inválido.",
    E028: "El usuario no existe.",
    E029: "No se proporcionaron campos para actualizar.",
    E041: "Enviando código de verificación con demasiada frecuencia. Por favor, espere.",
    E042: "El código de verificación de correo electrónico ha expirado.",
    E043: "Código de verificación de correo electrónico inválido.",
    E044: "El correo electrónico ya está verificado.",
    E045: "El correo electrónico ya está siendo utilizado por otro usuario.",
    E046: "No hay dirección de correo electrónico verificada.",
    E047: "Por favor, envíe primero el código de verificación al correo actual.",
    E048: "Por favor, verifique primero el correo electrónico actual.",
    E049: "Por favor, envíe primero el código de verificación al nuevo correo.",
    E050: "Parámetro de acción inválido.",
  },
  loginScreen: {
    logIn: "Iniciar sesión",
    enterDetails:
      "Ingresa tus datos a continuación para desbloquear información ultra secreta. Nunca vas a adivinar lo que te espera al otro lado. O quizás si lo harás; la verdad no hay mucha ciencia alrededor.",
    emailFieldLabel: "Email",
    passwordFieldLabel: "Contraseña",
    emailFieldPlaceholder: "Ingresa tu email",
    passwordFieldPlaceholder: "Contraseña super secreta aquí",
    tapToLogIn: "¡Presiona acá para iniciar sesión!",
    hint: "Consejo: puedes usar cualquier email y tu contraseña preferida :)",
  },
  navigator: {
    componentsTab: "Componentes",
    debugTab: "Debug",
    communityTab: "Comunidad",
    podcastListTab: "Podcasts",
    profileTab: "Perfil",
  },
  profileScreen: {
    title: "Perfil",
    guest: "Invitado",
    uid: "UID",
    username: "Nombre de usuario",
    referralCode: "Código de referencia",
    settings: "Configuración",
    darkMode: "Modo oscuro",
    notifications: "Notificaciones",
    security: "Seguridad",
    account: "Cuenta",
    accountStatus: "Estado de la cuenta",
    active: "Activo",
    inactive: "Inactivo",
    regular: "Regular",
    emailVerified: "Email verificado",
    verified: "Verificado",
    unverified: "No verificado",
    loginMethods: "Métodos de inicio de sesión",
    version: "Versión",
    changePassword: "Cambiar contraseña",
    changeEmail: "Cambiar email",
    editNickname: "Editar apodo",
    editProfile: "Editar perfil",
    nicknamePlaceholder: "Introduce tu apodo",
    nickname: "Apodo",
    tapToChangeAvatar: "Toca para cambiar avatar",
    about: "Acerca de",
  },
  changePasswordScreen: {
    title: "Cambiar contraseña",
    description: "Introduce tu contraseña actual y elige una nueva.",
    oldPassword: "Contraseña actual",
    newPassword: "Nueva contraseña",
    confirmPassword: "Confirmar nueva contraseña",
    logoutOtherDevices: "Cerrar sesión en otros dispositivos",
    submit: "Cambiar contraseña",
    success: "Éxito",
    successMessage: "Tu contraseña ha sido cambiada exitosamente.",
    oldPasswordRequired: "La contraseña actual es requerida.",
    newPasswordRequired: "La nueva contraseña es requerida.",
    passwordTooShort: "La contraseña debe tener al menos 6 caracteres.",
    passwordMismatch: "Las contraseñas no coinciden.",
    samePassword: "La nueva contraseña no puede ser igual a la actual.",
  },
  changeEmailScreen: {
    title: "Cambiar email",
    step1Label: "Verificar",
    step2Label: "Vincular",
    step1Title: "Paso 1: Verificar email actual",
    step1Description: "Enviaremos un código de verificación a tu email actual.",
    step2Title: "Paso 2: Vincular nuevo email",
    step2Description: "Introduce tu nueva dirección de email y verifícala.",
    currentEmail: "Email actual",
    newEmail: "Nueva dirección de email",
    verificationCode: "Código de verificación",
    sendCode: "Enviar código de verificación",
    sendCodeToNewEmail: "Enviar código al nuevo email",
    verify: "Verificar",
    confirmNewEmail: "Confirmar nuevo email",
    resendCode: "Reenviar código",
    success: "Éxito",
    successMessage: "Tu email ha sido cambiado exitosamente.",
    codeRequired: "El código de verificación es requerido.",
    codeInvalid: "El código de verificación debe tener 6 dígitos.",
    newEmailRequired: "La nueva dirección de email es requerida.",
    emailInvalid: "Por favor introduce una dirección de email válida.",
    sameEmail: "El nuevo email no puede ser igual al actual.",
  },
  settingsScreen: {
    title: "Configuración",
    appearance: "Apariencia",
    theme: "Tema",
    darkMode: "Modo Oscuro",
    language: "Idioma",
    currentLanguage: "Idioma",
  },
  languageScreen: {
    title: "Idioma",
    selectHint: "Selecciona tu idioma preferido",
  },
  themeScreen: {
    title: "Tema",
    selectHint: "Selecciona tu tema preferido",
    system: "Sistema",
    light: "Claro",
    dark: "Oscuro",
  },
  securityScreen: {
    title: "Seguridad",
    description: "Administra la configuración de seguridad de tu cuenta.",
    changePassword: "Cambiar Contraseña",
    changeEmail: "Cambiar Email",
    // Session management
    activeSessions: "Active Sessions",
    activeSessionsDescription: "Devices currently logged into your account",
    currentDevice: "Current Device",
    lastActive: "Last active",
    loginMethod: "Login via",
    logoutDevice: "Logout",
    logoutAllOther: "Logout All Other Devices",
    logoutAllOtherDescription: "This will log out all devices except the current one.",
    noOtherSessions: "No other active sessions",
    sessionRevoked: "Device has been logged out",
    sessionsRevoked: "{{count}} devices have been logged out",
    confirmLogout: "Confirm Logout",
    confirmLogoutMessage: "Are you sure you want to log out this device?",
    confirmLogoutAllMessage: "Are you sure you want to log out all other devices?",
    deviceTypes: {
      desktop: "Desktop",
      mobile: "Mobile",
      tablet: "Tablet",
      unknown: "Unknown Device",
    },
  },
  aboutScreen: {
    title: "Acerca de",
    appInfo: "Información de la App",
    appName: "Nombre de la App",
    version: "Versión",
    buildVersion: "Versión de Compilación",
    appId: "ID de la App",
    appVersion: "Versión de la App",
    legal: "Legal",
    privacyPolicy: "Política de Privacidad",
    termsOfService: "Términos de Servicio",
  },
  communityScreen: {
    title: "Conecta con la comunidad",
    tagLine:
      "Únete a la comunidad React Native con los ingenieros de Infinite Red y mejora con nosotros tus habilidades para el desarrollo de apps.",
    joinUsOnSlackTitle: "Únete a nosotros en Slack",
    joinUsOnSlack:
      "¿Quieres conectar con desarrolladores de React Native de todo el mundo? Únete a la conversación en nuestra comunidad de Slack. Nuestra comunidad, que crece día a día, es un espacio seguro para hacer preguntas, aprender de los demás y ampliar tu red.",
    joinSlackLink: "Únete a la comunidad de Slack",
    makeIgniteEvenBetterTitle: "Haz que Ignite sea aún mejor",
    makeIgniteEvenBetter:
      "¿Tienes una idea para hacer que Ignite sea aún mejor? ¡Nos encantaría escucharla! Estamos siempre buscando personas que quieran ayudarnos a construir las mejores herramientas para React Native. Únete a nosotros en GitHub para ayudarnos a construir el futuro de Ignite.",
    contributeToIgniteLink: "Contribuir a Ignite",
    theLatestInReactNativeTitle: "Lo último en el mundo de React Native",
    theLatestInReactNative:
      "Estamos aquí para mantenerte al día con todo lo que React Native tiene para ofrecer.",
    reactNativeRadioLink: "React Native Radio",
    reactNativeNewsletterLink: "Newsletter de React Native",
    reactNativeLiveLink: "React Native Live",
    chainReactConferenceLink: "Conferencia Chain React",
    hireUsTitle: "Trabaja con Infinite Red en tu próximo proyecto",
    hireUs:
      "Ya sea para gestionar un proyecto de inicio a fin o educación a equipos a través de nuestros cursos y capacitación práctica, Infinite Red puede ayudarte en casi cualquier proyecto de React Native.",
    hireUsLink: "Envíanos un mensaje",
  },
  showroomScreen: {
    jumpStart: "Componentes para comenzar tu proyecto",
    lorem2Sentences:
      "Nulla cupidatat deserunt amet quis aliquip nostrud do adipisicing. Adipisicing excepteur elit laborum Lorem adipisicing do duis.",
    demoHeaderTxExample: "Yay",
    demoViaTxProp: "A través de el atributo `tx`",
    demoViaSpecifiedTxProp: "A través de el atributo específico `{{prop}}Tx`",
  },
  demoDebugScreen: {
    howTo: "CÓMO HACERLO",
    title: "Debug",
    tagLine:
      "Felicidades, aquí tienes una propuesta de arquitectura y base de código avanzada para una app en React Native. ¡Disfrutalos!",
    reactotron: "Enviar a Reactotron",
    reportBugs: "Reportar errores",
    demoList: "Lista demo",
    demoPodcastList: "Lista demo de podcasts",
    androidReactotronHint:
      "Si esto no funciona, asegúrate de que la app de escritorio de Reactotron se esté ejecutando, corre adb reverse tcp:9090 tcp:9090 desde tu terminal, y luego recarga la app.",
    iosReactotronHint:
      "Si esto no funciona, asegúrate de que la app de escritorio de Reactotron se esté ejecutando, y luego recarga la app.",
    macosReactotronHint:
      "Si esto no funciona, asegúrate de que la app de escritorio de Reactotron se esté ejecutando, y luego recarga la app.",
    webReactotronHint:
      "Si esto no funciona, asegúrate de que la app de escritorio de Reactotron se esté ejecutando, y luego recarga la app.",
    windowsReactotronHint:
      "Si esto no funciona, asegúrate de que la app de escritorio de Reactotron se esté ejecutando, y luego recarga la app.",
  },
  demoPodcastListScreen: {
    title: "Episodios de React Native Radio",
    onlyFavorites: "Mostrar solo favoritos",
    favoriteButton: "Favorito",
    unfavoriteButton: "No favorito",
    accessibility: {
      cardHint:
        "Haz doble clic para escuchar el episodio. Haz doble clic y mantén presionado para {{action}} este episodio.",
      switch: "Activa para mostrar solo favoritos",
      favoriteAction: "Cambiar a favorito",
      favoriteIcon: "Episodio no favorito",
      unfavoriteIcon: "Episodio favorito",
      publishLabel: "Publicado el {{date}}",
      durationLabel: "Duración: {{hours}} horas {{minutes}} minutos {{seconds}} segundos",
    },
    noFavoritesEmptyState: {
      heading: "Esto está un poco vacío",
      content:
        "No se han agregado episodios favoritos todavía. ¡Presiona el corazón dentro de un episodio para agregarlo a tus favoritos!",
    },
  },

  ...demoEs,
}

export default es
