Commit Graph
612 Commits
Author SHA1 Message Date
Linus Rath 1748b5329b fix: name every icon button in Contacts and the file preview for screen readers 2026-10-28 04:34:08 +01:00
Linus Rath 6f371deaa7 fix: show contact dates, print headings and the disabled notice in the app's language 2026-10-28 04:28:09 +01:00
Linus Rath e53578454a feat: list the Contacts and Files keys under ? and add their commands to the command palette 2026-10-28 04:20:48 +01:00
Linus Rath 754dbf56dc fix: reach address book, category and group actions by ⋮, long-press and keyboard, move contacts with Move to…, and delete categories 2026-10-28 03:59:25 +01:00
Linus Rath e12aa1f5b9 feat: download a folder as a zip built in the browser, with progress and cancel 2026-10-28 03:44:34 +01:00
Linus Rath 408a2c90dc feat: move files and folders with Move to… and a folder picker instead of only dragging 2026-10-28 03:40:10 +01:00
Linus Rath 3d72d426d4 feat: keep deleted files in a Files trash with Restore, Delete permanently and Empty trash 2026-10-28 03:35:46 +01:00
Linus Rath 02ce389140 fix: make rename, new folder, address book and import dialogs close on Escape, keep focus and select the name 2026-10-28 03:20:09 +01:00
Linus Rath f6e4aaa254 fix: start the new group with the selected contacts when Add to group finds no group 2026-10-28 03:12:17 +01:00
Linus Rath 5447c40b7b fix: ask before leaving a contact or group form with unsaved changes 2026-10-28 03:04:40 +01:00
Linus Rath 22629c0c6c feat: open the keyboard shortcuts with ? in every app, on that app's keys 2026-10-28 02:04:37 +01:00
Linus Rath 7e23c7de21 feat: let apps add their own commands to the command palette, with account switching and search everything 2026-10-28 02:00:31 +01:00
Linus Rath 85fb392ab3 fix: open the account security docs on bulwarkmail.org instead of the webmail's host #1387 2026-10-27 23:17:09 +01:00
Linus Rath 0c0332fa52 chore: translate the placeholder warning into Thai 2026-10-27 23:14:31 +01:00
Linus Rath be52744a5d Merge pull request #1379 from phumiphat2201/feat/i18n-thai-locale
feat(i18n): Add Enterprise Thai (th) localization catalog & integration
2026-10-27 23:14:18 +01:00
Linus Rath be5fc12622 feat: let each translation list its own placeholder fill-in words 2026-10-27 23:03:41 +01:00
Linus Rath 087cc68f6b chore: show a fill-in in the reader's language in the placeholder warning setting 2026-10-27 22:53:14 +01:00
Linus Rath fc357cabd4 chore: translate the placeholder warning 2026-10-27 22:35:19 +01:00
Linus Rath c355b0d552 feat: add a setting to turn off the placeholder warning 2026-10-27 22:32:38 +01:00
Linus Rath 011ff0e93a feat: warn before sending a message with unfilled placeholders 2026-10-27 22:30:33 +01:00
Phumiphat Kanjanachotipong 4f3802255b fix(i18n): address review feedback on tooltips shortcuts, meta description and organizer strings 2026-10-27 08:14:40 +00:00
Phumiphat Kanjanachotipong f6325e741d feat(i18n): Add Enterprise Thai (th) localization catalog & integration 2026-10-27 07:36:03 +00:00
Linus Rath d9f1035904 fix: translate the quick reply setting into every language 2026-10-26 20:23:45 +01:00
Linus Rath aaf15488d5 fix: address the user formally in the German account list restore prompt like the rest of the backup settings 2026-10-26 19:26:27 +01:00
Linus Rath 4bfaf8abce Merge pull request #1363 from lucamzanon/feat/account-archive-restore-prompt 2026-10-26 19:26:13 +01:00
Linus Rath e99cce05fe Merge pull request #1370 from maxhaomh/feat/disable-quick-reply 2026-10-26 19:24:49 +01:00
Max Hao 7216089629 feat: add quick reply feature with toggle in settings and tests 2026-10-26 11:40:47 -04:00
Linus Rath 92fe2fd1b1 fix: translate the note that a discarded draft of a signed-out account was kept 2026-10-26 16:11:56 +01:00
Linus Rath 34ad859ce4 fix: refuse Undo and Send now for a delayed send of a signed-out account instead of acting through the active one 2026-10-26 16:11:53 +01:00
Linus Rath 54b197080c fix: keep a discarded draft of a signed-out account instead of deleting another account's message with its id 2026-10-26 16:11:52 +01:00
Linus Rath f0392a6705 fix: check a meeting reply's sender against the attendee who answers, not the organizer 2026-10-26 15:15:58 +01:00
Linus Rath 82de3c8df1 fix: translate the strings Estonian was missing after the Stalwart 1.0 merge 2026-10-26 12:25:31 +01:00
lucamzanon 2f8c6e13bf feat: offer to restore the saved account list on a new device
Part 3 of 3 of the account archive (#1198). Signing in on a browser that
knows no other account, with a list saved for that account, opens a dialog
asking for the backup password and restores the list as Settings does.
Not now hides the offer for that account in this browser; the restore
stays in Settings.
2026-10-26 12:23:18 +01:00
Linus Rath cf2c27157d Merge branch 'main' into feat/stalwart-1.0
# Conflicts:
#	components/contacts/contacts-app.tsx
#	components/email/__tests__/composer-discard.test.tsx
#	components/email/calendar-invitation-banner.tsx
#	components/email/email-composer.tsx
#	components/mail/mail-app.tsx
#	components/pro/pro-compose-tab-body.tsx
#	components/pro/pro-email-tab-body.tsx
#	components/ui/__tests__/avatar.test.tsx
#	components/ui/avatar.tsx
#	hooks/use-mailbox-drop.ts
#	lib/__tests__/calendar-alerts.test.ts
#	lib/__tests__/jmap-calendar-tasks.test.ts
#	lib/__tests__/jmap-send-threading.test.ts
#	lib/demo/demo-client.ts
#	lib/demo/fixtures/calendars.ts
#	lib/jmap/client-interface.ts
#	lib/jmap/client.ts
#	lib/web-push.ts
#	stores/__tests__/contact-store.test.ts
#	stores/__tests__/email-store-thread-key.test.ts
#	stores/calendar-store.ts
#	stores/contact-store.ts
#	stores/email-store.ts
2026-10-26 10:14:12 +01:00
Linus Rath f7a4087c91 feat: split the Mountain View inbox into Unread and Everything else, as Gmail's unread first 2026-10-25 13:13:46 +01:00
Linus Rath 10caa9e2f3 Merge pull request #1316 from ghozty/feat/app-name-strings
feat: name the app with the configured APP_NAME in user-facing strings
2026-10-24 17:54:49 +02:00
ghoztyandClaude Opus 5.5 30f51e5ca4 feat: name the app with the configured APP_NAME in user-facing strings
Some user-facing strings still said "Bulwark" on a deployment with its own
APP_NAME: Settings > General > Default apps (protocol handlers), the "Open
Bulwark" notification, the rate-limit banner and toast, the plugin connect
dialog, one plugin permission text and the connector page.

These strings now take an {appName} placeholder, filled by productName():
the configured APP_NAME, or "Bulwark" when it is unset or the default
"Webmail" (the same rule as the TOTP issuer and the About card, #1160).
A stock install reads as before.

The settings search (the settings page and api.app.searchSettings) indexes
these texts with the name filled in, so "bulwark" or the configured name
finds Default apps and no result carries the raw placeholder.

Locales: the 13 keys in every locale that has "Bulwark" in them. Languages
that inflect the name (cs, et, hu, ko, ro, sk, tr) use a neutral form such
as "{appName} uygulamasında" instead of a declined "Bulwark'ta"; a native
check of those is welcome.

Not changed on purpose: the mobile app, push relay, Lite, demo and admin
texts, which speak about Bulwark itself.

Closes #1314

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 04:14:54 +03:00
Vlad d7d9c0f193 fix(i18n): correct Ukrainian "forward" and "move to" translations
The "forward" email action was mistranslated as "вперед" (the
directional adverb "forward/ahead") instead of "Переслати" (the verb
"to forward [a message]") across context_menu, email_viewer,
email_composer, and shortcuts. Also "move_to" read as "Перейти до..."
("navigate to...") instead of "Перемістити до..." ("move to..."),
which described the wrong action for moving an email to a folder.
2026-10-21 22:11:01 +03:00
Linus Rath 7fa207e8e3 feat: translate the Cut and Copy entries of the selection menus into every language 2026-10-20 17:21:13 +02:00
Linus Rath 8deb887e95 feat: let plugins see and act on text selected in a message, with a right-click menu and the side panel's selection 2026-10-20 17:21:12 +02:00
Linus Rath 00142540f6 feat: let plugins add entries to the right-click menu on selected text in the composer 2026-10-20 17:21:12 +02:00
dealerweb 3d59852ecc fix: translate the German dialog that hands a sign-in to the mobile app 2026-10-20 10:49:22 +02:00
Linus Rath 31f4a4b4b3 feat: show one row of themes with a show all button 2026-10-19 20:49:24 +02:00
Linus Rath 6a59faf127 feat: add numeric date, day, month and year template placeholders #1284 2026-10-19 18:41:44 +02:00
Linus Rath 7ee0eb346b chore: drop the strings of the retired settings tabs from every locale 2026-10-19 18:20:08 +02:00
Linus Rath dc521e11ca refactor: combine sidebar apps and plugins into add-ons, about and debug into backup and reset 2026-10-19 18:03:42 +02:00
Linus Rath f8aca5bb25 refactor: put folders and tags on one page 2026-10-19 17:57:38 +02:00
Linus Rath c57f82f0a7 refactor: group composing into sections and fold templates and a signatures link into it 2026-10-19 17:55:12 +02:00
Linus Rath a591ae0683 refactor: merge language, default apps and the tour into a general page 2026-10-19 17:51:26 +02:00
Linus Rath 58f968a48c refactor: lead notifications with new mail, move the tab badge in and invitation parsing to calendar 2026-10-19 17:48:57 +02:00