diff --git a/public/locales/ar.json b/public/locales/ar.json
index 5cfc2bb..f342dae 100644
--- a/public/locales/ar.json
+++ b/public/locales/ar.json
@@ -358,7 +358,12 @@
"resetToast": "تم إعادة تعيين التغييرات."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "لوحة الملاحظات",
diff --git a/public/locales/de.json b/public/locales/de.json
index 748623b..bc269bf 100644
--- a/public/locales/de.json
+++ b/public/locales/de.json
@@ -375,7 +375,12 @@
"resetToast": "Änderungen zurückgesetzt."
},
"iconLabel": "Icon",
- "invalidDate": "Bitte ein gültiges Datum im ausgewählten Format verwenden."
+ "invalidDate": "Bitte ein gültiges Datum im ausgewählten Format verwenden.",
+ "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/el.json b/public/locales/el.json
index c26e383..b1c39e6 100644
--- a/public/locales/el.json
+++ b/public/locales/el.json
@@ -358,7 +358,12 @@
"resetToast": "Οι αλλαγές επαναφέρθηκαν."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Σημειώσεις",
diff --git a/public/locales/en.json b/public/locales/en.json
index 77a4869..c9c5d11 100644
--- a/public/locales/en.json
+++ b/public/locales/en.json
@@ -358,7 +358,12 @@
"resetToast": "Changes reset."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Board",
diff --git a/public/locales/es.json b/public/locales/es.json
index 7ecee87..4e6716a 100644
--- a/public/locales/es.json
+++ b/public/locales/es.json
@@ -358,7 +358,12 @@
"resetToast": "Cambios restablecidos."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Notas",
diff --git a/public/locales/fr.json b/public/locales/fr.json
index 12feca1..82cf675 100644
--- a/public/locales/fr.json
+++ b/public/locales/fr.json
@@ -358,7 +358,12 @@
"resetToast": "Modifications annulées."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Notes",
diff --git a/public/locales/hi.json b/public/locales/hi.json
index 30069a2..0f2c858 100644
--- a/public/locales/hi.json
+++ b/public/locales/hi.json
@@ -358,7 +358,12 @@
"resetToast": "परिवर्तन रीसेट हो गए।"
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "नोट बोर्ड",
diff --git a/public/locales/it.json b/public/locales/it.json
index c5df136..9e085c7 100644
--- a/public/locales/it.json
+++ b/public/locales/it.json
@@ -358,7 +358,12 @@
"resetToast": "Modifiche ripristinate."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Bacheca",
diff --git a/public/locales/ja.json b/public/locales/ja.json
index 74b90e4..7995b14 100644
--- a/public/locales/ja.json
+++ b/public/locales/ja.json
@@ -358,7 +358,12 @@
"resetToast": "変更がリセットされました。"
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "メモボード",
diff --git a/public/locales/pt.json b/public/locales/pt.json
index 4c6de1f..e02332e 100644
--- a/public/locales/pt.json
+++ b/public/locales/pt.json
@@ -358,7 +358,12 @@
"resetToast": "Alterações restauradas."
},
"iconLabel": "Ícone",
- "invalidDate": "Use uma data válida no formato selecionado."
+ "invalidDate": "Use uma data válida no formato selecionado.",
+ "attachmentLabel": "Anexo",
+ "attachmentHint": "Anexe uma imagem, PDF ou documento local. Imagens aparecem no pop-up do evento.",
+ "attachmentFallback": "Anexo",
+ "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/locales/ru.json b/public/locales/ru.json
index 6d7b270..4ad7293 100644
--- a/public/locales/ru.json
+++ b/public/locales/ru.json
@@ -358,7 +358,12 @@
"resetToast": "Изменения сброшены."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Заметки",
diff --git a/public/locales/sv.json b/public/locales/sv.json
index 5cd0ec7..fb700de 100644
--- a/public/locales/sv.json
+++ b/public/locales/sv.json
@@ -358,7 +358,12 @@
"resetToast": "Ändringar återställda."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Anteckningar",
diff --git a/public/locales/tr.json b/public/locales/tr.json
index ceb5e0a..bfa2345 100644
--- a/public/locales/tr.json
+++ b/public/locales/tr.json
@@ -358,7 +358,12 @@
"resetToast": "Değişiklikler sıfırlandı."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Notlar",
diff --git a/public/locales/uk.json b/public/locales/uk.json
index ded1608..f27b19e 100644
--- a/public/locales/uk.json
+++ b/public/locales/uk.json
@@ -358,7 +358,12 @@
"resetToast": "Зміни скинуто."
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "Нотатки",
diff --git a/public/locales/zh.json b/public/locales/zh.json
index 9567d54..fdbbafb 100644
--- a/public/locales/zh.json
+++ b/public/locales/zh.json
@@ -358,7 +358,12 @@
"resetToast": "更改已重置。"
},
"iconLabel": "Icon",
- "invalidDate": "Use a valid date in the selected date format."
+ "invalidDate": "Use a valid date in the selected date format.",
+ "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."
},
"notes": {
"title": "便签板",
diff --git a/public/pages/birthdays.js b/public/pages/birthdays.js
index 9d04eb7..468ce68 100644
--- a/public/pages/birthdays.js
+++ b/public/pages/birthdays.js
@@ -275,21 +275,30 @@ function openBirthdayModal({ mode, birthday = null }) {
title: isEdit ? t('birthdays.editTitle') : t('birthdays.newTitle'),
content: `