aios-core
Version:
Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework
550 lines (515 loc) • 27.9 kB
JavaScript
/**
* Internationalization (i18n) for AIOS Wizard
*
* Supports: English, Portuguese, Spanish
*
* @module wizard/i18n
*/
const TRANSLATIONS = {
en: {
// Language selection
selectLanguage: 'Select language:',
// User Profile (Story 10.2 - Epic 10: User Profile System)
userProfileQuestion: 'When AI generates code for you, which option best describes you?',
modoAssistido: 'Assisted Mode',
modoAssistidoDesc: "I can't tell if the code is right or wrong",
modoAssistidoHint: 'You talk to Bob, who handles all validation',
modoAvancado: 'Advanced Mode',
modoAvancadoDesc: 'I can identify when something is wrong and fix it',
modoAvancadoHint: 'You have direct access to all agents',
userProfileSkipped: 'Using existing user profile',
languageSkipped: 'Using existing language',
// Project type
projectTypeQuestion: 'What type of project are you setting up?',
greenfield: 'Greenfield',
greenfieldDesc: 'new project from scratch',
brownfield: 'Brownfield',
brownfieldDesc: 'existing project',
// IDE selection
ideQuestion: 'Select IDE(s):',
ideHint: 'Space to select, Enter to confirm',
recommended: 'Recommended',
// Progress messages
installingCore: 'Installing AIOS core...',
installingIDE: 'Configuring IDEs...',
installingDeps: 'Installing dependencies...',
configuringEnv: 'Configuring environment...',
validating: 'Validating installation...',
// Status
success: 'Success',
error: 'Error',
warning: 'Warning',
skipped: 'Skipped',
// Completion
installComplete: 'Installation Complete!',
readyToUse: 'Your AIOS project is ready.',
nextSteps: 'Next steps:',
quickStart: 'Quick Start:',
quickStartAgents: 'Talk to your AI agents: @dev, @qa, @architect',
quickStartStory: 'Create a story: @pm *create-story',
quickStartHelp: 'Get help: @aios-master *help',
// Cancellation
cancelConfirm: 'Cancel installation?',
cancelled: 'Installation cancelled.',
tryAgain: 'Run `npx aios-core init` to try again.',
continuing: 'Continuing installation...',
// Pro Installation Wizard (pro-setup.js)
proWizardTitle: 'AIOS Pro Installation Wizard',
proWizardSubtitle: 'Premium Content & Features',
proLicenseActivation: 'License Activation',
proContentInstallation: 'Pro Content Installation',
proVerification: 'Verification',
proHowActivate: 'How would you like to activate Pro?',
proLoginOrCreate: 'Login or create account (Recommended)',
proEnterKey: 'Enter license key (legacy)',
proEmailLabel: 'Email:',
proEmailRequired: 'Email is required',
proEmailInvalid: 'Please enter a valid email address',
proVerifyingAccess: 'Verifying your access...',
proNoAccess: 'No AIOS Pro access found for this email.',
proContactSupport: 'If you believe this is an error, please contact support:',
proPurchase: 'Purchase Pro: https://pro.synkra.ai',
proEmailNotBuyer: 'Email not found in Pro buyers list.',
proAccessConfirmedAccount: 'Pro access confirmed! Account found.',
proAccessConfirmedCreate: "Pro access confirmed! Let's create your account.",
proPasswordLabel: 'Password:',
proPasswordMin: 'Password must be at least {min} characters',
proAuthenticating: 'Authenticating...',
proAuthSuccess: 'Authenticated successfully.',
proEmailNotVerified: 'Email not verified yet. Please check your inbox and click the verification link.',
proCheckingEvery: '(Checking every 5 seconds... timeout in 10 minutes)',
proEmailVerified: 'Email verified!',
proVerificationTimeout: 'Email verification timed out after 10 minutes.',
proRunAgain: 'Run the installer again to retry.',
proIncorrectPassword: 'Incorrect password. {remaining} attempt(s) remaining.',
proMaxAttempts: 'Maximum login attempts reached.',
proForgotPassword: 'Forgot your password? Visit https://aios-license-server.vercel.app/reset-password',
proContactSupportEmail: 'Or open an issue: https://github.com/SynkraAI/aios-core/issues',
proAuthFailed: 'Authentication failed: {message}',
proCreateAccount: 'Create your AIOS Pro account to get started.',
proChoosePassword: 'Choose a password:',
proConfirmPassword: 'Confirm password:',
proPasswordsNoMatch: 'Passwords do not match',
proCreatingAccount: 'Creating account...',
proAccountCreated: 'Account created! Verification email sent.',
proAccountExists: 'Account already exists. Switching to login...',
proAccountFailed: 'Account creation failed: {message}',
proCheckEmail: 'Please check your email and click the verification link.',
proWaitingVerification: 'Waiting for email verification...',
proAfterVerifying: 'After verifying, the installation will continue automatically.',
proPressResend: '[Press R to resend verification email]',
proVerificationResent: 'Verification email resent.',
proCouldNotResend: 'Could not resend: {message}',
proRunAgainRetry: 'Run the installer again to retry verification.',
proValidatingSubscription: 'Validating Pro subscription...',
proSubscriptionConfirmed: 'Pro subscription confirmed! License: {key}',
proNoSubscription: 'No active Pro subscription found for this email.',
proPurchaseAt: 'Purchase Pro at https://pro.synkra.ai',
proSeatLimit: 'Deactivate another device or upgrade your license.',
proAlreadyActivated: 'Pro license already activated for this account.',
proActivationFailed: 'Activation failed: {message}',
proEnterKeyPrompt: 'Enter your Pro license key:',
proKeyRequired: 'License key is required',
proKeyInvalid: 'Invalid format. Expected: PRO-XXXX-XXXX-XXXX-XXXX',
proKeyValidated: 'License validated: {key}',
proModuleNotAvailable: 'Pro license module not available. Ensure @aios-fullstack/pro is installed.',
proModuleBootstrap: 'Pro license module not found locally. Installing @aios-fullstack/pro to bootstrap...',
proServerUnreachable: 'License server is unreachable. Check your internet connection and try again.',
proVerifyingAccessShort: 'Verifying access...',
proAccessConfirmed: 'Pro access confirmed.',
proBuyerCheckUnavailable: 'Buyer check unavailable, proceeding with login...',
proLoginFailedSignup: 'Login failed, attempting signup...',
proAccountCreatedVerify: 'Account created. Verification email sent!',
proAccountExistsWrongPw: 'Account exists but the password is incorrect.',
proAuthFailedShort: 'Authentication failed.',
proValidatingKey: 'Validating license {key}...',
proInvalidKey: 'Invalid license key.',
proExpiredKey: 'License key has expired.',
proMaxActivations: 'Maximum activations reached for this key.',
proRateLimited: 'Too many requests. Please wait and try again.',
proValidationFailed: 'License validation failed: {message}',
proInvalidKeyFormat: 'Invalid key format: {key}. Expected: PRO-XXXX-XXXX-XXXX-XXXX',
proScaffolding: 'Scaffolding pro content...',
proScaffoldingProgress: 'Scaffolding: {message}',
proContentInstalled: 'Pro content installed ({count} files)',
proScaffoldFailed: 'Scaffolding failed',
proScaffoldError: 'Scaffolding error: {message}',
proInitPackageJson: 'Initializing package.json...',
proPackageJsonCreated: 'package.json created',
proPackageJsonFailed: 'Failed to create package.json',
proInstallingPackage: 'Installing @aios-fullstack/pro...',
proPackageInstalled: 'Pro package installed',
proPackageInstallFailed: 'Failed to install Pro package',
proScaffolderNotAvailable: 'Pro scaffolder not available. Ensure @aios-fullstack/pro is installed.',
proFilesInstalled: 'Files installed: {count}',
proSquads: 'Squads: {names}',
proConfigs: 'Configs: {count} files',
proFeaturesUnlocked: 'Features unlocked: {count}',
proInstallComplete: 'AIOS Pro installation complete!',
proNeedHelp: 'Need help? Run: npx aios-pro recover',
proCISetEnv: 'CI mode: Set AIOS_PRO_EMAIL + AIOS_PRO_PASSWORD or AIOS_PRO_KEY environment variables.',
proVerificationFailed: 'Verification failed: {message}',
proPackageNotFound: 'Pro package not found after npm install. Check npm output.',
proScaffolderNotFound: 'Pro scaffolder module not found.',
proNpmInitFailed: 'npm init failed: {message}',
proNpmInstallFailed: 'npm install @aios-fullstack/pro failed: {message}. Try manually: npm install @aios-fullstack/pro',
},
pt: {
// Language selection
selectLanguage: 'Selecione o idioma:',
// User Profile (Story 10.2 - Epic 10: User Profile System)
// PRD: AIOS v2.0 "Projeto Bob" - Seção 2.4 (exact copy)
userProfileQuestion: 'Quando uma IA gera código para você, qual dessas opções te descreve melhor?',
modoAssistido: 'Modo Assistido',
modoAssistidoDesc: 'Não sei avaliar se o código está certo ou errado',
modoAssistidoHint: 'Você conversa com Bob, que cuida de toda a validação',
modoAvancado: 'Modo Avançado',
modoAvancadoDesc: 'Consigo identificar quando algo está errado e corrigir',
modoAvancadoHint: 'Você tem acesso direto a todos os agentes',
userProfileSkipped: 'Usando perfil de usuário existente',
languageSkipped: 'Usando idioma existente',
// Project type
projectTypeQuestion: 'Que tipo de projeto você está configurando?',
greenfield: 'Greenfield',
greenfieldDesc: 'projeto novo do zero',
brownfield: 'Brownfield',
brownfieldDesc: 'projeto existente',
// IDE selection
ideQuestion: 'Selecione IDE(s):',
ideHint: 'Espaço para selecionar, Enter para confirmar',
recommended: 'Recomendado',
// Progress messages
installingCore: 'Instalando AIOS core...',
installingIDE: 'Configurando IDEs...',
installingDeps: 'Instalando dependências...',
configuringEnv: 'Configurando ambiente...',
validating: 'Validando instalação...',
// Status
success: 'Sucesso',
error: 'Erro',
warning: 'Aviso',
skipped: 'Pulado',
// Completion
installComplete: 'Instalação Completa!',
readyToUse: 'Seu projeto AIOS está pronto.',
nextSteps: 'Próximos passos:',
quickStart: 'Início Rápido:',
quickStartAgents: 'Converse com seus agentes IA: @dev, @qa, @architect',
quickStartStory: 'Crie uma story: @pm *create-story',
quickStartHelp: 'Obtenha ajuda: @aios-master *help',
// Cancellation
cancelConfirm: 'Cancelar instalação?',
cancelled: 'Instalação cancelada.',
tryAgain: 'Execute `npx aios-core init` para tentar novamente.',
continuing: 'Continuando instalação...',
// Pro Installation Wizard (pro-setup.js)
proWizardTitle: 'Assistente de Instalação AIOS Pro',
proWizardSubtitle: 'Conteúdo e Recursos Premium',
proLicenseActivation: 'Ativação de Licença',
proContentInstallation: 'Instalação do Conteúdo Pro',
proVerification: 'Verificação',
proHowActivate: 'Como você gostaria de ativar o Pro?',
proLoginOrCreate: 'Login ou criar conta (Recomendado)',
proEnterKey: 'Inserir chave de licença (legado)',
proEmailLabel: 'Email:',
proEmailRequired: 'Email é obrigatório',
proEmailInvalid: 'Por favor, insira um endereço de email válido',
proVerifyingAccess: 'Verificando seu acesso...',
proNoAccess: 'Nenhum acesso AIOS Pro encontrado para este email.',
proContactSupport: 'Se você acredita que isso é um erro, entre em contato com o suporte:',
proPurchase: 'Comprar Pro: https://pro.synkra.ai',
proEmailNotBuyer: 'Email não encontrado na lista de compradores Pro.',
proAccessConfirmedAccount: 'Acesso Pro confirmado! Conta encontrada.',
proAccessConfirmedCreate: 'Acesso Pro confirmado! Vamos criar sua conta.',
proPasswordLabel: 'Senha:',
proPasswordMin: 'A senha deve ter pelo menos {min} caracteres',
proAuthenticating: 'Autenticando...',
proAuthSuccess: 'Autenticado com sucesso.',
proEmailNotVerified: 'Email ainda não verificado. Verifique sua caixa de entrada e clique no link de verificação.',
proCheckingEvery: '(Verificando a cada 5 segundos... tempo limite de 10 minutos)',
proEmailVerified: 'Email verificado!',
proVerificationTimeout: 'Verificação de email expirou após 10 minutos.',
proRunAgain: 'Execute o instalador novamente para tentar.',
proIncorrectPassword: 'Senha incorreta. {remaining} tentativa(s) restante(s).',
proMaxAttempts: 'Número máximo de tentativas de login atingido.',
proForgotPassword: 'Esqueceu sua senha? Acesse https://aios-license-server.vercel.app/reset-password',
proContactSupportEmail: 'Ou abra uma issue: https://github.com/SynkraAI/aios-core/issues',
proAuthFailed: 'Falha na autenticação: {message}',
proCreateAccount: 'Crie sua conta AIOS Pro para começar.',
proChoosePassword: 'Escolha uma senha:',
proConfirmPassword: 'Confirme a senha:',
proPasswordsNoMatch: 'As senhas não correspondem',
proCreatingAccount: 'Criando conta...',
proAccountCreated: 'Conta criada! Email de verificação enviado.',
proAccountExists: 'Conta já existe. Mudando para login...',
proAccountFailed: 'Falha ao criar conta: {message}',
proCheckEmail: 'Por favor, verifique seu email e clique no link de verificação.',
proWaitingVerification: 'Aguardando verificação de email...',
proAfterVerifying: 'Após verificar, a instalação continuará automaticamente.',
proPressResend: '[Pressione R para reenviar email de verificação]',
proVerificationResent: 'Email de verificação reenviado.',
proCouldNotResend: 'Não foi possível reenviar: {message}',
proRunAgainRetry: 'Execute o instalador novamente para tentar a verificação.',
proValidatingSubscription: 'Validando assinatura Pro...',
proSubscriptionConfirmed: 'Assinatura Pro confirmada! Licença: {key}',
proNoSubscription: 'Nenhuma assinatura Pro ativa encontrada para este email.',
proPurchaseAt: 'Compre o Pro em https://pro.synkra.ai',
proSeatLimit: 'Desative outro dispositivo ou faça upgrade da sua licença.',
proAlreadyActivated: 'Licença Pro já ativada para esta conta.',
proActivationFailed: 'Falha na ativação: {message}',
proEnterKeyPrompt: 'Insira sua chave de licença Pro:',
proKeyRequired: 'Chave de licença é obrigatória',
proKeyInvalid: 'Formato inválido. Esperado: PRO-XXXX-XXXX-XXXX-XXXX',
proKeyValidated: 'Licença validada: {key}',
proModuleNotAvailable: 'Módulo de licença Pro não disponível. Certifique-se de que @aios-fullstack/pro está instalado.',
proModuleBootstrap: 'Módulo de licença Pro não encontrado localmente. Instalando @aios-fullstack/pro...',
proServerUnreachable: 'Servidor de licenças inacessível. Verifique sua conexão com a internet e tente novamente.',
proVerifyingAccessShort: 'Verificando acesso...',
proAccessConfirmed: 'Acesso Pro confirmado.',
proBuyerCheckUnavailable: 'Verificação de comprador indisponível, prosseguindo com login...',
proLoginFailedSignup: 'Login falhou, tentando cadastro...',
proAccountCreatedVerify: 'Conta criada. Email de verificação enviado!',
proAccountExistsWrongPw: 'Conta existe mas a senha está incorreta.',
proAuthFailedShort: 'Falha na autenticação.',
proValidatingKey: 'Validando licença {key}...',
proInvalidKey: 'Chave de licença inválida.',
proExpiredKey: 'Chave de licença expirada.',
proMaxActivations: 'Número máximo de ativações atingido para esta chave.',
proRateLimited: 'Muitas requisições. Aguarde e tente novamente.',
proValidationFailed: 'Validação de licença falhou: {message}',
proInvalidKeyFormat: 'Formato de chave inválido: {key}. Esperado: PRO-XXXX-XXXX-XXXX-XXXX',
proScaffolding: 'Instalando conteúdo pro...',
proScaffoldingProgress: 'Instalando: {message}',
proContentInstalled: 'Conteúdo Pro instalado ({count} arquivos)',
proScaffoldFailed: 'Instalação falhou',
proScaffoldError: 'Erro na instalação: {message}',
proInitPackageJson: 'Inicializando package.json...',
proPackageJsonCreated: 'package.json criado',
proPackageJsonFailed: 'Falha ao criar package.json',
proInstallingPackage: 'Instalando @aios-fullstack/pro...',
proPackageInstalled: 'Pacote Pro instalado',
proPackageInstallFailed: 'Falha ao instalar pacote Pro',
proScaffolderNotAvailable: 'Scaffolder Pro não disponível. Certifique-se de que @aios-fullstack/pro está instalado.',
proFilesInstalled: 'Arquivos instalados: {count}',
proSquads: 'Squads: {names}',
proConfigs: 'Configs: {count} arquivos',
proFeaturesUnlocked: 'Recursos desbloqueados: {count}',
proInstallComplete: 'Instalação do AIOS Pro completa!',
proNeedHelp: 'Precisa de ajuda? Execute: npx aios-pro recover',
proCISetEnv: 'Modo CI: Defina as variáveis AIOS_PRO_EMAIL + AIOS_PRO_PASSWORD ou AIOS_PRO_KEY.',
proVerificationFailed: 'Verificação falhou: {message}',
proPackageNotFound: 'Pacote Pro não encontrado após npm install. Verifique a saída do npm.',
proScaffolderNotFound: 'Módulo scaffolder Pro não encontrado.',
proNpmInitFailed: 'npm init falhou: {message}',
proNpmInstallFailed: 'npm install @aios-fullstack/pro falhou: {message}. Tente manualmente: npm install @aios-fullstack/pro',
},
es: {
// Language selection
selectLanguage: 'Seleccione idioma:',
// User Profile (Story 10.2 - Epic 10: User Profile System)
userProfileQuestion: 'Cuando una IA genera código para ti, ¿cuál de estas opciones te describe mejor?',
modoAssistido: 'Modo Asistido',
modoAssistidoDesc: 'No sé evaluar si el código está bien o mal',
modoAssistidoHint: 'Hablas con Bob, que se encarga de toda la validación',
modoAvancado: 'Modo Avanzado',
modoAvancadoDesc: 'Puedo identificar cuando algo está mal y corregirlo',
modoAvancadoHint: 'Tienes acceso directo a todos los agentes',
userProfileSkipped: 'Usando perfil de usuario existente',
languageSkipped: 'Usando idioma existente',
// Project type
projectTypeQuestion: '¿Qué tipo de proyecto estás configurando?',
greenfield: 'Greenfield',
greenfieldDesc: 'proyecto nuevo desde cero',
brownfield: 'Brownfield',
brownfieldDesc: 'proyecto existente',
// IDE selection
ideQuestion: 'Seleccione IDE(s):',
ideHint: 'Espacio para seleccionar, Enter para confirmar',
recommended: 'Recomendado',
// Progress messages
installingCore: 'Instalando AIOS core...',
installingIDE: 'Configurando IDEs...',
installingDeps: 'Instalando dependencias...',
configuringEnv: 'Configurando ambiente...',
validating: 'Validando instalación...',
// Status
success: 'Éxito',
error: 'Error',
warning: 'Advertencia',
skipped: 'Omitido',
// Completion
installComplete: '¡Instalación Completa!',
readyToUse: 'Tu proyecto AIOS está listo.',
nextSteps: 'Próximos pasos:',
quickStart: 'Inicio Rápido:',
quickStartAgents: 'Habla con tus agentes IA: @dev, @qa, @architect',
quickStartStory: 'Crea una story: @pm *create-story',
quickStartHelp: 'Obtén ayuda: @aios-master *help',
// Cancellation
cancelConfirm: '¿Cancelar instalación?',
cancelled: 'Instalación cancelada.',
tryAgain: 'Ejecute `npx aios-core init` para intentar nuevamente.',
continuing: 'Continuando instalación...',
// Pro Installation Wizard (pro-setup.js)
proWizardTitle: 'Asistente de Instalación AIOS Pro',
proWizardSubtitle: 'Contenido y Funciones Premium',
proLicenseActivation: 'Activación de Licencia',
proContentInstallation: 'Instalación del Contenido Pro',
proVerification: 'Verificación',
proHowActivate: '¿Cómo te gustaría activar Pro?',
proLoginOrCreate: 'Iniciar sesión o crear cuenta (Recomendado)',
proEnterKey: 'Ingresar clave de licencia (legado)',
proEmailLabel: 'Email:',
proEmailRequired: 'Email es obligatorio',
proEmailInvalid: 'Por favor, ingrese una dirección de email válida',
proVerifyingAccess: 'Verificando tu acceso...',
proNoAccess: 'No se encontró acceso AIOS Pro para este email.',
proContactSupport: 'Si cree que esto es un error, contacte al soporte:',
proPurchase: 'Comprar Pro: https://pro.synkra.ai',
proEmailNotBuyer: 'Email no encontrado en la lista de compradores Pro.',
proAccessConfirmedAccount: '¡Acceso Pro confirmado! Cuenta encontrada.',
proAccessConfirmedCreate: '¡Acceso Pro confirmado! Vamos a crear tu cuenta.',
proPasswordLabel: 'Contraseña:',
proPasswordMin: 'La contraseña debe tener al menos {min} caracteres',
proAuthenticating: 'Autenticando...',
proAuthSuccess: 'Autenticado exitosamente.',
proEmailNotVerified: 'Email aún no verificado. Revise su bandeja de entrada y haga clic en el enlace de verificación.',
proCheckingEvery: '(Verificando cada 5 segundos... tiempo límite de 10 minutos)',
proEmailVerified: '¡Email verificado!',
proVerificationTimeout: 'Verificación de email expiró después de 10 minutos.',
proRunAgain: 'Ejecute el instalador nuevamente para reintentar.',
proIncorrectPassword: 'Contraseña incorrecta. {remaining} intento(s) restante(s).',
proMaxAttempts: 'Número máximo de intentos de inicio de sesión alcanzado.',
proForgotPassword: '¿Olvidó su contraseña? Visite https://aios-license-server.vercel.app/reset-password',
proContactSupportEmail: 'O abra un issue: https://github.com/SynkraAI/aios-core/issues',
proAuthFailed: 'Error de autenticación: {message}',
proCreateAccount: 'Cree su cuenta AIOS Pro para comenzar.',
proChoosePassword: 'Elija una contraseña:',
proConfirmPassword: 'Confirme la contraseña:',
proPasswordsNoMatch: 'Las contraseñas no coinciden',
proCreatingAccount: 'Creando cuenta...',
proAccountCreated: '¡Cuenta creada! Email de verificación enviado.',
proAccountExists: 'La cuenta ya existe. Cambiando a inicio de sesión...',
proAccountFailed: 'Error al crear la cuenta: {message}',
proCheckEmail: 'Por favor, revise su email y haga clic en el enlace de verificación.',
proWaitingVerification: 'Esperando verificación de email...',
proAfterVerifying: 'Después de verificar, la instalación continuará automáticamente.',
proPressResend: '[Presione R para reenviar email de verificación]',
proVerificationResent: 'Email de verificación reenviado.',
proCouldNotResend: 'No se pudo reenviar: {message}',
proRunAgainRetry: 'Ejecute el instalador nuevamente para reintentar la verificación.',
proValidatingSubscription: 'Validando suscripción Pro...',
proSubscriptionConfirmed: '¡Suscripción Pro confirmada! Licencia: {key}',
proNoSubscription: 'No se encontró suscripción Pro activa para este email.',
proPurchaseAt: 'Compre Pro en https://pro.synkra.ai',
proSeatLimit: 'Desactive otro dispositivo o actualice su licencia.',
proAlreadyActivated: 'Licencia Pro ya activada para esta cuenta.',
proActivationFailed: 'Error de activación: {message}',
proEnterKeyPrompt: 'Ingrese su clave de licencia Pro:',
proKeyRequired: 'Clave de licencia es obligatoria',
proKeyInvalid: 'Formato inválido. Esperado: PRO-XXXX-XXXX-XXXX-XXXX',
proKeyValidated: 'Licencia validada: {key}',
proModuleNotAvailable: 'Módulo de licencia Pro no disponible. Asegúrese de que @aios-fullstack/pro esté instalado.',
proModuleBootstrap: 'Módulo de licencia Pro no encontrado localmente. Instalando @aios-fullstack/pro...',
proServerUnreachable: 'Servidor de licencias inaccesible. Verifique su conexión a internet e intente nuevamente.',
proVerifyingAccessShort: 'Verificando acceso...',
proAccessConfirmed: 'Acceso Pro confirmado.',
proBuyerCheckUnavailable: 'Verificación de comprador no disponible, procediendo con inicio de sesión...',
proLoginFailedSignup: 'Inicio de sesión fallido, intentando registro...',
proAccountCreatedVerify: 'Cuenta creada. ¡Email de verificación enviado!',
proAccountExistsWrongPw: 'La cuenta existe pero la contraseña es incorrecta.',
proAuthFailedShort: 'Error de autenticación.',
proValidatingKey: 'Validando licencia {key}...',
proInvalidKey: 'Clave de licencia inválida.',
proExpiredKey: 'Clave de licencia expirada.',
proMaxActivations: 'Número máximo de activaciones alcanzado para esta clave.',
proRateLimited: 'Demasiadas solicitudes. Espere e intente nuevamente.',
proValidationFailed: 'Validación de licencia fallida: {message}',
proInvalidKeyFormat: 'Formato de clave inválido: {key}. Esperado: PRO-XXXX-XXXX-XXXX-XXXX',
proScaffolding: 'Instalando contenido pro...',
proScaffoldingProgress: 'Instalando: {message}',
proContentInstalled: 'Contenido Pro instalado ({count} archivos)',
proScaffoldFailed: 'Instalación fallida',
proScaffoldError: 'Error de instalación: {message}',
proInitPackageJson: 'Inicializando package.json...',
proPackageJsonCreated: 'package.json creado',
proPackageJsonFailed: 'Error al crear package.json',
proInstallingPackage: 'Instalando @aios-fullstack/pro...',
proPackageInstalled: 'Paquete Pro instalado',
proPackageInstallFailed: 'Error al instalar paquete Pro',
proScaffolderNotAvailable: 'Scaffolder Pro no disponible. Asegúrese de que @aios-fullstack/pro esté instalado.',
proFilesInstalled: 'Archivos instalados: {count}',
proSquads: 'Squads: {names}',
proConfigs: 'Configs: {count} archivos',
proFeaturesUnlocked: 'Funciones desbloqueadas: {count}',
proInstallComplete: '¡Instalación de AIOS Pro completa!',
proNeedHelp: '¿Necesita ayuda? Ejecute: npx aios-pro recover',
proCISetEnv: 'Modo CI: Configure las variables AIOS_PRO_EMAIL + AIOS_PRO_PASSWORD o AIOS_PRO_KEY.',
proVerificationFailed: 'Verificación fallida: {message}',
proPackageNotFound: 'Paquete Pro no encontrado después de npm install. Verifique la salida de npm.',
proScaffolderNotFound: 'Módulo scaffolder Pro no encontrado.',
proNpmInitFailed: 'npm init falló: {message}',
proNpmInstallFailed: 'npm install @aios-fullstack/pro falló: {message}. Intente manualmente: npm install @aios-fullstack/pro',
},
};
// Current language (default: English)
let currentLanguage = 'en';
/**
* Set current language
* @param {string} lang - Language code (en, pt, es)
*/
function setLanguage(lang) {
if (TRANSLATIONS[lang]) {
currentLanguage = lang;
}
}
/**
* Get current language
* @returns {string} Current language code
*/
function getLanguage() {
return currentLanguage;
}
/**
* Get translated string
* @param {string} key - Translation key
* @returns {string} Translated string
*/
function t(key) {
return TRANSLATIONS[currentLanguage][key] || TRANSLATIONS['en'][key] || key;
}
/**
* Get translated string with placeholder substitution.
* Placeholders use {name} syntax.
*
* @param {string} key - Translation key
* @param {Object} [params={}] - Placeholder values
* @returns {string} Translated string with substitutions
* @example tf('proIncorrectPassword', { remaining: 2 })
*/
function tf(key, params = {}) {
let str = t(key);
for (const [k, v] of Object.entries(params)) {
str = str.replace(new RegExp(`\\{${k}\\}`, 'g'), String(v));
}
return str;
}
/**
* Get language selection choices
* @returns {Array} Inquirer choices
*/
function getLanguageChoices() {
return [
{ name: 'English', value: 'en' },
{ name: 'Português', value: 'pt' },
{ name: 'Español', value: 'es' },
];
}
module.exports = {
setLanguage,
getLanguage,
t,
tf,
getLanguageChoices,
TRANSLATIONS,
};