{
  "meta": {
    "language": "en",
    "name": "English",
    "version": "1.0.0"
  },
  "keys": {
    "theme.toggle.dark_active": "Theme: Dark active (switch to Light)",
    "theme.toggle.light_active": "Theme: Light active (switch to Dark)",
    "settings.language.label": "Language",
    "settings.language.de": "German",
    "settings.language.en": "English",
    "settings.language.fr": "French"
  },
  "literals": {
    "Filament Manager": "Filament Manager",
    "Dashboard": "Dashboard",
    "Live Uebersicht und Kennzahlen": "Live overview and metrics",
    "Lager": "Warehouses",
    "Slot-Ansicht und Auslastung": "Slot view and utilization",
    "Spulen": "Spools",
    "Bestand und Wiegen": "Inventory and weighing",
    "Wiegen": "Weighing",
    "Waagen, Flashen und Messungen": "Scales, flashing and measurements",
    "Globale Filamente": "Global filaments",
    "Materialdatenbank": "Material database",
    "Filament Statistik": "Filament statistics",
    "Hersteller, Farben und Score": "Manufacturers, colors and score",
    "Label Designer": "Label designer",
    "Layout Editor und Presets": "Layout editor and presets",
    "Wiki": "Wiki",
    "Hilfe, Dokumentation und Workflows": "Help, documentation and workflows",
    "Einstellungen": "Settings",
    "Theme wechseln": "Switch theme",
    "Dialog schliessen": "Close dialog",
    "Schliessen": "Close",
    "Keine laufende Aktion": "No active operation",
    "Versionen": "Versions",
    "Pack Manager": "Package manager",
    "Basis": "General",
    "Hardware": "Hardware",
    "Tools": "Tools",
    "Daten": "Data",
    "Einstellungen Tabs": "Settings tabs",
    "Einstellungen durchsuchen (z.B. MQTT, Backup, Bundle, Firmware)": "Search settings (e.g. MQTT, Backup, Bundle, Firmware)",
    "Suche aktiv nur in der aktuell geoeffneten Tab-Seite.": "Search is limited to the currently open tab.",
    "Basis und Netzwerk": "General and network",
    "Alle Werte werden in der Datenbank gespeichert.": "All values are stored in the database.",
    "System": "System",
    "Firmenname": "Company name",
    "Standard Theme": "Default theme",
    "Low Stock Grenze (g)": "Low-stock threshold (g)",
    "Kritisch Grenze (g)": "Critical threshold (g)",
    "Demo-Waage Autostart": "Demo scale autostart",
    "Demo-Waage Worker beim App-Start aktivieren": "Start demo scale worker when app starts",
    "MQTT": "MQTT",
    "Host": "Host",
    "Port": "Port",
    "Base Topic": "Base topic",
    "Username": "Username",
    "Password": "Password",
    "Basis speichern": "Save general settings",
    "Hardware speichern": "Save hardware settings",
    "ESP32, Lagergeraete und Controller": "ESP32, warehouse devices and controllers",
    "Alle Geraete, Verbindungen und Standardwerte an einer Stelle.": "All devices, connections and defaults in one place.",
    "Waagen und Wiegen": "Scales and weighing",
    "Der komplette Nexus Scale Bereich wurde in die Hauptnavigation verlagert.": "The full Nexus Scale area has been moved to the main navigation.",
    "Geraete anlegen, Verbindungen verwalten, Standard-Waage setzen und ESP32 Firmware flashen jetzt zentral unter /weighing.": "Create devices, manage connections, set default scale and flash ESP32 firmware centrally under /weighing.",
    "Bereich Wiegen oeffnen": "Open weighing area",
    "Waagen Tools": "Scale tools",
    "Trockner": "Dryers",
    "Trockner hinzufuegen": "Add dryer",
    "Controller hinzufuegen": "Add controller",
    "Name": "Name",
    "Typ": "Type",
    "Endpoint": "Endpoint",
    "Topic": "Topic",
    "Ziel Temp / RH": "Target temp / RH",
    "Aktiv": "Active",
    "Aktion": "Action",
    "Service Tools und Diagnose": "Service tools and diagnostics",
    "ESP32 Diagnose": "ESP32 diagnostics",
    "Ports, Toolchain und Board-Status auf einen Blick.": "Ports, toolchain and board status at a glance.",
    "Diagnose aktualisieren": "Refresh diagnostics",
    "Wird geladen ...": "Loading ...",
    "Tool Repair": "Tool repair",
    "Arduino CLI und Build-Abhaengigkeiten reparieren.": "Repair Arduino CLI and build dependencies.",
    "Repair starten": "Start repair",
    "Status pruefen": "Check status",
    "Kein laufender Repair-Job.": "No running repair job.",
    "Entwicklungs-Test Runner": "Development test runner",
    "Startet den automatischen Testlauf und zeigt Live-Logs aus der Entwicklungsumgebung.": "Starts the automated test run and shows live logs from the development environment.",
    "Tests starten": "Start tests",
    "Neu starten": "Restart",
    "Status": "Status",
    "Stop": "Stop",
    "Befehl:": "Command:",
    "Noch kein Testlauf gestartet.": "No test run started yet.",
    "Dienstemanager (Demo-Waage)": "Service manager (demo scale)",
    "Worker-Prozess fuer die Demo-Waage starten, stoppen und neu starten.": "Start, stop and restart the worker process for the demo scale.",
    "Start": "Start",
    "Neustart": "Restart",
    "Datasheet Download Manager": "Datasheet download manager",
    "Fehlende PDFs als Hintergrund-Job laden, pro Hersteller verfolgen und lokal sauber ablegen.": "Download missing PDFs as a background job, track them by manufacturer and store locally.",
    "Nur fehlende PDFs laden": "Download only missing PDFs",
    "Laufenden Job ersetzen": "Replace running job",
    "Noch kein Download-Job gestartet.": "No download job started yet.",
    "Noch keine Hersteller-Auswertung vorhanden.": "No manufacturer evaluation available yet.",
    "Keine Fehler protokolliert.": "No errors logged.",
    "Crashlogs und Fehlerprotokoll": "Crash logs and error log",
    "Aktualisieren": "Refresh",
    "Alle loeschen": "Delete all",
    "Server- und Clientfehler werden zentral protokolliert, damit Debugging reproduzierbar bleibt.": "Server and client errors are logged centrally for reproducible debugging.",
    "App Tools Schnellzugriff": "App tools quick access",
    "Label Tool": "Label tool",
    "Datenpfade und Runtime": "Data paths and runtime",
    "Datenbank, PDFs, Logs und User-Settings liegen getrennt im Data Root und sind damit vom Programmcode entkoppelt.": "Database, PDFs, logs and user settings are stored separately in the data root and decoupled from application code.",
    "Backup und Import": "Backup and import",
    "Voll Backup Export": "Full backup export",
    "Exportiert die komplette App als JSON oder SQLite.": "Exports the complete app as JSON or SQLite.",
    "JSON Full Export": "JSON full export",
    "SQLite Full Export": "SQLite full export",
    "Teil Export": "Partial export",
    "Nur ausgewaehlte Komponenten als JSON oder SQLite exportieren.": "Export only selected components as JSON or SQLite.",
    "Format": "Format",
    "Teil Export starten": "Start partial export",
    "Backup Import": "Backup import",
    "Datei": "File",
    "Modus": "Mode",
    "Full Import": "Full import",
    "Teil Import": "Partial import",
    "Import starten": "Start import",
    "Bugs: 0 offen | 0 wartend": "Bugs: 0 open | 0 queued",
    "Ungueltiger JSON-Datenblock": "Invalid JSON payload",
    "Bitte mindestens eine Komponente fuer den Teil-Export waehlen.": "Please select at least one component for partial export.",
    "Bitte mindestens eine Komponente fuer den Teil-Import waehlen.": "Please select at least one component for partial import.",
    "Backup importiert.": "Backup imported.",
    "Import fehlgeschlagen.": "Import failed.",
    "Einstellungen gespeichert.": "Settings saved.",
    "Einstellungen konnten nicht gespeichert werden.": "Failed to save settings.",
    "Dialog": "Dialog",
    "Datenblatt": "Datasheet",
    "Name fuer die neue Waage:": "Name for the new scale:"
  },
  "patterns": [
    {
      "pattern": "^Bugs: (\\d+) offen \\| (\\d+) geloest \\| Q(\\d+)$",
      "replace": "Bugs: $1 open | $2 resolved | Q$3"
    },
    {
      "pattern": "^Bugs: (\\d+) offen \\| (\\d+) wartend$",
      "replace": "Bugs: $1 open | $2 queued"
    },
    {
      "pattern": "^Version (.+)$",
      "replace": "Version $1"
    },
    {
      "pattern": "^Filter \"(.+)\" \\| sichtbar: (\\d+)/(\\d+)$",
      "replace": "Filter \"$1\" | visible: $2/$3"
    },
    {
      "pattern": "^Bitte alle (\\d+) Rollen auf Lager verteilen\\. Offen: (\\d+)\\.$",
      "replace": "Please distribute all $1 spools to warehouses. Remaining: $2."
    },
    {
      "pattern": "^Waage \"(.+)\" wirklich entfernen\\?$",
      "replace": "Really remove scale \"$1\"?"
    },
    {
      "pattern": "^(\\d+) ausgewaehlte Paketquelle\\(n\\) aus der lokalen DB entfernen\\?$",
      "replace": "Remove $1 selected package source(s) from the local DB?"
    },
    {
      "pattern": "^Leerspulenprofil \"(.+)\" loeschen\\?$",
      "replace": "Delete empty spool profile \"$1\"?"
    },
    {
      "pattern": "^(.+) gespeichert\\.$",
      "replace": "$1 saved."
    },
    {
      "pattern": "^(.+) geloescht\\.$",
      "replace": "$1 deleted."
    },
    {
      "pattern": "^(.+) erstellt\\.$",
      "replace": "$1 created."
    },
    {
      "pattern": "^(.+) aktualisiert\\.$",
      "replace": "$1 updated."
    },
    {
      "pattern": "^(.+) gestartet\\.$",
      "replace": "$1 started."
    },
    {
      "pattern": "^(.+) gestoppt\\.$",
      "replace": "$1 stopped."
    },
    {
      "pattern": "^(.+) geladen\\.$",
      "replace": "$1 loaded."
    }
  ]
}
