diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 72254cf3..dcd08246 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -28,6 +28,8 @@ "nav_conversations": "Briefwechsel", "nav_admin": "Admin", "nav_logout": "Abmelden", + "layout_menu_open": "Menü öffnen", + "layout_menu_close": "Menü schließen", "theme_toggle_to_light": "Zu hellem Design wechseln", "theme_toggle_to_dark": "Zu dunklem Design wechseln", "btn_save": "Speichern", @@ -394,6 +396,10 @@ "doc_panel_discussion_annotation_tab": "Annotation · Seite {page}", "pdf_annotations_show": "Annotierungen anzeigen", "pdf_annotations_hide": "Annotierungen verbergen", + "viewer_previous_page": "Zurück", + "viewer_next_page": "Weiter", + "viewer_zoom_out": "Verkleinern", + "viewer_zoom_in": "Vergrößern", "upload_action": "Hochladen", "upload_drop_hint": "Einzeln oder mehrere Dateien auf einmal hochladen", "upload_accepted_types": "PDF, JPEG, PNG, TIFF", @@ -655,6 +661,7 @@ "transcription_block_segmentation_only": "Nur Segmentierung", "training_chip_kurrent": "Kurrent-Erkennung", "training_chip_segmentation": "Segmentierung", + "transcribe_mark_for_training": "Für Training vormerken", "training_col_type": "Typ", "training_type_base": "Basis", "training_type_personalized": "Personalisiert", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index b8b6dd68..f915633e 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -28,6 +28,8 @@ "nav_conversations": "Letters", "nav_admin": "Admin", "nav_logout": "Sign out", + "layout_menu_open": "Open menu", + "layout_menu_close": "Close menu", "theme_toggle_to_light": "Switch to light mode", "theme_toggle_to_dark": "Switch to dark mode", "btn_save": "Save", @@ -394,6 +396,10 @@ "doc_panel_discussion_annotation_tab": "Annotation · Page {page}", "pdf_annotations_show": "Show annotations", "pdf_annotations_hide": "Hide annotations", + "viewer_previous_page": "Previous page", + "viewer_next_page": "Next page", + "viewer_zoom_out": "Zoom out", + "viewer_zoom_in": "Zoom in", "upload_action": "Upload", "upload_drop_hint": "Drop one or multiple files at once", "upload_accepted_types": "PDF, JPEG, PNG, TIFF", @@ -655,6 +661,7 @@ "transcription_block_segmentation_only": "Segmentation only", "training_chip_kurrent": "Kurrent recognition", "training_chip_segmentation": "Segmentation", + "transcribe_mark_for_training": "Mark for OCR training", "training_col_type": "Type", "training_type_base": "Base", "training_type_personalized": "Personalized", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 0943943e..1f1dec02 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -28,6 +28,8 @@ "nav_conversations": "Cartas", "nav_admin": "Admin", "nav_logout": "Cerrar sesión", + "layout_menu_open": "Abrir menú", + "layout_menu_close": "Cerrar menú", "theme_toggle_to_light": "Cambiar a modo claro", "theme_toggle_to_dark": "Cambiar a modo oscuro", "btn_save": "Guardar", @@ -394,6 +396,10 @@ "doc_panel_discussion_annotation_tab": "Anotación · Página {page}", "pdf_annotations_show": "Mostrar anotaciones", "pdf_annotations_hide": "Ocultar anotaciones", + "viewer_previous_page": "Página anterior", + "viewer_next_page": "Página siguiente", + "viewer_zoom_out": "Reducir", + "viewer_zoom_in": "Ampliar", "upload_action": "Subir", "upload_drop_hint": "Uno o varios archivos a la vez", "upload_accepted_types": "PDF, JPEG, PNG, TIFF", @@ -655,6 +661,7 @@ "transcription_block_segmentation_only": "Solo segmentación", "training_chip_kurrent": "Reconocimiento Kurrent", "training_chip_segmentation": "Segmentación", + "transcribe_mark_for_training": "Marcar para entrenamiento de OCR", "training_col_type": "Tipo", "training_type_base": "Base", "training_type_personalized": "Personalizado", diff --git a/frontend/src/lib/messages.spec.ts b/frontend/src/lib/messages.spec.ts new file mode 100644 index 00000000..e6d0b96c --- /dev/null +++ b/frontend/src/lib/messages.spec.ts @@ -0,0 +1,43 @@ +import { describe, it, expect } from 'vitest'; +import de from '../../messages/de.json'; +import en from '../../messages/en.json'; +import es from '../../messages/es.json'; + +describe('message key parity', () => { + it('de, en, and es have identical key sets', () => { + const deKeys = Object.keys(de).sort(); + const enKeys = Object.keys(en).sort(); + const esKeys = Object.keys(es).sort(); + expect(enKeys).toEqual(deKeys); + expect(esKeys).toEqual(deKeys); + }); + + it('viewer navigation keys are present in all locales', () => { + const requiredViewerKeys = [ + 'viewer_previous_page', + 'viewer_next_page', + 'viewer_zoom_out', + 'viewer_zoom_in' + ]; + for (const key of requiredViewerKeys) { + expect(de, `missing key in de: ${key}`).toHaveProperty(key); + expect(en, `missing key in en: ${key}`).toHaveProperty(key); + expect(es, `missing key in es: ${key}`).toHaveProperty(key); + } + }); + + it('transcribe mark-for-training key is present in all locales', () => { + expect(de).toHaveProperty('transcribe_mark_for_training'); + expect(en).toHaveProperty('transcribe_mark_for_training'); + expect(es).toHaveProperty('transcribe_mark_for_training'); + }); + + it('layout menu open/close keys are present in all locales', () => { + expect(de).toHaveProperty('layout_menu_open'); + expect(de).toHaveProperty('layout_menu_close'); + expect(en).toHaveProperty('layout_menu_open'); + expect(en).toHaveProperty('layout_menu_close'); + expect(es).toHaveProperty('layout_menu_open'); + expect(es).toHaveProperty('layout_menu_close'); + }); +});