diff --git a/apps/red-ui/src/app/modules/admin/screens/general-config/smtp-form/smtp-form.component.ts b/apps/red-ui/src/app/modules/admin/screens/general-config/smtp-form/smtp-form.component.ts index 2514390c9..8cd62c76d 100644 --- a/apps/red-ui/src/app/modules/admin/screens/general-config/smtp-form/smtp-form.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/general-config/smtp-form/smtp-form.component.ts @@ -62,8 +62,12 @@ export class SmtpFormComponent extends BaseFormComponent implements OnInit { async testConnection() { this._loadingService.start(); try { - await firstValueFrom(this._smtpConfigService.testSMTPConfiguration(this.form.getRawValue())); - this._toaster.success(_('general-config-screen.test.success')); + const response = await firstValueFrom(this._smtpConfigService.testSMTPConfiguration(this.form.getRawValue())); + if (!response.adminEmail) { + this._toaster.warning(_('general-config-screen.test.warning'), { params: { recipientEmail: response.recipientEmail } }); + } else { + this._toaster.success(_('general-config-screen.test.success')); + } } catch (e) { this._toaster.error(_('general-config-screen.test.error')); } finally { diff --git a/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts b/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts index 40b949acd..fcca71a0a 100644 --- a/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { GenericService } from '@iqser/common-ui'; -import { ISmtpConfiguration } from '@red/domain'; +import { ISmtpConfiguration, ITextConnectionResponse } from '@red/domain'; @Injectable() export class SmtpConfigService extends GenericService { @@ -12,7 +12,7 @@ export class SmtpConfigService extends GenericService { } testSMTPConfiguration(body: ISmtpConfiguration) { - return this._post(body, `${this._defaultModelPath}/smtp/test`); + return this._post(body, `${this._defaultModelPath}/smtp/test`); } getCurrentSMTPConfiguration() { diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index 10e3c8f28..eb813141e 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -17,42 +17,42 @@ "save": "Speichern" }, "content": { - "comment": "Comment", - "comment-placeholder": "Add remarks or notes...", + "comment": "Kommentar", + "comment-placeholder": "Bemerkungen oder Notizen hinzufügen...", "selected-text": "Ausgewählter Text:", - "type": "Type", - "type-placeholder": "Select type..." + "type": "Typ", + "type-placeholder": "Typ auswählen..." }, - "title": "Add annotation" + "title": "Annotation hinzufügen" } }, "add-clone-dossier-template": { - "save": "{type, select, clone{Clone} other{Save}}", - "save-and-edit": "{type, select, clone{Clone} other{Save}} and edit", - "title": "{type, select, clone{Clone {dossierTemplateName}} other{Create dossier template}}" + "save": "{type, select, clone{Klonen} other{Speichern}}", + "save-and-edit": "{type, select, clone{Klonen} other{Speichern}} und bearbeiten", + "title": "{type, select, clone{{dossierTemplateName} klonen} other{Dossier-Vorlage erstellen}}" }, "add-dossier-dialog": { "actions": { "save": "Speichern", - "save-and-add-members": "Speichern und Team zusammenstellen" + "save-and-add-members": "Speichern und Team bearbeiten" }, "errors": { - "dossier-already-exists": "Dieser Dossier-Name ist bereits vergeben!", + "dossier-already-exists": "Dossier-Name bereits vorhanden.\n
  • Befindet sich das gleichnamige Dossier im Papierkorb, können Sie es endgültig löschen, um den Namen erneut zu verwenden.
  • \n
  • Ist das gleichnamige Dossier aktiv oder archiviert, verwenden Sie bitte einen anderen Namen.
", "generic": "Dossier konnte nicht gespeichert werden." }, "form": { "description": { "label": "Beschreibung", - "placeholder": "Bitte geben Sie eine Beschreibung ein." + "placeholder": "Beschreibung eingeben" }, "due-date": "Termin", "name": { "label": "Dossier-Name", - "placeholder": "Geben Sie einen Namen ein." + "placeholder": "Namen eingeben" }, "template": { "label": "Dossier-Vorlage", - "placeholder": "Choose dossier template" + "placeholder": "Dossier-Vorlage auswählen" } }, "header-new": "Dossier erstellen", @@ -60,34 +60,34 @@ }, "add-edit-clone-dossier-template": { "error": { - "conflict": "Dossiervorlage konnte nicht erstellt werden: Es existiert bereits eine Dossiervorlage mit demselben Namen." + "conflict": "Es gibt bereits eine Dossier-Vorlage mit dem angegebenen Namen.

Bitte wählen Sie einen anderen Namen." }, "form": { "apply-updates-default": { - "description": "Apply dictionary updates to all dossiers by default", - "heading": "Entity configuration" + "description": "Änderungen am Wörterbuch standardmäßig auf alle Dossiers anwenden", + "heading": "Konfiguration für Entitäten" }, "description": "Beschreibung", "description-placeholder": "Beschreibung eingeben", "hidden-text": { - "description": "Hidden text is invisible to human readers but can be detected and read by software and machines. For example, the OCR output of scanned documents is stored as hidden text.", - "heading": "Hidden elements in redacted documents", - "title": "Keep hidden text" + "description": "Versteckter Text ist für menschliche Leser nicht sichtbar, kann jedoch von Software und Maschinen erkannt und gelesen werden. Der OCR-Output von gescannten Dokumenten wird beispielsweise als versteckter Text gespeichert.", + "heading": "Versteckte Elemente in geschwärzten Dokumenten", + "title": "Versteckten Text beibehalten" }, "image-metadata": { "description": "Images in documents might contain additional information as metadata. This could include the creator, the date or the location of the image.", - "title": "Keep image metadata" + "title": "Bildmetadaten beibehalten" }, "name": "Name der Dossier-Vorlage", "name-placeholder": "Namen eingeben", "overlapping-elements": { "description": "Overlapping elements in the document can potentially contain hidden sensitive information. Removing overlapping elements may result in a bigger file size and an increased processing duration.", - "title": "Keep overlapping elements" + "title": "Überlappende Elemente beibehalten" }, "upload-settings": { - "heading": "Upload settings", - "ocr-by-default": "Automatically perform OCR on document upload", - "remove-watermark": "Remove watermarks before processing OCR" + "heading": "Upload-Einstellungen", + "ocr-by-default": "OCR beim Upload von Dokumenten automatisch durchführen", + "remove-watermark": "Wasserzeichen vor OCR-Verarbeitung entfernen" }, "valid-from": "Gültig ab", "valid-to": "Gültig bis" @@ -126,14 +126,14 @@ }, "add-edit-dossier-state": { "form": { - "color": "HEX color", + "color": "HEX-Farbcode", "color-placeholder": "#", - "name": "Status name", - "name-placeholder": "Enter name", - "rank": "Rank" + "name": "Name des Status", + "name-placeholder": "Namen eingeben", + "rank": "Rang" }, - "save": "Save state", - "success": "Dossier state {type, select, edit{has been updated} create{creation successful} other{}}.", + "save": "Status speichern", + "success": "Dossier-Status {type, select, edit{wurde aktualisiert} create{wurde erstellt} other{}}.", "title": "{type, select, edit{Edit {name}} create{Create} other{}} dossier state" }, "add-edit-entity": { @@ -141,32 +141,32 @@ "case-sensitive": "Case-sensitive", "color": "{type, select, redaction{Redaction} hint{Hint} recommendation{Recommendation} skipped{Skipped redaction} ignored{Ignored hint} other{}} color", "color-placeholder": "#", - "default-reason": "Default reason", + "default-reason": "Standard-Schwärzungsgrund", "default-reason-placeholder": "No default reason", - "description": "Description", - "description-placeholder": "Enter description", - "dossier-dictionary-only": "Dossier dictionary only", + "description": "Beschreibung", + "description-placeholder": "Beschreibung eingeben", + "dossier-dictionary-only": "Nur Dossier-Wörterbuch", "has-dictionary": "Has dictionary", - "hint": "Hint", + "hint": "Hinweis", "manage-entries-in-dictionary-editor-only": "Available in add/edit dialogs", - "name": "Display name", + "name": "Anzeigename", "name-placeholder": "Enter name", "rank": "Rank", "rank-placeholder": "1000", "redaction": "Redaction", "technical-name": "Technical name", - "technical-name-hint": "{type, select, edit{Auto-generated based on the initial display name.} create{Is auto-generates based on the display name and cannot be edited after saving.} other{}}", + "technical-name-hint": "{type, select, edit{Auto-generated based on the initial display name.} create{Is auto-generated based on the display name and cannot be edited after saving.} other{}}", "template-and-dossier-dictionaries": "Template & dossier dictionaries" }, "success": { "create": "Success: Entity created.", - "edit": "Entity updated.

Please note that other users need to refresh their browsers to see your changes." + "edit": "Success: Entity updated.

Please ask the users to refresh the browser to see the changes." } }, "add-edit-file-attribute": { "form": { - "column-header": "CSV-Spaltenüberschrift", - "column-header-placeholder": "Spaltenüberschrift für CSV eingeben", + "column-header": "", + "column-header-placeholder": "", "displayed-disabled": "Die maximale Anzahl angezeigter Attribute ({maxNumber}) wurde erreicht.", "displayedInFileList": "Wird in der Dokumentenliste angezeigt", "filterable": "Filterbar", @@ -178,7 +178,7 @@ "type": "Typ" }, "save": "Attribut speichern", - "title": "{type, select, edit{Edit {name}} create{Add New} other{}} Datei-Attribut" + "title": "" }, "add-edit-justification": { "actions": { @@ -189,11 +189,11 @@ "description": "Beschreibung", "description-placeholder": "Beschreibung eingeben", "name": "Name", - "name-placeholder": "Name eingeben", - "reason": "Rechtliche Grundlage", + "name-placeholder": "Namen eingeben", + "reason": "Rechtsgrundlage", "reason-placeholder": "Rechtsgrundlage eingeben" }, - "title": "{type, select, edit{Edit {name}} create{Add New} other{}} Begründung" + "title": "" }, "add-edit-user": { "actions": { @@ -203,8 +203,8 @@ "save-changes": "Änderungen speichern" }, "error": { - "email-already-used": "Diese E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet!", - "generic": "Benutzer konnte nicht gespeichert werden!" + "email-already-used": "", + "generic": "" }, "form": { "email": "E-Mail", @@ -216,21 +216,21 @@ "title": "{type, select, edit{Benutzer bearbeiten} create{Neuen Benutzer hinzufügen} other{}}" }, "add-entity": { - "save": "Wörterbuch speichern", - "title": "Wörterbuch erstellen" + "save": "Entität speichern", + "title": "Entität erstellen" }, "add-hint": { "dialog": { "actions": { - "cancel": "Cancel", - "save": "Save" + "cancel": "Abbrechen", + "save": "Speichern" }, "content": { - "comment": "Comment", - "comment-placeholder": "Add remarks or notes...", + "comment": "Kommentar", + "comment-placeholder": "Bemerkungen oder Notizen hinzufügen...", "options": { "in-dossier": { - "description": "Add hint in every document in {dossierName}.", + "description": "Hinweis zu jedem Dokument in {dossierName} hinzufügen.", "extraOptionLabel": "Apply to all active and future dossiers", "label": "Add hint in dossier" }, @@ -239,8 +239,8 @@ "label": "Add hint only here" } }, - "selected-text": "Selected text:", - "type": "Type", + "selected-text": "Ausgewählter Text:", + "type": "Typ", "type-placeholder": "Select type..." }, "title": "Add hint" @@ -252,13 +252,13 @@ "component-rule-editor": "", "configurations": "Configurations", "default-colors": "Default colors", - "dictionary": "Dictionary", + "dictionary": "Wörterbuch", "digital-signature": "Digital signature", "dossier-attributes": "Dossier attributes", "dossier-states": "Dossier states", "dossier-template-info": "Info", "dossier-templates": "Dossier-Vorlage", - "entities": "Entities", + "entities": "Entitäten", "entity-info": "Info", "entity-rule-editor": "Entity rule editor", "false-positive": "False positive", @@ -372,6 +372,7 @@ }, "annotation-engines": { "dictionary": "{isHint, select, true{Hint} other{Redaction}} basierend auf Wörterbuch", + "dossier-dictionary": "Based on dossier dictionary", "imported": "Imported", "ner": "Redaktion basierend auf KI", "rule": "Schwärzung basierend auf Regel {rule}" @@ -516,7 +517,7 @@ }, "component-log-dialog": { "actions": { - "cancel-edit": "Cancel", + "cancel-edit": "Abbrechen", "close": "Close", "display-by-default": "Display by default when opening documents", "edit": "Edit", @@ -568,7 +569,7 @@ "configurations": "Einstellungen", "confirm-archive-dossier": { "archive": "Archive dossier", - "cancel": "Cancel", + "cancel": "Abbrechen", "checkbox": { "documents": "All documents will be archived and cannot be returned to active status." }, @@ -590,7 +591,7 @@ "warning": "Achtung: Diese Aktion kann nicht rückgängig gemacht werden!" }, "confirm-delete-dossier-state": { - "cancel": "Cancel", + "cancel": "Abbrechen", "delete": "Delete", "delete-replace": "Delete and replace", "form": { @@ -614,7 +615,7 @@ "confirmation-dialog": { "approve-file-without-analysis": { "confirmationText": "Approve without analysis", - "denyText": "Cancel", + "denyText": "Abbrechen", "question": "Analysis required to detect new redactions.", "title": "Warning!" }, @@ -624,7 +625,7 @@ }, "approve-multiple-files-without-analysis": { "confirmationText": "Approve without analysis", - "denyText": "Cancel", + "denyText": "Abbrechen", "question": "Analysis required to detect new redactions for at least one file.", "title": "Warning" }, @@ -750,7 +751,7 @@ }, "download": "Download current entries", "error": { - "400": "Cannot update dictionary because at least one of the newly added words where recognized as a general term that appear too often in texts.", + "400": "Dictionary update failed.

One or more of the newly added terms have been identified as frequently used general term. Please remove these terms to proceed with the upate. ", "generic": "Es ist ein Fehler aufgetreten ... Das Wörterbuch konnte nicht aktualisiert werden!" }, "revert-changes": "Rückgängig machen", @@ -765,7 +766,7 @@ "digital-signature-dialog": { "actions": { "back": "Back", - "cancel": "Cancel", + "cancel": "Abbrechen", "certificate-not-valid-error": "Uploaded certificate is invalid.", "continue": "Continue", "save": "Save configurations", @@ -792,11 +793,11 @@ }, "options": { "kms": { - "description": "Provide a corresponding PEM file containing the certificate, along with Amazon KMS credentials needed for securing the private key.", + "description": "Please upload a PEM file with the certificate and provide Amazon KMS credentials to secure the private key.", "label": "I use an Amazon KMS private key" }, "pkcs": { - "description": "A PKCS#12 file is a file that bundles the private key and the X.509 certificate. The password protection is required to secure the private key. Unprotected PKCS#12 files are not supported.", + "description": "A PKCS#12 file combines your private key with an X.509 certificate. Password protection is essential to secure the private key, as unprotected PKCS#12 files are not supported.", "label": "I want to upload a PKCS#12 file" } }, @@ -1035,13 +1036,13 @@ }, "error": { "conflict": "Dossier state with this name already exists", - "generic": "Failed to save dossier state!" + "generic": "Failed to save dossier state." }, "no-data": { "title": "There are no dossier states." }, "no-match": { - "title": "No dossier states match your current filters." + "title": "No dossier state matches the currently selected filters." }, "search": "Search...", "table-col-names": { @@ -1116,8 +1117,8 @@ }, "dossier-watermark-selector": { "heading": "Watermarks on documents", - "no-watermark": "There is no watermark defined for the dossier template.
Contact your app admin to define one.", - "preview": "Watermark application on preview documents", + "no-watermark": "No watermark available in dossier template:
Please ask your admin to configure a watermark.", + "preview": "Watermark on redacted documents", "watermark": "Watermark application on redacted documents" }, "dossiers-type-switch": { @@ -1137,7 +1138,7 @@ }, "download-includes": "Wählen Sie die Dokumente für Ihr Download-Paket aus", "download-status": { - "error": "The download preparation failed, please recheck the selected files and download option settings.", + "error": "Download generation failed

Please check the selected files and download option settings.", "queued": "Ihr Download wurde zur Warteschlange hinzugefügt. Hier finden Sie alle angeforderten Downloads: My Downloads." }, "download-type": { @@ -1203,7 +1204,7 @@ "edit-button-tooltip": "Edit dossier dictionary settings", "edit-dialog": { "add-to-dictionary-action": "Available in add/edit dialogs in this dossier", - "cancel": "Cancel", + "cancel": "Abbrechen", "error": { "generic": "Failed to update flag." }, @@ -1236,7 +1237,7 @@ } }, "header": "{dossierName} bearbeiten", - "missing-owner": "You cannot edit the dossier because the owner is missing!", + "missing-owner": "Editing the dossier not possible: No owner assigned.", "nav-items": { "choose-download": "Wählen Sie die Dokumente für Ihr Download-Paket aus:", "dictionary": "Wörterbücher", @@ -1253,12 +1254,12 @@ "edit-redaction": { "dialog": { "actions": { - "cancel": "Cancel", + "cancel": "Abbrechen", "save": "Save changes" }, "content": { "comment": "Comment", - "comment-placeholder": "Add remarks or notes...", + "comment-placeholder": "Bemerkungen oder Notizen hinzufügen...", "custom-rectangle": "Custom Rectangle", "imported": "Imported Redaction", "legal-basis": "Legal basis", @@ -1285,7 +1286,7 @@ "entities-listing": { "action": { "delete": "Wörterbuch löschen", - "edit": "Wörterbuch bearbeiten" + "edit": "Entität bearbeiten" }, "add-new": "Neues Wörterbuch", "bulk": { @@ -1309,15 +1310,24 @@ "title": "{length} {length, plural, one{Wörterbuch} other{Wörterbücher}}" } }, + "entity": { + "info": { + "actions": { + "revert": "Revert", + "save": "Save changes" + }, + "heading": "Entität bearbeiten" + } + }, "entity-rules-screen": { "error": { - "generic": "An error ocurred... Entity rules update failed!" + "generic": "Error: Entity rules update failed." }, "errors-found": "{errors, plural, one{An error} other{{errors} errors}} found in rules", "revert-changes": "Revert", "save-changes": "Save changes", "success": { - "generic": "Entity rules updated!" + "generic": "Entity rules updated." }, "title": "Entity rule editor", "warning-text": "Warning: experimental feature!", @@ -1349,12 +1359,12 @@ }, "file-preview": { "action": "Refresh", - "label": "An unknown error occurred. Please refresh the page" + "label": "Unknown error: Please refresh the page." }, "http": { "generic": "Aktion mit Code {status} fehlgeschlagen" }, - "missing-types": "The dossier template has missing types ({missingTypes}). Data might not be displayed correctly.", + "missing-types": "Dossier template incomplete: missing types ({missingTypes}) may cause data display issues.", "offline": "Du bist offline", "online": "Du bist online", "reload": "Neu laden", @@ -1362,6 +1372,12 @@ }, "exact-date": "{day} {month} {year} um {hour}:{minute} Uhr", "file": "Datei", + "file-attribute": { + "update": { + "error": "Update of file attribute value failed. Please try again.", + "success": "File attribute value has been updated successfully!" + } + }, "file-attribute-encoding-types": { "ascii": "ASCII", "iso": "ISO-8859-1", @@ -1379,7 +1395,7 @@ } }, "file-attributes-configurations": { - "cancel": "Cancel", + "cancel": "Abbrechen", "form": { "delimiter": "Delimiter", "encoding-type": "Encoding type", @@ -1561,7 +1577,7 @@ } }, "text-highlights": "Earmarks", - "text-highlights-tooltip": "Shows all text earmarks and allows removing or importing them as redactions", + "text-highlights-tooltip": "Earmark allows removing text highlights or converting them into redactions.", "toggle-analysis": { "disable": "Schwärzen deaktivieren", "enable": "Schwärzen aktivieren", @@ -1692,18 +1708,18 @@ }, "highlight-action-dialog": { "actions": { - "cancel": "Cancel" + "cancel": "Abbrechen" }, "convert": { "confirmation": "The {count} selected {count, plural, one{earmark} other{earmarks}} will be converted", - "details": "All earmarks from the document will be converted to imported redactions, using the color defined by the application admin.", + "details": "All earmarks in the document will be converted into imported redactions. Imported redactions are highlighted in the color configured in the 'Default colors' section of the app.", "options": { "all-pages": { "description": "The earmarks in the selected HEX color will be converted on all pages of the document.", "label": "Convert on all pages" }, "this-page": { - "description": "The earmarks in the selected HEX color will be converted only on the current page in view.", + "description": "The earmarks in the selected HEX color will be converted only on the currently viewed page.", "label": "Convert only on this page" } }, @@ -1717,14 +1733,14 @@ }, "remove": { "confirmation": "The {count} selected {count, plural, one{earmark} other{earmarks}} will be removed from the document", - "details": "Removing earmarks from the document will delete all the rectangles and leave a white background behind the highlighted text.", + "details": "Removing earmarks from the document will delete all colored rectangles and leave a white background behind the previously highlighted text.", "options": { "all-pages": { "description": "The earmarks in the selected HEX color will be removed on all pages of the document.", "label": "Remove on all pages" }, "this-page": { - "description": "The earmarks in the selected HEX color will be removed only on the current page in view.", + "description": "The earmarks in the selected HEX color will be converted only on the currently viewed page.", "label": "Remove only on this page" } }, @@ -1742,13 +1758,13 @@ }, "import-redactions-dialog": { "actions": { - "cancel": "Cancel", + "cancel": "Abbrechen", "import": "Import" }, "details": "To apply redactions from another document, you first need to upload it.", "http": { "error": "Failed to import redactions! {error}", - "success": "Redactions have been imported!" + "success": "Redactions have been imported." }, "import-only-for-pages": "Import only for pages", "range": { @@ -1832,8 +1848,8 @@ } }, "license-information": "Lizenzinformationen", - "load-all-annotations-success": "All annotations were loaded and are now visible in the document thumbnails", - "load-all-annotations-threshold-exceeded": "Caution, document contains more than {threshold} annotations. Drawing all annotations will affect the performance of the app and could even block it. Do you want to proceed?", + "load-all-annotations-success": "All annotations were loaded and are now visible in the document thumbnails.", + "load-all-annotations-threshold-exceeded": "Alert: Document contains more than {threshold} annotations. Drawing all annotations may cause the app to slow down or freeze. Do you still want to continue?", "load-all-annotations-threshold-exceeded-checkbox": "Do not show this warning again", "loading": "Loading", "manual-annotation": { @@ -1934,12 +1950,12 @@ "ocr": { "confirmation-dialog": { "cancel": "Cancel", - "question": "Manual changes could get lost if OCR makes changes at those positions. Are you sure you want to proceed?", + "question": "Manual changes may be overwritten if the OCR makes changes at the respective positions. Do you still want to proceed?", "title": "Warning: The file contains manual changes!" } }, "overwrite-files-dialog": { - "archive-question": "Dossier is not empty, so files might overlap with the contents of the archive you are uploading. Choose how to proceed in case of duplicates:", + "archive-question": "Dossier already contains files. Files might overlap with the contents of the folder you are uploading. Select how to handle duplicates:", "archive-title": "Uploading a ZIP archive", "file-question": "{filename} ist bereits vorhanden. Wie möchten Sie fortfahren?", "file-title": "Das Dokument existiert bereits!", @@ -1948,16 +1964,16 @@ "cancel": "Alle Uploads abbrechen", "current-files": "Apply to current file", "full-overwrite": { - "description": "Manual changes done to the existing file will be removed and you are able to start over with redactions.", + "description": "Remove all manual changes made to the file, and start reviewing a freshly processed file.", "label": "Overwrite and start over" }, "partial-overwrite": { - "description": "Manual changes are kept only if the affected redactions are still at the same position in the file. Some redactions could be misplaced if the content of the file changed.", + "description": "Keep manual changes if the affected redactions remain in their original positions. Some redactions could be misplaced if the content has changed.", "label": "Overwrite and keep manual changes" }, "proceed": "Proceed", "skip": { - "description": "The upload will be skipped and the existing file will not be replaced.", + "description": "Skip the file upload and do not replace the existing file.", "label": "Keep the existing file and do not overwrite" } }, @@ -2012,7 +2028,7 @@ "form": { "auto-expand-filters-on-action": "Auto-expand filters on my actions", "help-mode-dialog": "Help mode activation dialog", - "load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview", + "load-all-annotations-warning": "Warning regarding simultaneous loading of all annotations in thumbnails", "open-structured-view-by-default": "Display structured component management modal by default", "table-extraction-type": "Table extraction type" }, @@ -2042,7 +2058,7 @@ }, "content": { "comment": "Comment", - "comment-placeholder": "Add remarks or notes...", + "comment-placeholder": "Bemerkungen oder Notizen hinzufügen...", "edit-text": "Edit text", "legal-basis": "Legal basis", "options": { @@ -2076,7 +2092,7 @@ }, "content": { "comment": "Comment", - "comment-placeholder": "Add remarks or notes...", + "comment-placeholder": "Bemerkungen oder Notizen hinzufügen...", "list-item": "", "list-item-false-positive": "", "options": { @@ -2110,7 +2126,7 @@ }, "content": { "comment": "Comment", - "comment-placeholder": "Add remarks or notes...", + "comment-placeholder": "Bemerkungen oder Notizen hinzufügen...", "options": { "do-not-recommend": { "description": "Do not recommend the selected term in any document of this dossier.", @@ -2165,9 +2181,10 @@ }, "redaction": { "entity": { - "display-name": "This placeholder is replaced by the name of the entity the redaction is based on." + "display-name": "This placeholder is replaced by the name of the entity on which the redaction is based." }, "excerpt": "Dieser Platzhalter wird durch einen Textausschnitt ersetzt, der die Schwärzung enthält.", + "is-skipped": "The skipped redaction placeholder indicates whether a redaction is skipped or not. It can be included in a separate column of a template that also contains the '{{redaction.value'}} placeholder. The placeholder is replaced by “true” if the respective redaction is skipped, and by “false” if it is redacted (i. e., not skipped).", "justification": "Dieser Platzhalter wird durch die Begründung der Schwärzung ersetzt. Es ist eine Kombination aus dem Rechtsverweis (justificationParagraph) und dem Begründungstext (justificationReason).", "justification-legal-basis": "This placeholder is replaced by the legal basis for the redaction.", "justification-paragraph": "Dieser Platzhalter wird durch den Rechtshinweis der Begründung der Redaktion ersetzt.", @@ -2175,6 +2192,7 @@ "justification-text": "This placeholder is replaced by the justification text.", "page": "Dieser Platzhalter wird durch die Seitenzahl der Redaktion ersetzt.", "paragraph": "Dieser Platzhalter wird durch den Absatz ersetzt, der die Schwärzung enthält.", + "paragraph-idx": "The placeholder is replaced by the number of the paragraph containing the redaction. Paragraphs are numbered on a per-page basis.", "value": "This placeholder is replaced by the value that was redacted." }, "time": { @@ -2458,7 +2476,7 @@ }, "title": "Profil bearbeiten", "update": { - "success": "Successfully updated profile!" + "success": "Successfully updated profile." } }, "user-stats": { @@ -2480,7 +2498,7 @@ "watermark-screen": { "action": { "change-success": "Das Wasserzeichen wurde aktualisiert!", - "created-success": "Watermark has been created!", + "created-success": "Watermark has been created.", "error": "Fehler beim Aktualisieren des Wasserzeichens", "revert": "Rückgängig machen", "save": "Änderungen speichern" @@ -2510,7 +2528,7 @@ "watermarks-listing": { "action": { "delete": "Delete", - "delete-success": "Watermark has been deleted!", + "delete-success": "Watermark has been deleted.", "edit": "Edit" }, "add-new": "New watermark", diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json index 2539b3d11..b480e2a13 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -155,12 +155,12 @@ "rank-placeholder": "1000", "redaction": "Redaction", "technical-name": "Technical name", - "technical-name-hint": "{type, select, edit{Auto-generated based on the initial display name.} create{Is auto-generates based on the display name and cannot be edited after saving.} other{}}", + "technical-name-hint": "{type, select, edit{Auto-generated based on the initial display name.} create{Is auto-generated based on the display name and cannot be edited after saving.} other{}}", "template-and-dossier-dictionaries": "Template & dossier dictionaries" }, "success": { "create": "Success: Entity created.", - "edit": "Entity updated.

Please note that other users need to refresh their browsers to see your changes." + "edit": "Success: Entity updated.

Please ask the users to refresh the browser to see the changes." } }, "add-edit-file-attribute": { @@ -751,13 +751,13 @@ }, "download": "Download current entries", "error": { - "400": "Cannot update dictionary because at least one of the newly added words where recognized as a general term that appear too often in texts.", - "generic": "An error occurred... Dictionary update failed!" + "400": "Dictionary update failed.

One or more of the newly added terms have been identified as frequently used general term. Please remove these terms to proceed with the upate. ", + "generic": "Error: Dictionary update failed." }, "revert-changes": "Revert", "save-changes": "Save changes", "search": "Search entries...", - "select-dictionary": "Select a dictionary above to compare with the current one.", + "select-dictionary": "Select a dictionary for comparison above.", "success": { "generic": "Dictionary updated" } @@ -793,11 +793,11 @@ }, "options": { "kms": { - "description": "Provide a corresponding PEM file containing the certificate, along with Amazon KMS credentials needed for securing the private key.", + "description": "Please upload a PEM file with the certificate and provide Amazon KMS credentials to secure the private key.", "label": "I use an Amazon KMS private key" }, "pkcs": { - "description": "A PKCS#12 file is a file that bundles the private key and the X.509 certificate. The password protection is required to secure the private key. Unprotected PKCS#12 files are not supported.", + "description": "A PKCS#12 file combines your private key with an X.509 certificate. Password protection is essential to secure the private key, as unprotected PKCS#12 files are not supported.", "label": "I want to upload a PKCS#12 file" } }, @@ -819,7 +819,7 @@ }, "no-data": { "action": "Configure certificate", - "title": "No digital signature certificate.
For signing redacted documents please configure a certificate." + "title": "No digital signature certificate available.
Please configure a certificate to sign redacted documents." } }, "document-info": { @@ -922,7 +922,7 @@ }, "dossier-overview": { "approve": "Approve", - "approve-disabled": "File can only be approved once it has been analysed with the latest dictionaries.", + "approve-disabled": "File can only be approved once it has been analyzed with the latest set of business rules and terms stored in the system dictionaries.", "assign-approver": "Assign approver", "assign-me": "Assign to me", "assign-reviewer": "Assign user", @@ -957,7 +957,7 @@ } }, "download-file": "Download", - "download-file-disabled": "You need to be approver in the dossier and the {count, plural, one{file needs} other{files need}} to be initially processed in order to download.", + "download-file-disabled": "To download, ensure you are an approver in the dossier, and the {count, plural, one{file has undergone} other{files have undergone}} initial processing.", "file-listing": { "file-entry": { "file-error": "Re-processing required", @@ -1036,13 +1036,13 @@ }, "error": { "conflict": "Dossier state with this name already exists", - "generic": "Failed to save dossier state!" + "generic": "Failed to save dossier state." }, "no-data": { "title": "There are no dossier states." }, "no-match": { - "title": "No dossier states match your current filters." + "title": "No dossier state matches the currently selected filters." }, "search": "Search...", "table-col-names": { @@ -1084,8 +1084,8 @@ }, "entities": "{length} {length, plural, one{entity} other{entities}}", "error": { - "conflict": "Cannot delete this dossier template. At least one dossier uses this template.", - "generic": "Cannot delete this dossier template!" + "conflict": "Deletion denied: This dossier template is used by at least one dossier and cannot be deleted.", + "generic": "Cannot delete this dossier template." }, "no-data": { "title": "There are no dossier templates yet." @@ -1117,8 +1117,8 @@ }, "dossier-watermark-selector": { "heading": "Watermarks on documents", - "no-watermark": "There is no watermark defined for the dossier template.
Contact your app admin to define one.", - "preview": "Watermark application on preview documents", + "no-watermark": "No watermark available in dossier template:
Please ask your admin to configure a watermark.", + "preview": "Watermark on redacted documents", "watermark": "Watermark application on redacted documents" }, "dossiers-type-switch": { @@ -1136,10 +1136,10 @@ "header": "Download options", "unapproved-files-warning": "This download contains unapproved file(s)." }, - "download-includes": "Choose what is included at download:", + "download-includes": "Select the documents for your download:", "download-status": { - "error": "The download preparation failed, please recheck the selected files and download option settings.", - "queued": "Your download has been queued, you can see all your requested downloads here:
My downloads." + "error": "Download generation failed

Please check the selected files and download option settings.", + "queued": "Your download has been added to the queue.

To see your requested downloads, visit:
My downloads." }, "download-type": { "annotated": "Annotated PDF", @@ -1179,7 +1179,7 @@ "color-placeholder": "Color" }, "save": "Save", - "success": "Success: Color saved.

Please note that other users need to refresh their browsers to see your changes." + "success": "Success: Color saved.

Please ask the users to refresh the browser to see the changes." }, "edit-dossier-dialog": { "actions": { @@ -1191,7 +1191,7 @@ "custom-attributes": "Custom dossier attributes", "delete-image": "Delete image", "error": { - "generic": "Only PNG, JPG and JPEG files are allowed as image dossier attributes." + "generic": "Supported image formats: PNG, JPG, and JPEG." }, "image-attributes": "Image attributes", "no-custom-attributes": "There are no text attributes", @@ -1237,9 +1237,9 @@ } }, "header": "Edit {dossierName}", - "missing-owner": "You cannot edit the dossier because the owner is missing!", + "missing-owner": "Editing the dossier not possible: No owner assigned.", "nav-items": { - "choose-download": "Choose what is included at download:", + "choose-download": "Select the documents for your download:", "dictionary": "Dictionaries", "dossier-attributes": "Dossier attributes", "dossier-dictionary": "Dictionaries", @@ -1297,7 +1297,7 @@ "title": "There are no entities yet." }, "no-match": { - "title": "No entities match your current filters." + "title": "No entity matches your currently selected filters." }, "search": "Search...", "table-col-names": { @@ -1312,13 +1312,13 @@ }, "entity-rules-screen": { "error": { - "generic": "An error ocurred... Entity rules update failed!" + "generic": "Error: Entity rules update failed." }, "errors-found": "{errors, plural, one{An error} other{{errors} errors}} found in rules", "revert-changes": "Revert", "save-changes": "Save changes", "success": { - "generic": "Entity rules updated!" + "generic": "Entity rules updated." }, "title": "Entity rule editor", "warning-text": "Warning: experimental feature!", @@ -1350,16 +1350,16 @@ }, "file-preview": { "action": "Refresh", - "label": "An unknown error occurred. Please refresh the page" + "label": "Unknown error: Please refresh the page." }, "http": { - "generic": "Action failed with code {status}" + "generic": "Action failed. Error code: {status}" }, - "missing-types": "The dossier template has missing types ({missingTypes}). Data might not be displayed correctly.", + "missing-types": "Dossier template incomplete: missing types ({missingTypes}) may cause data display issues.", "offline": "Disconnected", "online": "Reconnected", "reload": "Reload", - "title": "Oops! Something went wrong..." + "title": "An error ocurred." }, "exact-date": "{day} {month} {year} at {hour}:{minute}", "file": "File", @@ -1375,7 +1375,7 @@ }, "file-attribute": { "update": { - "error": "Failed to update file attribute value!", + "error": "Update of file attribute value failed. Please try again.", "success": "File attribute value has been updated successfully!" } }, @@ -1411,9 +1411,9 @@ "key-column": "Key column", "key-column-placeholder": "Select column...", "no-data": { - "title": "No file attributes defined. Select a column from the left panel to start defining file attributes." + "title": "No file attributes defined. Select a CSV column from the left to start defining file attributes." }, - "no-hovered-column": "Preview CSV column by hovering the entry.", + "no-hovered-column": "Preview CSV column by hovering over the entry.", "no-sample-data-for": "No sample data for {column}.", "parse-csv": "Parse CSV with new options", "quick-activation": { @@ -1432,7 +1432,7 @@ "table-col-names": { "name": "Name", "primary": "Primary", - "primary-info-tooltip": "The value of the attribute set as primary shows up under the file name in the documents list.", + "primary-info-tooltip": "The value of the attribute set as primary is diplayed below the file name in the document list.", "read-only": "Read-only", "type": "Type" }, @@ -1460,7 +1460,7 @@ }, "configurations": "Configurations", "error": { - "conflict": "File attribute with this name already exists!", + "conflict": "File attribute name already exists. Please try another name.", "generic": "Failed to add file attribute" }, "no-data": { @@ -1477,7 +1477,7 @@ "filterable": "Filterable", "name": "Name", "primary": "Primary", - "primary-info-tooltip": "The value of the attribute set as primary shows up under the file name in the documents list.", + "primary-info-tooltip": "The value of the attribute set as primary is diplayed below the file name in the document list.", "read-only": "Read-only", "type": "Input type" }, @@ -1491,7 +1491,7 @@ "assign-reviewer": "Assign user", "change-reviewer": "Change user", "delta": "Delta", - "delta-tooltip": "The delta view shows the unseen changes since your last visit to the page. This view is only available if there is at least 1 change.", + "delta-tooltip": "Delta shows the unseen changes since your last visit to the page. It is only available if there has been at least 1 change.", "document-info": "Document info", "download-original-file": "Download original file", "exclude-pages": "Exclude pages from redaction", @@ -1515,7 +1515,7 @@ "redacted": "Preview", "redacted-tooltip": "Redaction preview shows only redactions. Consider this a preview for the final redacted version. This view is only available if the file has no pending changes & doesn't require a reanalysis", "standard": "Standard", - "standard-tooltip": "Standard workload view shows all hints, redactions & recommendations. This view allows editing.", + "standard-tooltip": "Standard shows all annotation types and allows for editing.", "tabs": { "annotations": { "hide-skipped": "Hide skipped in document", @@ -1562,7 +1562,7 @@ } }, "text-highlights": "Earmarks", - "text-highlights-tooltip": "Shows all text earmarks and allows removing or importing them as redactions", + "text-highlights-tooltip": "Earmark allows removing text highlights or converting them into redactions.", "toggle-analysis": { "disable": "Disable redaction", "enable": "Enable for redaction", @@ -1677,19 +1677,20 @@ "title": "System preferences" }, "test": { - "error": "Test e-mail could not be sent! Please revise the e-mail address.", - "success": "Test e-mail was sent successfully!" + "error": "Test e-mail could not be sent. Please double-check the email address.", + "success": "Test e-mail was sent successfully!", + "warning": "Admin mail address not set. Test email sent to {recipientEmail} instead." }, "title": "Configure SMTP account" }, "help-mode": { "bottom-text": "Help mode", - "clicking-anywhere-on": " Clicking anywhere on the screen will show you which areas are interactive. Hovering an interactive area will change the mouse cursor to let you know if the element is interactive.", + "clicking-anywhere-on": "Click anywhere on the screen to display the interactive elements. When you hover over an interactive element, the mouse cursor changes to show the element is clickable.", "instructions": "Open help mode instructions", "options": { "do-not-show-again": "Do not show again" }, - "welcome-to-help-mode": " Welcome to help mode!
Clicking on interactive elements will open info about them in new tab.
" + "welcome-to-help-mode": "Welcome to Help Mode!
Click on interactive elements to learn more about their functionality in a new tab." }, "highlight-action-dialog": { "actions": { @@ -1697,14 +1698,14 @@ }, "convert": { "confirmation": "The {count} selected {count, plural, one{earmark} other{earmarks}} will be converted", - "details": "All earmarks from the document will be converted to imported redactions, using the color defined by the application admin.", + "details": "All earmarks in the document will be converted into imported redactions. Imported redactions are highlighted in the color configured in the 'Default colors' section of the app.", "options": { "all-pages": { "description": "The earmarks in the selected HEX color will be converted on all pages of the document.", "label": "Convert on all pages" }, "this-page": { - "description": "The earmarks in the selected HEX color will be converted only on the current page in view.", + "description": "The earmarks in the selected HEX color will be converted only on the currently viewed page.", "label": "Convert only on this page" } }, @@ -1718,14 +1719,14 @@ }, "remove": { "confirmation": "The {count} selected {count, plural, one{earmark} other{earmarks}} will be removed from the document", - "details": "Removing earmarks from the document will delete all the rectangles and leave a white background behind the highlighted text.", + "details": "Removing earmarks from the document will delete all colored rectangles and leave a white background behind the previously highlighted text.", "options": { "all-pages": { "description": "The earmarks in the selected HEX color will be removed on all pages of the document.", "label": "Remove on all pages" }, "this-page": { - "description": "The earmarks in the selected HEX color will be removed only on the current page in view.", + "description": "The earmarks in the selected HEX color will be converted only on the currently viewed page.", "label": "Remove only on this page" } }, @@ -1749,7 +1750,7 @@ "details": "To apply redactions from another document, you first need to upload it.", "http": { "error": "Failed to import redactions! {error}", - "success": "Redactions have been imported!" + "success": "Redactions have been imported." }, "import-only-for-pages": "Import only for pages", "range": { @@ -1833,8 +1834,8 @@ } }, "license-information": "License Information", - "load-all-annotations-success": "All annotations were loaded and are now visible in the document thumbnails", - "load-all-annotations-threshold-exceeded": "Caution, document contains more than {threshold} annotations. Drawing all annotations will affect the performance of the app and could even block it. Do you want to proceed?", + "load-all-annotations-success": "All annotations were loaded and are now visible in the document thumbnails.", + "load-all-annotations-threshold-exceeded": "Alert: Document contains more than {threshold} annotations. Drawing all annotations may cause the app to slow down or freeze. Do you still want to continue?", "load-all-annotations-threshold-exceeded-checkbox": "Do not show this warning again", "loading": "Loading", "manual-annotation": { @@ -1872,18 +1873,18 @@ "minutes": "minutes", "no-active-license": "Invalid or corrupt license – Please contact your administrator", "notification": { - "assign-approver": "You have been assigned as approver for {fileHref, select, null{{fileName}} other{
{fileName}}} in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "assign-reviewer": "You have been assigned as reviewer for {fileHref, select, null{{fileName}} other{{fileName}}} in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", + "assign-approver": "You have been assigned as approver for a document.
Document: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", + "assign-reviewer": "You have been assigned as reviewer for a document.
Document: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", "document-approved": " {fileHref, select, null{{fileName}} other{{fileName}}} has been approved!", "dossier-deleted": "Dossier: {dossierName} has been deleted!", "dossier-owner-deleted": "The owner of dossier: {dossierName} has been deleted!", "dossier-owner-removed": "You have been removed as dossier owner from {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", "dossier-owner-set": "You are now the dossier owner of {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", "download-ready": "Your download is ready!", - "no-data": "You currently have no notifications", - "unassigned-from-file": "You have been unassigned from {fileHref, select, null{{fileName}} other{{fileName}}} in dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}!", - "user-becomes-dossier-member": "You have been added to dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "user-demoted-to-reviewer": "You have been demoted to reviewer in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", + "no-data": "You currently have no notifications.", + "unassigned-from-file": "You have been unassigned from a document.
Document: {fileHref, select, null{{fileName}} other{{fileName}}}
Dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}", + "user-becomes-dossier-member": "You have been added to a dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", + "user-demoted-to-reviewer": "You have been demoted to reviewer in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}", "user-promoted-to-approver": "You have been promoted to approver in dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", "user-removed-as-dossier-member": "You have been removed as a member from dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!" }, @@ -1893,7 +1894,7 @@ "in-app-notifications": "In-app notifications" }, "error": { - "generic": "Something went wrong... Preferences update failed!" + "generic": "Error: Preferences update failed." }, "groups": { "document": "Document related notifications", @@ -1935,30 +1936,30 @@ "ocr": { "confirmation-dialog": { "cancel": "Cancel", - "question": "Manual changes could get lost if OCR makes changes at those positions. Are you sure you want to proceed?", + "question": "Manual changes may be overwritten if the OCR makes changes at the respective positions. Do you still want to proceed?", "title": "Warning: The file contains manual changes!" } }, "overwrite-files-dialog": { - "archive-question": "Dossier is not empty, so files might overlap with the contents of the archive you are uploading. Choose how to proceed in case of duplicates:", + "archive-question": "Dossier already contains files. Files might overlap with the contents of the folder you are uploading. Select how to handle duplicates:", "archive-title": "Uploading a ZIP archive", "file-question": "{filename} already exists. Choose how to proceed:", - "file-title": "File already exists!", + "file-title": "File already exists.", "options": { "all-files": "Apply to all files of current upload", "cancel": "Cancel upload", "current-files": "Apply to current file", "full-overwrite": { - "description": "Manual changes done to the existing file will be removed and you are able to start over with redactions.", + "description": "Remove all manual changes made to the file, and start reviewing a freshly processed file.", "label": "Overwrite and start over" }, "partial-overwrite": { - "description": "Manual changes are kept only if the affected redactions are still at the same position in the file. Some redactions could be misplaced if the content of the file changed.", + "description": "Keep manual changes if the affected redactions remain in their original positions. Some redactions could be misplaced if the content has changed.", "label": "Overwrite and keep manual changes" }, "proceed": "Proceed", "skip": { - "description": "The upload will be skipped and the existing file will not be replaced.", + "description": "Skip the file upload and do not replace the existing file.", "label": "Keep the existing file and do not overwrite" } }, @@ -2013,7 +2014,7 @@ "form": { "auto-expand-filters-on-action": "Auto-expand filters on my actions", "help-mode-dialog": "Help mode activation dialog", - "load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview", + "load-all-annotations-warning": "Warning regarding simultaneous loading of all annotations in thumbnails", "open-structured-view-by-default": "Display structured component management modal by default", "table-extraction-type": "Table extraction type" }, @@ -2150,7 +2151,7 @@ "reports-screen": { "description": "Below, you will find a list of placeholders for dossier- and document-specific information. You can include these placeholders in your report templates.", "descriptions": { - "dossier-attributes": "This placeholder gets replaced with the value of the dossier attribute {attribute}.", + "dossier-attributes": "This placeholder is replaced by the value of the dossier attribute {attribute}.", "file-attributes": "This placeholder is replaced with the value of the file attribute {attribute}.", "general": { "date": { @@ -2166,7 +2167,7 @@ }, "redaction": { "entity": { - "display-name": "This placeholder is replaced by the name of the entity the redaction is based on." + "display-name": "This placeholder is replaced by the name of the entity on which the redaction is based." }, "excerpt": "This placeholder is replaced by a text snippet that contains the redaction.", "is-skipped": "The skipped redaction placeholder indicates whether a redaction is skipped or not. It can be included in a separate column of a template that also contains the '{{redaction.value'}} placeholder. The placeholder is replaced by “true” if the respective redaction is skipped, and by “false” if it is redacted (i. e., not skipped).", @@ -2185,7 +2186,7 @@ } } }, - "invalid-upload": "Invalid format selected for upload! Supported formats are XLSX and DOCX", + "invalid-upload": "Invalid upload format. Supported formats: .xlsx and .docx", "multi-file-report": "(Multi-file)", "report-documents": "Report documents", "setup": "Click the upload button on the right to upload your redaction report templates.", @@ -2391,7 +2392,7 @@ "overwrite": "Overwrite" }, "question": "Choose how to proceed:", - "title": "The dictionary already has entries!" + "title": "The dictionary already has entries." }, "upload-file": { "upload-area-text": "Click or drag & drop anywhere on this area..." @@ -2461,7 +2462,7 @@ }, "title": "Edit profile", "update": { - "success": "Successfully updated profile!" + "success": "Successfully updated profile." } }, "user-stats": { @@ -2482,8 +2483,8 @@ }, "watermark-screen": { "action": { - "change-success": "Watermark has been updated!", - "created-success": "Watermark has been created!", + "change-success": "Watermark has been updated.", + "created-success": "Watermark has been created.", "error": "Failed to update watermark", "revert": "Revert", "save": "Save changes" @@ -2513,7 +2514,7 @@ "watermarks-listing": { "action": { "delete": "Delete", - "delete-success": "Watermark has been deleted!", + "delete-success": "Watermark has been deleted.", "edit": "Edit" }, "add-new": "New watermark", diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json index 527e888e4..c91b46bcc 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -372,6 +372,7 @@ }, "annotation-engines": { "dictionary": "{isHint, select, true{Hint} other{Redaction}} basierend auf Wörterbuch", + "dossier-dictionary": "Annotation based on dossier dictionary", "imported": "Annotation is imported", "ner": "Redaktion basierend auf KI", "rule": "Schwärzung basierend auf Regel {rule}" @@ -2168,6 +2169,7 @@ "display-name": "This placeholder is replaced by the name of the entity the component is based on." }, "excerpt": "Dieser Platzhalter wird durch einen Textausschnitt ersetzt, der die Schwärzung enthält.", + "is-skipped": "The skipped redaction placeholder indicates whether a redaction is skipped or not. It can be included in a separate column of a template that also contains the '{{redaction.value'}} placeholder. The placeholder is replaced by “true” if the respective redaction is skipped, and by “false” if it is redacted (i. e., not skipped).", "justification": "Dieser Platzhalter wird durch die Begründung der Schwärzung ersetzt. Es ist eine Kombination aus dem Rechtsverweis (justificationParagraph) und dem Begründungstext (justificationReason).", "justification-legal-basis": "This placeholder is replaced by the legal basis for the component.", "justification-paragraph": "Dieser Platzhalter wird durch den Rechtshinweis der Begründung der Redaktion ersetzt.", @@ -2175,6 +2177,7 @@ "justification-text": "This placeholder is replaced by the justification text.", "page": "Dieser Platzhalter wird durch die Seitenzahl der Redaktion ersetzt.", "paragraph": "Dieser Platzhalter wird durch den Absatz ersetzt, der die Schwärzung enthält.", + "paragraph-idx": "The placeholder is replaced by the number of the paragraph containing the redaction. Paragraphs are numbered on a per-page basis.", "value": "This placeholder is replaced by the value that was extracted." }, "time": { diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json index ee85d8505..ab8576d70 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -1678,7 +1678,8 @@ }, "test": { "error": "Test e-mail could not be sent! Please revise the e-mail address.", - "success": "Test e-mail was sent successfully!" + "success": "Test e-mail was sent successfully!", + "warning": "Admin mail address not set. Test email sent to {recipientEmail} instead." }, "title": "Configure SMTP Account" }, diff --git a/libs/red-domain/src/lib/configuration/smtp-configuration.ts b/libs/red-domain/src/lib/configuration/smtp-configuration.ts index 4095e55f5..88226f110 100644 --- a/libs/red-domain/src/lib/configuration/smtp-configuration.ts +++ b/libs/red-domain/src/lib/configuration/smtp-configuration.ts @@ -13,3 +13,10 @@ export interface ISmtpConfiguration { starttls?: boolean; user?: string; } + +export interface ITextConnectionResponse { + adminEmail: boolean; + reasonPhrase: string; + recipientEmail: string; + statusCode: number; +}