From b214249a342b3cd8bf2b05423198ac703bea7b3e Mon Sep 17 00:00:00 2001 From: Claude Code Date: Wed, 13 May 2026 21:39:36 +0000 Subject: [PATCH] fix(i18n): Beschreibung-generieren-Button + Fehler-Toasts uebersetzbar - Button-Span enhance-btn-text bekommt data-i18n. - app.js: Loading-State Wird generiert... / Generating... per T(). - Vier Fehler-Toasts (Default, 503, 429, 504) per T() lokalisiert. - Neue Keys enhance.* in de.json + en.json. - Cache-Buster app.js auf v=20260513c gebumpt. --- src/static/dashboard.html | 4 ++-- src/static/i18n/de.json | 5 +++++ src/static/i18n/en.json | 5 +++++ src/static/js/app.js | 12 ++++++------ 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/static/dashboard.html b/src/static/dashboard.html index ec4ed66..1da5330 100644 --- a/src/static/dashboard.html +++ b/src/static/dashboard.html @@ -341,7 +341,7 @@
@@ -729,7 +729,7 @@ - + diff --git a/src/static/i18n/de.json b/src/static/i18n/de.json index c2eb511..9f16818 100644 --- a/src/static/i18n/de.json +++ b/src/static/i18n/de.json @@ -21,6 +21,11 @@ "modal.new_incident.title_field": "Titel des Vorfalls", "modal.new_incident.description": "Beschreibung / Kontext", "modal.new_incident.enhance": "Beschreibung generieren", + "modal.new_incident.enhance_loading": "Wird generiert...", + "enhance.error_default": "Beschreibung konnte nicht generiert werden", + "enhance.error_unavailable": "KI-Zugang aktuell nicht verfügbar. Bitte Administrator kontaktieren.", + "enhance.error_busy": "KI ist gerade ausgelastet. Bitte kurz warten und erneut versuchen.", + "enhance.error_timeout": "KI antwortet gerade nicht. Bitte erneut versuchen.", "modal.new_incident.visibility": "Sichtbarkeit", "modal.new_incident.visibility_public": "Öffentlich", "modal.new_incident.visibility_private": "Privat", diff --git a/src/static/i18n/en.json b/src/static/i18n/en.json index bb4197e..631da79 100644 --- a/src/static/i18n/en.json +++ b/src/static/i18n/en.json @@ -21,6 +21,11 @@ "modal.new_incident.title_field": "Incident title", "modal.new_incident.description": "Description / context", "modal.new_incident.enhance": "Generate description", + "modal.new_incident.enhance_loading": "Generating...", + "enhance.error_default": "Description could not be generated", + "enhance.error_unavailable": "AI access currently unavailable. Please contact your administrator.", + "enhance.error_busy": "AI is currently busy. Please wait briefly and try again.", + "enhance.error_timeout": "AI is not responding. Please try again.", "modal.new_incident.visibility": "Visibility", "modal.new_incident.visibility_public": "Public", "modal.new_incident.visibility_private": "Private", diff --git a/src/static/js/app.js b/src/static/js/app.js index c2dcd1d..dfdbf36 100644 --- a/src/static/js/app.js +++ b/src/static/js/app.js @@ -1906,7 +1906,7 @@ async generateDescription() { this._enhanceController = new AbortController(); btn.disabled = true; - btnText.textContent = 'Wird generiert...'; + btnText.textContent = (typeof T === 'function') ? T('modal.new_incident.enhance_loading', 'Wird generiert...') : 'Wird generiert...'; spinner.style.display = ''; textarea.readOnly = true; textarea.classList.add('textarea--loading'); @@ -1919,15 +1919,15 @@ async generateDescription() { if (err.name === 'AbortError') { // still } else { - let msg = 'Beschreibung konnte nicht generiert werden'; - if (err.status === 503) msg = 'KI-Zugang aktuell nicht verfügbar. Bitte Administrator kontaktieren.'; - else if (err.status === 429) msg = 'KI ist gerade ausgelastet. Bitte kurz warten und erneut versuchen.'; - else if (err.status === 504) msg = 'KI antwortet gerade nicht. Bitte erneut versuchen.'; + let msg = (typeof T === 'function') ? T('enhance.error_default', 'Beschreibung konnte nicht generiert werden') : 'Beschreibung konnte nicht generiert werden'; + if (err.status === 503) msg = (typeof T === 'function') ? T('enhance.error_unavailable', 'KI-Zugang aktuell nicht verfügbar. Bitte Administrator kontaktieren.') : 'KI-Zugang aktuell nicht verfügbar. Bitte Administrator kontaktieren.'; + else if (err.status === 429) msg = (typeof T === 'function') ? T('enhance.error_busy', 'KI ist gerade ausgelastet. Bitte kurz warten und erneut versuchen.') : 'KI ist gerade ausgelastet. Bitte kurz warten und erneut versuchen.'; + else if (err.status === 504) msg = (typeof T === 'function') ? T('enhance.error_timeout', 'KI antwortet gerade nicht. Bitte erneut versuchen.') : 'KI antwortet gerade nicht. Bitte erneut versuchen.'; else if (err.status === 403) msg = err.detail || 'Zugriff verweigert.'; UI.showToast(msg, 'error'); } } finally { - btnText.textContent = 'Beschreibung generieren'; + btnText.textContent = (typeof T === 'function') ? T('modal.new_incident.enhance', 'Beschreibung generieren') : 'Beschreibung generieren'; spinner.style.display = 'none'; btn.disabled = title.length < 3; textarea.readOnly = false;