diff --git a/README.md b/README.md
index 19e3173..825144c 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
[](https://github.com/yeongpin/cursor-free-vip/releases/latest)
[](https://creativecommons.org/licenses/by-nc-nd/4.0/)
[](https://github.com/yeongpin/cursor-free-vip/stargazers)
-[](https://github.com/yeongpin/cursor-free-vip/releases/latest)
+[](https://github.com/yeongpin/cursor-free-vip/releases/latest)
Support Latest 0.47.x Version | 支持最新 0.47.x 版本
diff --git a/locales/bg.json b/locales/bg.json
index 1066667..e5478af 100644
--- a/locales/bg.json
+++ b/locales/bg.json
@@ -9,6 +9,7 @@
"register_manual": "Регистрирай се със свой имейл по избор",
"quit": "Затвори приложението Курсор",
"select_language": "Избери език",
+ "es": "Spanish",
"input_choice": "Моля, въведете своя избор ({choices})",
"invalid_choice": "Невалиден избор. Моля, въведете избор от {choices}.",
"program_terminated": "Програмата беше затворена от вас",
@@ -32,7 +33,8 @@
"pt": "Portuguese",
"ru": "Russian",
"tr": "Turkish",
- "bg": "Bulgarian"
+ "bg": "Bulgarian",
+ "es": "Spanish"
},
"quit_cursor": {
"start": "Започни излизането от Курсор",
diff --git a/locales/de.json b/locales/de.json
index d693a73..fba1188 100644
--- a/locales/de.json
+++ b/locales/de.json
@@ -32,7 +32,8 @@
"de": "Deutsch",
"fr": "Französisch",
"pt": "Portugiesisch",
- "ru": "Russisch"
+ "ru": "Russisch",
+ "es": "Spanisch"
},
"quit_cursor": {
"start": "Beginne Cursor zu Beenden",
diff --git a/locales/en.json b/locales/en.json
index 1f40309..6054903 100644
--- a/locales/en.json
+++ b/locales/en.json
@@ -35,7 +35,8 @@
"pt": "Portuguese",
"ru": "Russian",
"tr": "Turkish",
- "bg": "Bulgarian"
+ "bg": "Bulgarian",
+ "es": "Spanish"
},
"quit_cursor": {
"start": "Start Quitting Cursor",
diff --git a/locales/es.json b/locales/es.json
new file mode 100644
index 0000000..4fa72e1
--- /dev/null
+++ b/locales/es.json
@@ -0,0 +1,443 @@
+{
+ "menu": {
+ "title": "Opciones Disponibles",
+ "exit": "Salir del Programa",
+ "reset": "Restablecer ID de Máquina",
+ "register": "Registrar Nueva Cuenta de Cursor",
+ "register_google": "Registrarse con Cuenta de Google",
+ "register_github": "Registrarse con Cuenta de GitHub",
+ "register_manual": "Registrar Cursor con Correo Personalizado",
+ "quit": "Cerrar Aplicación Cursor",
+ "select_language": "Cambiar Idioma",
+ "input_choice": "Por favor, ingrese su elección ({choices})",
+ "invalid_choice": "Selección inválida. Por favor ingrese un número de {choices}",
+ "program_terminated": "El programa fue terminado por el usuario",
+ "error_occurred": "Ocurrió un error: {error}. Por favor intente de nuevo",
+ "press_enter": "Presione Enter para Salir",
+ "disable_auto_update": "Deshabilitar Actualización Automática de Cursor",
+ "lifetime_access_enabled": "ACCESO DE POR VIDA ACTIVADO",
+ "totally_reset": "Restablecer Cursor Completamente",
+ "outdate": "Desactualizado",
+ "temp_github_register": "Registro Temporal de GitHub",
+ "admin_required": "Ejecutando como ejecutable, se requieren privilegios de administrador.",
+ "admin_required_continue": "Continuando sin privilegios de administrador.",
+ "coming_soon": "Próximamente",
+ "fixed_soon": "Arreglado Pronto"
+ },
+ "languages": {
+ "en": "Inglés",
+ "zh_cn": "简体中文",
+ "zh_tw": "繁體中文",
+ "vi": "Vietnamita",
+ "nl": "Holandés",
+ "de": "Alemán",
+ "fr": "Francés",
+ "pt": "Portugués",
+ "ru": "Ruso",
+ "tr": "Turco",
+ "bg": "Búlgaro",
+ "es": "Español"
+ },
+ "quit_cursor": {
+ "start": "Comenzando a Cerrar Cursor",
+ "no_process": "No Hay Procesos de Cursor en Ejecución",
+ "terminating": "Terminando Proceso {pid}",
+ "waiting": "Esperando que el Proceso Termine",
+ "success": "Todos los Procesos de Cursor Cerrados",
+ "timeout": "Tiempo de Espera Agotado: {pids}",
+ "error": "Ocurrió un Error: {error}"
+ },
+ "reset": {
+ "title": "Herramienta de Restablecimiento de ID de Máquina de Cursor",
+ "checking": "Verificando Archivo de Configuración",
+ "not_found": "Archivo de Configuración No Encontrado",
+ "no_permission": "No se Puede Leer o Escribir el Archivo de Configuración, Verifique los Permisos",
+ "reading": "Leyendo Configuración Actual",
+ "creating_backup": "Creando Copia de Seguridad de la Configuración",
+ "backup_exists": "El Archivo de Respaldo ya Existe, Omitiendo Paso de Respaldo",
+ "generating": "Generando Nuevo ID de Máquina",
+ "saving_json": "Guardando Nueva Configuración en JSON",
+ "success": "ID de Máquina Restablecido Exitosamente",
+ "new_id": "Nuevo ID de Máquina",
+ "permission_error": "Error de Permisos: {error}",
+ "run_as_admin": "Por Favor Intente Ejecutar Este Programa como Administrador",
+ "process_error": "Error en el Proceso de Restablecimiento: {error}",
+ "updating_sqlite": "Actualizando Base de Datos SQLite",
+ "updating_pair": "Actualizando Par Clave-Valor",
+ "sqlite_success": "Base de Datos SQLite Actualizada Exitosamente",
+ "sqlite_error": "Falló la Actualización de la Base de Datos SQLite: {error}",
+ "press_enter": "Presione Enter para Salir",
+ "unsupported_os": "Sistema Operativo No Soportado: {os}",
+ "linux_path_not_found": "Ruta de Linux No Encontrada",
+ "updating_system_ids": "Actualizando IDs del Sistema",
+ "system_ids_updated": "IDs del Sistema Actualizados Exitosamente",
+ "system_ids_update_failed": "Falló la Actualización de IDs del Sistema: {error}",
+ "windows_guid_updated": "GUID de Windows Actualizado Exitosamente",
+ "windows_permission_denied": "Permisos de Windows Denegados",
+ "windows_guid_update_failed": "Falló la Actualización del GUID de Windows",
+ "macos_uuid_updated": "UUID de macOS Actualizado Exitosamente",
+ "plutil_command_failed": "Falló el Comando plutil",
+ "start_patching": "Iniciando Parcheo de getMachineId",
+ "macos_uuid_update_failed": "Falló la Actualización del UUID de macOS",
+ "current_version": "Versión Actual de Cursor: {version}",
+ "patch_completed": "Parcheo de getMachineId Completado",
+ "patch_failed": "Falló el Parcheo de getMachineId: {error}",
+ "version_check_passed": "Verificación de Versión de Cursor Exitosa",
+ "file_modified": "Archivo Modificado",
+ "version_less_than_0_45": "Versión de Cursor < 0.45.0, Omitiendo Parcheo de getMachineId",
+ "detecting_version": "Detectando Versión de Cursor",
+ "patching_getmachineid": "Parcheando getMachineId",
+ "version_greater_than_0_45": "Versión de Cursor >= 0.45.0, Parcheando getMachineId",
+ "permission_denied": "Permiso Denegado: {error}",
+ "backup_created": "Copia de Seguridad Creada",
+ "update_success": "Actualización Exitosa",
+ "update_failed": "Falló la Actualización: {error}",
+ "windows_machine_guid_updated": "GUID de Máquina Windows Actualizado Exitosamente",
+ "reading_package_json": "Leyendo package.json {path}",
+ "invalid_json_object": "Objeto JSON Inválido",
+ "no_version_field": "No se Encontró el Campo de Versión en package.json",
+ "version_field_empty": "El Campo de Versión está Vacío",
+ "invalid_version_format": "Formato de Versión Inválido: {version}",
+ "found_version": "Versión Encontrada: {version}",
+ "version_parse_error": "Error al Analizar Versión: {error}",
+ "package_not_found": "Package.json No Encontrado: {path}",
+ "check_version_failed": "Falló la Verificación de Versión: {error}",
+ "stack_trace": "Traza de la Pila",
+ "version_too_low": "Versión de Cursor Muy Baja: {version} < 0.45.0"
+
+ },
+ "register": {
+ "title": "Herramienta de Registro de Cursor",
+ "start": "Iniciando proceso de registro...",
+ "handling_turnstile": "Procesando verificación de seguridad...",
+ "retry_verification": "Reintentando verificación...",
+ "detect_turnstile": "Comprobando verificación de seguridad...",
+ "verification_success": "Verificación de seguridad exitosa",
+ "starting_browser": "Abriendo navegador...",
+ "form_success": "Formulario enviado exitosamente",
+ "browser_started": "Navegador abierto exitosamente",
+ "waiting_for_second_verification": "Esperando verificación por correo electrónico...",
+ "waiting_for_verification_code": "Esperando código de verificación...",
+ "password_success": "Contraseña establecida exitosamente",
+ "password_error": "No se pudo establecer la contraseña: {error}. Por favor intente de nuevo",
+ "waiting_for_page_load": "Cargando página...",
+ "first_verification_passed": "Verificación inicial exitosa",
+ "mailbox": "Acceso exitoso a la bandeja de entrada",
+ "register_start": "Iniciar Registro",
+ "form_submitted": "Formulario Enviado, Iniciando Verificación...",
+ "filling_form": "Rellenando Formulario",
+ "visiting_url": "Visitando URL",
+ "basic_info": "Información Básica Enviada",
+ "handle_turnstile": "Manejar Turnstile",
+ "no_turnstile": "No se Detectó Turnstile",
+ "turnstile_passed": "Turnstile Superado",
+ "verification_start": "Comenzar a Obtener Código de Verificación",
+ "verification_timeout": "Tiempo de Espera Agotado para Código de Verificación",
+ "verification_not_found": "No se Encontró Código de Verificación",
+ "try_get_code": "Intento | {attempt} Obtener Código de Verificación | Tiempo Restante: {time}s",
+ "get_account": "Obteniendo Información de la Cuenta",
+ "get_token": "Obtener Token de Sesión de Cursor",
+ "token_success": "Token Obtenido Exitosamente",
+ "token_attempt": "Intento | {attempt} veces para obtener Token | Se reintentará en {time}s",
+ "token_max_attempts": "Alcanzado Máximo de Intentos ({max}) | No se pudo obtener Token",
+ "token_failed": "Falló al Obtener Token: {error}",
+ "account_error": "Falló al Obtener Información de la Cuenta: {error}",
+ "press_enter": "Presione Enter para Salir",
+ "browser_start": "Iniciando Navegador",
+ "open_mailbox": "Abriendo Página de Correo",
+ "email_error": "Falló al Obtener Dirección de Correo",
+ "setup_error": "Error de Configuración de Correo: {error}",
+ "start_getting_verification_code": "Comenzando a Obtener Código de Verificación, Se Intentará en 60s",
+ "get_verification_code_timeout": "Tiempo de Espera Agotado para Código de Verificación",
+ "get_verification_code_success": "Código de Verificación Obtenido Exitosamente",
+ "try_get_verification_code": "Intento | {attempt} Obtener Código de Verificación | Tiempo Restante: {remaining_time}s",
+ "verification_code_filled": "Código de Verificación Completado",
+ "login_success_and_jump_to_settings_page": "Inicio de Sesión Exitoso y Salto a Página de Configuración",
+ "detect_login_page": "Página de Inicio de Sesión Detectada, Iniciando Sesión...",
+ "cursor_registration_completed": "¡Registro de Cursor Completado!",
+ "set_password": "Establecer Contraseña",
+ "basic_info_submitted": "Información Básica Enviada",
+ "cursor_auth_info_updated": "Información de Autenticación de Cursor Actualizada",
+ "cursor_auth_info_update_failed": "Falló la Actualización de Información de Autenticación de Cursor",
+ "reset_machine_id": "Restablecer ID de Máquina",
+ "account_info_saved": "Información de Cuenta Guardada",
+ "save_account_info_failed": "Falló al Guardar Información de Cuenta",
+ "get_email_address": "Obtener Dirección de Correo",
+ "update_cursor_auth_info": "Actualizar Información de Autenticación de Cursor",
+ "register_process_error": "Error en el Proceso de Registro: {error}",
+ "setting_password": "Estableciendo Contraseña",
+ "manual_code_input": "Entrada Manual de Código",
+ "manual_email_input": "Entrada Manual de Correo",
+ "password": "Contraseña",
+ "first_name": "Nombre",
+ "last_name": "Apellido",
+ "exit_signal": "Señal de Salida",
+ "email_address": "Dirección de Correo",
+ "config_created": "Configuración Creada",
+ "verification_failed": "Verificación Fallida",
+ "verification_error": "Error de Verificación: {error}",
+ "config_option_added": "Opción de Configuración Añadida: {option}",
+ "config_updated": "Configuración Actualizada",
+ "password_submitted": "Contraseña Enviada",
+ "total_usage": "Uso Total: {usage}",
+ "setting_on_password": "Estableciendo Contraseña",
+ "getting_code": "Obteniendo Código de Verificación, Se Intentará en 60s",
+ "human_verify_error": "No se puede verificar que el usuario es humano. Reintentando...",
+ "max_retries_reached": "Se alcanzó el máximo de intentos. Registro fallido."
+ },
+ "auth": {
+ "title": "Administrador de Autenticación de Cursor",
+ "checking_auth": "Verificando Archivo de Autenticación",
+ "auth_not_found": "Archivo de Autenticación No Encontrado",
+ "auth_file_error": "Error en Archivo de Autenticación: {error}",
+ "reading_auth": "Leyendo Archivo de Autenticación",
+ "updating_auth": "Actualizando Información de Autenticación",
+ "auth_updated": "Información de Autenticación Actualizada Exitosamente",
+ "auth_update_failed": "Falló la Actualización de Información de Autenticación: {error}",
+ "auth_file_created": "Archivo de Autenticación Creado",
+ "auth_file_create_failed": "Falló la Creación del Archivo de Autenticación: {error}",
+ "press_enter": "Presione Enter para Salir",
+ "reset_machine_id": "Restablecer ID de Máquina",
+ "database_connection_closed": "Conexión a la Base de Datos Cerrada",
+ "database_updated_successfully": "Base de Datos Actualizada Exitosamente",
+ "connected_to_database": "Conectado a la Base de Datos",
+ "updating_pair": "Actualizando Par Clave-Valor",
+ "db_not_found": "Archivo de base de datos no encontrado en: {path}",
+ "db_permission_error": "No se puede acceder al archivo de base de datos. Verifique los permisos",
+ "db_connection_error": "Falló la conexión a la base de datos: {error}"
+ },
+ "control": {
+ "generate_email": "Generando Nuevo Correo",
+ "blocked_domain": "Dominio Bloqueado",
+ "select_domain": "Seleccionando Dominio Aleatorio",
+ "copy_email": "Copiando Dirección de Correo",
+ "enter_mailbox": "Entrando al Buzón de Correo",
+ "refresh_mailbox": "Actualizando Buzón de Correo",
+ "check_verification": "Verificando Código de Verificación",
+ "verification_found": "Código de Verificación Encontrado",
+ "verification_not_found": "No se Encontró Código de Verificación",
+ "browser_error": "Error de Control del Navegador: {error}",
+ "navigation_error": "Error de Navegación: {error}",
+ "email_copy_error": "Error al Copiar Correo: {error}",
+ "mailbox_error": "Error en el Buzón de Correo: {error}",
+ "token_saved_to_file": "Token Guardado en cursor_tokens.txt",
+ "navigate_to": "Navegando a {url}",
+ "generate_email_success": "Generación de Correo Exitosa",
+ "select_email_domain": "Seleccionar Dominio de Correo",
+ "select_email_domain_success": "Selección de Dominio de Correo Exitosa",
+ "get_email_name": "Obtener Nombre de Correo",
+ "get_email_name_success": "Nombre de Correo Obtenido Exitosamente",
+ "get_email_address": "Obtener Dirección de Correo",
+ "get_email_address_success": "Dirección de Correo Obtenida Exitosamente",
+ "enter_mailbox_success": "Entrada al Buzón de Correo Exitosa",
+ "found_verification_code": "Código de Verificación Encontrado",
+ "get_cursor_session_token": "Obtener Token de Sesión de Cursor",
+ "get_cursor_session_token_success": "Token de Sesión de Cursor Obtenido Exitosamente",
+ "get_cursor_session_token_failed": "Falló al Obtener Token de Sesión de Cursor",
+ "save_token_failed": "Falló al Guardar Token",
+ "database_updated_successfully": "Base de Datos Actualizada Exitosamente",
+ "database_connection_closed": "Conexión a la Base de Datos Cerrada",
+ "no_valid_verification_code": "No Hay Código de Verificación Válido"
+ },
+ "email": {
+ "starting_browser": "Iniciando Navegador",
+ "visiting_site": "Visitando dominios de correo",
+ "create_success": "Correo Creado Exitosamente",
+ "create_failed": "Falló al Crear Correo",
+ "create_error": "Error en la Creación del Correo: {error}",
+ "refreshing": "Actualizando Correo",
+ "refresh_success": "Correo Actualizado Exitosamente",
+ "refresh_error": "Error al Actualizar Correo: {error}",
+ "refresh_button_not_found": "Botón de Actualización No Encontrado",
+ "verification_found": "Verificación Encontrada",
+ "verification_not_found": "Verificación No Encontrada",
+ "verification_error": "Error de Verificación: {error}",
+ "verification_code_found": "Código de Verificación Encontrado",
+ "verification_code_not_found": "Código de Verificación No Encontrado",
+ "verification_code_error": "Error en el Código de Verificación: {error}",
+ "address": "Dirección de Correo",
+ "all_domains_blocked": "Todos los Dominios Bloqueados, Cambiando Servicio",
+ "no_available_domains_after_filtering": "No Hay Dominios Disponibles Después del Filtrado",
+ "switching_service": "Cambiando al Servicio {service}",
+ "domains_list_error": "Falló al Obtener Lista de Dominios: {error}",
+ "failed_to_get_available_domains": "Falló al Obtener Dominios Disponibles",
+ "domains_excluded": "Dominios Excluidos: {domains}",
+ "failed_to_create_account": "Falló al Crear Cuenta",
+ "account_creation_error": "Error en la Creación de la Cuenta: {error}",
+ "blocked_domains": "Dominios Bloqueados: {domains}",
+ "blocked_domains_loaded": "Dominios Bloqueados Cargados: {count}",
+ "blocked_domains_loaded_error": "Error al Cargar Dominios Bloqueados: {error}",
+ "blocked_domains_loaded_success": "Dominios Bloqueados Cargados Exitosamente",
+ "blocked_domains_loaded_timeout": "Tiempo de Espera Agotado para Cargar Dominios Bloqueados: {timeout}s",
+ "blocked_domains_loaded_timeout_error": "Error de Tiempo de Espera al Cargar Dominios Bloqueados: {error}",
+ "available_domains_loaded": "Dominios Disponibles Cargados: {count}",
+ "domains_filtered": "Dominios Filtrados: {count}",
+ "trying_to_create_email": "Intentando crear correo: {email}",
+ "domain_blocked": "Dominio Bloqueado: {domain}"
+ },
+ "update": {
+ "title": "Deshabilitar Actualización Automática de Cursor",
+ "disable_success": "Actualización Automática Deshabilitada Exitosamente",
+ "disable_failed": "Falló al Deshabilitar Actualización Automática: {error}",
+ "press_enter": "Presione Enter para Salir",
+ "start_disable": "Comenzar a Deshabilitar Actualización Automática",
+ "killing_processes": "Terminando Procesos",
+ "processes_killed": "Procesos Terminados",
+ "removing_directory": "Eliminando Directorio",
+ "directory_removed": "Directorio Eliminado",
+ "creating_block_file": "Creando Archivo de Bloqueo",
+ "block_file_created": "Archivo de Bloqueo Creado"
+ },
+ "updater": {
+ "checking": "Buscando actualizaciones...",
+ "new_version_available": "¡Nueva versión disponible! (Actual: {current}, Última: {latest})",
+ "updating": "Actualizando a la última versión. El programa se reiniciará automáticamente.",
+ "up_to_date": "Está utilizando la última versión.",
+ "check_failed": "Falló al verificar actualizaciones: {error}",
+ "continue_anyway": "Continuando con la versión actual...",
+ "update_confirm": "¿Desea actualizar a la última versión? (Y/n)",
+ "update_skipped": "Omitiendo actualización.",
+ "invalid_choice": "Elección inválida. Por favor ingrese 'Y' o 'n'.",
+ "development_version": "Versión de Desarrollo {current} > {latest}",
+ "changelog_title": "Registro de Cambios"
+ },
+ "totally_reset": {
+ "title": "Restablecer Cursor Completamente",
+ "checking_config": "Verificando Archivo de Configuración",
+ "config_not_found": "Archivo de Configuración No Encontrado",
+ "no_permission": "No se Puede Leer o Escribir el Archivo de Configuración, Verifique los Permisos",
+ "reading_config": "Leyendo Configuración Actual",
+ "creating_backup": "Creando Copia de Seguridad de la Configuración",
+ "backup_exists": "El Archivo de Respaldo ya Existe, Omitiendo Paso de Respaldo",
+ "generating_new_machine_id": "Generando Nuevo ID de Máquina",
+ "saving_new_config": "Guardando Nueva Configuración en JSON",
+ "success": "Cursor Restablecido Exitosamente",
+ "error": "Falló el Restablecimiento de Cursor: {error}",
+ "press_enter": "Presione Enter para Salir",
+ "reset_machine_id": "Restablecer ID de Máquina",
+ "database_connection_closed": "Conexión a la Base de Datos Cerrada",
+ "database_updated_successfully": "Base de Datos Actualizada Exitosamente",
+ "connected_to_database": "Conectado a la Base de Datos",
+ "updating_pair": "Actualizando Par Clave-Valor",
+ "db_not_found": "Archivo de base de datos no encontrado en: {path}",
+ "db_permission_error": "No se puede acceder al archivo de base de datos. Verifique los permisos",
+ "db_connection_error": "Falló la conexión a la base de datos: {error}",
+ "feature_title": "CARACTERÍSTICAS",
+ "feature_1": "Eliminación completa de configuraciones y ajustes de Cursor AI",
+ "feature_2": "Limpia todos los datos en caché incluyendo historial de IA y peticiones",
+ "feature_3": "Restablece el ID de máquina para evitar la detección de prueba",
+ "feature_4": "Crea nuevos identificadores de máquina aleatorios",
+ "feature_5": "Elimina extensiones personalizadas y preferencias",
+ "feature_6": "Restablece información de prueba y datos de activación",
+ "feature_7": "Escaneo profundo de archivos ocultos relacionados con licencias y pruebas",
+ "feature_8": "Preserva de forma segura archivos y aplicaciones que no son de Cursor",
+ "feature_9": "Compatible con Windows, macOS y Linux",
+ "disclaimer_title": "AVISO IMPORTANTE",
+ "disclaimer_1": "Esta herramienta eliminará permanentemente todas las configuraciones de Cursor AI,",
+ "disclaimer_2": "ajustes y datos en caché. Esta acción no se puede deshacer.",
+ "disclaimer_3": "Sus archivos de código NO se verán afectados, y la herramienta está diseñada",
+ "disclaimer_4": "para dirigirse solo a archivos del editor Cursor AI y mecanismos de detección de prueba.",
+ "disclaimer_5": "Otras aplicaciones en su sistema no se verán afectadas.",
+ "disclaimer_6": "Necesitará configurar Cursor AI nuevamente después de ejecutar esta herramienta.",
+ "disclaimer_7": "Use bajo su propio riesgo",
+ "confirm_title": "¿Está seguro de que desea continuar?",
+ "confirm_1": "Esta acción eliminará todas las configuraciones de Cursor AI,",
+ "confirm_2": "ajustes y datos en caché. Esta acción no se puede deshacer.",
+ "confirm_3": "Sus archivos de código NO se verán afectados, y la herramienta está diseñada",
+ "confirm_4": "para dirigirse solo a archivos del editor Cursor AI y mecanismos de detección de prueba.",
+ "confirm_5": "Otras aplicaciones en su sistema no se verán afectadas.",
+ "confirm_6": "Necesitará configurar Cursor AI nuevamente después de ejecutar esta herramienta.",
+ "confirm_7": "Use bajo su propio riesgo",
+ "invalid_choice": "Por favor ingrese 'Y' o 'n'",
+ "skipped_for_safety": "Omitido por seguridad (no relacionado con Cursor): {path}",
+ "deleted": "Eliminado: {path}",
+ "error_deleting": "Error al eliminar {path}: {error}",
+ "not_found": "Archivo no encontrado: {path}",
+ "resetting_machine_id": "Restableciendo identificadores de máquina para evitar la detección de prueba...",
+ "created_machine_id": "Creado nuevo ID de máquina: {path}",
+ "error_creating_machine_id": "Error al crear archivo de ID de máquina {path}: {error}",
+ "error_searching": "Error al buscar archivos en {path}: {error}",
+ "created_extended_trial_info": "Creada nueva información de prueba extendida: {path}",
+ "error_creating_trial_info": "Error al crear archivo de información de prueba {path}: {error}",
+ "resetting_cursor_ai_editor": "Restableciendo Editor Cursor AI... Por favor espere.",
+ "reset_cancelled": "Restablecimiento cancelado. Saliendo sin realizar cambios.",
+ "windows_machine_id_modification_skipped": "Modificación de ID de máquina de Windows omitida: {error}",
+ "linux_machine_id_modification_skipped": "Modificación de machine-id de Linux omitida: {error}",
+ "note_complete_machine_id_reset_may_require_running_as_administrator": "Nota: El restablecimiento completo del ID de máquina puede requerir ejecutar como administrador",
+ "note_complete_system_machine_id_reset_may_require_sudo_privileges": "Nota: El restablecimiento completo del machine-id del sistema puede requerir privilegios sudo",
+ "windows_registry_instructions": "📝 NOTA: Para un restablecimiento completo en Windows, es posible que también deba limpiar entradas del registro.",
+ "windows_registry_instructions_2": " Ejecute 'regedit' y busque claves que contengan 'Cursor' o 'CursorAI' bajo HKEY_CURRENT_USER\\Software\\ y elimínelas.",
+ "reset_log_1": "¡Cursor AI ha sido completamente restablecido y se ha evitado la detección de prueba!",
+ "reset_log_2": "Por favor reinicie su sistema para que los cambios surtan efecto.",
+ "reset_log_3": "Necesitará reinstalar Cursor AI y ahora debería tener un nuevo período de prueba.",
+ "reset_log_4": "Para mejores resultados, considere también:",
+ "reset_log_5": "Usar una dirección de correo diferente al registrarse para una nueva prueba",
+ "reset_log_6": "Si está disponible, usar una VPN para cambiar su dirección IP",
+ "reset_log_7": "Limpiar las cookies y caché de su navegador antes de visitar el sitio web de Cursor AI",
+ "reset_log_8": "Si los problemas persisten, intente instalar Cursor AI en una ubicación diferente",
+ "reset_log_9": "Si encuentra algún problema, vaya al Rastreador de Problemas de Github y cree un problema en https://github.com/yeongpin/cursor-free-vip/issues",
+ "unexpected_error": "Ocurrió un error inesperado: {error}",
+ "report_issue": "Por favor reporte este problema al Rastreador de Problemas de Github en https://github.com/yeongpin/cursor-free-vip/issues",
+ "keyboard_interrupt": "Proceso interrumpido por el usuario. Saliendo...",
+ "return_to_main_menu": "Volviendo al menú principal...",
+ "process_interrupted": "Proceso interrumpido. Saliendo...",
+ "press_enter_to_return_to_main_menu": "Presione Enter para volver al menú principal...",
+ "removing_known": "Eliminando archivos conocidos de prueba/licencia",
+ "performing_deep_scan": "Realizando escaneo profundo para archivos adicionales de prueba/licencia",
+ "found_additional_potential_license_trial_files": "Se encontraron {count} archivos potenciales adicionales de licencia/prueba",
+ "checking_for_electron_localstorage_files": "Verificando archivos de localStorage de Electron",
+ "no_additional_license_trial_files_found_in_deep_scan": "No se encontraron archivos adicionales de licencia/prueba en el escaneo profundo",
+ "removing_electron_localstorage_files": "Eliminando archivos de localStorage de Electron",
+ "electron_localstorage_files_removed": "Archivos de localStorage de Electron eliminados",
+ "electron_localstorage_files_removal_error": "Error al eliminar archivos de localStorage de Electron: {error}",
+ "removing_electron_localstorage_files_completed": "Eliminación de archivos de localStorage de Electron completada",
+ "warning_title": "ADVERTENCIA",
+ "warning_1": "Esta acción eliminará todas las configuraciones de Cursor AI,",
+ "warning_2": "ajustes y datos en caché. Esta acción no se puede deshacer.",
+ "warning_3": "Sus archivos de código NO se verán afectados, y la herramienta está diseñada",
+ "warning_4": "para dirigirse solo a archivos del editor Cursor AI y mecanismos de detección de prueba.",
+ "warning_5": "Otras aplicaciones en su sistema no se verán afectadas.",
+ "warning_6": "Necesitará configurar Cursor AI nuevamente después de ejecutar esta herramienta.",
+ "warning_7": "Use bajo su propio riesgo",
+ "removed": "Eliminado: {path}",
+ "failed_to_reset_machine_guid": "Falló al restablecer GUID de máquina",
+ "failed_to_remove": "Falló al eliminar: {path}",
+ "failed_to_delete_file": "Falló al eliminar archivo: {path}",
+ "failed_to_delete_directory": "Falló al eliminar directorio: {path}",
+ "failed_to_delete_file_or_directory": "Falló al eliminar archivo o directorio: {path}",
+ "deep_scanning": "Realizando escaneo profundo para archivos adicionales de prueba/licencia",
+ "resetting_cursor": "Restableciendo Editor Cursor AI... Por favor espere.",
+ "completed_in": "Completado en {time} segundos",
+ "cursor_reset_completed": "¡El Editor Cursor AI ha sido completamente restablecido y se ha evitado la detección de prueba!",
+ "cursor_reset_failed": "Falló el restablecimiento del Editor Cursor AI: {error}",
+ "cursor_reset_cancelled": "Restablecimiento del Editor Cursor AI cancelado. Saliendo sin realizar cambios.",
+ "operation_cancelled": "Operación cancelada. Saliendo sin realizar cambios."
+ },
+ "github_register": {
+ "title": "Automatización de Registro de GitHub + Cursor AI",
+ "features_header": "Características",
+ "feature1": "Genera un correo temporal usando 1secmail.",
+ "feature2": "Registra una nueva cuenta de GitHub con credenciales aleatorias.",
+ "feature3": "Verifica el correo de GitHub automáticamente.",
+ "feature4": "Inicia sesión en Cursor AI usando autenticación de GitHub.",
+ "feature5": "Restablece el ID de máquina para evitar la detección de prueba.",
+ "feature6": "Guarda todas las credenciales en un archivo.",
+ "warnings_header": "Advertencias",
+ "warning1": "Este script automatiza la creación de cuentas, lo que puede violar los términos de servicio de GitHub/Cursor.",
+ "warning2": "Requiere acceso a internet y privilegios administrativos.",
+ "warning3": "CAPTCHA o verificación adicional pueden interrumpir la automatización.",
+ "warning4": "Use responsablemente y bajo su propio riesgo.",
+ "confirm": "¿Está seguro de que desea continuar?",
+ "invalid_choice": "Elección inválida. Por favor ingrese 'yes' o 'no'",
+ "cancelled": "Operación cancelada",
+ "program_terminated": "Programa terminado por el usuario",
+ "starting_automation": "Iniciando automatización...",
+ "github_username": "Nombre de Usuario de GitHub",
+ "github_password": "Contraseña de GitHub",
+ "email_address": "Dirección de Correo",
+ "credentials_saved": "Estas credenciales han sido guardadas en github_cursor_accounts.txt",
+ "completed_successfully": "¡Registro de GitHub + Cursor completado exitosamente!",
+ "registration_encountered_issues": "El registro de GitHub + Cursor encontró problemas.",
+ "check_browser_windows_for_manual_intervention_or_try_again_later": "Revise las ventanas del navegador para intervención manual o intente nuevamente más tarde."
+ }
+}
diff --git a/locales/fr.json b/locales/fr.json
index 2c99e0c..bbca221 100644
--- a/locales/fr.json
+++ b/locales/fr.json
@@ -30,7 +30,8 @@
"de": "Allemand",
"fr": "Français",
"pt": "Portugais",
- "ru": "Russe"
+ "ru": "Russe",
+ "es": "Espagnol"
},
"quit_cursor": {
"start": "Début de la Fermeture de Cursor",
diff --git a/locales/nl.json b/locales/nl.json
index d9f8f71..6472bad 100644
--- a/locales/nl.json
+++ b/locales/nl.json
@@ -30,7 +30,8 @@
"de": "Duits",
"fr": "Frans",
"pt": "Portugees",
- "ru": "Russisch"
+ "ru": "Russisch",
+ "es": "Spaans"
},
"quit_cursor": {
"start": "Start met afsluiten van Cursor",
diff --git a/locales/pt.json b/locales/pt.json
index c1fdcb3..8e45b51 100644
--- a/locales/pt.json
+++ b/locales/pt.json
@@ -30,7 +30,8 @@
"de": "Alemão",
"fr": "Francês",
"pt": "Português do Brasil",
- "ru": "Russo"
+ "ru": "Russo",
+ "es": "Espanhol"
},
"quit_cursor": {
"start": "Iniciando fechamento do Cursor",
diff --git a/locales/ru.json b/locales/ru.json
index fcd07c0..ee0bb28 100644
--- a/locales/ru.json
+++ b/locales/ru.json
@@ -30,7 +30,8 @@
"de": "Немецкий",
"fr": "Французский",
"pt": "Бразильский португальский",
- "ru": "Русский"
+ "ru": "Русский",
+ "es": "Испанский"
},
"quit_cursor": {
"start": "Начало закрытия Cursor",
diff --git a/locales/tr.json b/locales/tr.json
index d6ad419..d24722e 100644
--- a/locales/tr.json
+++ b/locales/tr.json
@@ -31,7 +31,8 @@
"fr": "French",
"pt": "Portuguese",
"ru": "Russian",
- "tr": "Turkish"
+ "tr": "Turkish",
+ "es": "Spanish"
},
"quit_cursor": {
"start": "Cursor'dan Çıkış Başlatılıyor",
diff --git a/locales/vi.json b/locales/vi.json
index c8735bc..6eba332 100644
--- a/locales/vi.json
+++ b/locales/vi.json
@@ -28,7 +28,8 @@
"de": "Tiếng Đức",
"fr": "Tiếng Pháp",
"pt": "Tiếng Bồ Đào Nha",
- "ru": "Tiếng Nga"
+ "ru": "Tiếng Nga",
+ "es": "Tiếng Tây Ban Nha"
},
"quit_cursor": {
"start": "Bắt Đầu Thoát Cursor",
diff --git a/locales/zh_cn.json b/locales/zh_cn.json
index 728b025..992e854 100644
--- a/locales/zh_cn.json
+++ b/locales/zh_cn.json
@@ -35,7 +35,8 @@
"pt": "葡萄牙语",
"ru": "俄语",
"tr": "土耳其语",
- "bg": "保加利亚语"
+ "bg": "保加利亚语",
+ "es": "西班牙语"
},
"quit_cursor": {
"start": "开始退出 Cursor",
diff --git a/locales/zh_tw.json b/locales/zh_tw.json
index cdc9eeb..75b178e 100644
--- a/locales/zh_tw.json
+++ b/locales/zh_tw.json
@@ -33,7 +33,8 @@
"pt": "葡萄牙文",
"ru": "俄文",
"tr": "土耳其文",
- "bg": "保加利亞文"
+ "bg": "保加利亞文",
+ "es": "西班牙文"
},
"quit_cursor": {
"start": "開始退出 Cursor",