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 zal AI-assistenten 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);
}
