diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 401d25965e..15c3b8e16b 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -8262,7 +8262,7 @@ "description": "Section title and button text for the on-device backups feature (also known as local backups)." }, "icu:Preferences__local-backups-section__description": { - "messageformat": "Backups are encrypted with a key and stored on your computer.", + "messageformat": "Your backup is end-to-end encrypted and stored on your computer.", "description": "Description in the settings view for on-device backups." }, "icu:Preferences--local-backups-off-description": { @@ -8270,7 +8270,7 @@ "description": "Description for on-device local message backups when the feature is off." }, "icu:Preferences--local-backups-restore-info": { - "messageformat": "To restore a backup, install a new copy of Signal. Open the app and tap Restore backup, then locate the backup folder. Learn more.", + "messageformat": "To restore a backup, install a new copy of Signal on your phone. Open the app and tap “Restore or transfer.” Learn more.", "description": "Description for how to restore on-device local message backups." }, "icu:Preferences--local-backups-setup-folder": { diff --git a/ts/components/Preferences.dom.stories.tsx b/ts/components/Preferences.dom.stories.tsx index 48f3d7a26f..e2634762b1 100644 --- a/ts/components/Preferences.dom.stories.tsx +++ b/ts/components/Preferences.dom.stories.tsx @@ -475,6 +475,7 @@ export default { navTabsCollapsed: false, notificationContent: 'name', notificationProfileCount: 0, + osName: 'windows', otherTabsUnreadStats: { unreadCount: 0, unreadMentionsCount: 0, @@ -594,6 +595,7 @@ export default { onWhoCanSeeMeChange: action('onWhoCanSeeMeChange'), onWhoCanFindMeChange: action('onWhoCanFindMeChange'), onZoomFactorChange: action('onZoomFactorChange'), + openFileInFolder: action('openFileInFolder'), pickLocalBackupFolder: () => Promise.resolve('/home/signaluser/Signal Backups/'), promptOSAuth: () => Promise.resolve('success'), diff --git a/ts/components/Preferences.dom.tsx b/ts/components/Preferences.dom.tsx index a80253d4af..8841c9e504 100644 --- a/ts/components/Preferences.dom.tsx +++ b/ts/components/Preferences.dom.tsx @@ -161,6 +161,7 @@ export type PropsDataType = { settingsLocation: SettingsLocation; lastSyncTime?: number; notificationContent: NotificationSettingType; + osName: 'linux' | 'macos' | 'windows' | undefined; phoneNumber: string | undefined; selectedCamera?: string; selectedMicrophone?: AudioDevice; @@ -333,6 +334,7 @@ type PropsFunctionType = { onWhoCanSeeMeChange: SelectChangeHandlerType; onWhoCanFindMeChange: SelectChangeHandlerType; onZoomFactorChange: SelectChangeHandlerType; + openFileInFolder: (path: string) => void; internalDeleteAllMegaphones: () => Promise; __dangerouslyRunAbitraryReadOnlySqlQuery: ( readonlySqlQuery: string @@ -514,6 +516,8 @@ export function Preferences({ renderUpdateDialog, renderPreferencesChatFoldersPage, renderPreferencesEditChatFolderPage, + openFileInFolder, + osName, promptOSAuth, resetAllChatColors, resetDefaultChatColor, @@ -2276,6 +2280,8 @@ export function Preferences({ locale={resolvedLocale} localBackupFolder={localBackupFolder} onBackupKeyViewedChange={onBackupKeyViewedChange} + openFileInFolder={openFileInFolder} + osName={osName} pickLocalBackupFolder={pickLocalBackupFolder} settingsLocation={settingsLocation} promptOSAuth={promptOSAuth} diff --git a/ts/components/PreferencesBackups.dom.tsx b/ts/components/PreferencesBackups.dom.tsx index 62b9e82a96..7631af3ceb 100644 --- a/ts/components/PreferencesBackups.dom.tsx +++ b/ts/components/PreferencesBackups.dom.tsx @@ -62,6 +62,8 @@ export function PreferencesBackups({ locale, localBackupFolder, onBackupKeyViewedChange, + openFileInFolder, + osName, pickLocalBackupFolder, backupMediaDownloadStatus, cancelBackupMediaDownload, @@ -87,6 +89,8 @@ export function PreferencesBackups({ lastLocalBackup: LocalBackupExportMetadata | undefined; locale: string; onBackupKeyViewedChange: (keyViewed: boolean) => void; + openFileInFolder: (path: string) => void; + osName: 'linux' | 'macos' | 'windows' | undefined; settingsLocation: SettingsLocation; backupMediaDownloadStatus: BackupMediaDownloadStatusType | undefined; cancelBackupMediaDownload: () => void; @@ -154,6 +158,8 @@ export function PreferencesBackups({ lastLocalBackup={lastLocalBackup} localBackupFolder={localBackupFolder} onBackupKeyViewedChange={onBackupKeyViewedChange} + openFileInFolder={openFileInFolder} + osName={osName} settingsLocation={settingsLocation} pickLocalBackupFolder={pickLocalBackupFolder} promptOSAuth={promptOSAuth} @@ -258,9 +264,7 @@ export function PreferencesBackups({ diff --git a/ts/components/PreferencesLocalBackups.dom.tsx b/ts/components/PreferencesLocalBackups.dom.tsx index f0306c9ff3..eaa44f58b7 100644 --- a/ts/components/PreferencesLocalBackups.dom.tsx +++ b/ts/components/PreferencesLocalBackups.dom.tsx @@ -47,6 +47,8 @@ export function PreferencesLocalBackups({ i18n, lastLocalBackup, localBackupFolder, + openFileInFolder, + osName, onBackupKeyViewedChange, settingsLocation, pickLocalBackupFolder, @@ -61,6 +63,8 @@ export function PreferencesLocalBackups({ lastLocalBackup: LocalBackupExportMetadata | undefined; localBackupFolder: string | undefined; onBackupKeyViewedChange: (keyViewed: boolean) => void; + openFileInFolder: (path: string) => void; + osName: 'linux' | 'macos' | 'windows' | undefined; settingsLocation: SettingsLocation; pickLocalBackupFolder: () => Promise; promptOSAuth: ( @@ -120,6 +124,18 @@ export function PreferencesLocalBackups({ }) : i18n('icu:Preferences__local-backups-last-backup-never'); + let showInFolderText = i18n( + 'icu:PlaintextExport--CompleteDialog--ShowFiles--Windows' + ); + if (osName === 'macos') { + showInFolderText = i18n( + 'icu:PlaintextExport--CompleteDialog--ShowFiles--Mac' + ); + } else if (osName === 'linux') { + showInFolderText = i18n( + 'icu:PlaintextExport--CompleteDialog--ShowFiles--Linux' + ); + } return ( <>
@@ -170,9 +186,9 @@ export function PreferencesLocalBackups({ openFileInFolder(localBackupFolder)} > - {i18n('icu:Preferences__local-backups-folder__change')} + {showInFolderText}
diff --git a/ts/state/smart/Preferences.preload.tsx b/ts/state/smart/Preferences.preload.tsx index 9a538ab8f3..b862e86e30 100644 --- a/ts/state/smart/Preferences.preload.tsx +++ b/ts/state/smart/Preferences.preload.tsx @@ -35,6 +35,7 @@ import { format } from '../../types/PhoneNumber.std.js'; import { getIntl, getTheme, + getUser, getUserDeviceId, getUserNumber, } from '../selectors/user.std.js'; @@ -222,7 +223,7 @@ export function SmartPreferences(): React.JSX.Element | null { useConversationsActions(); const { startUpdate } = useUpdatesActions(); const { changeLocation } = useNavActions(); - const { showToast } = useToastActions(); + const { showToast, openFileInFolder } = useToastActions(); const { internalAddDonationReceipt } = useDonationsActions(); const { startPlaintextExport, startLocalBackupExport } = useBackupActions(); const { addVisibleMegaphone } = useMegaphonesActions(); @@ -255,6 +256,7 @@ export function SmartPreferences(): React.JSX.Element | null { const hasAnyCurrentCustomChatFolders = useSelector( getHasAnyCurrentCustomChatFolders ); + const { osName } = useSelector(getUser); // The weird ones @@ -935,6 +937,8 @@ export function SmartPreferences(): React.JSX.Element | null { onWhoCanFindMeChange={onWhoCanFindMeChange} onWhoCanSeeMeChange={onWhoCanSeeMeChange} onZoomFactorChange={onZoomFactorChange} + openFileInFolder={openFileInFolder} + osName={osName} otherTabsUnreadStats={otherTabsUnreadStats} settingsLocation={settingsLocation} pickLocalBackupFolder={pickLocalBackupFolder}