Add a per-account settings area (reached by tapping an account in Settings), starting with signatures and notifications. - Storage: new Room `account_settings` table (schema v9, MIGRATION_8_9) with a cascading foreign key to `accounts`; AccountSettings model and AccountSettingsRepository (a missing row resolves to defaults). - Signatures: plain-text per-account signature (RFC 3676 "-- " delimiter) auto-inserted below new messages and reply/forward drafts, and swapped when the From-account changes. - Notifications: one notification channel + channel group per account so Android manages sound/vibration/importance (deep-linked from the app) and the shade bundles per account, plus an in-app per-account on/off gate. minSdk 29 >= API 26, so channels are always available (no pre-channel fallback needed). - UI: per-account settings screen (signature field/toggle, notification toggle, system deep-link, remove account); shared settings components. Verified: JVM unit tests, lintVitalRelease (NewApi), and the full instrumented suite (30/30) on the API 37 emulator. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
169 lines
9.3 KiB
XML
169 lines
9.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- SPDX-License-Identifier: GPL-3.0-or-later -->
|
|
<resources>
|
|
<string name="app_name">LibreMail</string>
|
|
|
|
<!-- Destinations -->
|
|
<string name="title_mailbox">Inbox</string>
|
|
<string name="title_reader">Message</string>
|
|
<string name="reader_star">Star</string>
|
|
<string name="reader_delete">Delete</string>
|
|
<string name="reader_empty">This message has no text content</string>
|
|
<string name="reader_images_blocked">Remote images are blocked</string>
|
|
<string name="reader_show_images">Show images</string>
|
|
<string name="title_compose">Compose</string>
|
|
<string name="title_settings">Settings</string>
|
|
<string name="title_account_setup">Add account</string>
|
|
|
|
<!-- Navigation / actions -->
|
|
<string name="nav_mailbox">Mail</string>
|
|
<string name="nav_settings">Settings</string>
|
|
<string name="action_compose">Compose</string>
|
|
<string name="action_back">Back</string>
|
|
<string name="action_send">Send</string>
|
|
|
|
<!-- Mailbox -->
|
|
<string name="mailbox_empty">No messages yet</string>
|
|
<string name="mailbox_all_accounts">All</string>
|
|
<string name="search">Search</string>
|
|
<string name="search_close">Close search</string>
|
|
<string name="search_hint">Search mail</string>
|
|
<string name="search_no_results">No results</string>
|
|
<string name="mailbox_pull_to_refresh">Pull down to refresh</string>
|
|
<string name="mailbox_welcome_title">Welcome to LibreMail</string>
|
|
<string name="mailbox_welcome_subtitle">Add an account to start reading your mail.</string>
|
|
|
|
<!-- Mailbox multi-select contextual action bar -->
|
|
<string name="cab_selected_count">%1$d selected</string>
|
|
<string name="cab_close">Clear selection</string>
|
|
<string name="action_archive">Archive</string>
|
|
<string name="action_delete">Delete</string>
|
|
<string name="action_spam">Spam</string>
|
|
<string name="action_move">Move</string>
|
|
<string name="action_reply">Reply</string>
|
|
<string name="action_reply_all">Reply all</string>
|
|
<string name="action_forward">Forward</string>
|
|
<string name="action_select_all">Select all</string>
|
|
<string name="action_more">More options</string>
|
|
<string name="move_picker_title">Move to</string>
|
|
<string name="cancel">Cancel</string>
|
|
<string name="confirm_spam_title">Move to Spam?</string>
|
|
<string name="confirm_spam_text">Move %1$d message(s) to the Spam folder?</string>
|
|
<string name="confirm_trash_title">Move to Trash?</string>
|
|
<string name="confirm_trash_text">Move %1$d message(s) to Trash?</string>
|
|
<string name="confirm_delete_title">Delete permanently?</string>
|
|
<string name="confirm_delete_text">This permanently deletes %1$d message(s) and can\'t be undone.</string>
|
|
<string name="confirm_reply_all_title">Reply to all?</string>
|
|
<string name="confirm_reply_all_text">Reply to everyone included on this message?</string>
|
|
|
|
<!-- Folder navigation drawer -->
|
|
<string name="drawer_open">Show folders</string>
|
|
<string name="drawer_switch_account">Switch account</string>
|
|
<string name="folder_all_inboxes">All Inboxes</string>
|
|
<string name="folder_inbox">Inbox</string>
|
|
<string name="folder_sent">Sent</string>
|
|
<string name="folder_drafts">Drafts</string>
|
|
<string name="folder_archive">Archive</string>
|
|
<string name="folder_spam">Spam</string>
|
|
<string name="folder_trash">Trash</string>
|
|
|
|
<!-- Compose -->
|
|
<string name="compose_from">From</string>
|
|
<string name="compose_to">To</string>
|
|
<string name="compose_cc">Cc</string>
|
|
<string name="compose_subject">Subject</string>
|
|
<string name="compose_body">Message</string>
|
|
<string name="compose_no_account">Add an account before composing</string>
|
|
<string name="compose_attach">Attach file</string>
|
|
<string name="compose_attachment_remove">Remove attachment</string>
|
|
|
|
<!-- Drafts -->
|
|
<string name="drafts_title">Drafts</string>
|
|
<string name="drafts_empty">No drafts</string>
|
|
<string name="drafts_count">Drafts (%1$d)</string>
|
|
<string name="draft_no_subject">(no subject)</string>
|
|
<string name="draft_no_recipient">(no recipient)</string>
|
|
<string name="draft_delete">Delete draft</string>
|
|
|
|
<!-- Outbox -->
|
|
<string name="outbox_title">Outbox</string>
|
|
<string name="outbox_empty">Outbox is empty</string>
|
|
<string name="outbox_count">Outbox (%1$d)</string>
|
|
<string name="outbox_status_queued">Queued</string>
|
|
<string name="outbox_status_failed">Couldn\'t send — will retry</string>
|
|
<string name="outbox_cancel">Cancel send</string>
|
|
<string name="outbox_retry">Retry</string>
|
|
|
|
<!-- Reader -->
|
|
<string name="reader_reply">Reply</string>
|
|
<string name="attachments_title">Attachments</string>
|
|
<string name="attachment_downloaded">Downloaded</string>
|
|
<string name="message_available_offline">Available offline</string>
|
|
<string name="attachment_download_failed">Couldn\'t download %1$s</string>
|
|
<string name="attachment_no_app">No app can open this file</string>
|
|
|
|
<!-- Account setup -->
|
|
<string name="account_setup_outlook">Sign in with Microsoft</string>
|
|
<string name="account_setup_other">Other (IMAP/SMTP)</string>
|
|
<string name="account_setup_subtitle">Choose how you want to connect your mailbox.</string>
|
|
|
|
<!-- Manual IMAP/SMTP setup -->
|
|
<string name="manual_setup_title">IMAP / SMTP</string>
|
|
<string name="manual_email">Email address</string>
|
|
<string name="manual_password">Password or app password</string>
|
|
<string name="manual_incoming">Incoming mail (IMAP)</string>
|
|
<string name="manual_outgoing">Outgoing mail (SMTP)</string>
|
|
<string name="manual_imap_server">IMAP server</string>
|
|
<string name="manual_smtp_server">SMTP server</string>
|
|
<string name="manual_imap_port">IMAP port</string>
|
|
<string name="manual_smtp_port">SMTP port</string>
|
|
<string name="manual_imap_security">IMAP security</string>
|
|
<string name="manual_smtp_security">SMTP security</string>
|
|
<string name="manual_test_and_add">Test & add account</string>
|
|
|
|
<!-- Notifications -->
|
|
<string name="notif_channel_new_mail">New mail</string>
|
|
<string name="notif_new_mail_count">%1$d new messages</string>
|
|
<string name="notif_channel_push_status">Push (IMAP IDLE)</string>
|
|
<string name="notif_push_status_title">Watching for new mail</string>
|
|
<string name="notif_push_status_text">Connected for instant delivery</string>
|
|
|
|
<!-- Settings -->
|
|
<string name="settings_accounts">Accounts</string>
|
|
<string name="settings_downloading">Message downloading</string>
|
|
<string name="fetch_always">Always fetch all</string>
|
|
<string name="fetch_always_summary">Download full messages and attachments as they sync, on any connection.</string>
|
|
<string name="fetch_wifi">Fetch all on Wi-Fi</string>
|
|
<string name="fetch_wifi_summary">Download full messages and attachments only on Wi-Fi or other unmetered networks; otherwise fetch them when you open a message.</string>
|
|
<string name="fetch_on_demand">Always on-demand</string>
|
|
<string name="fetch_on_demand_summary">Sync only message headers; download a message\'s content when you open it.</string>
|
|
<string name="settings_notifications">Notifications</string>
|
|
<string name="settings_new_mail">New-mail notifications</string>
|
|
<string name="settings_new_mail_summary">Show a notification when new mail arrives</string>
|
|
<string name="settings_no_accounts">No accounts yet</string>
|
|
<string name="account_remove">Remove account</string>
|
|
|
|
<!-- Per-account settings -->
|
|
<string name="settings_account_title">Account</string>
|
|
<string name="settings_signature">Signature</string>
|
|
<string name="settings_signature_enable">Append signature</string>
|
|
<string name="settings_signature_hint">Your signature</string>
|
|
<string name="settings_account_notifications">Notifications</string>
|
|
<string name="settings_account_new_mail">New mail notifications</string>
|
|
<string name="settings_account_new_mail_summary">Show notifications for this account</string>
|
|
<string name="settings_account_system_notif">Sound & vibration</string>
|
|
<string name="settings_account_system_notif_summary">Manage sound, vibration, and importance in Android settings</string>
|
|
<string name="settings_appearance">Appearance</string>
|
|
<string name="settings_dynamic_color">Use wallpaper colors</string>
|
|
<string name="settings_dynamic_color_summary">Material You dynamic theming (Android 12+)</string>
|
|
<string name="settings_add_account">Add account</string>
|
|
<string name="settings_advanced">Advanced Settings</string>
|
|
<string name="settings_advanced_summary">Power-user options for sync and connections</string>
|
|
<string name="settings_adv_idle">Push mail (IMAP IDLE)</string>
|
|
<string name="settings_adv_starttls">Allow insecure STARTTLS fallback</string>
|
|
<string name="settings_adv_starttls_summary">Connect even when the server can\'t upgrade to an encrypted (STARTTLS) connection. Leave this off unless a specific server requires it — while on, your username and password may be sent unencrypted.</string>
|
|
<string name="settings_adv_remote_images">Load remote images by default</string>
|
|
<string name="settings_adv_encrypt_cache">Encrypt local cache</string>
|
|
<string name="settings_adv_encrypt_cache_summary">Encrypt cached mail stored on this device, using a key held in the Android Keystore. Applies the next time you open LibreMail.</string>
|
|
</resources>
|