export const translations = { en: { title: 'AI Stack Deployer', subtitle: 'Deploy your personal AI assistant in seconds', chooseStackName: 'Choose Your Stack Name', availableAt: 'Your AI assistant will be available at', stackName: 'Stack Name', placeholder: 'e.g., john-dev', inputHint: '3-20 characters, lowercase letters, numbers, and hyphens only', deployBtn: 'Deploy My AI Stack', deploying: 'Deploying Your Stack', stack: 'Stack', initializing: 'Initializing deployment...', successMessage: 'Your AI coding assistant is ready to use', stackNameLabel: 'Stack Name:', openStack: 'Open My AI Stack', deployAnother: 'Deploy Another Stack', tryAgain: 'Try Again', poweredBy: 'Powered by', deploymentComplete: 'Deployment Complete', deploymentFailed: 'Deployment Failed', nameRequired: 'Name is required', nameLengthError: 'Name must be between 3 and 20 characters', nameCharsError: 'Only lowercase letters, numbers, and hyphens allowed', nameHyphenError: 'Cannot start or end with a hyphen', nameReserved: 'This name is reserved', checkingAvailability: 'Checking availability...', nameAvailable: '✓ Name is available!', nameNotAvailable: 'Name is not available', checkFailed: 'Failed to check availability', connectionLost: 'Connection lost. Please refresh and try again.', deployingText: 'Deploying...', yournamePlaceholder: 'yourname' }, nl: { title: 'AI Stack Deployer', subtitle: 'Implementeer je persoonlijke AI in seconden', chooseStackName: 'Kies Je Stack Naam', availableAt: 'Je AI-assistenten zal beschikbaar zijn op', stackName: 'Stack Naam', placeholder: 'bijv., Oussama', inputHint: '3-20 tekens, kleine letters, cijfers en koppeltekens', deployBtn: 'Implementeer Mijn AI Stack', deploying: 'Stack Wordt Geïmplementeerd', stack: 'Stack', initializing: 'Implementatie initialiseren...', successMessage: 'Je AI programmeerassistent is klaar voor gebruik', stackNameLabel: 'Stack Naam:', openStack: 'Open Mijn AI Stack', deployAnother: 'Implementeer Nog Een Stack', tryAgain: 'Probeer Opnieuw', poweredBy: 'Mogelijk gemaakt door', deploymentComplete: 'Implementatie Voltooid', deploymentFailed: 'Implementatie Mislukt', nameRequired: 'Naam is verplicht', nameLengthError: 'Naam moet tussen 3 en 20 tekens zijn', nameCharsError: 'Alleen kleine letters, cijfers en koppeltekens toegestaan', nameHyphenError: 'Kan niet beginnen of eindigen met een koppelteken', nameReserved: 'Deze naam is gereserveerd', checkingAvailability: 'Beschikbaarheid controleren...', nameAvailable: '✓ Naam is beschikbaar!', nameNotAvailable: 'Naam is niet beschikbaar', checkFailed: 'Controle mislukt', connectionLost: 'Verbinding verbroken. Ververs de pagina en probeer opnieuw.', deployingText: 'Implementeren...', yournamePlaceholder: 'jouwnaam' }, ar: { title: 'AI Stack Deployer', subtitle: 'انشر مساعد البرمجة الذكي الخاص بك في ثوانٍ', chooseStackName: 'اختر اسم المشروع', availableAt: 'سيكون مساعدك الذكي متاحًا على', stackName: 'اسم المشروع', placeholder: 'مثال: أحمد-dev', inputHint: '3-20 حرف، أحرف صغيرة وأرقام وشرطات فقط', deployBtn: 'انشر مشروعي', deploying: 'جاري النشر', stack: 'المشروع', initializing: 'جاري التهيئة...', successMessage: 'مساعد البرمجة الذكي جاهز للاستخدام', stackNameLabel: 'اسم المشروع:', openStack: 'افتح مشروعي', deployAnother: 'انشر مشروع آخر', tryAgain: 'حاول مرة أخرى', poweredBy: 'مدعوم من', deploymentComplete: 'تم النشر بنجاح', deploymentFailed: 'فشل النشر', nameRequired: 'الاسم مطلوب', nameLengthError: 'يجب أن يكون الاسم بين 3 و 20 حرفًا', nameCharsError: 'يُسمح فقط بالأحرف الصغيرة والأرقام والشرطات', nameHyphenError: 'لا يمكن أن يبدأ أو ينتهي بشرطة', nameReserved: 'هذا الاسم محجوز', checkingAvailability: 'جاري التحقق...', nameAvailable: '✓ الاسم متاح!', nameNotAvailable: 'الاسم غير متاح', checkFailed: 'فشل التحقق', connectionLost: 'انقطع الاتصال. يرجى تحديث الصفحة والمحاولة مرة أخرى.', deployingText: 'جاري النشر...', yournamePlaceholder: 'اسمك' } } as const; export type Language = keyof typeof translations; export type TranslationKey = keyof typeof translations.en; export function detectLanguage(): Language { const browserLang = navigator.language?.split('-')[0].toLowerCase(); if (browserLang && browserLang in translations) { return browserLang as Language; } return 'en'; } export function getStoredLanguage(): Language { const stored = localStorage.getItem('preferredLanguage'); if (stored && stored in translations) { return stored as Language; } return detectLanguage(); } export function storeLanguage(lang: Language): void { localStorage.setItem('preferredLanguage', lang); }