diff --git a/components/settings/__tests__/about-data-settings.test.tsx b/components/settings/__tests__/about-data-settings.test.tsx new file mode 100644 index 000000000..223a92aaa --- /dev/null +++ b/components/settings/__tests__/about-data-settings.test.tsx @@ -0,0 +1,56 @@ +import { fireEvent, render, screen, waitFor, within } from '@testing-library/react'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { useSettingsStore } from '@/stores/settings-store'; +import { AboutDataSettings } from '../about-data-settings'; + +// Backup & reset: Reset asks in a ConfirmDialog (no button that turns into +// a red "Yes"), and every result is a toast, never a browser alert(). + +const toast = vi.hoisted(() => ({ success: vi.fn(), error: vi.fn(), info: vi.fn(), warning: vi.fn() })); +vi.mock('@/stores/toast-store', () => ({ toast })); +vi.mock('../settings-section', async (importOriginal) => ({ + ...(await importOriginal()), + SettingsSection: ({ children }: { children: React.ReactNode }) =>
{children}
, +})); +vi.mock('../debug-settings', () => ({ DebugSettings: () => null })); + +const initial = useSettingsStore.getState(); +let alertSpy: ReturnType; +beforeEach(() => { + toast.success.mockClear(); + toast.error.mockClear(); + alertSpy = vi.spyOn(window, 'alert').mockImplementation(() => {}); +}); +afterEach(() => { + useSettingsStore.setState(initial, true); + alertSpy.mockRestore(); +}); + +describe('Backup & reset', () => { + it('resets only after the dialog is confirmed, then says so in a toast', () => { + const resetToDefaults = vi.fn(); + useSettingsStore.setState({ resetToDefaults }); + render(); + + fireEvent.click(screen.getByRole('button', { name: 'reset_settings.button' })); + expect(resetToDefaults).not.toHaveBeenCalled(); + const dialog = within(screen.getByRole('alertdialog')); + expect(dialog.getByText('reset_settings.confirm_title')).toBeTruthy(); + + fireEvent.click(dialog.getByRole('button', { name: 'reset_settings.button' })); + expect(resetToDefaults).toHaveBeenCalledTimes(1); + expect(toast.success).toHaveBeenCalledWith('reset_settings.done'); + expect(alertSpy).not.toHaveBeenCalled(); + }); + + it('reports an import that fails in an error toast', async () => { + useSettingsStore.setState({ importSettings: vi.fn(() => false) }); + const { container } = render(); + const input = container.querySelector('input[type="file"]') as HTMLInputElement; + const file = new File(['not json'], 'settings.json', { type: 'application/json' }); + fireEvent.change(input, { target: { files: [file] } }); + + await waitFor(() => expect(toast.error).toHaveBeenCalledWith('import_error')); + expect(alertSpy).not.toHaveBeenCalled(); + }); +}); diff --git a/components/settings/about-data-settings.tsx b/components/settings/about-data-settings.tsx index 4cd109ab2..81bea1440 100644 --- a/components/settings/about-data-settings.tsx +++ b/components/settings/about-data-settings.tsx @@ -13,6 +13,8 @@ import { cn } from '@/lib/utils'; import { getPathPrefix, withBasePath } from '@/lib/browser-navigation'; import { clearCachedData } from '@/lib/clear-cached-data'; import { SpamSiegeGame } from './spam-siege-game'; +import { ConfirmDialog } from '@/components/ui/confirm-dialog'; +import { toast } from '@/stores/toast-store'; import { DebugSettings } from './debug-settings'; const APP_VERSION = process.env.NEXT_PUBLIC_APP_VERSION || "0.0.0"; @@ -122,7 +124,6 @@ export function AboutFooter() { */ export function AboutDataSettings() { const t = useTranslations('settings.advanced'); - const tCommon = useTranslations('common'); const tSettings = useTranslations('settings'); const { settingsSyncDisabled, updateSetting, resetToDefaults, exportSettings, importSettings } = useSettingsStore(); @@ -157,32 +158,19 @@ export function AboutDataSettings() { const json = event.target?.result as string; const success = importSettings(json); if (success) { - alert(tSettings('import_success')); + toast.success(tSettings('import_success')); } else { - alert(tSettings('import_error')); + toast.error(tSettings('import_error')); } }; reader.readAsText(file); - }; - - const handleRefreshCache = () => { - if (showRefreshConfirm) { - clearCachedData(); // reloads the page - } else { - setShowRefreshConfirm(true); - setTimeout(() => setShowRefreshConfirm(false), 5000); - } + // The same file can be picked again after fixing it. + e.target.value = ''; }; const handleReset = () => { - if (showResetConfirm) { - resetToDefaults(); - setShowResetConfirm(false); - alert(tSettings('save_success')); - } else { - setShowResetConfirm(true); - setTimeout(() => setShowResetConfirm(false), 5000); - } + resetToDefaults(); + toast.success(t('reset_settings.done')); }; return ( @@ -222,26 +210,36 @@ export function AboutDataSettings() { - - + setShowRefreshConfirm(false)} + onConfirm={() => clearCachedData() /* reloads the page */} + title={t('refresh_cache.confirm_title')} + message={t('refresh_cache.description')} + confirmText={t('refresh_cache.button')} + /> + setShowResetConfirm(false)} + onConfirm={handleReset} + title={t('reset_settings.confirm_title')} + message={t('reset_settings.description')} + confirmText={t('reset_settings.button')} + variant="destructive" + /> + ); diff --git a/locales/ar/common.json b/locales/ar/common.json index 53f8336bb..7b38f5ad9 100644 --- a/locales/ar/common.json +++ b/locales/ar/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "تحديث البيانات المخزنة مؤقتًا", "description": "إعادة تحميل جهات الاتصال والتقويمات والمجلدات من الخادم. يحافظ على حساباتك وجلساتك — يصلح العرض القديم أو الخاطئ دون تسجيل الخروج.", - "button": "تحديث" + "button": "تحديث", + "confirm_title": "تحديث البيانات المخزنة مؤقتًا؟" }, "reset_settings": { "label": "إعادة تعيين الإعدادات", "description": "استعادة جميع الإعدادات إلى القيم الافتراضية", - "button": "إعادة التعيين للافتراضي" + "button": "إعادة التعيين للافتراضي", + "confirm_title": "إعادة تعيين كل الإعدادات؟", + "done": "تمت إعادة تعيين الإعدادات" }, "export_settings": { "label": "تصدير الإعدادات", diff --git a/locales/ca/common.json b/locales/ca/common.json index f4673dfc4..52590ae35 100644 --- a/locales/ca/common.json +++ b/locales/ca/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "Actualitza les dades emmagatzemades", "description": "Torna a carregar els contactes, els calendaris i les carpetes des del servidor. Manté els comptes i les sessions — soluciona una vista obsoleta o incorrecta sense tancar la sessió.", - "button": "Actualitza" + "button": "Actualitza", + "confirm_title": "Voleu actualitzar les dades de la memòria cau?" }, "reset_settings": { "label": "Restableix la configuració", "description": "Restaura tota la configuració als valors per defecte", - "button": "Restableix als valors per defecte" + "button": "Restableix als valors per defecte", + "confirm_title": "Voleu restablir tots els paràmetres?", + "done": "Paràmetres restablerts" }, "export_settings": { "label": "Exporta la configuració", diff --git a/locales/cs/common.json b/locales/cs/common.json index 03092b9a9..d415bc6a3 100644 --- a/locales/cs/common.json +++ b/locales/cs/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Obnovit data z mezipaměti", "description": "Znovu načíst kontakty, kalendáře a složky ze serveru. Účty a přihlášení zůstanou zachovány – opraví zastaralé nebo chybné zobrazení bez odhlášení.", - "button": "Obnovit" + "button": "Obnovit", + "confirm_title": "Obnovit data v mezipaměti?" }, "reset_settings": { "label": "Resetovat nastavení", "description": "Obnovit všechna nastavení na výchozí hodnoty", - "button": "Obnovit výchozí" + "button": "Obnovit výchozí", + "confirm_title": "Obnovit všechna nastavení?", + "done": "Nastavení byla obnovena" }, "export_settings": { "label": "Exportovat nastavení", diff --git a/locales/da/common.json b/locales/da/common.json index ad480815b..2df863b9c 100644 --- a/locales/da/common.json +++ b/locales/da/common.json @@ -2187,12 +2187,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Opdater cachelagrede data?" }, "reset_settings": { "label": "Nulstil indstillinger", "description": "Gendan alle indstillinger til standardværdier", - "button": "Nulstil til standard" + "button": "Nulstil til standard", + "confirm_title": "Nulstil alle indstillinger?", + "done": "Indstillinger nulstillet" }, "export_settings": { "label": "Eksportér indstillinger", diff --git a/locales/de/common.json b/locales/de/common.json index b9d421235..256a4935f 100644 --- a/locales/de/common.json +++ b/locales/de/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Zwischengespeicherte Daten aktualisieren", "description": "Kontakte, Kalender und Ordner vom Server neu laden. Konten und Sitzungen bleiben erhalten; veraltete oder fehlerhafte Ansichten werden korrigiert, ohne dass Sie sich abmelden müssen.", - "button": "Aktualisieren" + "button": "Aktualisieren", + "confirm_title": "Zwischengespeicherte Daten aktualisieren?" }, "reset_settings": { "label": "Einstellungen zurücksetzen", "description": "Alle Einstellungen auf Standardwerte zurücksetzen", - "button": "Auf Standard zurücksetzen" + "button": "Auf Standard zurücksetzen", + "confirm_title": "Alle Einstellungen zurücksetzen?", + "done": "Einstellungen zurückgesetzt" }, "export_settings": { "label": "Einstellungen exportieren", diff --git a/locales/en/common.json b/locales/en/common.json index 242da9e4c..5ee56da79 100644 --- a/locales/en/common.json +++ b/locales/en/common.json @@ -1049,8 +1049,8 @@ "title": "Settings", "back_to_mail": "Back to Mail", "save_success": "Settings saved successfully", - "import_success": "Settings imported successfully", - "import_error": "Failed to import settings", + "import_success": "Settings imported", + "import_error": "Couldn't import settings", "reset_confirm": "Are you sure you want to reset all settings to defaults?", "unsaved_changes": "You have unsaved changes", "discard_changes": "Discard unsaved changes?", @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Refresh cached data?" }, "reset_settings": { "label": "Reset Settings", "description": "Restore all settings to default values", - "button": "Reset to Defaults" + "button": "Reset to Defaults", + "confirm_title": "Reset all settings?", + "done": "Settings reset" }, "export_settings": { "label": "Export Settings", diff --git a/locales/es/common.json b/locales/es/common.json index 878a02114..aba53b8a4 100644 --- a/locales/es/common.json +++ b/locales/es/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "¿Actualizar los datos en caché?" }, "reset_settings": { "label": "Restablecer Configuración", "description": "Restaurar toda la configuración a los valores predeterminados", - "button": "Restablecer a Predeterminados" + "button": "Restablecer a Predeterminados", + "confirm_title": "¿Restablecer todos los ajustes?", + "done": "Ajustes restablecidos" }, "export_settings": { "label": "Exportar Configuración", diff --git a/locales/et/common.json b/locales/et/common.json index 8a86a5aca..741741730 100644 --- a/locales/et/common.json +++ b/locales/et/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "Värskenda vahemällu salvestatud andmeid", "description": "Laadi kontaktid, kalendrid ja kaustad serverist uuesti. Kontod ja seansid jäävad alles — parandab aegunud või vale kuva ilma välja logimata.", - "button": "Värskenda" + "button": "Värskenda", + "confirm_title": "Värskendada vahemälu andmed?" }, "reset_settings": { "label": "Lähtesta seaded", "description": "Taasta kõik seaded vaikeväärtustele", - "button": "Lähtesta vaikeväärtustele" + "button": "Lähtesta vaikeväärtustele", + "confirm_title": "Lähtestada kõik seaded?", + "done": "Seaded lähtestatud" }, "export_settings": { "label": "Ekspordi seaded", diff --git a/locales/fa/common.json b/locales/fa/common.json index 6c19d8994..1b892fc0f 100644 --- a/locales/fa/common.json +++ b/locales/fa/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "داده‌های ذخیره‌شده موقت تازه شوند؟" }, "reset_settings": { "label": "بازنشانی تنظیمات", "description": "بازگردانی همه تنظیمات به مقادیر پیش‌فرض", - "button": "بازنشانی به پیش‌فرض" + "button": "بازنشانی به پیش‌فرض", + "confirm_title": "همه تنظیمات بازنشانی شوند؟", + "done": "تنظیمات بازنشانی شد" }, "export_settings": { "label": "خروجی تنظیمات", diff --git a/locales/fr/common.json b/locales/fr/common.json index ef4e3319b..9f26997d5 100644 --- a/locales/fr/common.json +++ b/locales/fr/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Actualiser les données en cache", "description": "Actualiser les contacts, calendriers et dossiers depuis le serveur. Vos comptes et sessions sont conservés. Corrige un affichage obsolète ou incorrect sans vous déconnecter.", - "button": "Actualiser" + "button": "Actualiser", + "confirm_title": "Actualiser les données en cache ?" }, "reset_settings": { "label": "Réinitialiser les paramètres", "description": "Restaurer tous les paramètres par défaut", - "button": "Réinitialiser" + "button": "Réinitialiser", + "confirm_title": "Réinitialiser tous les paramètres ?", + "done": "Paramètres réinitialisés" }, "export_settings": { "label": "Exporter les paramètres", diff --git a/locales/he/common.json b/locales/he/common.json index 0608d497f..2ba74d7e8 100644 --- a/locales/he/common.json +++ b/locales/he/common.json @@ -2146,12 +2146,15 @@ "refresh_cache": { "label": "רענון נתונים שמורים", "description": "טעינה מחדש של אנשי קשר, לוחות שנה ותיקיות מהשרת. שומר על החשבונות וההתחברויות שלך — מתקן תצוגה מיושנת או שגויה ללא התנתקות.", - "button": "רענון" + "button": "רענון", + "confirm_title": "לרענן את הנתונים השמורים במטמון?" }, "reset_settings": { "label": "אפס את ההגדרות", "description": "שחזר את כל ההגדרות לערכי ברירת המחדל", - "button": "אפס לברירות מחדל" + "button": "אפס לברירות מחדל", + "confirm_title": "לאפס את כל ההגדרות?", + "done": "ההגדרות אופסו" }, "export_settings": { "label": "ייצוא הגדרות", diff --git a/locales/hu/common.json b/locales/hu/common.json index d9f2cb9b3..ea6547156 100644 --- a/locales/hu/common.json +++ b/locales/hu/common.json @@ -2187,12 +2187,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Frissíti a gyorsítótárazott adatokat?" }, "reset_settings": { "label": "Beállítások visszaállítása", "description": "Összes beállítás visszaállítása az alapértelmezett értékekre", - "button": "Visszaállítás alapértelmezettre" + "button": "Visszaállítás alapértelmezettre", + "confirm_title": "Visszaállítja az összes beállítást?", + "done": "Beállítások visszaállítva" }, "export_settings": { "label": "Beállítások exportálása", diff --git a/locales/it/common.json b/locales/it/common.json index c0b3b1db5..a24fe7e47 100644 --- a/locales/it/common.json +++ b/locales/it/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Aggiornare i dati nella cache?" }, "reset_settings": { "label": "Ripristina impostazioni", "description": "Ripristina tutte le impostazioni ai valori predefiniti", - "button": "Ripristina ai valori predefiniti" + "button": "Ripristina ai valori predefiniti", + "confirm_title": "Ripristinare tutte le impostazioni?", + "done": "Impostazioni ripristinate" }, "export_settings": { "label": "Esporta impostazioni", diff --git a/locales/ja/common.json b/locales/ja/common.json index 227996b6e..9d308292a 100644 --- a/locales/ja/common.json +++ b/locales/ja/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "キャッシュされたデータを更新しますか?" }, "reset_settings": { "label": "設定をリセット", "description": "すべての設定をデフォルト値に戻す", - "button": "デフォルトにリセット" + "button": "デフォルトにリセット", + "confirm_title": "すべての設定をリセットしますか?", + "done": "設定をリセットしました" }, "export_settings": { "label": "設定をエクスポート", diff --git a/locales/ko/common.json b/locales/ko/common.json index 52bdb590d..318f21b66 100644 --- a/locales/ko/common.json +++ b/locales/ko/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "캐시된 데이터를 새로 고칠까요?" }, "reset_settings": { "label": "설정 초기화", "description": "모든 설정을 기본값으로 되돌려요", - "button": "기본값으로 초기화" + "button": "기본값으로 초기화", + "confirm_title": "모든 설정을 초기화할까요?", + "done": "설정을 초기화했어요" }, "export_settings": { "label": "설정 내보내기", diff --git a/locales/lv/common.json b/locales/lv/common.json index 258cca9a7..57f3c910a 100644 --- a/locales/lv/common.json +++ b/locales/lv/common.json @@ -2165,12 +2165,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Atsvaidzināt kešatmiņas datus?" }, "reset_settings": { "label": "Atiestatīt iestatījumus", "description": "Atjaunot visus iestatījumus uz noklusējuma vērtībām", - "button": "Atiestatīt" + "button": "Atiestatīt", + "confirm_title": "Atiestatīt visus iestatījumus?", + "done": "Iestatījumi atiestatīti" }, "export_settings": { "label": "Eksportēt iestatījumus", diff --git a/locales/mn/common.json b/locales/mn/common.json index 2b2ec3e20..65ee451eb 100644 --- a/locales/mn/common.json +++ b/locales/mn/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "Кэш хийсэн өгөгдлийг сэргээх", "description": "Харилцагч, хуанли, фолдеруудыг серверээс дахин ачаална уу. Таны бүртгэл болон сешнүүдийг хадгална — гаралгүй хуучирсан эсвэл буруу харагдацыг засна.", - "button": "Сэргээх" + "button": "Сэргээх", + "confirm_title": "Кэшлэгдсэн өгөгдлийг шинэчлэх үү?" }, "reset_settings": { "label": "Тохиргоог дахин тохируулах", "description": "Бүх тохиргоог анхдагч утга руу нь сэргээнэ", - "button": "Өгөгдмөл рүү дахин тохируулах" + "button": "Өгөгдмөл рүү дахин тохируулах", + "confirm_title": "Бүх тохиргоог анхны байдалд нь оруулах уу?", + "done": "Тохиргоог анхны байдалд оруулсан" }, "export_settings": { "label": "Экспортын тохиргоо", diff --git a/locales/nb/common.json b/locales/nb/common.json index d5a3f8090..e4d4e739f 100644 --- a/locales/nb/common.json +++ b/locales/nb/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "Oppdater bufrede data", "description": "Last inn kontakter, kalendere og mapper på nytt fra serveren. Kontoene og øktene beholdes, slik at du kan rette en utdatert eller feil visning uten å logge av.", - "button": "Oppdater" + "button": "Oppdater", + "confirm_title": "Oppdatere bufrede data?" }, "reset_settings": { "label": "Tilbakestill innstillinger", "description": "Gjenopprett standardinnstillingene", - "button": "Tilbakestill til standard" + "button": "Tilbakestill til standard", + "confirm_title": "Tilbakestille alle innstillinger?", + "done": "Innstillinger tilbakestilt" }, "export_settings": { "label": "Eksporter innstillinger", diff --git a/locales/nl/common.json b/locales/nl/common.json index 954ae8b06..49391c326 100644 --- a/locales/nl/common.json +++ b/locales/nl/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Gegevens in de cache vernieuwen?" }, "reset_settings": { "label": "Instellingen resetten", "description": "Herstel alle instellingen naar standaardwaarden", - "button": "Resetten naar standaard" + "button": "Resetten naar standaard", + "confirm_title": "Alle instellingen herstellen?", + "done": "Instellingen hersteld" }, "export_settings": { "label": "Instellingen exporteren", diff --git a/locales/pl/common.json b/locales/pl/common.json index 99861fe57..d4df85120 100644 --- a/locales/pl/common.json +++ b/locales/pl/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Odświeżyć dane w pamięci podręcznej?" }, "reset_settings": { "label": "Resetuj ustawienia", "description": "Przywróć wszystkie ustawienia do wartości domyślnych", - "button": "Przywróć domyślne" + "button": "Przywróć domyślne", + "confirm_title": "Zresetować wszystkie ustawienia?", + "done": "Ustawienia zresetowane" }, "export_settings": { "label": "Eksportuj ustawienia", diff --git a/locales/pt/common.json b/locales/pt/common.json index 566cacd46..0506afcb4 100644 --- a/locales/pt/common.json +++ b/locales/pt/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Atualizar dados armazenados em cache", "description": "Atualize os contatos, calendários e pastas do servidor. Mantém suas contas e sessões — corrige uma visualização desatualizada ou incorreta sem precisar sair da conta.", - "button": "Recarregar" + "button": "Recarregar", + "confirm_title": "Atualizar os dados em cache?" }, "reset_settings": { "label": "Redefinir Configurações", "description": "Restaurar todas as configurações para valores padrão", - "button": "Redefinir para Padrões" + "button": "Redefinir para Padrões", + "confirm_title": "Repor todas as definições?", + "done": "Definições repostas" }, "export_settings": { "label": "Exportar Configurações", diff --git a/locales/ro/common.json b/locales/ro/common.json index 8bf387f34..bf70723dc 100644 --- a/locales/ro/common.json +++ b/locales/ro/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Reîmprospătați datele din cache?" }, "reset_settings": { "label": "Resetare setări", "description": "Restabiliți toate setările la valorile implicite", - "button": "Resezare la setările implicite" + "button": "Resezare la setările implicite", + "confirm_title": "Resetați toate setările?", + "done": "Setări resetate" }, "export_settings": { "label": "Setări de export", diff --git a/locales/ru/common.json b/locales/ru/common.json index de2ffc1dc..8bd3ab528 100644 --- a/locales/ru/common.json +++ b/locales/ru/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Обновить кэшированные данные?" }, "reset_settings": { "label": "Сбросить настройки", "description": "Восстановить все настройки до значений по умолчанию", - "button": "Сбросить" + "button": "Сбросить", + "confirm_title": "Сбросить все настройки?", + "done": "Настройки сброшены" }, "export_settings": { "label": "Экспортировать настройки", diff --git a/locales/sk/common.json b/locales/sk/common.json index ed04161fb..da48ff8ee 100644 --- a/locales/sk/common.json +++ b/locales/sk/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "Obnoviť uložené údaje", "description": "Znova načíta kontakty, kalendáre a priečinky zo servera. Zachová vaše účty a prihlásenia — opraví zastarané alebo nesprávne zobrazenie bez odhlásenia.", - "button": "Obnoviť" + "button": "Obnoviť", + "confirm_title": "Obnoviť údaje vo vyrovnávacej pamäti?" }, "reset_settings": { "label": "Resetovať nastavenia", "description": "Obnoviť všetky nastavenia na predvolené hodnoty", - "button": "Obnoviť predvolené" + "button": "Obnoviť predvolené", + "confirm_title": "Obnoviť všetky nastavenia?", + "done": "Nastavenia boli obnovené" }, "export_settings": { "label": "Exportovať nastavenia", diff --git a/locales/th/common.json b/locales/th/common.json index 6ef38acc9..5abab8a6c 100644 --- a/locales/th/common.json +++ b/locales/th/common.json @@ -4201,12 +4201,15 @@ "refresh_cache": { "label": "รีเฟรชข้อมูลในแคช", "description": "โหลดผู้ติดต่อ ปฏิทิน และโฟลเดอร์จากเซิร์ฟเวอร์ใหม่ โดยยังคงรักษาบัญชีและเซสชันของคุณไว้ — แก้ไขมุมมองที่ไม่อัปเดตหรือไม่ถูกต้องโดยไม่ต้องลงชื่อออก", - "button": "รีเฟรช" + "button": "รีเฟรช", + "confirm_title": "รีเฟรชข้อมูลที่แคชไว้ไหม" }, "reset_settings": { "label": "รีเซ็ตการตั้งค่า", "description": "คืนค่าการตั้งค่าทั้งหมดกลับเป็นค่าเริ่มต้น", - "button": "รีเซ็ตเป็นค่าเริ่มต้น" + "button": "รีเซ็ตเป็นค่าเริ่มต้น", + "confirm_title": "รีเซ็ตการตั้งค่าทั้งหมดไหม", + "done": "รีเซ็ตการตั้งค่าแล้ว" }, "export_settings": { "label": "ส่งออกการตั้งค่า", diff --git a/locales/tr/common.json b/locales/tr/common.json index d879330a5..67aa71564 100644 --- a/locales/tr/common.json +++ b/locales/tr/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Önbellekteki veriler yenilensin mi?" }, "reset_settings": { "label": "Ayarları Sıfırla", "description": "Tüm ayarları varsayılan değerlerine geri yükle", - "button": "Varsayılanlara Sıfırla" + "button": "Varsayılanlara Sıfırla", + "confirm_title": "Tüm ayarlar sıfırlansın mı?", + "done": "Ayarlar sıfırlandı" }, "export_settings": { "label": "Ayarları Dışa Aktar", diff --git a/locales/uk/common.json b/locales/uk/common.json index 1cbc83ecb..817463498 100644 --- a/locales/uk/common.json +++ b/locales/uk/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "Оновити кешовані дані?" }, "reset_settings": { "label": "Скинути налаштування", "description": "Відновити всі налаштування до значень за замовчуванням", - "button": "Скинути до значень за замовчуванням" + "button": "Скинути до значень за замовчуванням", + "confirm_title": "Скинути всі налаштування?", + "done": "Налаштування скинуто" }, "export_settings": { "label": "Налаштування експорту", diff --git a/locales/zh-TW/common.json b/locales/zh-TW/common.json index 70d262888..b0b9b2cc4 100644 --- a/locales/zh-TW/common.json +++ b/locales/zh-TW/common.json @@ -2191,12 +2191,15 @@ "refresh_cache": { "label": "重新整理快取資料", "description": "從伺服器重新載入聯絡人、行事曆與信件匣。保留帳號與工作階段,不需登出即可修正過時或錯誤的畫面。", - "button": "重新整理" + "button": "重新整理", + "confirm_title": "重新整理快取資料?" }, "reset_settings": { "label": "重設設定", "description": "將所有設定還原為預設值", - "button": "重設為預設值" + "button": "重設為預設值", + "confirm_title": "重設所有設定?", + "done": "設定已重設" }, "export_settings": { "label": "匯出設定", diff --git a/locales/zh/common.json b/locales/zh/common.json index d7fbc8861..c157a7c7f 100644 --- a/locales/zh/common.json +++ b/locales/zh/common.json @@ -2184,12 +2184,15 @@ "refresh_cache": { "label": "Refresh cached data", "description": "Reload contacts, calendars, and folders from the server. Keeps your accounts and sessions — fixes a stale or wrong view without signing out.", - "button": "Refresh" + "button": "Refresh", + "confirm_title": "刷新缓存数据?" }, "reset_settings": { "label": "重置设置", "description": "将所有设置恢复为默认值", - "button": "重置为默认值" + "button": "重置为默认值", + "confirm_title": "重置所有设置?", + "done": "设置已重置" }, "export_settings": { "label": "导出设置",