Merge main: the list subject stays notranslate and gains its translated fallback
Both sides of the conflict belong. The span holds a subject, which is the sender's words and not ours to machine-translate; the text shown when there is no subject is ours, and should follow the interface language.
This commit is contained in:
+7
-2
@@ -18,7 +18,7 @@ import { MailView } from "@/views/mail/MailView";
|
||||
import { ComposerDock } from "@/views/compose/ComposerDock";
|
||||
import { setUnreadBadge } from "@/lib/notify";
|
||||
import { useSettings, syncedPart } from "@/store/settings";
|
||||
import { armSettingsSync, loadRemoteSettings, queueSettingsPush, settingsSyncAvailable } from "@/lib/settingsSync";
|
||||
import { armSettingsSync, loadRemoteSettings, queueSettingsPush, settingsAlreadyLoadedFor, settingsSyncAvailable } from "@/lib/settingsSync";
|
||||
import { listenForVerification, renewWebPush } from "@/lib/webpushEnable";
|
||||
import { useLanguageVersion, whenLanguageReady } from "@/lib/i18n";
|
||||
|
||||
@@ -84,8 +84,13 @@ function AuthedApp() {
|
||||
|
||||
// Settings that live with the account rather than the browser. The cached
|
||||
// ones have already painted, so this only has to correct them (issue #54).
|
||||
//
|
||||
// Once per account, not once per mount: this subtree is keyed on the
|
||||
// language version, so picking a language throws it away and builds it
|
||||
// again. Re-reading the settings file there would apply a copy written
|
||||
// before the change and undo it.
|
||||
useEffect(() => {
|
||||
if (!accountId) return;
|
||||
if (settingsAlreadyLoadedFor(accountId)) return;
|
||||
let cancelled = false;
|
||||
void (async () => {
|
||||
const remote = await loadRemoteSettings();
|
||||
|
||||
Reference in New Issue
Block a user