feat(#221): add i18n keys and error codes for tag hierarchy errors

Adds INVALID_TAG_COLOR and TAG_CYCLE_DETECTED to the frontend ErrorCode
type and getErrorMessage() switch. German, English, and Spanish
translations added for both codes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-16 16:51:03 +02:00
parent 7f53651f13
commit 39ed66c97f
4 changed files with 12 additions and 0 deletions

View File

@@ -501,6 +501,8 @@
"error_ocr_document_not_uploaded": "Das Dokument hat keine Datei — OCR ist nicht möglich.",
"error_ocr_processing_failed": "Die OCR-Verarbeitung ist fehlgeschlagen.",
"error_training_already_running": "Es läuft bereits ein Trainings-Vorgang.",
"error_invalid_tag_color": "Die gewählte Farbe ist ungültig.",
"error_tag_cycle_detected": "Dieses übergeordnete Schlagwort würde einen Kreis erzeugen.",
"ocr_script_type_typewriter": "Schreibmaschine",
"ocr_script_type_handwriting_latin": "Handschrift (lateinisch)",
"ocr_script_type_handwriting_kurrent": "Handschrift (Kurrent/Sütterlin)",

View File

@@ -501,6 +501,8 @@
"error_ocr_document_not_uploaded": "The document has no file — OCR is not possible.",
"error_ocr_processing_failed": "OCR processing failed.",
"error_training_already_running": "A training run is already in progress.",
"error_invalid_tag_color": "The chosen color is not valid.",
"error_tag_cycle_detected": "This parent tag would create a cycle.",
"ocr_script_type_typewriter": "Typewriter",
"ocr_script_type_handwriting_latin": "Handwriting (Latin)",
"ocr_script_type_handwriting_kurrent": "Handwriting (Kurrent/Sütterlin)",

View File

@@ -501,6 +501,8 @@
"error_ocr_document_not_uploaded": "El documento no tiene archivo — OCR no es posible.",
"error_ocr_processing_failed": "El procesamiento OCR ha fallado.",
"error_training_already_running": "Ya hay un proceso de entrenamiento en curso.",
"error_invalid_tag_color": "El color elegido no es válido.",
"error_tag_cycle_detected": "Esta etiqueta padre crearía un ciclo.",
"ocr_script_type_typewriter": "Máquina de escribir",
"ocr_script_type_handwriting_latin": "Escritura manuscrita (latina)",
"ocr_script_type_handwriting_kurrent": "Escritura manuscrita (Kurrent/Sütterlin)",

View File

@@ -27,6 +27,8 @@ export type ErrorCode =
| 'OCR_DOCUMENT_NOT_UPLOADED'
| 'OCR_PROCESSING_FAILED'
| 'TRAINING_ALREADY_RUNNING'
| 'INVALID_TAG_COLOR'
| 'TAG_CYCLE_DETECTED'
| 'UNAUTHORIZED'
| 'FORBIDDEN'
| 'VALIDATION_ERROR'
@@ -100,6 +102,10 @@ export function getErrorMessage(code: ErrorCode | string | undefined): string {
return m.error_ocr_processing_failed();
case 'TRAINING_ALREADY_RUNNING':
return m.error_training_already_running();
case 'INVALID_TAG_COLOR':
return m.error_invalid_tag_color();
case 'TAG_CYCLE_DETECTED':
return m.error_tag_cycle_detected();
case 'UNAUTHORIZED':
return m.error_unauthorized();
case 'FORBIDDEN':