Localize envelope sharing UI and messages

Replaced hardcoded German text in the envelope sharing UI and JavaScript alerts with localized resource strings for German, English, and French. Added new translations for labels, prompts, and error/success messages. Improved internationalization and user experience by making the sharing feature fully language-aware.
This commit is contained in:
2026-02-13 13:43:47 +01:00
parent aba68faa4d
commit 924e39253a
4 changed files with 132 additions and 13 deletions

View File

@@ -62,7 +62,7 @@
<div class="progress-container">
<div id="signed-count-bar" class="progress"></div>
<span class="progress-text">
<span id="signed-count">0</span>/<span id="signature-count">@signatureCount</span> Unterschriften
<span id="signed-count">0</span>/<span id="signature-count">@signatureCount</span> @_localizer["Signatures"]
</span>
</div>
}
@@ -104,16 +104,16 @@
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<small class="modal-title text-body-secondary" id="shareBackdropLabel">Geben Sie hier den Empfänger ein, mit welchem Sie das Dokument teilen wollen:</small>
<small class="modal-title text-body-secondary" id="shareBackdropLabel">@_localizer["EnterRecipientToShareDocument"]:</small>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="input-group mb-3">
<span class="input-group-text">E-Mail</span>
<span class="input-group-text">@_localizer["Email"]</span>
<input type="text" class="form-control email-input" placeholder="user@mail.com" id="readonly-receiver-mail" aria-label="">
</div>
<div class="input-group">
<span class="input-group-text">Gültig bis</span>
<span class="input-group-text">@_localizer["ValidUntil"]</span>
<input type="date" name="expiration" class="form-control" lang="de" id="readonly-date-valid" onkeydown="return false;" onclick="this.showPicker()"
min="@DateTime.Today.AddDays(1).ToString("yyyy-MM-dd")"
max="@DateTime.Today.AddDays(90).ToString("yyyy-MM-dd")"
@@ -142,13 +142,24 @@
const receiverMail_value = receiverMail.value;
const dateValid_value = dateValid.value;
const shrEnvLocalizedTexts = {
invalidEmailTitle: '@_localizer["ShrEnvInvalidEmailTitle"]',
invalidEmailText: '@_localizer["ShrEnvInvalidEmailText"]',
invalidDateTitle: '@_localizer["ShrEnvInvalidDateTitle"]',
invalidDateText: '@_localizer["ShrEnvInvalidDateText"]',
sentTitle: '@_localizer["ShrEnvSentTitle"]',
errorTitle: '@_localizer["ShrEnvErrorTitle"]',
unexpectedErrorTitle: '@_localizer["UnexpectedErrorTitle"]',
operationFailedText: '@_localizer["ShrEnvOperationFailedText"]'
};
//check email
if (!receiverMail_value || receiverMail.classList.contains('is-invalid')) {
Swal.fire({
icon: "error",
title: "Falsche Email",
text: "Die E-Mail-Adresse ist ungültig. Bitte verwenden Sie das richtige Format, z. B.: user@mail.com."
title: shrEnvLocalizedTexts.invalidEmailTitle,
text: shrEnvLocalizedTexts.invalidEmailText
});
return;
}
@@ -158,8 +169,8 @@
if (new Date(dateValid_value) < tomorrow) {
Swal.fire({
icon: "error",
title: "Falsches Datum",
text: "Die Verteilung der Umschläge sollte mindestens einen Tag dauern."
title: shrEnvLocalizedTexts.invalidDateTitle,
text: shrEnvLocalizedTexts.invalidDateText
});
return;
}
@@ -168,23 +179,23 @@
.then(res => {
if (res.ok) {
Swal.fire({
title: "Gesendet",
title: shrEnvLocalizedTexts.sentTitle,
icon: "success"
});
}
else {
Swal.fire({
icon: "error",
title: `Fehler ${res.status}`,
text: "Der Vorgang ist fehlgeschlagen. Bitte wenden Sie sich an das IT-Team."
title: `${shrEnvLocalizedTexts.errorTitle} ${res.status}`,
text: shrEnvLocalizedTexts.operationFailedText
});
}
})
.catch(err => {
Swal.fire({
icon: "error",
title: "Unerwarteter Fehler",
text: "Der Vorgang ist fehlgeschlagen. Bitte wenden Sie sich an das IT-Team."
title: shrEnvLocalizedTexts.unexpectedErrorTitle,
text: shrEnvLocalizedTexts.operationFailedText
});
})