
export type Language = 'nl' | 'en';

export const translations = {
  nl: {
    common: {
      save: 'Opslaan',
      back: 'Terug',
      search: 'Zoeken...',
      cancel: 'Annuleren',
      delete: 'Verwijderen',
      loading: 'Laden...',
      verified: 'Geverifieerd',
      hospital: 'Ziekenhuis',
      doctor: 'Arts',
      attention: 'Aandacht nodig',
      total: 'Totaal',
      confirm: 'Bevestigen',
      address: 'Adres',
      phone: 'Telefoon',
      noDocuments: 'Geen documenten',
      noReports: 'Geen verslagen gevonden',
      permissionDenied: 'Toegang geweigerd: Alleen beheerders.',
      approve: 'Goedkeuren',
      reject: 'Afwijzen'
    },
    settings: {
      title: 'Instellingen',
      companyInfo: 'Bedrijfsinformatie',
      branding: 'Branding',
      companyName: 'Bedrijfsnaam',
      logoUrl: 'Logo uploaden',
      logoPreview: 'Logo Voorbeeld',
      legal: 'Juridisch & Facturatie',
      address: 'Bedrijfsadres',
      kvk: 'KvK Nummer',
      btw: 'BTW Nummer',
      iban: 'IBAN',
      footerInfo: 'Factuur Voettekst',
      footerPlaceholder: 'Bijv. Bedankt voor de samenwerking. Betaaltermijn 14 dagen.',
      success: 'Instellingen succesvol bijgewerkt!',
      uploadLogo: 'Logo uploaden',
      changeLogo: 'Logo wijzigen'
    },
    statuses: {
      'Stabiel': 'Stabiel',
      'Aandacht nodig': 'Aandacht nodig',
      'In Behandeling': 'In Behandeling',
      'Zorgplan herzien': 'Zorgplan herzien'
    },
    categories: {
      'Medicatie': 'Medicatie',
      'ADL': 'ADL',
      'Welzijn': 'Welzijn',
      'Incident': 'Incident',
      'Algemene observatie': 'Algemene observatie'
    },
    login: {
      title: 'ZorgPortaal',
      subtitle: 'Freelance Beheer & Zorg',
      email: 'E-mailadres',
      password: 'Wachtwoord',
      remember: 'Onthoud mij',
      forgot: 'Wachtwoord vergeten?',
      submit: 'Inloggen',
      noAccount: 'Nog geen account?',
      signupLink: 'Registreer nu',
      help: 'Hulp nodig? Bel 0800-ZORG-123',
      terms: 'voorwaarden',
      inactiveAccount: 'Account is nog niet geactiveerd door de beheerder.',
      invalidCredentials: 'E-mail of wachtwoord is onjuist.'
    },
    nav: {
      dashboard: 'Start',
      clients: 'Cliënten',
      staff: 'Team',
      timeLogs: 'Uren',
      billing: 'Geld'
    },
    dashboard: {
      welcome: 'Welkom terug',
      search: 'Zoek cliënt of dossier...',
      activeClients: 'Actieve cliënten',
      loggedHours: 'Uren deze week',
      staffOnline: 'Team online',
      clockIn: 'Klok in',
      clockOut: 'Klok uit',
      assignmentAlert: 'Toewijzing nodig',
      quickActions: 'Snelle Acties',
      actions: {
        addClient: 'Cliënt+',
        newReport: 'Verslag',
        hours: 'Uren',
        billing: 'Geld'
      },
      alertText: 'Geen toewijzing ziekenhuis',
      locationVerifying: 'Locatie verifiëren...',
      locationVerified: 'Locatie geverifieerd',
      locationError: 'Niet op werklocatie',
      locationRequired: 'Locatie is vereist om in te klokken.',
      locationTooFar: 'U bent te ver verwijderd van uw werkplek om in te klokken.',
      enableGPS: 'Zet uw GPS aan voor werkverificatie.',
      assignmentCenter: 'Toewijzingscentrum',
      selectStaff: 'Selecteer Teamlid',
      selectClient: 'Selecteer Cliënt',
      workLocation: 'Werklocatie (GPS)',
      latitude: 'Breedtegraad',
      longitude: 'Lengtegraad',
      saveAssignment: 'Toewijzing Opslaan',
      assignmentSuccess: 'Toewijzing succesvol bijgewerkt',
      clientLocationInfo: 'Geregistreerd adres van cliënt'
    },
    clients: {
      title: 'Cliënten Dossier',
      assignHospital: 'Toewijzen aan ziekenhuis',
      hospital: 'Ziekenhuis',
      doctor: 'Specialist/Arts',
      saveAssignment: 'Toewijzing Opslaan',
      search: 'Zoek cliënt...',
      lastVisit: 'Laatste contact',
      delete: 'Verwijder',
      confirmDelete: 'Verwijder dossier?'
    },
    staff: {
      title: 'Mijn Team',
      pendingTitle: 'Wacht op Goedkeuring',
      workload: 'Cliënten',
      hoursThisWeek: 'Uren deze week',
      status: 'Status',
      active: 'Actief',
      offline: 'Offline',
      support: 'Begeleider',
      assistant: 'Sociaal Assistent',
      intern: 'Stagiair',
      removeMember: 'Teamlid verwijderen',
      confirmRemove: 'Weet u zeker dat u dit teamlid wilt verwijderen? (Ontslag/Vertrek)',
      addMember: 'Teamlid Toevoegen',
      fullName: 'Volledige Naam',
      email: 'E-mailadres',
      password: 'Wachtwoord',
      bigNumber: 'BIG-nummer',
      role: 'Functie',
      admin: 'Beheerder',
      staff: 'Sociaal Werker',
    },
    timeLogs: {
      title: 'Urenregistratie',
      addLog: 'Uren toevoegen',
      date: 'Datum',
      hours: 'Aantal uren',
      notes: 'Omschrijving werkzaamheden',
      save: 'Opslaan'
    },
    detail: {
      back: 'Terug',
      personal: 'Dossier',
      plan: 'Toewijzing',
      files: 'Documenten',
      report: 'Verslagen',
      newReport: 'Nieuw verslag',
      referralTitle: 'Ziekenhuis Toewijzing',
      noReferral: 'Nog geen ziekenhuis toegewezen',
      uploadBtn: 'Document Uploaden',
      filePrivacyNote: 'Bestanden worden AVG-conform opgeslagen.',
      viewingDoc: 'Document bekijken',
      linkCopied: 'Link gekopieerd naar klembord',
      downloading: 'Bestand wordt gedownload...',
      secureDownload: 'VEILIG DOWNLOADEN',
      securePreview: 'Veilige Voorvertoning',
      securePreviewNote: 'Dit document is beveiligd. Download het bestand voor volledige weergave.',
      institutionPlaceholder: 'Naam instelling...',
      doctorPlaceholder: 'Naam arts...',
      selfReliance: 'Zelfredzaamheid'
    },
    billing: {
      title: 'Facturatie & Uren',
      overview: 'Overzicht',
      total: 'Totaal te factureren',
      help: 'Hulp',
      selectAll: 'Selecteer alles',
      infoTitle: 'Facturatie Info',
      infoBody: 'Uren worden automatisch gegroepeerd per cliënt conform NZA standaarden.',
      missingCode: 'NZA Code Ontbreekt',
      selected: 'geselecteerd',
      exportCsv: 'Exporteer CSV',
      exportPdf: 'Exporteer PDF',
      hourlyRate: 'Uurtarief',
      editRate: 'Tarief aanpassen'
    },
    invoice: {
      title: 'Factuur Preview',
      print: 'Factuur Afdrukken',
      billTo: 'Factureren aan',
      from: 'Van',
      date: 'Datum',
      description: 'Omschrijving',
      amount: 'Bedrag',
      subtotal: 'Subtotaal',
      vat: 'BTW',
      total: 'Totaalbedrag',
      bankAccount: 'IBAN',
      kvk: 'KvK nummer',
      invoiceNumber: 'Factuurnummer',
      dueDate: 'Vervaldatum',
      paymentTerms: 'Betaaltermijn',
      nzaCode: 'NZA Code',
      activity: 'Activiteit'
    },
    newReport: {
      title: 'Nieuwe Rapportage',
      back: 'Terug',
      client: 'Cliënt',
      category: 'Categorie',
      reportLabel: 'Tekst',
      save: 'Verslag Opslaan',
      refine: 'Verbeteren',
      placeholder: 'Noteer observaties...'
    },
    profile: {
      title: 'Profiel',
      personalInfo: 'Zakelijke Informatie',
      name: 'Naam',
      nurse: 'Freelance Sociaal Werker',
      bigNumber: 'BIG-nummer',
      email: 'E-mailadres',
      settings: 'Instellingen',
      companySettings: 'Bedrijfsinstellingen',
      notifications: 'Meldingen',
      language: 'Taal',
      role: 'Functie',
      logout: 'Uitloggen',
      changePassword: 'Wachtwoord wijzigen',
      currentPassword: 'Huidig wachtwoord',
      newPassword: 'Nieuw wachtwoord',
      confirmNewPassword: 'Bevestig nieuw wachtwoord',
      passwordMismatch: 'Wachtwoorden komen niet overeen.',
      passwordInvalid: 'Huidig wachtwoord is onjuist.',
      passwordShort: 'Wachtwoord moet minimaal 6 tekens zijn.',
      passwordChanged: 'Wachtwoord succesvol gewijzigd!'
    },
    addClient: {
      title: 'Nieuwe Cliënt',
      name: 'Volledige Naam',
      birthDate: 'Geboortedatum',
      status: 'Status',
      save: 'Aanmaken',
      error: 'Vul alle velden in.',
      privacyNote: 'Privacybewust registreren: Foto\'s worden niet opgeslagen conform de lokale richtlijnen.',
      address: 'Adres',
      latitude: 'Breedtegraad',
      longitude: 'Lengtegraad',
      getCurrentLocation: 'Huidige locatie ophalen'
    },
    signup: {
      title: 'Nieuw Account',
      subtitle: 'Word lid van het netwerk',
      pendingTitle: 'Aanvraag Ingediend',
      pendingMessage: 'Bedankt voor je registratie. Een beheerder moet je account goedkeuren voordat je kunt inloggen.',
      fullName: 'Volledige Naam',
      bigNumber: 'BIG-nummer',
      email: 'E-mailadres',
      password: 'Wachtwoord',
      confirmPassword: 'Bevestig Wachtwoord',
      termsAgree: 'Ik ga akkoord met de',
      privacy: 'privacyverklaring',
      submit: 'Registreer nu',
      hasAccount: 'Al een account?',
      loginLink: 'Log hier in',
      backToLogin: 'Terug naar inloggen'
    },
    assistant: {
        title: 'Social Assistant',
        systemInstruction: 'Je bent een behulpzame assistent voor sociaal werkers.',
        connecting: 'Verbinden...',
        listening: 'Aan het luisteren...',
        speaking: 'Aan het praten...',
        error: 'Fout bij verbinden',
        placeholder: 'Zeg iets...',
        close: 'Sluiten'
    }
  },
  en: {
    common: {
      save: 'Save',
      back: 'Back',
      search: 'Search...',
      cancel: 'Cancel',
      delete: 'Delete',
      loading: 'Loading...',
      verified: 'Verified',
      hospital: 'Hospital',
      doctor: 'Doctor',
      attention: 'Needs Attention',
      total: 'Total',
      confirm: 'Confirm',
      address: 'Address',
      phone: 'Phone',
      noDocuments: 'No documents',
      noReports: 'No reports found',
      permissionDenied: 'Access Denied: Admin only.',
      approve: 'Approve',
      reject: 'Reject'
    },
    settings: {
      title: 'Settings',
      companyInfo: 'Company Information',
      branding: 'Branding',
      companyName: 'Company Name',
      logoUrl: 'Upload Logo',
      logoPreview: 'Logo Preview',
      legal: 'Legal & Invoicing',
      address: 'Business Address',
      kvk: 'CoC Number',
      btw: 'VAT Number',
      iban: 'IBAN',
      footerInfo: 'Invoice Footer',
      footerPlaceholder: 'e.g. Thank you for your business. Payment due in 14 days.',
      success: 'Settings updated successfully!',
      uploadLogo: 'Upload Logo',
      changeLogo: 'Change Logo'
    },
    statuses: {
      'Stabiel': 'Stable',
      'Aandacht nodig': 'Needs Attention',
      'In Behandeling': 'In Treatment',
      'Zorgplan herzien': 'Review Plan'
    },
    categories: {
      'Medicatie': 'Medication',
      'ADL': 'ADL',
      'Well-being': 'Well-being',
      'Incident': 'Incident',
      'Algemene observatie': 'General Observation'
    },
    login: {
      title: 'ZorgPortaal',
      subtitle: 'Freelance Management & Care',
      email: 'Email address',
      password: 'Password',
      remember: 'Remember me',
      forgot: 'Forgot password?',
      submit: 'Login',
      noAccount: "Don't have an account?",
      signupLink: 'Sign up now',
      help: 'Need help? Call 0800-CARE-123',
      terms: 'terms',
      inactiveAccount: 'Account is not yet activated by an administrator.',
      invalidCredentials: 'Email or password is incorrect.'
    },
    nav: {
      dashboard: 'Home',
      clients: 'Clients',
      staff: 'Team',
      timeLogs: 'Logs',
      billing: 'Billing'
    },
    dashboard: {
      welcome: 'Welcome back',
      search: 'Search client or file...',
      activeClients: 'Active clients',
      loggedHours: 'Hours this week',
      staffOnline: 'Team online',
      clockIn: 'Clock In',
      clockOut: 'Clock Out',
      assignmentAlert: 'Needs Assignment',
      quickActions: 'Quick Actions',
      actions: {
        addClient: 'Client+',
        newReport: 'Report',
        hours: 'Hours',
        billing: 'Money'
      },
      alertText: 'No hospital assignment',
      locationVerifying: 'Verifying location...',
      locationVerified: 'Location verified',
      locationError: 'Not at work location',
      locationRequired: 'Location is required to clock in.',
      locationTooFar: 'You are too far from your assigned workplace to clock in.',
      enableGPS: 'Please enable your GPS for work verification.',
      assignmentCenter: 'Assignment Center',
      selectStaff: 'Select Team Member',
      selectClient: 'Select Client',
      workLocation: 'Work Location (GPS)',
      latitude: 'Latitude',
      longitude: 'Longitude',
      saveAssignment: 'Save Assignment',
      assignmentSuccess: 'Assignment successfully updated',
      clientLocationInfo: "Client's registered address"
    },
    clients: {
      title: 'Client Files',
      assignHospital: 'Assign to Hospital',
      hospital: 'Hospital',
      doctor: 'Specialist/Doctor',
      saveAssignment: 'Save Assignment',
      search: 'Search...',
      lastVisit: 'Last contact',
      delete: 'Delete',
      confirmDelete: 'Delete file?'
    },
    staff: {
      title: 'My Team',
      pendingTitle: 'Pending Approvals',
      workload: 'Clients',
      hoursThisWeek: 'Hours this week',
      status: 'Status',
      active: 'Active',
      offline: 'Offline',
      support: 'Support Worker',
      assistant: 'Social Assistant',
      intern: 'Intern',
      removeMember: 'Remove Team Member',
      confirmRemove: 'Are you sure you want to remove this team member? (Resignation/Departure)',
      addMember: 'Add Team Member',
      fullName: 'Full Name',
      email: 'Email address',
      password: 'Password',
      bigNumber: 'BIG-number',
      role: 'Role',
      admin: 'Administrator',
      staff: 'Social Worker',
    },
    timeLogs: {
      title: 'Time Logging',
      addLog: 'Log Hours',
      date: 'Date',
      hours: 'Hours',
      notes: 'Description of work',
      save: 'Save'
    },
    invoice: {
      title: 'Invoice Preview',
      print: 'Print Invoice',
      billTo: 'Bill To',
      from: 'From',
      date: 'Date',
      description: 'Description',
      amount: 'Amount',
      subtotal: 'Subtotal',
      vat: 'VAT',
      total: 'Total Amount',
      bankAccount: 'IBAN',
      kvk: 'CoC Number',
      invoiceNumber: 'Invoice Number',
      dueDate: 'Due Date',
      paymentTerms: 'Payment terms',
      nzaCode: 'NZA Code',
      activity: 'Activity'
    },
    detail: {
      back: 'Back',
      personal: 'File',
      plan: 'Assignment',
      files: 'Documents',
      report: 'Reports',
      newReport: 'New report',
      referralTitle: 'Hospital Referral',
      noReferral: 'No hospital assigned yet',
      uploadBtn: 'Upload Document',
      filePrivacyNote: 'Files are stored GDPR compliant.',
      viewingDoc: 'Viewing Document',
      linkCopied: 'Link copied to clipboard',
      downloading: 'File download started...',
      secureDownload: 'SECURE DOWNLOAD',
      securePreview: 'Secure Preview',
      securePreviewNote: 'This document is secured. Download the file for full viewing.',
      institutionPlaceholder: 'Institution name...',
      doctorPlaceholder: 'Doctor name...',
      selfReliance: 'Self-reliance'
    },
    billing: {
      title: 'Billing & Hours',
      overview: 'Overview',
      total: 'Total to bill',
      help: 'Help',
      selectAll: 'Select all',
      infoTitle: 'Billing Info',
      infoBody: 'Hours are automatically grouped per client in accordance with NZA standards.',
      missingCode: 'NZA Code Missing',
      selected: 'selected',
      exportCsv: 'Export CSV',
      exportPdf: 'Export PDF',
      hourlyRate: 'Hourly Rate',
      editRate: 'Adjust Rate'
    },
    newReport: {
      title: 'New Report',
      back: 'Back',
      client: 'Client',
      category: 'Category',
      reportLabel: 'Text',
      save: 'Save Report',
      refine: 'Refine',
      placeholder: 'Write observations...'
    },
    profile: {
      title: 'Profile',
      personalInfo: 'Business Info',
      name: 'Name',
      nurse: 'Freelance Social Worker',
      bigNumber: 'BIG Number',
      email: 'Email address',
      settings: 'Settings',
      companySettings: 'Company Settings',
      notifications: 'Notifications',
      language: 'Language',
      role: 'Role',
      logout: 'Logout',
      changePassword: 'Change Password',
      currentPassword: 'Current Password',
      newPassword: 'New Password',
      confirmNewPassword: 'Confirm New Password',
      passwordMismatch: 'Passwords do not match.',
      passwordInvalid: 'Current password is incorrect.',
      passwordShort: 'Password must be at least 6 characters.',
      passwordChanged: 'Password changed successfully!'
    },
    addClient: {
      title: 'New Client',
      name: 'Full Name',
      birthDate: 'Date of Birth',
      status: 'Status',
      save: 'Create',
      error: 'Fill all fields.',
      privacyNote: 'Privacy-aware registration: Photos are not collected in accordance with local guidelines.',
      address: 'Address',
      latitude: 'Latitude',
      longitude: 'Longitude',
      getCurrentLocation: 'Get current location'
    },
    signup: {
      title: 'New Account',
      subtitle: 'Join the network',
      pendingTitle: 'Application Submitted',
      pendingMessage: 'Thank you for registering. An administrator must approve your account before you can log in.',
      fullName: 'Full Name',
      bigNumber: 'BIG Number',
      email: 'Email address',
      password: 'Password',
      confirmPassword: 'Confirm Password',
      termsAgree: 'I agree to the',
      privacy: 'privacy policy',
      submit: 'Sign Up',
      hasAccount: 'Already have an account?',
      loginLink: 'Login here',
      backToLogin: 'Back to Login'
    },
    assistant: {
        title: 'Social Assistant',
        systemInstruction: 'You are a helpful assistant for social workers.',
        connecting: 'Connecting...',
        listening: 'Listening...',
        speaking: 'Speaking...',
        error: 'Connection error',
        placeholder: 'Say something...',
        close: 'Close'
    }
  }
};
