<?php
/**
 * lang/es.php — traducciones en español. Array clave => texto.
 * Claves en inglés, por dominio (modulo.cosa). Interpolación con {marcador}.
 */
return array(
    // App
    'app.name'    => 'kamiquery',
    'app.tagline' => 'Tu IA, a una pregunta de distancia',

    // Navegación / layout
    'nav.chat'      => 'KamiChat',
    'nav.code'      => 'KamiCode',
    'nav.admin'     => 'Admin',
    'nav.history'   => 'Historial',
    'nav.profile'   => 'Perfil',
    'nav.logout'    => 'Cerrar sesión',
    'nav.new_chat'  => 'Nuevo chat',
    'theme.light'   => 'Modo día',
    'theme.dark'    => 'Modo noche',
    'theme.toggle'  => 'Cambiar tema',
    'lang.label'    => 'Idioma',
    'sidebar.toggle'=> 'Contraer / expandir menú',
    'menu.preferences' => 'Preferencias',
    'menu.sessions'    => 'Sesiones',
    'menu.invites'     => 'Invitaciones',
    'menu.api'         => 'API',

    // Admin
    'admin.back'          => 'Volver a la app',
    'admin.menu_config'   => 'Configuración',
    'admin.menu_usage'    => 'Gasto',
    'admin.menu_models'   => 'Modelos',
    'admin.menu_users'    => 'Usuarios',
    'admin.menu_plans'    => 'Planes',

    // Común
    'common.back'   => 'Volver',
    'common.save'   => 'Guardar',
    'common.generate' => 'Generar',
    'common.cancel' => 'Cancelar',

    // Usuarios
    'user.title'        => 'Usuarios',
    'user.new'          => 'Nuevo usuario',
    'user.add'          => 'Añadir usuario',
    'user.edit'         => 'Editar usuario',
    'user.invalid'      => 'Revisa los datos: nombre, email válido y contraseña de 8+ caracteres.',
    'user.plan'         => 'Plan',
    'user.no_plan'      => 'Sin plan',
    'user.is_admin'     => 'Administrador',
    'user.is_org'       => 'Organización',
    'user.max_accounts' => 'Máx. cuentas',
    'user.belongs_org'  => 'org:',
    'user.state'        => 'Estado',
    'user.active'       => 'Activo',
    'user.suspended'    => 'Suspendido',
    'user.suspend'      => 'Suspender',
    'user.activate'     => 'Reactivar',
    'user.delete'       => 'Eliminar',
    'user.delete_confirm' => '¿Eliminar este usuario? No se puede deshacer.',
    'user.danger'       => 'Acciones',
    'user.password_new' => 'Nueva contraseña',
    'user.password_keep'=> 'Déjala en blanco para no cambiarla',
    'user.tab_data'     => 'Datos',
    'user.tab_usage'    => 'Uso',
    'user.tab_sessions' => 'Sesiones',
    'user.no_sessions'  => 'Sin sesiones todavía.',
    'user.session_updated' => 'Última actividad',
    'user.messages'     => 'Mensajes',
    'user.last30'       => 'Últimos 30 días',
    'user.date'         => 'Fecha',
    'user.usage'        => 'Uso de KamiCode',
    'user.activity'     => 'Actividad (último año)',

    // Organización
    'org.title'         => 'Organización',
    'org.accounts'      => 'Cuentas',
    'org.accounts_used' => 'Cuentas usadas',
    'org.new_account'   => 'Nueva cuenta',
    'org.no_accounts'   => 'Aún no has creado cuentas.',
    'org.limit_reached' => 'Has alcanzado el límite de cuentas de tu organización.',
    'org.usage_title'   => 'Uso',
    'org.by_account'    => 'Por cuenta',

    // Planes
    'plan.title'        => 'Planes',
    'plan.new'          => 'Nuevo plan',
    'plan.add'          => 'Añadir plan',
    'plan.edit'         => 'Editar plan',
    'plan.name'         => 'Nombre',
    'plan.monthly'      => 'Tope mensual (USD)',
    'plan.users'        => 'Usuarios',
    'plan.empty'        => 'No hay planes todavía.',
    'plan.invalid'      => 'El nombre es obligatorio.',
    'plan.name_taken'   => 'Ya existe un plan con ese nombre.',
    'plan.has_users'    => 'No se puede borrar: tiene usuarios asignados.',
    'plan.delete'       => 'Eliminar plan',
    'plan.delete_confirm' => '¿Eliminar este plan?',
    'plan.delete_hint'  => 'Solo si no tiene usuarios asignados.',
    'admin.config_title'  => 'Configuración',
    'admin.usage_title'   => 'Gasto',
    'admin.models_title'  => 'Modelos',
    'admin.openrouter'    => 'OpenRouter',
    'admin.gateway'         => 'Gateway KamiCode',
    'admin.gateway_online'  => 'Online',
    'admin.gateway_offline' => 'Offline',
    'admin.gateway_version' => 'versión',
    'admin.gateway_last'    => 'último ping hace',
    'admin.openrouter_hint' => 'Conecta tu cuenta de OpenRouter. La clave se guarda en el servidor y nunca se muestra entera.',
    'admin.api_key'       => 'API key de OpenRouter',
    'admin.api_key_hint'  => 'Déjala como está (enmascarada) para no cambiarla.',
    'admin.balance'            => 'Saldo',
    'admin.balance_na'         => 'sin API (ver panel)',
    'admin.provider_keys'      => 'Claves de proveedores',
    'admin.provider_keys_hint' => 'Claves de API de otros proveedores. Se guardan en el servidor y nunca se muestran enteras. (El gateway todavía no las usa.)',
    'admin.kimi_key'           => 'API key de Kimi (Moonshot)',
    'admin.minimax_key'        => 'API key de MiniMax',
    'admin.save'          => 'Guardar',
    'admin.autosave'      => 'Se guarda solo',
    'admin.saved'         => 'Guardado ✓',
    'admin.connected'     => 'Conectado',
    'admin.bad_key'       => 'Key inválida',
    'admin.need_key'      => 'Configura primero tu API key de OpenRouter en',
    'admin.usage_error'   => 'No se pudo obtener el gasto de OpenRouter.',
    'admin.usage_live'    => 'Datos en vivo desde OpenRouter.',
    'admin.usage_kamicode'=> 'Uso de KamiCode (este mes)',
    'admin.u_requests'    => 'Peticiones',
    'admin.u_sessions'    => 'Sesiones',
    'admin.u_tokens'      => 'Tokens',
    'admin.u_tokens_in'   => 'Tokens entrada',
    'admin.u_cached'      => 'Cacheados',
    'admin.u_cache_pct'   => 'Caché %',
    'admin.u_tokens_out'  => 'Tokens salida',
    'admin.u_cost'        => 'Coste',
    'admin.u_by_user'     => 'Por usuario',
    'admin.u_by_model'    => 'Por modelo',
    'admin.u_by_day'      => 'Por día',
    'admin.u_date'        => 'Fecha',
    'admin.u_user'        => 'Usuario',
    'admin.u_model'       => 'Modelo',
    'admin.u_empty'       => 'Sin uso este mes.',
    'admin.spent'         => 'Gastado',
    'admin.credits'       => 'Créditos',
    'admin.balance'       => 'Saldo',
    'admin.models_error'  => 'No se pudo obtener la lista de modelos de OpenRouter.',
    'admin.models_count'  => '{n} modelos',
    'admin.search'        => 'Buscar…',
    'admin.filter'        => 'Filtrar…',
    'admin.free'          => 'Gratis',
    'admin.th_model'      => 'Modelo',
    'admin.th_brand'      => 'Sobrenombre',
    'admin.th_products'   => 'Productos',
    'admin.th_source'     => 'Fuente',
    'admin.brand_ph'      => 'Sin sobrenombre',
    'admin.hidden'        => 'Ocultas',
    'admin.tab_all'       => 'Todos',
    'admin.tab_active'    => 'Modelos activos',
    'admin.no_active'     => 'No hay modelos activos. Activa modelos en la pestaña «Todos».',
    'admin.tab_keys'         => 'Claves',
    'admin.provider_no_key'  => 'Configura la API key de este proveedor en Claves.',
    'admin.provider_no_models' => 'No se pudo cargar el catálogo. Revisa la API key o que el proveedor exponga su lista de modelos.',
    'admin.provider_note'    => 'El gateway todavía no enruta a este proveedor; la selección se guarda para cuando se conecte.',
    'admin.prices_updated'   => 'Precios actualizados:',
    'admin.view_pricing'     => 'Ver tarifas oficiales',
    'admin.brand_hint'    => 'Pon un sobrenombre para no exponer el nombre real del modelo a los usuarios.',
    'admin.th_company'    => 'Empresa',
    'admin.th_capabilities' => 'Capacidades',
    'admin.th_context'    => 'Contexto',
    'admin.th_cost'       => 'Coste',
    'admin.cap_vision'    => 'visión',
    'admin.cap_file'      => 'archivos',
    'admin.cap_video'     => 'vídeo',
    'admin.cap_audio'     => 'audio',
    'admin.cap_imageout'  => 'imagen',
    'admin.cap_reasoning' => 'razonamiento',
    'admin.cap_json'      => 'JSON',
    'admin.cap_all'       => 'Todas',
    'admin.models_word'   => 'modelos',
    'admin.in_chat'       => 'en KamiChat',
    'admin.in_code'       => 'en KamiCode',
    'admin.show_selected' => 'Mostrar solo los seleccionados',

    // API
    'api.title'              => 'API',
    'api.your_key'           => 'Tu API key',
    'api.intro'              => 'Usa esta clave para acceder a kamiquery desde tus apps. Trátala como una contraseña: no la compartas.',
    'api.generate'           => 'Generar API key',
    'api.regenerate'         => 'Regenerar',
    'api.regenerate_hint'    => 'La clave anterior dejará de funcionar al instante.',
    'api.regenerate_confirm' => '¿Seguro? La clave actual dejará de funcionar y tendrás que actualizarla en tus apps.',
    'api.copy'               => 'Copiar',
    'api.created'            => 'Creada',
    'api.base_url'           => 'URL base (apunta aquí Cline / tu software)',

    // OAuth
    'oauth.title'            => 'Autorizar acceso',
    'oauth.intro'            => 'Esta aplicación quiere conectarse a tu cuenta de KamiQuery:',
    'oauth.approve'          => 'Autorizar',
    'oauth.deny'             => 'Cancelar',
    'oauth.done_title'       => 'Autorización completada',
    'oauth.done_hint'        => 'Ya puedes volver a VSCode. Si no se abre solo, pulsa el botón.',
    'oauth.open_vscode'      => 'Abrir VSCode',
    'oauth.apps_title'       => 'Aplicaciones conectadas',
    'oauth.apps_hint'        => 'Apps y dispositivos con acceso a tu cuenta. Revoca el acceso cuando quieras.',
    'oauth.apps_empty'       => 'No hay aplicaciones conectadas.',
    'oauth.manual_key'       => 'API key manual',
    'oauth.last_used'        => 'último uso',
    'oauth.revoke'           => 'Revocar',
    'oauth.revoke_confirm'   => '¿Revocar el acceso de esta aplicación? Dejará de funcionar al instante.',

    // Auth
    'auth.login_title'    => 'Iniciar sesión',
    'auth.setup_title'    => 'Crea tu cuenta',
    'auth.setup_hint'     => 'No hay ninguna cuenta todavía. Crea la primera para empezar.',
    'auth.setup_invalid'  => 'Revisa los datos: nombre, email válido y contraseña de 8+ caracteres.',
    'auth.email_taken'    => 'Ese email ya está en uso.',
    'auth.name'           => 'Nombre',
    'auth.email'          => 'Email',
    'auth.password'       => 'Contraseña',
    'auth.sign_in'        => 'Entrar',
    'auth.create_account' => 'Crear cuenta',
    'auth.invalid_login'  => 'Email o contraseña incorrectos.',

    // Home
    'home.title'   => 'Inicio',
    'home.welcome' => 'Hola, {name}',
    'home.start'   => 'Empezar a chatear',

    // KamiChat
    'chat.title'        => 'KamiChat',
    'chat.placeholder'  => 'Escribe tu mensaje…',
    'chat.send'         => 'Enviar',
    'chat.empty'        => '¿En qué puedo ayudarte hoy?',
    'chat.you'          => 'Tú',
    'chat.assistant'    => 'kamiquery',
    'chat.thinking'     => 'Pensando…',

    // Historial
    'history.title' => 'Historial',
    'history.empty' => 'Aún no tienes conversaciones.',

    // KamiCode
    'code.title'    => 'KamiCode',
    'hm.active'     => 'días con actividad',
    'hm.less'       => 'Menos',
    'hm.more'       => 'Más',
    'code.usage'    => 'Uso',
    'code.model_generic' => 'Modelo',
    'code.subtitle' => 'Asistente de código',
    'code.soon'     => 'KamiCode llega pronto: tu asistente para programar, depurar y entender código.',

    // Instalación de la extensión
    'install.title'       => 'Instalar la extensión',
    'install.intro'       => 'Instala la extensión de KamiQuery en Visual Studio Code. Una vez instalada se mantiene actualizada sola.',
    'install.download'    => 'Descargar la extensión',
    'install.step1'       => 'Descarga el archivo .vsix con el botón de arriba.',
    'install.step2'       => 'En VS Code abre la paleta (Ctrl+Shift+P) y elige «Extensions: Install from VSIX…».',
    'install.step3'       => 'Selecciona el .vsix descargado y recarga la ventana cuando lo pida.',
    'install.cli_hint'    => 'O desde la terminal (en la carpeta de descargas):',
    'install.copy'        => 'Copiar',
    'install.autoupdate'  => 'A partir de aquí, las nuevas versiones se instalan automáticamente.',
    'install.unavailable' => 'La descarga no está disponible ahora mismo.',

    // Perfil
    'profile.title'         => 'Perfil',
    'profile.account'       => 'Cuenta',
    'profile.password'      => 'Cambiar contraseña',
    'profile.pw_current'    => 'Contraseña actual',
    'profile.pw_new'        => 'Nueva contraseña',
    'profile.pw_change'     => 'Cambiar contraseña',
    'profile.pw_ok'         => 'Contraseña actualizada.',
    'profile.pw_wrong'      => 'La contraseña actual no es correcta.',
    'profile.pw_short'      => 'La nueva contraseña debe tener 8+ caracteres.',
    'profile.language'      => 'Idioma',
    'profile.theme'         => 'Tema',
    'profile.sessions'      => 'Sesiones activas',
    'profile.session_this'  => 'Esta sesión',
    'profile.last_seen'     => 'Último uso',
    'profile.created'       => 'Iniciada',
    'profile.revoke'        => 'Revocar',
    'profile.revoke_others' => 'Cerrar las demás sesiones',
    'profile.saved'         => 'Cambios guardados.',

    // Invitaciones
    'invite.title'          => 'Únete a kamiquery',
    'invite.section'        => 'Invitaciones',
    'invite.hint'           => 'El registro es solo por invitación. Genera un enlace y compártelo; caduca a los 7 días y es de un solo uso.',
    'invite.email_optional' => 'Email (opcional, restringe la invitación a ese correo)',
    'invite.create'         => 'Crear invitación',
    'invite.copy'           => 'Copiar',
    'invite.revoke'         => 'Revocar',
    'invite.empty'          => 'No hay invitaciones todavía.',
    'invite.status_pending' => 'Pendiente',
    'invite.status_used'    => 'Usada',
    'invite.status_expired' => 'Caducada',
    'invite.invalid_title'  => 'Invitación no válida',
    'invite.invalid'        => 'Esta invitación no existe, ya se usó o ha caducado.',
    'invite.email_mismatch' => 'El email no coincide con el de la invitación.',
);
