diff --git a/public/locales/de.json b/public/locales/de.json
index 8644c62..bc269bf 100644
--- a/public/locales/de.json
+++ b/public/locales/de.json
@@ -376,11 +376,11 @@
},
"iconLabel": "Icon",
"invalidDate": "Bitte ein gültiges Datum im ausgewählten Format verwenden.",
- "attachmentLabel": "Attachment",
- "attachmentHint": "Attach a local image, PDF, or document. Images will be shown in the event popup.",
- "attachmentFallback": "Attachment",
- "attachmentReadError": "The attachment could not be read.",
- "attachmentTooLarge": "Attachment may be at most 5 MB."
+ "attachmentLabel": "Anhang",
+ "attachmentHint": "Lokales Bild, PDF oder Dokument anhängen. Bilder werden im Ereignis-Popup angezeigt.",
+ "attachmentFallback": "Anhang",
+ "attachmentReadError": "Der Anhang konnte nicht gelesen werden.",
+ "attachmentTooLarge": "Der Anhang darf höchstens 5 MB groß sein."
},
"notes": {
"title": "Notizen",
diff --git a/public/locales/pt.json b/public/locales/pt.json
index d74decc..e02332e 100644
--- a/public/locales/pt.json
+++ b/public/locales/pt.json
@@ -362,8 +362,8 @@
"attachmentLabel": "Anexo",
"attachmentHint": "Anexe uma imagem, PDF ou documento local. Imagens aparecem no pop-up do evento.",
"attachmentFallback": "Anexo",
- "attachmentReadError": "Nao foi possivel ler o anexo.",
- "attachmentTooLarge": "O anexo pode ter no maximo 5 MB."
+ "attachmentReadError": "Não foi possível ler o anexo.",
+ "attachmentTooLarge": "O anexo pode ter no máximo 5 MB."
},
"notes": {
"title": "Quadro de notas",
diff --git a/public/pages/birthdays.js b/public/pages/birthdays.js
index cbb2f23..468ce68 100644
--- a/public/pages/birthdays.js
+++ b/public/pages/birthdays.js
@@ -322,7 +322,8 @@ function openBirthdayModal({ mode, birthday = null }) {
const fileInput = panel.querySelector('#bd-photo');
const photoEdit = panel.querySelector('#bd-photo-edit');
const renderPreview = () => {
- preview.innerHTML = birthdayPreviewHtml(nameInput.value.trim(), photoData);
+ preview.replaceChildren();
+ preview.insertAdjacentHTML('beforeend', birthdayPreviewHtml(nameInput.value.trim(), photoData));
};
nameInput.addEventListener('input', renderPreview);
preview.addEventListener('click', () => fileInput?.click());
diff --git a/public/pages/calendar.js b/public/pages/calendar.js
index f521330..c0ee129 100644
--- a/public/pages/calendar.js
+++ b/public/pages/calendar.js
@@ -1266,16 +1266,16 @@ function openEventModal({ mode, event = null, date = null, reminder = null }) {
};
const syncAttachmentPreview = () => {
if (!attachmentPreview) return;
- attachmentPreview.innerHTML = '';
+ attachmentPreview.replaceChildren();
if (!attachmentState.data) {
attachmentPreview.hidden = true;
return;
}
attachmentPreview.hidden = false;
if (isImageAttachment(attachmentState.mime)) {
- attachmentPreview.innerHTML = `
`;
+ attachmentPreview.insertAdjacentHTML('beforeend', `
`);
} else {
- attachmentPreview.innerHTML = `${esc(attachmentState.name || '')}`;
+ attachmentPreview.insertAdjacentHTML('beforeend', `${esc(attachmentState.name || '')}`);
}
};
attachmentInput?.addEventListener('change', async () => {