feat: add attachment position setting in email settings

- Introduced a new setting for attachment position in email settings, allowing users to choose between displaying attachments beside the sender or below the header.
- Updated the settings store to include the new attachment position type and default value.
- Added translations for the new setting in multiple languages (de, en, es, fr, it, ja, nl, pt).
This commit is contained in:
Linus Rath
2026-03-19 21:14:18 +01:00
parent 40cf164df3
commit c5b1731a63
13 changed files with 574 additions and 145 deletions
+15 -1
View File
@@ -210,6 +210,7 @@
"attachments": "Anhänge",
"important": "Wichtig",
"download": "Herunterladen",
"download_all": "Alle herunterladen",
"from": "Von",
"to": "An",
"cc": "CC",
@@ -401,7 +402,8 @@
},
"previous": "Zurück",
"next": "Weiter",
"send": "Senden"
"send": "Senden",
"more": "mehr"
},
"email_composer": {
"new_message": "Neue Nachricht",
@@ -753,6 +755,12 @@
"preview": "Wenn möglich in Vorschau öffnen",
"download": "Sofort herunterladen"
},
"attachment_position": {
"label": "Anhangsposition",
"description": "Wo Anhänge im E-Mail-Header angezeigt werden",
"beside-sender": "Neben dem Absender",
"below-header": "Unter dem Header"
},
"emails_per_page": {
"25": "25 E-Mails",
"50": "50 E-Mails",
@@ -1947,6 +1955,12 @@
"deleted": "Abonnement entfernt",
"delete_error": "Abonnement konnte nicht entfernt werden",
"last_refreshed": "Zuletzt aktualisiert: {time}"
},
"tasks": {
"no_tasks": "Keine Aufgaben",
"no_title": "(Kein Titel)",
"mark_complete": "Als erledigt markieren",
"mark_incomplete": "Als unerledigt markieren"
}
},
"advanced_search": {
+15 -1
View File
@@ -210,6 +210,7 @@
"attachments": "Attachments",
"important": "Important",
"download": "Download",
"download_all": "Download all",
"from": "From",
"to": "To",
"cc": "CC",
@@ -401,7 +402,8 @@
"event_status_tentative": "Tentative",
"event_status_cancelled": "Cancelled"
},
"send": "Send"
"send": "Send",
"more": "more"
},
"email_composer": {
"new_message": "New Message",
@@ -753,6 +755,12 @@
"preview": "Preview when possible",
"download": "Download immediately"
},
"attachment_position": {
"label": "Attachment Position",
"description": "Where to display attachments in the email header",
"beside-sender": "Next to sender",
"below-header": "Below header"
},
"emails_per_page": {
"25": "25 emails",
"50": "50 emails",
@@ -1947,6 +1955,12 @@
"deleted": "Subscription removed",
"delete_error": "Failed to remove subscription",
"last_refreshed": "Last updated: {time}"
},
"tasks": {
"no_tasks": "No tasks",
"no_title": "(No title)",
"mark_complete": "Mark as complete",
"mark_incomplete": "Mark as incomplete"
}
},
"advanced_search": {
+15 -1
View File
@@ -210,6 +210,7 @@
"attachments": "Archivos adjuntos",
"important": "Importante",
"download": "Descargar",
"download_all": "Descargar todo",
"from": "De",
"to": "Para",
"cc": "CC",
@@ -401,7 +402,8 @@
},
"previous": "Anterior",
"next": "Siguiente",
"send": "Enviar"
"send": "Enviar",
"more": "más"
},
"email_composer": {
"new_message": "Nuevo Mensaje",
@@ -753,6 +755,12 @@
"preview": "Mostrar vista previa cuando sea posible",
"download": "Descargar inmediatamente"
},
"attachment_position": {
"label": "Posición del adjunto",
"description": "Dónde mostrar los adjuntos en el encabezado del correo",
"beside-sender": "Junto al remitente",
"below-header": "Debajo del encabezado"
},
"emails_per_page": {
"25": "25 correos",
"50": "50 correos",
@@ -1947,6 +1955,12 @@
"deleted": "Suscripción eliminada",
"delete_error": "No se pudo eliminar la suscripción",
"last_refreshed": "Última actualización: {time}"
},
"tasks": {
"no_tasks": "Sin tareas",
"no_title": "(Sin título)",
"mark_complete": "Marcar como completada",
"mark_incomplete": "Marcar como incompleta"
}
},
"advanced_search": {
+15 -1
View File
@@ -210,6 +210,7 @@
"attachments": "Pièces jointes",
"important": "Important",
"download": "Télécharger",
"download_all": "Tout télécharger",
"from": "De",
"to": "À",
"cc": "CC",
@@ -401,7 +402,8 @@
},
"previous": "Précédent",
"next": "Suivant",
"send": "Envoyer"
"send": "Envoyer",
"more": "plus"
},
"email_composer": {
"new_message": "Nouveau message",
@@ -753,6 +755,12 @@
"preview": "Aperçu si possible",
"download": "Télécharger immédiatement"
},
"attachment_position": {
"label": "Position des pièces jointes",
"description": "Où afficher les pièces jointes dans l'en-tête de l'email",
"beside-sender": "À côté de l'expéditeur",
"below-header": "Sous l'en-tête"
},
"emails_per_page": {
"25": "25 emails",
"50": "50 emails",
@@ -1947,6 +1955,12 @@
"deleted": "Abonnement supprimé",
"delete_error": "Impossible de supprimer l'abonnement",
"last_refreshed": "Dernière mise à jour : {time}"
},
"tasks": {
"no_tasks": "Aucune tâche",
"no_title": "(Sans titre)",
"mark_complete": "Marquer comme terminée",
"mark_incomplete": "Marquer comme non terminée"
}
},
"advanced_search": {
+15 -1
View File
@@ -210,6 +210,7 @@
"attachments": "Allegati",
"important": "Importante",
"download": "Scarica",
"download_all": "Scarica tutto",
"from": "Da",
"to": "A",
"cc": "CC",
@@ -401,7 +402,8 @@
},
"previous": "Precedente",
"next": "Successivo",
"send": "Invia"
"send": "Invia",
"more": "altri"
},
"email_composer": {
"new_message": "Nuovo messaggio",
@@ -753,6 +755,12 @@
"preview": "Anteprima quando possibile",
"download": "Scarica immediatamente"
},
"attachment_position": {
"label": "Posizione degli allegati",
"description": "Dove visualizzare gli allegati nell'intestazione dell'email",
"beside-sender": "Accanto al mittente",
"below-header": "Sotto l'intestazione"
},
"emails_per_page": {
"25": "25 messaggi",
"50": "50 messaggi",
@@ -1947,6 +1955,12 @@
"deleted": "Abbonamento rimosso",
"delete_error": "Impossibile rimuovere l'abbonamento",
"last_refreshed": "Ultimo aggiornamento: {time}"
},
"tasks": {
"no_tasks": "Nessuna attività",
"no_title": "(Senza titolo)",
"mark_complete": "Segna come completata",
"mark_incomplete": "Segna come non completata"
}
},
"advanced_search": {
+15 -1
View File
@@ -210,6 +210,7 @@
"attachments": "添付ファイル",
"important": "重要",
"download": "ダウンロード",
"download_all": "すべてダウンロード",
"from": "送信者",
"to": "宛先",
"cc": "CC",
@@ -401,7 +402,8 @@
},
"previous": "前へ",
"next": "次へ",
"send": "送信"
"send": "送信",
"more": "他"
},
"email_composer": {
"new_message": "新規メッセージ",
@@ -753,6 +755,12 @@
"preview": "可能ならプレビューを開く",
"download": "すぐにダウンロード"
},
"attachment_position": {
"label": "添付ファイルの位置",
"description": "メールヘッダー内での添付ファイルの表示位置",
"beside-sender": "送信者の横",
"below-header": "ヘッダーの下"
},
"emails_per_page": {
"25": "25件",
"50": "50件",
@@ -1947,6 +1955,12 @@
"deleted": "購読を解除しました",
"delete_error": "購読の解除に失敗しました",
"last_refreshed": "最終更新: {time}"
},
"tasks": {
"no_tasks": "タスクなし",
"no_title": "(タイトルなし)",
"mark_complete": "完了にする",
"mark_incomplete": "未完了にする"
}
},
"advanced_search": {
+15 -1
View File
@@ -210,6 +210,7 @@
"attachments": "Bijlagen",
"important": "Belangrijk",
"download": "Downloaden",
"download_all": "Alles downloaden",
"from": "Van",
"to": "Aan",
"cc": "CC",
@@ -401,7 +402,8 @@
},
"previous": "Vorige",
"next": "Volgende",
"send": "Verzenden"
"send": "Verzenden",
"more": "meer"
},
"email_composer": {
"new_message": "Nieuw bericht",
@@ -753,6 +755,12 @@
"preview": "Voorbeeld tonen indien mogelijk",
"download": "Direct downloaden"
},
"attachment_position": {
"label": "Positie van bijlagen",
"description": "Waar bijlagen in de e-mailkop worden weergegeven",
"beside-sender": "Naast de afzender",
"below-header": "Onder de kop"
},
"emails_per_page": {
"25": "25 e-mails",
"50": "50 e-mails",
@@ -1947,6 +1955,12 @@
"deleted": "Abonnement verwijderd",
"delete_error": "Kan abonnement niet verwijderen",
"last_refreshed": "Laatst bijgewerkt: {time}"
},
"tasks": {
"no_tasks": "Geen taken",
"no_title": "(Geen titel)",
"mark_complete": "Markeren als voltooid",
"mark_incomplete": "Markeren als onvoltooid"
}
},
"advanced_search": {
+15 -1
View File
@@ -210,6 +210,7 @@
"attachments": "Anexos",
"important": "Importante",
"download": "Baixar",
"download_all": "Baixar tudo",
"from": "De",
"to": "Para",
"cc": "CC",
@@ -401,7 +402,8 @@
},
"previous": "Anterior",
"next": "Próximo",
"send": "Enviar"
"send": "Enviar",
"more": "mais"
},
"email_composer": {
"new_message": "Nova Mensagem",
@@ -753,6 +755,12 @@
"preview": "Visualizar quando possível",
"download": "Baixar imediatamente"
},
"attachment_position": {
"label": "Posição dos anexos",
"description": "Onde exibir os anexos no cabeçalho do e-mail",
"beside-sender": "Ao lado do remetente",
"below-header": "Abaixo do cabeçalho"
},
"emails_per_page": {
"25": "25 e-mails",
"50": "50 e-mails",
@@ -1947,6 +1955,12 @@
"deleted": "Assinatura removida",
"delete_error": "Falha ao remover assinatura",
"last_refreshed": "Última atualização: {time}"
},
"tasks": {
"no_tasks": "Sem tarefas",
"no_title": "(Sem título)",
"mark_complete": "Marcar como concluída",
"mark_incomplete": "Marcar como não concluída"
}
},
"advanced_search": {