import { de } from 'vuetify/locale'

const messages = {
  global: {
    name: "Name",
    value: "Wert",
    repository: "Repository",
    annotation: "Annotation",
    size: "Größe",
    create: "Erstellen",
    update: "Aktualisieren",
    cancel: "Abbrechen",
    save: "Speichern",
    applyChanges: "Änderungen anwenden",
  },
  navigation: {
    pipelines: 'Pipelines',
    templates: 'Templates',
    activity: 'Aktivität',
    addOns: 'Add-ons',
    accounts: 'Konten',
    settings: 'Einstellungen',
    logout: 'Abmelden',
    theme: 'Dunkel/Hell Modus',
    documentation: 'Dokumentation',
    general: 'Allgemein',
    runpacks: 'Runpacks',
    podSizes: 'Pod-Größen',
    notifications: 'Benachrichtigungen',
    kuberoAPI: 'Kubero API',
    github: 'GitHub',
    discord: 'Discord',
  },
  accounts: {
    users: 'Benutzer',
    teams: 'Teams',
    roles: 'Rollen',
    tokens: 'Token',
  },
  teams: {
    name: 'Teams',
    search: 'Team suchen',
    actions: {
      create: 'Team erstellen',
      edit: 'Team bearbeiten',
    },
    form: {
      name: 'Teamname',
      description: 'Beschreibung',
    },
  },
  roles: {
    name: 'Rollen',
    search: 'Rolle suchen',
    permission: 'Berechtigung',
    actions: {
      create: 'Rolle erstellen',
      edit: 'Rolle bearbeiten',
    },
    form: {
      name: 'Rollenname',
      description: 'Beschreibung',
      permissionsRead: 'Lesen',
      permissionsWrite: 'Schreiben',
      permissions: {
        apps: 'Apps',
        name: 'Berechtigungen',
        pipelines: 'Pipelines',
        accounts: 'Konten',
        settings: 'Einstellungen',
        security: 'Sicherheit',
        tokens: 'Token',
        audit: 'Audit',
        console: 'Konsole',
        logs: 'Logs',
        reboot: 'Neustart',
      },
    },
  },
  tokens: {
    name: 'Token',
    search: 'Token suchen',
    form: {
      id: 'Token-ID',
      name: 'Token-Name',
      expiresAt: 'Ablaufdatum',
      owner: 'Besitzer',
    },
  },
  pipeline: {
    name: 'Pipeline',
    buttons: {
      new: 'Neue @:pipeline.name',
      edit: '@:pipeline.name bearbeiten',
      delete: '@:pipeline.name löschen',
      create: '@:pipeline.name erstellen',
      update: '@:pipeline.name aktualisieren',
      connect: 'Verbinden',
      disconnect: 'Trennen',
      reconnect: 'Verbindung erneuern',
    },
    phases: {
      production: 'Production',
      stage: 'Stage',
      test: 'Test',
      review: 'Review',
    },
    form: {
      label: {
        name: 'Name',
        fqdnDomain: 'FQDN-Domain',
        teamAccess: 'Teamzugriff',
        enableBuilds: 'Pipeline zum Bauen aus Quellcode aktivieren',
        cluster: 'Cluster',
        clusterContext: 'Cluster Kontext',
      },
      title:{
        continuousDeployment: 'Kontinuierliches Deployment',
        environments: 'Umgebungen',
      },
      help: {
        gitrepo: 'Beim Verbinden werden Webhooks und Deployment-Schlüssel im Repository gespeichert. Das bedeutet, dass die in diesem Projekt konfigurierten Apps automatisch mit einem \'git push\' neu bereitgestellt werden können und das Öffnen eines PR eine neue Instanz in der "Review"-Phase startet.',
      },
    },
  },
  app: {
    nav: {
      overview: 'Übersicht',
      builds: 'Builds',
      metrics: 'Metriken',
      logs: 'Logs',
      events: 'Events',
      vulnerabilities: 'Sicherheitslücken',
    },
    actions: {
      name: 'Aktionen',
      edit: 'Bearbeiten',
      openApp: 'App öffnen',
      restart: 'Neustart',
      openConsole: 'Terminal öffnen',
      openLogs: 'Logs öffnen',
      downloadTemplate: 'Template herunterladen',
      delete: 'Löschen',
      update: 'Aktualisieren',
    },
    domains: 'Domains',
    deploymentStrategy: 'Deployment-Strategie',
    runpack: 'Runpack',
    buildStrategy: 'Build-Strategie',
    gitRepo: 'Git-Repository',
    autodeploy: 'Automatisches Deployment',
    podSize: 'Pod-Größe',
    autoscale: 'Automatisches Skalieren',
    webReplicas: 'Web-Replikas',
    workerReplicas: 'Worker-Replikas',
    cpu: 'CPU',
    memory: 'Memory',
    pod: 'Pod',
    titles: {
      advanced: 'Erweiterte App Einstellungen',
      consumption: 'Ressourcenverbrauch',
      environmentVariables: 'Umgebungsvariablen',
      cronjobs: 'Cronjobs',
      activities: 'Aktivitäten',
      deployment: 'Deployment',
      resources: 'Ressourcen',
      serviceAccountAnnotations: 'Service Account Annotations',
      volumes: 'Volumes',
      addOns: 'Add-Ons',
      basicAuth: 'Basic Auth',
      security: 'Sicherheit',
      networking: 'Netzwerk',
      kubernetes: 'Kubernetes',
      healthChecks: 'Health Checks',
    },
    form: {
      createNewApp: 'Neue App in {pipeline} erstellen',
      editApp: '{app} in {pipeline} bearbeiten',
      warning: 'Bitte ändere alle Passwörter, Tokens und wähle die korrekte StorageClass für deinen Cluster aus.',
      appName: 'App Name',
      domain: 'Domain',
      containerPort: 'Container Port',
      strategy: 'Strategie',
      advancedAppConfig: 'Erweiterte App-Konfiguration',
      repository: 'Repository',
      branch: 'Branch',
      autodeploy: 'Automatisches Deployment',
      runpack: 'Runpack',
      buildcommand: 'Build Command',
      runcommand: 'Run Command',
      containerImage: 'Conmtainer Image',
      tag: 'Tag',
      command: 'Command',
      basicAuthEnabled: 'Basic Auth aktivieren',
      basicAuthRealm: 'Realm/Titel',
      basicAuthUser: 'Username',
      basicAuthPass: 'Passwort',
      readOnlyAppStorage: 'Read-Only App Volume',
      readOnlyRootFilesystem: 'Read-Only Root Filesystem',
      vulnerabililityScan: 'Trivy vulnerabfility scans aktivieren',
      privilegeEscalation: 'Privilege Escalation erlauben',
      runAsNonRoot: 'Als Non-Root ausführen',
      runAsUser: 'Als User ausführen',
      runAsGroup: 'Als Gruppe ausführen',
      capabilitiesAdd: 'Capabilities hinzufügen',
      capabilitiesDrop: 'Capabilities entfernen',
      whitelistSourceRange: 'Whitelist Source Range',
      denylistSourceRange: 'Denylist Source Range',
      forceSSLRedirect: 'SSL Redirect forcieren',
      proxyBufferSize: 'Proxy Buffer Grösse',
      ingressClassName: 'Ingress Class Name',
      corsEnable: 'CORS aktivieren',
      corsAllowOrigin: 'CORS zugelassene Origin',
      corsAllowMethods: 'CORS zugelassene Methoden',
      corsAllowHeaders: 'CORS zugelassene Headers',
      corsExposeHeaders: 'CORS Expose Headers',
      corsAllowCredentials: 'CORS credentials erlauben',
      corsMaxAge: 'CORS Max Age',
      storageClass: 'Storage Class',
      mountPath: 'Mount Pfad',
      accessMode: 'Access Mode',
      healthCheckEnabled: 'Health Check aktivieren',
      healthCheckPath: 'Health Check Pfad',
      healthCheckStartupSeconds: 'Startup Sekunden',
      healthCheckTimeoutSeconds: 'Timeout Sekunden',
      healthCheckIntervalSeconds: 'Interval Sekunden',
      noNewEnvVarsFound: 'Keine neuen Umgebungsvariablen in der hochgeladenen Datei gefunden',
      envVarConflicts: 'Umgebungsvariablen-Konflikte',
      envVarConflictsDescription: 'Die hochgeladene .env-Datei enthält Variablen, die bereits existieren. Bitte wählen Sie aus, welche Werte Sie behalten möchten:',
      variableName: 'Variablenname',
      currentValue: 'Aktueller Wert',
      newValue: 'Neuer Wert',
      envNameRequired: 'Name der Umgebungsvariable ist erforderlich',
      envNameTooLong: 'Name muss weniger als 60 Zeichen haben',
      envNameInvalidChars: 'Nur Buchstaben, Zahlen und Unterstriche erlaubt. Muss mit Buchstaben oder Unterstrich beginnen',
      duplicateEnvVar: 'Name der Umgebungsvariable existiert bereits',
    },
    strategy: {
      name: 'Strategie',
      containerImage: 'Container Image',
      fromSource: 'Quellcode',
      runpacks: 'Runpacks',
      runpackExplanation: 'Der Code wird auf offiziellen Images gebaut und läuft darauf. Der Code wird für jeden Pod in einem Init-Container gebaut. Dies ist der schnellste Weg, um deinen Code auszuführen, wird aber mit jeder Replikate ineffizienter.',
      externalCICD: 'External CI/CD',
      externalCICDExplanation: 'Du baust dein Image auf einem externen CI/CD und deployst es, indem du den Image-Tag über die API änderst.',
      nixpacks: 'Nixpacks',
      nixpacksExplanation: '<a href="https://nixpacks.com/" target="_blank" style="text-decoration: underline;">Nixpacks</a> ist ein Open-Source-Projekt zum Erstellen von Docker-Images mit Nix. Es ist eine gute Möglichkeit, Images ohne Dockerfile zu erstellen, wenn du einen reproduzierbaren Build-Prozess haben möchtest.',
      buildpacks: 'Buildpacks',
      buildpacksExplanation: '<a href="https://buildpacks.io/" target="_blank" style="text-decoration: underline;">Buildpacks</a> sind eine Sammlung von Skripten und Binärdateien, die verwendet werden, um Quellcode in ein bereitstellbares Image zu transformieren und den Prozess des Kompilierens, Bauens und Konfigurierens der App für die Bereitstellung zu automatisieren.',
      dockerfile: 'Dockerfile',
      dockerfileExplanation: 'Baut das Image basierend auf dem Dockerfile im Stammverzeichnis deines Git-Repositories. Dies ermöglicht den höchsten Grad an Anpassung.',
      noBuildPipeline: 'Buildpipeline nicht konfiguriert',
      noBuildPipelineExplanation: 'Du kannst Apps aus Quellcode nicht bauen, da die Build-Pipeline nicht konfiguriert ist. Konfiguriere das Registry, um Buildpacks, Nixpacks und Dockerfile-Build-Pipelines zu verwenden.',
    },
    cronjobs: {
      name: 'Cronjobs',
      schedule: 'Zeitplan',
      command: 'Befehl',
      image: 'Image',
      env: 'Umgebungsvariablen',
      actions: {
        //name: 'Cronjobs',
        new: 'Neuer Cronjob',
        edit: 'Cronjob bearbeiten',
        delete: 'Cronjob löschen',
        create: 'Cronjob erstellen',
      },
    },
    volumes: {
      name: 'Volumes',
      size: 'Größe',
      accessMode: 'Zugriffsmodus',
    },
    events: {
      name: 'Ereignisse',
      description: 'Kubernetes Ereignisstrom für <strong>{app}</strong>',
      empty: {
        title: 'Keine Ereignisse für "{app}"',
        message: 'Die Standard-Laufzeit (TTL) für Ereignisse in der Kube-API beträgt eine Stunde. Um ältere Ereignisse anzeigen zu können, ist es notwendig, die TTL im Kube-API-Server zu erhöhen.',
        link: 'Kubernetes Docs',
      }
    },
    vulnerabilities: {
      lastScan: 'Letzter Scan',
      artefact: 'Artifakt',
      arch: 'Architektur',
      created: 'Erstellt',
      os: 'Betriebssystem',
      layers: 'Layer',
      workingDir: 'Arbeitsverzeichnis',
      exposedPorts: 'Exponierte Ports',
      summary: 'Zusammenfassung',
      empty: {
        title: 'Keine Sicherheitslücken-Scans für { app } gefunden',
        message: 'Um diese App auf Sicherheitslücken zu scannen, bitte einen erneuten Scan auslösen.',
      },
      actions: {
        rescan: 'Erneut scannen',
      }
    },
  },
  profile: {
    titles: {
      apiTokens: 'API Tokens',
      profileDetails: 'Profil Details',
    },
    avatar: {
      edit: 'Avatar bearbeiten',
      limitMessage: 'Das Bild darf 100KB nicht überschreiten.',
      uploadAvatar: 'Neuen Avatar hochladen',
    },
    token: {
      create: 'Token erstellen',
      expiresAt: 'Läuft ab am',
      noTokens: 'Keine Tokens gefunden.',
      details: 'Token Details',
      warningMessage: 'Dieser Token wird <strong>nicht mehr angezeigt</strong>. Bitte kopieren und sicher speichern Sie ihn jetzt.',
      copyToken: 'Token kopieren',
      copiedMessage: 'Token in Zwischenablage kopiert!',
      close: 'Schließen',
    },
    actions: {
      editProfile: 'Profil bearbeiten',
    }
  },
  user: {
    name: 'Benutzer',
    email: 'E-Mail',
    username: 'Benutzername',
    firstName: 'Vorname',
    lastName: 'Nachname',
    role: 'Rolle',
    teams: 'Teams',
    provider: 'Provider',
    status: 'Status',
    password: 'Passwort',
    changePassword: 'Password ändern',
    changePasswordFor: 'Passwort für {user} ändern',
    currentPassword: 'Aktuelles Passwort',
    newPassword: 'Neues Passwort',
    confirmPassword: 'Passwort bestätigen',
    errors: {
      passwordMismatch: 'Passwörter stimmen nicht überein',
      passwordConfirm: 'Bitte bestätige dein Passwort',
      firstNameRequired: 'Vorname ist erforderlich',
      lastNameRequired: 'Nachname ist erforderlich',
      emailRequired: 'E-Mail ist erforderlich',
      emailValid: 'E-Mail muss gültig sein',
      currentPasswordRequired: 'Aktuelles Passwort ist erforderlich',
      newPasswordRequired: 'Neues Passwort ist erforderlich',
      passwordMinLength: 'Passwort muss mindestens 8 Zeichen lang sein',
    },
    actions: {
      name: 'Aktionen',
      create: 'Benutzer erstellen',
      edit: 'Benutzer bearbeiten',
      search: 'Nach Benutzer suchen',
    }
  },
  notifications: {
    name: 'Benachrichtigungen',
    helpTitle: 'Was sind Benachrichtigungen?',
    helpText: '<p><strong>Benachrichtigungen</strong> ermöglichen es Dir, über Ereignisse in Ihren Kubero-Anwendungen informiert zu werden. Du kannst Slack-, Discord- oder Webhook-Benachrichtigungen konfigurieren, um über Deployments, Fehler und andere wichtige Ereignisse auf dem Laufenden zu bleiben.</p><p class="mt-2"><a href="https://www.kubero.dev/docs/usermanual/notifications/" target="_blank" rel="noopener">Mehr in der Kubero-Dokumentation lesen</a></p>',
    form: {
      name: 'Name',
      type: 'Typ',
      enabled: 'Aktiviert',
      pipelines: 'Pipelines',
      events: 'Ereignisse',
      config: 'Konfiguration',
      url: 'URL',
      channel: 'Kanal',
      secret: 'Geheimnis',
      slackWebhookUrl: 'Slack Webhook URL',
      discordWebhookUrl: 'Discord Webhook URL',
      webhookUrl: 'Webhook URL',
      pipelinesHint: 'Pipeline-Namen eingeben oder "all" für alle Pipelines',
      eventsHint: 'Ereignisnamen zum Überwachen eingeben',
    },
    actions: {
      create: 'Benachrichtigung erstellen',
      edit: 'Benachrichtigung bearbeiten',
      delete: 'Benachrichtigung löschen',
    },
    errors: {
      load: 'Fehler beim Laden der Benachrichtigungen',
      edit: 'Fehler beim Laden der Benachrichtigungsdetails zum Bearbeiten.',
      create: 'Fehler beim Erstellen der Benachrichtigung',
      save: 'Fehler beim Speichern der Benachrichtigung',
      delete: 'Fehler beim Löschen der Benachrichtigung',
    },
  },
  runpacks: {
    name: 'Runpacks',
    helpTitle: 'Was sind Runpacks?',
    helpText: '<p><strong>Runpacks</strong> in Kubero definieren, wie Ihre Anwendung im Kubernetes-Cluster abgerufen, gebaut und ausgeführt wird. Jedes Runpack besteht aus drei Phasen:</p><ul class="ma-4"><li><strong>Fetch</strong>: Ruft Ihren Code aus einem Git-Repository mit einem Container-Image ab. Sie können das Standard verwenden oder es anpassen.</li><li><strong>Build</strong>: Führt Build-Befehle in einem Container Ihrer Wahl aus (beliebiges Docker-Image). Hier werden Abhängigkeiten installiert oder Ihre App kompiliert.</li><li><strong>Run</strong>: Startet den finalen Container. Der <em>web</em>-Pod wird ins Internet freigegeben, während <em>worker</em>-Pods für Hintergrundaufgaben sind.</li></ul><p>Runpacks sind sehr flexibel und können für verschiedene Sprachen und Frameworks angepasst werden. Sie basieren auf öffentlich verfügbaren Container-Images. Beispiel-Runpacks finden Sie unter <a href="https://github.com/kubero-dev/runpacks/tree/main/packs" target="_blank" rel="noopener">kubero-dev/runpacks</a>.</p><p class="mt-2"><a href="https://www.kubero.dev/docs/usermanual/runpacks/" target="_blank" rel="noopener">Mehr in der Kubero-Dokumentation lesen</a></p>',
    table: {
      name: 'Name',
      language: 'Sprache',
      fetch: 'Fetch',
      build: 'Build',
      run: 'Run',
      actions: 'Aktionen',
    },
    details: {
      repository: 'Repository',
      command: 'Befehl',
      readOnlyAppStorage: 'Nur-Lese-App-Speicher',
      securityContext: 'Sicherheitskontext',
      showDetails: 'Details anzeigen',
      runAsUser: 'runAsUser',
      runAsGroup: 'runAsGroup',
      allowPrivilegeEscalation: 'allowPrivilegeEscalation',
      readOnlyRootFilesystem: 'readOnlyRootFilesystem',
      runAsNonRoot: 'runAsNonRoot',
      capabilities: 'Berechtigungen',
      add: 'Hinzufügen',
      drop: 'Entfernen',
      yes: 'Ja',
      no: 'Nein',
    },
    form: {
      name: 'Name',
      language: 'Sprache',
      search: 'Runpacks suchen',
      repository: 'Repository',
      tag: 'Tag',
      runAsUser: 'Als Benutzer ausführen',
      runAsGroup: 'Als Gruppe ausführen',
      readOnlyAppVolume: 'Nur-Lese-App-Volume',
      readOnlyRootFilesystem: 'Nur-Lese-Root-Dateisystem',
      allowPrivilegeEscalation: 'Berechtigungserhöhung erlauben',
      runAsNonRoot: 'Als Nicht-Root ausführen',
      capabilitiesAdd: 'Berechtigungen hinzufügen',
      capabilitiesDrop: 'Berechtigungen entfernen',
      selectOneOrMore: 'Wählen Sie eine oder mehrere aus',
      required: 'Erforderlich',
      mustBeNumber: 'Muss eine Zahl sein',
    },
    actions: {
      create: 'Runpack erstellen',
      edit: 'Runpack bearbeiten',
      delete: 'Runpack löschen',
      save: 'Speichern',
      abort: 'Abbrechen',
    },
    errors: {
      load: 'Fehler beim Laden der Runpack-Details zum Bearbeiten.',
    },
    stages: {
      fetch: 'Fetch',
      build: 'Build',
      run: 'Run',
    },
  },
  settings: {
    deployment: {
      title: 'Repositories verbinden',
      configAlert: 'Konfigurationsänderungen werden erst wirksam, wenn der Kubero UI Container manuell neu gestartet wird.',
      webhookEndpoint: 'Webhook-Endpunkt',
      url: 'URL',
      secret: 'Geheimnis',
      github: {
        title: 'Github',
        baseUrl: 'Github Basis-URL',
        personalAccessToken: 'Github Personal Access Token',
        instructions: 'Anleitung zum Erhalten eines Personal Access Tokens von',
      },
      gitea: {
        title: 'Gitea',
        baseUrl: 'Gitea Basis-URL',
        personalAccessToken: 'Gitea Personal Access Token',
        instructions: 'Anleitung zum Erhalten eines Personal Access Tokens für',
      },
      gogs: {
        title: 'Gogs',
        baseUrl: 'Gogs Basis-URL',
        personalAccessToken: 'Gogs Personal Access Token',
      },
      gitlab: {
        title: 'Gitlab',
        baseUrl: 'Gitlab Basis-URL',
        personalAccessToken: 'Gitlab Personal Access Token',
      },
      bitbucket: {
        title: 'Bitbucket',
        username: 'Bitbucket Benutzername',
        appPassword: 'Bitbucket App-Passwort',
      },
    },
    general: {
      title: 'Allgemeine Kubero-Einstellungen',
      description: 'Einige Konfigurationswerte erfordern eine Browser-Aktualisierung(*) oder einen Pod-Neustart(**), um wirksam zu werden.',
      namespace: 'Kubero Namespace',
      readonlyMode: 'Nur-Lese-Modus (**)',
      adminDisabled: 'Admin deaktiviert',
      ttyConsoleEnabled: 'TTY-Konsole aktiviert',
      banner: {
        title: 'Banner',
        enabled: 'Aktiviert (*)',
        backgroundColor: 'Hintergrundfarbe',
        fontColor: 'Schriftfarbe',
        message: 'Nachricht',
      },
      authentication: {
        title: 'Authentifizierung',
        github: {
          enabled: 'Github',
          id: 'ID',
          organization: 'Organisation',
          callbackUrl: 'Callback-URL',
          secret: 'Geheimnis',
        },
        oauth2: {
          enabled: 'Oauth2',
          name: 'Name',
          id: 'ID',
          authUrl: 'Auth-URL',
          tokenUrl: 'Token-URL',
          callbackUrl: 'Callback-URL',
          scopes: 'Bereiche',
          secret: 'Geheimnis',
        },
      },
      auditLogs: {
        title: 'Audit-Logs',
        enabled: 'Aktiviert (**)',
        storageClass: 'Speicherklasse',
        limit: 'Limit',
        size: 'Größe',
      },
    },
  },
  podsizes: {
    name: 'Pod-Größen',
    helpTitle: 'Was sind Pod-Größen?',
    helpText: '<p><strong>Pod-Größen</strong> definieren die Ressourcenanforderungen und -limits für die Pods Ihrer Anwendung in Kubero. Sie können Pod-Größen erstellen, bearbeiten und löschen, um sie an Ihre Workload-Anforderungen anzupassen.</p><p class="mt-2"><a href="https://www.kubero.dev/docs/usermanual/podsizes/" target="_blank" rel="noopener">Mehr in der Kubero-Dokumentation</a></p>',
    form: {
      name: 'Pod-Größenname',
      description: 'Beschreibung',
      cpuRequest: 'CPU-Anforderung (m)',
      cpuLimit: 'CPU-Limit (m)',
      memoryRequest: 'Speicheranforderung (Gi)',
      memoryLimit: 'Speicherlimit (Gi)',
      cpu: 'CPU',
      memory: 'Speicher',
    },
    actions: {
      create: 'Pod-Größe erstellen',
      edit: 'Pod-Größe bearbeiten',
    },
    errors: {
      loadinPodsize: 'Fehler beim Laden der Pod-Größen',
    },
  },
  templates: {
    search: 'Vorlagen suchen',
    category: 'Kategorie',
    pipeline: 'Pipeline',
    phase: 'Phase',
    actions: {
      install: 'Installieren',
      loadTemplate: 'Vorlage laden',
    },
  },
  $vuetify: {
    ...de,
  },
}

export default messages