export type Language = 'en' | 'fr' | 'es' | 'de'

export const translations = {
  en: {
    // Settings
    settings: 'Settings',
    editor: 'Editor',
    layout: 'Layout',
    done: 'Done',
    language: 'Language',

    // Layout Config
    layoutConfiguration: 'Layout Configuration',
    leftColumn: 'Left Column',
    rightColumn: 'Right Column',
    bottomArea: 'Bottom Area',
    show: 'Show',
    hide: 'Hide',
    paneTabManagement: 'Pane Tab Management',

    // Themes
    syntaxTheme: 'Syntax Theme',
    skeletonUITheme: 'Skeleton UI Theme',
    colorSchemeMode: 'Color Scheme',
    showLineNumbers: 'Show Line Numbers',
    showLineNumbersDescription: 'Display line numbers in the code editor',
    vimMode: 'Vim Mode',
    vimModeDescription: 'Enable Vim keybindings in the code editor',
    hydraBackground: 'Hydra Background',
    hydraBackgroundDescription: 'Enable the Hydra visual synthesis background (disable to save GPU resources)',
    fontFamily: 'Font Family',
    fontFamilyDescription: 'Choose the font for the code editor',
    fontSize: 'Font Size',
    lineHeight: 'Line Height',

    // Layout
    textArea: 'Text Area',
    codeEditor: 'Code Editor',
    consoleOutput: 'ฅ^•ﻌ•^ฅ >> output',
    tutorials: 'Tutorials',
    musicExamples: 'Music Examples',
    projectExplorer: 'Project Explorer',
    userDirectory: 'User Directory',
    addComponent: '+ Add Component',
    hidden: 'Hidden',

    // Common
    close: 'Close',
    clear: 'Clear',
    selectCodeFolder: 'Select code folder',
    cancel: 'Cancel',
    select: 'Select',
    save: 'Save',
    loading: 'Loading...',
    emptyDirectory: 'Empty directory',
    unsavedChanges: 'Unsaved Changes',
    unsavedChangesMessage: 'You have unsaved changes. Are you sure you want to close this tab?',

    // File Explorer Modal
    selectFolder: 'Select Folder',
    saveFile: 'Save File',
    fileName: 'File name:',
    enterFileName: 'Enter file name...',

    // Panes
    menu: 'Menu',
    notes: 'Notes',
    scratch: 'Scratch',
    workspace: 'Workspace',
    draft: 'Draft',

    // Init - User Dir Picker
    initUserDirTitle: 'Choose Your User Directory',
    initUserDirDescription: 'Select a folder where Renardo will store your samples, sounds and settings.',
    initUserDirSelectButton: 'Select This Folder',
    initUserDirCurrentSelection: 'Selected folder:',

    // Init - Resources Modal
    initResourcesTitle: 'Missing Resources',
    initResourcesDescription: 'The following resources are needed to use Renardo. Download them now?',
    initSamplesLabel: 'Default Sample Pack',
    initSccodeLabel: 'SuperCollider Sound Library',
    initDownloadButton: 'Download Missing Resources',
    initDownloadingTitle: 'Downloading...',
    initDownloadCompleteTitle: 'Download Complete',
    initDownloadErrorTitle: 'Download Error',
    initSkipButton: 'Skip for now',
    initDownloadLogs: 'Download logs'
  },
  fr: {
    // Settings
    settings: 'Paramètres',
    editor: 'Éditeur',
    layout: 'Disposition',
    done: 'Terminé',
    language: 'Langue',

    // Layout Config
    layoutConfiguration: 'Configuration de la disposition',
    leftColumn: 'Colonne gauche',
    rightColumn: 'Colonne droite',
    bottomArea: 'Zone inférieure',
    show: 'Afficher',
    hide: 'Masquer',
    paneTabManagement: 'Gestion des onglets',

    // Themes
    syntaxTheme: 'Thème de syntaxe',
    skeletonUITheme: 'Thème de l\'interface',
    colorSchemeMode: 'Schéma de couleurs',
    showLineNumbers: 'Afficher les numéros de ligne',
    showLineNumbersDescription: 'Afficher les numéros de ligne dans l\'éditeur de code',
    vimMode: 'Mode Vim',
    vimModeDescription: 'Activer les raccourcis Vim dans l\'éditeur de code',
    hydraBackground: 'Fond Hydra',
    hydraBackgroundDescription: 'Activer la synthèse visuelle Hydra en fond (désactiver pour économiser le GPU)',
    fontFamily: 'Police de caractères',
    fontFamilyDescription: 'Choisir la police pour l\'éditeur de code',
    fontSize: 'Taille de police',
    lineHeight: 'Interligne',

    // Layout
    textArea: 'Zone de texte',
    codeEditor: 'Éditeur de code',
    consoleOutput: 'ฅ^•ﻌ•^ฅ >> sortie',
    tutorials: 'Tutoriels',
    musicExamples: 'Exemples musicaux',
    projectExplorer: 'Explorateur de projet',
    userDirectory: 'Répertoire utilisateur',
    addComponent: '+ Ajouter un composant',
    hidden: 'Masqué',

    // Common
    close: 'Fermer',
    clear: 'Effacer',
    selectCodeFolder: 'Sélectionner un dossier de code',
    cancel: 'Annuler',
    select: 'Sélectionner',
    save: 'Enregistrer',
    loading: 'Chargement...',
    emptyDirectory: 'Dossier vide',
    unsavedChanges: 'Modifications non enregistrées',
    unsavedChangesMessage: 'Vous avez des modifications non enregistrées. Êtes-vous sûr de vouloir fermer cet onglet ?',

    // File Explorer Modal
    selectFolder: 'Sélectionner un dossier',
    saveFile: 'Enregistrer le fichier',
    fileName: 'Nom du fichier :',
    enterFileName: 'Entrez le nom du fichier...',

    // Panes
    menu: 'Menu',
    notes: 'Notes',
    scratch: 'Brouillon',
    workspace: 'Espace de travail',
    draft: 'Ébauche',

    // Init - User Dir Picker
    initUserDirTitle: 'Choisissez votre répertoire utilisateur',
    initUserDirDescription: 'Sélectionnez un dossier où Renardo stockera vos samples, sons et paramètres.',
    initUserDirSelectButton: 'Sélectionner ce dossier',
    initUserDirCurrentSelection: 'Dossier sélectionné :',

    // Init - Resources Modal
    initResourcesTitle: 'Ressources manquantes',
    initResourcesDescription: 'Les ressources suivantes sont nécessaires pour utiliser Renardo. Les télécharger maintenant ?',
    initSamplesLabel: 'Pack de samples par défaut',
    initSccodeLabel: 'Bibliothèque sonore SuperCollider',
    initDownloadButton: 'Télécharger les ressources manquantes',
    initDownloadingTitle: 'Téléchargement...',
    initDownloadCompleteTitle: 'Téléchargement terminé',
    initDownloadErrorTitle: 'Erreur de téléchargement',
    initSkipButton: 'Ignorer pour l\'instant',
    initDownloadLogs: 'Logs de téléchargement'
  },
  es: {
    // Settings
    settings: 'Configuración',
    editor: 'Editor',
    layout: 'Diseño',
    done: 'Hecho',
    language: 'Idioma',

    // Layout Config
    layoutConfiguration: 'Configuración del diseño',
    leftColumn: 'Columna izquierda',
    rightColumn: 'Columna derecha',
    bottomArea: 'Área inferior',
    show: 'Mostrar',
    hide: 'Ocultar',
    paneTabManagement: 'Gestión de pestañas',

    // Themes
    syntaxTheme: 'Tema de sintaxis',
    skeletonUITheme: 'Tema de interfaz',
    colorSchemeMode: 'Esquema de color',
    showLineNumbers: 'Mostrar números de línea',
    showLineNumbersDescription: 'Mostrar números de línea en el editor de código',
    vimMode: 'Modo Vim',
    vimModeDescription: 'Activar atajos de teclado Vim en el editor de código',
    hydraBackground: 'Fondo Hydra',
    hydraBackgroundDescription: 'Activar la síntesis visual Hydra de fondo (desactivar para ahorrar GPU)',
    fontFamily: 'Familia de fuentes',
    fontFamilyDescription: 'Elegir la fuente para el editor de código',
    fontSize: 'Tamaño de fuente',
    lineHeight: 'Altura de línea',

    // Layout
    textArea: 'Área de texto',
    codeEditor: 'Editor de código',
    consoleOutput: 'ฅ^•ﻌ•^ฅ >> salida',
    tutorials: 'Tutoriales',
    musicExamples: 'Ejemplos musicales',
    projectExplorer: 'Explorador de proyecto',
    userDirectory: 'Directorio de usuario',
    addComponent: '+ Añadir componente',
    hidden: 'Oculto',

    // Common
    close: 'Cerrar',
    clear: 'Limpiar',
    selectCodeFolder: 'Seleccionar carpeta de código',
    cancel: 'Cancelar',
    select: 'Seleccionar',
    save: 'Guardar',
    loading: 'Cargando...',
    emptyDirectory: 'Carpeta vacía',
    unsavedChanges: 'Cambios sin guardar',
    unsavedChangesMessage: '¿Tiene cambios sin guardar. Está seguro de que quiere cerrar esta pestaña?',

    // File Explorer Modal
    selectFolder: 'Seleccionar carpeta',
    saveFile: 'Guardar archivo',
    fileName: 'Nombre del archivo:',
    enterFileName: 'Ingrese el nombre del archivo...',

    // Panes
    menu: 'Menú',
    notes: 'Notas',
    scratch: 'Borrador',
    workspace: 'Espacio de trabajo',
    draft: 'Borrador',

    // Init - User Dir Picker
    initUserDirTitle: 'Elige tu directorio de usuario',
    initUserDirDescription: 'Selecciona una carpeta donde Renardo almacenará tus muestras, sonidos y configuración.',
    initUserDirSelectButton: 'Seleccionar esta carpeta',
    initUserDirCurrentSelection: 'Carpeta seleccionada:',

    // Init - Resources Modal
    initResourcesTitle: 'Recursos faltantes',
    initResourcesDescription: 'Los siguientes recursos son necesarios para usar Renardo. ¿Descargarlos ahora?',
    initSamplesLabel: 'Pack de muestras predeterminado',
    initSccodeLabel: 'Biblioteca de sonidos SuperCollider',
    initDownloadButton: 'Descargar recursos faltantes',
    initDownloadingTitle: 'Descargando...',
    initDownloadCompleteTitle: 'Descarga completa',
    initDownloadErrorTitle: 'Error de descarga',
    initSkipButton: 'Omitir por ahora',
    initDownloadLogs: 'Registros de descarga'
  },
  de: {
    // Settings
    settings: 'Einstellungen',
    editor: 'Editor',
    layout: 'Layout',
    done: 'Fertig',
    language: 'Sprache',

    // Layout Config
    layoutConfiguration: 'Layout-Konfiguration',
    leftColumn: 'Linke Spalte',
    rightColumn: 'Rechte Spalte',
    bottomArea: 'Unterer Bereich',
    show: 'Anzeigen',
    hide: 'Ausblenden',
    paneTabManagement: 'Tab-Verwaltung',

    // Themes
    syntaxTheme: 'Syntax-Theme',
    skeletonUITheme: 'UI-Theme',
    colorSchemeMode: 'Farbschema',
    showLineNumbers: 'Zeilennummern anzeigen',
    showLineNumbersDescription: 'Zeilennummern im Code-Editor anzeigen',
    vimMode: 'Vim-Modus',
    vimModeDescription: 'Vim-Tastenkombinationen im Code-Editor aktivieren',
    hydraBackground: 'Hydra-Hintergrund',
    hydraBackgroundDescription: 'Hydra-Visualsynthese als Hintergrund aktivieren (deaktivieren zum GPU-Sparen)',
    fontFamily: 'Schriftart',
    fontFamilyDescription: 'Schriftart für den Code-Editor wählen',
    fontSize: 'Schriftgröße',
    lineHeight: 'Zeilenhöhe',

    // Layout
    textArea: 'Textbereich',
    codeEditor: 'Code-Editor',
    consoleOutput: 'ฅ^•ﻌ•^ฅ >> Ausgabe',
    tutorials: 'Anleitungen',
    musicExamples: 'Musikbeispiele',
    projectExplorer: 'Projekt-Explorer',
    userDirectory: 'Benutzerverzeichnis',
    addComponent: '+ Komponente hinzufügen',
    hidden: 'Versteckt',

    // Common
    close: 'Schließen',
    clear: 'Löschen',
    selectCodeFolder: 'Code-Ordner auswählen',
    cancel: 'Abbrechen',
    select: 'Auswählen',
    save: 'Speichern',
    loading: 'Wird geladen...',
    emptyDirectory: 'Leeres Verzeichnis',
    unsavedChanges: 'Nicht gespeicherte Änderungen',
    unsavedChangesMessage: 'Sie haben nicht gespeicherte Änderungen. Möchten Sie diesen Tab wirklich schließen?',

    // File Explorer Modal
    selectFolder: 'Ordner auswählen',
    saveFile: 'Datei speichern',
    fileName: 'Dateiname:',
    enterFileName: 'Dateinamen eingeben...',

    // Panes
    menu: 'Menü',
    notes: 'Notizen',
    scratch: 'Entwurf',
    workspace: 'Arbeitsbereich',
    draft: 'Entwurf',

    // Init - User Dir Picker
    initUserDirTitle: 'Benutzerverzeichnis wählen',
    initUserDirDescription: 'Wähle einen Ordner, in dem Renardo deine Samples, Sounds und Einstellungen speichert.',
    initUserDirSelectButton: 'Diesen Ordner auswählen',
    initUserDirCurrentSelection: 'Ausgewählter Ordner:',

    // Init - Resources Modal
    initResourcesTitle: 'Fehlende Ressourcen',
    initResourcesDescription: 'Die folgenden Ressourcen werden für Renardo benötigt. Jetzt herunterladen?',
    initSamplesLabel: 'Standard-Sample-Paket',
    initSccodeLabel: 'SuperCollider-Klangbibliothek',
    initDownloadButton: 'Fehlende Ressourcen herunterladen',
    initDownloadingTitle: 'Wird heruntergeladen...',
    initDownloadCompleteTitle: 'Download abgeschlossen',
    initDownloadErrorTitle: 'Download-Fehler',
    initSkipButton: 'Vorerst überspringen',
    initDownloadLogs: 'Download-Protokoll'
  }
} as const

export type TranslationKey = keyof typeof translations.en
