diff --git a/languages/wp-prometheus-de_CH.mo b/languages/wp-prometheus-de_CH.mo index 8b7480b..027db52 100644 Binary files a/languages/wp-prometheus-de_CH.mo and b/languages/wp-prometheus-de_CH.mo differ diff --git a/languages/wp-prometheus-de_CH.po b/languages/wp-prometheus-de_CH.po index e43e1b0..8b813d9 100644 --- a/languages/wp-prometheus-de_CH.po +++ b/languages/wp-prometheus-de_CH.po @@ -45,11 +45,11 @@ msgstr "Lizenz-Einstellungen gespeichert." #: src/Admin/Settings.php msgid "License is active and valid." -msgstr "Lizenz ist aktiv und gueltig." +msgstr "Lizenz ist aktiv und gültig." #: src/Admin/Settings.php msgid "License is invalid." -msgstr "Lizenz ist ungueltig." +msgstr "Lizenz ist ungültig." #: src/Admin/Settings.php msgid "License has expired." @@ -78,12 +78,12 @@ msgstr "Unbekannter Status." #. translators: %s: Expiration date #: src/Admin/Settings.php msgid "Expires: %s" -msgstr "Laeuft ab: %s" +msgstr "Läuft ab: %s" #. translators: %s: Time ago #: src/Admin/Settings.php msgid "Last checked: %s ago" -msgstr "Zuletzt geprueft: vor %s" +msgstr "Zuletzt geprüft: vor %s" #: src/Admin/Settings.php msgid "License Server URL" @@ -91,7 +91,7 @@ msgstr "Lizenz-Server URL" #: src/Admin/Settings.php msgid "License Key" -msgstr "Lizenzschluessel" +msgstr "Lizenzschlüssel" #: src/Admin/Settings.php msgid "Server Secret" @@ -101,6 +101,18 @@ msgstr "Server-Geheimnis" msgid "Leave empty to keep existing." msgstr "Leer lassen, um bestehenden Wert zu behalten." +#: src/Admin/Settings.php +msgid "Overridden by WP_PROMETHEUS_LICENSE_SERVER_URL environment variable." +msgstr "Überschrieben durch die Umgebungsvariable WP_PROMETHEUS_LICENSE_SERVER_URL." + +#: src/Admin/Settings.php +msgid "Overridden by WP_PROMETHEUS_LICENSE_KEY environment variable." +msgstr "Überschrieben durch die Umgebungsvariable WP_PROMETHEUS_LICENSE_KEY." + +#: src/Admin/Settings.php +msgid "Overridden by WP_PROMETHEUS_LICENSE_SERVER_SECRET environment variable." +msgstr "Überschrieben durch die Umgebungsvariable WP_PROMETHEUS_LICENSE_SERVER_SECRET." + #: src/Admin/Settings.php msgid "Save License Settings" msgstr "Lizenz-Einstellungen speichern" @@ -123,11 +135,11 @@ msgstr "Aktivierte Metriken" #: src/Admin/Settings.php msgid "Configure authentication for the /metrics endpoint." -msgstr "Authentifizierung fuer den /metrics-Endpunkt konfigurieren." +msgstr "Authentifizierung für den /metrics-Endpunkt konfigurieren." #: src/Admin/Settings.php msgid "Select which metrics to expose on the /metrics endpoint." -msgstr "Waehlen Sie, welche Metriken auf dem /metrics-Endpunkt bereitgestellt werden sollen." +msgstr "Wählen Sie, welche Metriken auf dem /metrics-Endpunkt bereitgestellt werden sollen." #: src/Admin/Settings.php msgid "Auth Token" @@ -135,7 +147,7 @@ msgstr "Auth-Token" #: src/Admin/Settings.php msgid "Select Metrics" -msgstr "Metriken auswaehlen" +msgstr "Metriken auswählen" #: src/Admin/Settings.php msgid "Regenerate" @@ -159,7 +171,7 @@ msgstr "Benutzer nach Rolle" #: src/Admin/Settings.php msgid "Total Posts by Type and Status" -msgstr "Beitraege nach Typ und Status" +msgstr "Beiträge nach Typ und Status" #: src/Admin/Settings.php msgid "Total Comments by Status" @@ -171,7 +183,7 @@ msgstr "Plugins (aktiv/inaktiv)" #: src/Admin/Settings.php msgid "Cron Events (scheduled tasks, overdue, next run)" -msgstr "Cron-Ereignisse (geplante Aufgaben, ueberfaellig, naechste Ausfuehrung)" +msgstr "Cron-Ereignisse (geplante Aufgaben, überfällig, nächste Ausführung)" #: src/Admin/Settings.php msgid "Transients (total, expiring, expired)" @@ -183,7 +195,7 @@ msgstr "Laufzeit-Metriken" #: src/Admin/Settings.php msgid "Runtime metrics track data across requests. Enable only what you need to minimize performance impact." -msgstr "Laufzeit-Metriken erfassen Daten ueber Anfragen hinweg. Aktivieren Sie nur, was Sie benoetigen, um Auswirkungen auf die Leistung zu minimieren." +msgstr "Laufzeit-Metriken erfassen Daten über Anfragen hinweg. Aktivieren Sie nur, was Sie benötigen, um Auswirkungen auf die Leistung zu minimieren." #: src/Admin/Settings.php msgid "HTTP Requests Total (by method, status, endpoint)" @@ -203,7 +215,7 @@ msgstr "WooCommerce-Metriken" #: src/Admin/Settings.php msgid "Metrics specific to WooCommerce stores. Only available when WooCommerce is active." -msgstr "Metriken speziell fuer WooCommerce-Shops. Nur verfuegbar, wenn WooCommerce aktiv ist." +msgstr "Metriken speziell für WooCommerce-Shops. Nur verfügbar, wenn WooCommerce aktiv ist." #: src/Admin/Settings.php msgid "WooCommerce Products (by status and type)" @@ -223,15 +235,15 @@ msgstr "WooCommerce-Kunden (registriert, Gast)" #: src/Admin/Settings.php msgid "Reset Runtime Metrics" -msgstr "Laufzeit-Metriken zuruecksetzen" +msgstr "Laufzeit-Metriken zurücksetzen" #: src/Admin/Settings.php msgid "Clear all accumulated runtime metric data." -msgstr "Alle gesammelten Laufzeit-Metrikdaten loeschen." +msgstr "Alle gesammelten Laufzeit-Metrikdaten löschen." #: src/Admin/Settings.php msgid "Reset Metrics" -msgstr "Metriken zuruecksetzen" +msgstr "Metriken zurücksetzen" #: src/Admin/Settings.php msgid "Prometheus Configuration" @@ -239,7 +251,7 @@ msgstr "Prometheus-Konfiguration" #: src/Admin/Settings.php msgid "Add the following to your prometheus.yml:" -msgstr "Fuegen Sie Folgendes zu Ihrer prometheus.yml hinzu:" +msgstr "Fügen Sie Folgendes zu Ihrer prometheus.yml hinzu:" #: src/Admin/Settings.php msgid "Endpoint Information" @@ -255,11 +267,11 @@ msgstr "Endpunkt testen" #: src/Admin/Settings.php msgid "You can test the endpoint using curl:" -msgstr "Sie koennen den Endpunkt mit curl testen:" +msgstr "Sie können den Endpunkt mit curl testen:" #: src/Admin/Settings.php msgid "Available Metrics" -msgstr "Verfuegbare Metriken" +msgstr "Verfügbare Metriken" #: src/Admin/Settings.php msgid "Metric" @@ -295,7 +307,7 @@ msgstr "Benutzer gesamt nach Rolle" #: src/Admin/Settings.php msgid "Total posts by type and status" -msgstr "Beitraege gesamt nach Typ und Status" +msgstr "Beiträge gesamt nach Typ und Status" #: src/Admin/Settings.php msgid "Total comments by status" @@ -327,11 +339,11 @@ msgstr "Geplante Cron-Ereignisse nach Hook" #: src/Admin/Settings.php msgid "Number of overdue cron events" -msgstr "Anzahl ueberfaelliger Cron-Ereignisse" +msgstr "Anzahl überfälliger Cron-Ereignisse" #: src/Admin/Settings.php msgid "Unix timestamp of next scheduled cron" -msgstr "Unix-Zeitstempel des naechsten geplanten Crons" +msgstr "Unix-Zeitstempel des nächsten geplanten Crons" #: src/Admin/Settings.php msgid "Total transients by type" @@ -355,11 +367,11 @@ msgstr "WooCommerce-Kunden nach Typ" #: src/Admin/Settings.php msgid "You can add custom metrics using the wp_prometheus_collect_metrics action:" -msgstr "Sie koennen benutzerdefinierte Metriken mit der wp_prometheus_collect_metrics-Aktion hinzufuegen:" +msgstr "Sie können benutzerdefinierte Metriken mit der wp_prometheus_collect_metrics-Aktion hinzufügen:" #: src/Admin/Settings.php msgid "Add Custom Metric" -msgstr "Eigene Metrik hinzufuegen" +msgstr "Eigene Metrik hinzufügen" #: src/Admin/Settings.php msgid "Edit Custom Metric" @@ -415,7 +427,7 @@ msgstr "Label-Name" #: src/Admin/Settings.php msgid "Add Label" -msgstr "Label hinzufuegen" +msgstr "Label hinzufügen" #: src/Admin/Settings.php msgid "Label Values" @@ -427,7 +439,7 @@ msgstr "Wert" #: src/Admin/Settings.php msgid "Add Value Row" -msgstr "Wertezeile hinzufuegen" +msgstr "Wertezeile hinzufügen" #: src/Admin/Settings.php msgid "Enabled" @@ -471,7 +483,7 @@ msgstr "Bearbeiten" #: src/Admin/Settings.php msgid "Delete" -msgstr "Loeschen" +msgstr "Löschen" #: src/Admin/Settings.php msgid "No custom metrics defined yet." @@ -483,7 +495,7 @@ msgstr "Export / Import" #: src/Admin/Settings.php msgid "Export your custom metrics configuration for backup or transfer to another site." -msgstr "Exportieren Sie Ihre Metriken-Konfiguration zur Sicherung oder Uebertragung auf eine andere Website." +msgstr "Exportieren Sie Ihre Metriken-Konfiguration zur Sicherung oder Übertragung auf eine andere Website." #: src/Admin/Settings.php msgid "Export Metrics" @@ -499,11 +511,11 @@ msgstr "Import-Optionen" #: src/Admin/Settings.php msgid "Skip existing metrics" -msgstr "Bestehende Metriken ueberspringen" +msgstr "Bestehende Metriken überspringen" #: src/Admin/Settings.php msgid "Overwrite existing metrics" -msgstr "Bestehende Metriken ueberschreiben" +msgstr "Bestehende Metriken überschreiben" #: src/Admin/Settings.php msgid "Rename duplicates" @@ -531,7 +543,7 @@ msgstr "Import-Anleitung:" #: src/Admin/Settings.php msgid "Download the desired dashboard JSON file" -msgstr "Laden Sie die gewuenschte Dashboard-JSON-Datei herunter" +msgstr "Laden Sie die gewünschte Dashboard-JSON-Datei herunter" #: src/Admin/Settings.php msgid "In Grafana, go to Dashboards > Import" @@ -539,11 +551,11 @@ msgstr "Gehen Sie in Grafana zu Dashboards > Import" #: src/Admin/Settings.php msgid "Upload the JSON file or paste its contents" -msgstr "Laden Sie die JSON-Datei hoch oder fuegen Sie deren Inhalt ein" +msgstr "Laden Sie die JSON-Datei hoch oder fügen Sie deren Inhalt ein" #: src/Admin/Settings.php msgid "Select your Prometheus data source" -msgstr "Waehlen Sie Ihre Prometheus-Datenquelle" +msgstr "Wählen Sie Ihre Prometheus-Datenquelle" #: src/Admin/Settings.php msgid "Click Import" @@ -555,7 +567,7 @@ msgstr "Metrik-Name ist erforderlich." #: src/Metrics/CustomMetricBuilder.php msgid "Invalid metric name format." -msgstr "Ungueltiges Metrik-Namensformat." +msgstr "Ungültiges Metrik-Namensformat." #: src/Metrics/CustomMetricBuilder.php msgid "A metric with this name already exists." @@ -567,7 +579,7 @@ msgstr "Hilfetext ist erforderlich." #: src/Metrics/CustomMetricBuilder.php msgid "Invalid value type." -msgstr "Ungueltiger Werttyp." +msgstr "Ungültiger Werttyp." #: src/Metrics/CustomMetricBuilder.php msgid "Static value must be numeric." @@ -575,7 +587,7 @@ msgstr "Statischer Wert muss numerisch sein." #: src/Metrics/CustomMetricBuilder.php msgid "Option name is required for option value type." -msgstr "Optionsname ist fuer den Options-Werttyp erforderlich." +msgstr "Optionsname ist für den Options-Werttyp erforderlich." #. translators: %d: Maximum number of labels #: src/Metrics/CustomMetricBuilder.php @@ -584,7 +596,7 @@ msgstr "Maximal %d Labels erlaubt." #: src/Metrics/CustomMetricBuilder.php msgid "Invalid label name format." -msgstr "Ungueltiges Label-Namensformat." +msgstr "Ungültiges Label-Namensformat." #. translators: %d: Maximum number of label value combinations #: src/Metrics/CustomMetricBuilder.php @@ -593,11 +605,11 @@ msgstr "Maximal %d Label-Wert-Kombinationen erlaubt." #: src/Metrics/CustomMetricBuilder.php msgid "Invalid JSON format." -msgstr "Ungueltiges JSON-Format." +msgstr "Ungültiges JSON-Format." #: src/Metrics/CustomMetricBuilder.php msgid "Invalid export format." -msgstr "Ungueltiges Export-Format." +msgstr "Ungültiges Export-Format." #: src/Plugin.php msgid "Settings" @@ -606,21 +618,21 @@ msgstr "Einstellungen" #. translators: 1: Required PHP version, 2: Current PHP version #: wp-prometheus.php msgid "WP Prometheus requires PHP version %1$s or higher. You are running PHP %2$s." -msgstr "WP Prometheus erfordert PHP-Version %1$s oder hoeher. Sie verwenden PHP %2$s." +msgstr "WP Prometheus erfordert PHP-Version %1$s oder höher. Sie verwenden PHP %2$s." #. translators: 1: Required WordPress version, 2: Current WordPress version #: wp-prometheus.php msgid "WP Prometheus requires WordPress version %1$s or higher. You are running WordPress %2$s." -msgstr "WP Prometheus erfordert WordPress-Version %1$s oder hoeher. Sie verwenden WordPress %2$s." +msgstr "WP Prometheus erfordert WordPress-Version %1$s oder höher. Sie verwenden WordPress %2$s." #: wp-prometheus.php msgid "WP Prometheus requires Composer dependencies to be installed. Please run \"composer install\" in the plugin directory." -msgstr "WP Prometheus erfordert installierte Composer-Abhaengigkeiten. Bitte fuehren Sie \"composer install\" im Plugin-Verzeichnis aus." +msgstr "WP Prometheus erfordert installierte Composer-Abhängigkeiten. Bitte führen Sie \"composer install\" im Plugin-Verzeichnis aus." #. translators: %s: Required PHP version #: wp-prometheus.php msgid "WP Prometheus requires PHP version %s or higher." -msgstr "WP Prometheus erfordert PHP-Version %s oder hoeher." +msgstr "WP Prometheus erfordert PHP-Version %s oder höher." #: src/Admin/Settings.php msgid "Storage" @@ -632,15 +644,15 @@ msgstr "Metriken-Speicherkonfiguration" #: src/Admin/Settings.php msgid "Configure how Prometheus metrics are stored. Persistent storage (Redis, APCu) allows metrics to survive between requests and aggregate data over time." -msgstr "Konfigurieren Sie, wie Prometheus-Metriken gespeichert werden. Persistenter Speicher (Redis, APCu) ermoeglicht es, Metriken zwischen Anfragen zu erhalten und Daten ueber Zeit zu aggregieren." +msgstr "Konfigurieren Sie, wie Prometheus-Metriken gespeichert werden. Persistenter Speicher (Redis, APCu) ermöglicht es, Metriken zwischen Anfragen zu erhalten und Daten über Zeit zu aggregieren." #: src/Admin/Settings.php msgid "Environment Override Active" -msgstr "Umgebungsvariablen-Ueberschreibung aktiv" +msgstr "Umgebungsvariablen-Überschreibung aktiv" #: src/Admin/Settings.php msgid "Storage adapter is configured via environment variable. Admin settings will be ignored." -msgstr "Speicher-Adapter ist ueber Umgebungsvariable konfiguriert. Admin-Einstellungen werden ignoriert." +msgstr "Speicher-Adapter ist über Umgebungsvariable konfiguriert. Admin-Einstellungen werden ignoriert." #: src/Admin/Settings.php msgid "Storage Fallback Active" @@ -648,7 +660,7 @@ msgstr "Speicher-Fallback aktiv" #: src/Admin/Settings.php msgid "Falling back to In-Memory storage." -msgstr "Faellt zurueck auf In-Memory-Speicher." +msgstr "Fällt zurück auf In-Memory-Speicher." #: src/Admin/Settings.php msgid "Current Status:" @@ -665,11 +677,11 @@ msgstr "Speicher-Adapter" #: src/Admin/Settings.php msgid "unavailable" -msgstr "nicht verfuegbar" +msgstr "nicht verfügbar" #: src/Admin/Settings.php msgid "Select the storage backend for metrics. Redis and APCu require their respective PHP extensions." -msgstr "Waehlen Sie das Speicher-Backend fuer Metriken. Redis und APCu erfordern ihre jeweiligen PHP-Erweiterungen." +msgstr "Wählen Sie das Speicher-Backend für Metriken. Redis und APCu erfordern ihre jeweiligen PHP-Erweiterungen." #: src/Admin/Settings.php msgid "Redis Configuration" @@ -682,7 +694,7 @@ msgstr "Host" #. translators: %s: Environment variable name #: src/Admin/Settings.php msgid "Can be overridden with %s environment variable." -msgstr "Kann mit Umgebungsvariable %s ueberschrieben werden." +msgstr "Kann mit Umgebungsvariable %s überschrieben werden." #: src/Admin/Settings.php msgid "Port" @@ -703,15 +715,15 @@ msgstr "Datenbank" #. translators: %s: Environment variable name #: src/Admin/Settings.php msgid "Redis database index (0-15). Can be overridden with %s." -msgstr "Redis-Datenbankindex (0-15). Kann mit %s ueberschrieben werden." +msgstr "Redis-Datenbankindex (0-15). Kann mit %s überschrieben werden." #: src/Admin/Settings.php msgid "Key Prefix" -msgstr "Schluessel-Praefix" +msgstr "Schlüssel-Präfix" #: src/Admin/Settings.php msgid "Prefix for Redis keys. Useful when sharing Redis with other applications." -msgstr "Praefix fuer Redis-Schluessel. Nuetzlich bei gemeinsamer Redis-Nutzung mit anderen Anwendungen." +msgstr "Präfix für Redis-Schlüssel. Nützlich bei gemeinsamer Redis-Nutzung mit anderen Anwendungen." #: src/Admin/Settings.php msgid "APCu Configuration" @@ -720,7 +732,7 @@ msgstr "APCu-Konfiguration" #. translators: %s: Environment variable name #: src/Admin/Settings.php msgid "Prefix for APCu keys. Can be overridden with %s." -msgstr "Praefix fuer APCu-Schluessel. Kann mit %s ueberschrieben werden." +msgstr "Präfix für APCu-Schlüssel. Kann mit %s überschrieben werden." #: src/Admin/Settings.php msgid "Save Storage Settings" @@ -736,7 +748,7 @@ msgstr "Umgebungsvariablen" #: src/Admin/Settings.php msgid "For Docker or containerized environments, you can configure storage using environment variables. These take precedence over admin settings." -msgstr "Fuer Docker- oder Container-Umgebungen koennen Sie den Speicher ueber Umgebungsvariablen konfigurieren. Diese haben Vorrang vor Admin-Einstellungen." +msgstr "Für Docker- oder Container-Umgebungen können Sie den Speicher über Umgebungsvariablen konfigurieren. Diese haben Vorrang vor Admin-Einstellungen." #: src/Admin/Settings.php msgid "Variable" @@ -768,11 +780,23 @@ msgstr "Redis-Datenbankindex" #: src/Admin/Settings.php msgid "Redis key prefix" -msgstr "Redis-Schluessel-Praefix" +msgstr "Redis-Schlüssel-Präfix" #: src/Admin/Settings.php msgid "APCu key prefix" -msgstr "APCu-Schluessel-Praefix" +msgstr "APCu-Schlüssel-Präfix" + +#: src/Admin/Settings.php +msgid "License server URL" +msgstr "Lizenz-Server-URL" + +#: src/Admin/Settings.php +msgid "License key" +msgstr "Lizenzschlüssel" + +#: src/Admin/Settings.php +msgid "License server shared secret" +msgstr "Gemeinsames Geheimnis des Lizenz-Servers" #: src/Admin/Settings.php msgid "Docker Compose Example" @@ -784,11 +808,11 @@ msgstr "Zugriff verweigert." #: src/Admin/Settings.php msgid "Storage adapter is configured via environment variable and cannot be changed." -msgstr "Speicher-Adapter ist ueber Umgebungsvariable konfiguriert und kann nicht geaendert werden." +msgstr "Speicher-Adapter ist über Umgebungsvariable konfiguriert und kann nicht geändert werden." #: src/Admin/Settings.php msgid "Invalid storage adapter." -msgstr "Ungueltiger Speicher-Adapter." +msgstr "Ungültiger Speicher-Adapter." #: src/Admin/Settings.php msgid "Storage settings saved successfully." @@ -844,7 +868,7 @@ msgstr "APCu-Fehler: %s" #: src/Metrics/StorageFactory.php msgid "In-Memory storage is always available." -msgstr "In-Memory-Speicher ist immer verfuegbar." +msgstr "In-Memory-Speicher ist immer verfügbar." #: src/Metrics/StorageFactory.php msgid "Unknown storage adapter." @@ -869,7 +893,7 @@ msgstr "Redis-Ping fehlgeschlagen." #: src/Metrics/StorageFactory.php msgid "APCu is installed but not enabled. Check your php.ini settings." -msgstr "APCu ist installiert, aber nicht aktiviert. Pruefen Sie Ihre php.ini-Einstellungen." +msgstr "APCu ist installiert, aber nicht aktiviert. Prüfen Sie Ihre php.ini-Einstellungen." #: src/Metrics/StorageFactory.php msgid "APCu store operation failed." @@ -882,47 +906,47 @@ msgstr "APCu funktioniert. Speicher: %s belegt." #: src/Metrics/StorageFactory.php msgid "APCu fetch operation returned unexpected value." -msgstr "APCu-Abrufoperation hat unerwarteten Wert zurueckgegeben." +msgstr "APCu-Abrufoperation hat unerwarteten Wert zurückgegeben." #: src/Admin/Settings.php msgid "Early Mode" -msgstr "Fruehzeitiger Modus" +msgstr "Frühzeitiger Modus" #: src/Admin/Settings.php msgid "Early mode intercepts /metrics requests before full WordPress initialization. This prevents memory exhaustion issues caused by some plugins (e.g., Twig-based themes/plugins) but disables the wp_prometheus_collect_metrics hook for custom metrics." -msgstr "Der fruehzeitige Modus faengt /metrics-Anfragen vor der vollstaendigen WordPress-Initialisierung ab. Dies verhindert Speichererschoepfungsprobleme, die durch einige Plugins verursacht werden (z.B. Twig-basierte Themes/Plugins), deaktiviert jedoch den wp_prometheus_collect_metrics-Hook fuer benutzerdefinierte Metriken." +msgstr "Der frühzeitige Modus fängt /metrics-Anfragen vor der vollständigen WordPress-Initialisierung ab. Dies verhindert Speichererschöpfungsprobleme, die durch einige Plugins verursacht werden (z.B. Twig-basierte Themes/Plugins), deaktiviert jedoch den wp_prometheus_collect_metrics-Hook für benutzerdefinierte Metriken." #: src/Admin/Settings.php msgid "Early mode is configured via WP_PROMETHEUS_DISABLE_EARLY_MODE environment variable. Admin settings will be ignored." -msgstr "Der fruehzeitige Modus ist ueber die Umgebungsvariable WP_PROMETHEUS_DISABLE_EARLY_MODE konfiguriert. Admin-Einstellungen werden ignoriert." +msgstr "Der frühzeitige Modus ist über die Umgebungsvariable WP_PROMETHEUS_DISABLE_EARLY_MODE konfiguriert. Admin-Einstellungen werden ignoriert." #: src/Admin/Settings.php msgid "Disable Early Mode" -msgstr "Fruehzeitigen Modus deaktivieren" +msgstr "Frühzeitigen Modus deaktivieren" #: src/Admin/Settings.php msgid "Disable early metrics interception" -msgstr "Fruehzeitige Metriken-Abfangung deaktivieren" +msgstr "Frühzeitige Metriken-Abfangung deaktivieren" #: src/Admin/Settings.php msgid "When disabled, metrics are collected through normal WordPress template loading. This enables the wp_prometheus_collect_metrics hook for custom metrics but may cause issues with some plugins." -msgstr "Wenn deaktiviert, werden Metriken ueber das normale WordPress-Template-Laden erfasst. Dies aktiviert den wp_prometheus_collect_metrics-Hook fuer benutzerdefinierte Metriken, kann jedoch Probleme mit einigen Plugins verursachen." +msgstr "Wenn deaktiviert, werden Metriken über das normale WordPress-Template-Laden erfasst. Dies aktiviert den wp_prometheus_collect_metrics-Hook für benutzerdefinierte Metriken, kann jedoch Probleme mit einigen Plugins verursachen." #: src/Admin/Settings.php msgid "Early mode is active (this request was served via early interception)" -msgstr "Fruehzeitiger Modus ist aktiv (diese Anfrage wurde ueber fruehzeitige Abfangung verarbeitet)" +msgstr "Frühzeitiger Modus ist aktiv (diese Anfrage wurde über frühzeitige Abfangung verarbeitet)" #: src/Admin/Settings.php msgid "Early mode is disabled" -msgstr "Fruehzeitiger Modus ist deaktiviert" +msgstr "Frühzeitiger Modus ist deaktiviert" #: src/Admin/Settings.php msgid "Early mode is enabled (active for /metrics requests)" -msgstr "Fruehzeitiger Modus ist aktiviert (aktiv fuer /metrics-Anfragen)" +msgstr "Frühzeitiger Modus ist aktiviert (aktiv für /metrics-Anfragen)" #: src/Admin/Settings.php msgid "Clear all accumulated runtime metric data (HTTP requests, database queries). This is useful for testing or starting fresh." -msgstr "Alle gesammelten Laufzeit-Metrikdaten loeschen (HTTP-Anfragen, Datenbank-Abfragen). Dies ist nuetzlich zum Testen oder fuer einen Neuanfang." +msgstr "Alle gesammelten Laufzeit-Metrikdaten löschen (HTTP-Anfragen, Datenbank-Abfragen). Dies ist nützlich zum Testen oder für einen Neuanfang." #: src/Admin/Settings.php msgid "Endpoint" @@ -946,11 +970,11 @@ msgstr "Laufzeit-Metriken Verwaltung" #: src/Admin/Settings.php msgid "Runtime metrics track HTTP requests and database queries across requests. Use this section to manage accumulated data." -msgstr "Laufzeit-Metriken erfassen HTTP-Anfragen und Datenbank-Abfragen ueber mehrere Anfragen hinweg. Verwenden Sie diesen Bereich zur Verwaltung der gesammelten Daten." +msgstr "Laufzeit-Metriken erfassen HTTP-Anfragen und Datenbank-Abfragen über mehrere Anfragen hinweg. Verwenden Sie diesen Bereich zur Verwaltung der gesammelten Daten." #: src/Admin/Settings.php msgid "Reset Data" -msgstr "Daten zuruecksetzen" +msgstr "Daten zurücksetzen" #: src/Admin/Settings.php msgid "Extension" @@ -963,7 +987,7 @@ msgstr "Bereitgestellt von: %s" #: src/Admin/Settings.php msgid "No dashboards available." -msgstr "Keine Dashboards verfuegbar." +msgstr "Keine Dashboards verfügbar." #: src/Admin/Settings.php msgid "Pre-built dashboards for visualizing your WordPress metrics in Grafana." @@ -975,7 +999,7 @@ msgstr "Installationsanleitung" #: src/Admin/Settings.php msgid "Download the JSON file for your desired dashboard." -msgstr "Laden Sie die JSON-Datei fuer das gewuenschte Dashboard herunter." +msgstr "Laden Sie die JSON-Datei für das gewünschte Dashboard herunter." #: src/Admin/Settings.php msgid "In Grafana, go to Dashboards → Import." @@ -983,11 +1007,11 @@ msgstr "Gehen Sie in Grafana zu Dashboards → Import." #: src/Admin/Settings.php msgid "Upload the JSON file or paste its contents." -msgstr "Laden Sie die JSON-Datei hoch oder fuegen Sie den Inhalt ein." +msgstr "Laden Sie die JSON-Datei hoch oder fügen Sie den Inhalt ein." #: src/Admin/Settings.php msgid "Select your Prometheus data source when prompted." -msgstr "Waehlen Sie Ihre Prometheus-Datenquelle, wenn Sie dazu aufgefordert werden." +msgstr "Wählen Sie Ihre Prometheus-Datenquelle, wenn Sie dazu aufgefordert werden." #: src/Admin/Settings.php msgid "Click Import to create the dashboard." diff --git a/languages/wp-prometheus.pot b/languages/wp-prometheus.pot index 0f6681b..ee99f8e 100644 --- a/languages/wp-prometheus.pot +++ b/languages/wp-prometheus.pot @@ -98,6 +98,18 @@ msgstr "" msgid "Leave empty to keep existing." msgstr "" +#: src/Admin/Settings.php +msgid "Overridden by WP_PROMETHEUS_LICENSE_SERVER_URL environment variable." +msgstr "" + +#: src/Admin/Settings.php +msgid "Overridden by WP_PROMETHEUS_LICENSE_KEY environment variable." +msgstr "" + +#: src/Admin/Settings.php +msgid "Overridden by WP_PROMETHEUS_LICENSE_SERVER_SECRET environment variable." +msgstr "" + #: src/Admin/Settings.php msgid "Save License Settings" msgstr "" @@ -771,6 +783,18 @@ msgstr "" msgid "APCu key prefix" msgstr "" +#: src/Admin/Settings.php +msgid "License server URL" +msgstr "" + +#: src/Admin/Settings.php +msgid "License key" +msgstr "" + +#: src/Admin/Settings.php +msgid "License server shared secret" +msgstr "" + #: src/Admin/Settings.php msgid "Docker Compose Example" msgstr "" diff --git a/src/Admin/Settings.php b/src/Admin/Settings.php index 5bf045c..86a5175 100644 --- a/src/Admin/Settings.php +++ b/src/Admin/Settings.php @@ -311,6 +311,9 @@ class Settings { private function render_license_tab(): void { $license_key = LicenseManager::get_license_key(); $server_url = LicenseManager::get_server_url(); + $env_server_url = LicenseManager::is_env_override( 'server_url' ); + $env_license_key = LicenseManager::is_env_override( 'license_key' ); + $env_server_secret = LicenseManager::is_env_override( 'server_secret' ); $license_status = LicenseManager::get_cached_status(); $license_data = LicenseManager::get_cached_data(); $last_check = LicenseManager::get_last_check(); @@ -375,7 +378,11 @@ class Settings { + class="regular-text" placeholder="https://example.com" + > + +

+ @@ -385,7 +392,11 @@ class Settings { + class="regular-text" placeholder="XXXX-XXXX-XXXX-XXXX" + > + +

+ @@ -394,8 +405,13 @@ class Settings { -

+ value="" class="regular-text" placeholder="" + > + +

+ +

+ @@ -930,6 +946,21 @@ class Settings { wp_prom + + WP_PROMETHEUS_LICENSE_SERVER_URL + + https://license.example.com + + + WP_PROMETHEUS_LICENSE_KEY + + XXXX-XXXX-XXXX-XXXX + + + WP_PROMETHEUS_LICENSE_SERVER_SECRET + + my-shared-secret + @@ -941,6 +972,9 @@ class Settings { WP_PROMETHEUS_STORAGE_ADAPTER: redis WP_PROMETHEUS_REDIS_HOST: redis WP_PROMETHEUS_REDIS_PORT: 6379 + WP_PROMETHEUS_LICENSE_SERVER_URL: https://license.example.com + WP_PROMETHEUS_LICENSE_KEY: XXXX-XXXX-XXXX-XXXX + WP_PROMETHEUS_LICENSE_SERVER_SECRET: my-shared-secret depends_on: - redis diff --git a/src/License/Manager.php b/src/License/Manager.php index 1462838..6d403dd 100644 --- a/src/License/Manager.php +++ b/src/License/Manager.php @@ -346,30 +346,69 @@ final class Manager { /** * Get the license key. * + * Environment variable WP_PROMETHEUS_LICENSE_KEY takes precedence. + * * @return string */ public static function get_license_key(): string { + $env = getenv( 'WP_PROMETHEUS_LICENSE_KEY' ); + if ( false !== $env && '' !== $env ) { + return $env; + } return get_option( self::OPTION_LICENSE_KEY, '' ); } /** * Get the license server URL. * + * Environment variable WP_PROMETHEUS_LICENSE_SERVER_URL takes precedence. + * * @return string */ public static function get_server_url(): string { + $env = getenv( 'WP_PROMETHEUS_LICENSE_SERVER_URL' ); + if ( false !== $env && '' !== $env ) { + return $env; + } return get_option( self::OPTION_SERVER_URL, '' ); } /** * Get the server secret. * + * Environment variable WP_PROMETHEUS_LICENSE_SERVER_SECRET takes precedence. + * * @return string */ public static function get_server_secret(): string { + $env = getenv( 'WP_PROMETHEUS_LICENSE_SERVER_SECRET' ); + if ( false !== $env && '' !== $env ) { + return $env; + } return get_option( self::OPTION_SERVER_SECRET, '' ); } + /** + * Check if a license setting is overridden by an environment variable. + * + * @param string $setting One of 'server_url', 'license_key', 'server_secret'. + * @return bool + */ + public static function is_env_override( string $setting ): bool { + $map = array( + 'server_url' => 'WP_PROMETHEUS_LICENSE_SERVER_URL', + 'license_key' => 'WP_PROMETHEUS_LICENSE_KEY', + 'server_secret' => 'WP_PROMETHEUS_LICENSE_SERVER_SECRET', + ); + + if ( ! isset( $map[ $setting ] ) ) { + return false; + } + + $env = getenv( $map[ $setting ] ); + return false !== $env && '' !== $env; + } + /** * Get cached license status. *