From d5fd04626ce22d6194924b75f268fefa41aa2db5 Mon Sep 17 00:00:00 2001 From: Vijay Raghavan Aravamudhan Date: Tue, 7 Sep 2021 18:15:46 +0530 Subject: Add a confirmation when quitting Ferdi and a preference to toggle it (implements #1857) (#1879) Works for the 'Ferdi > Quit' menu, the shortcut key to quit (Cmd/Ctrl+Q) and also from the tray icon. --- CHANGELOG.md | 4 + src/components/layout/Sidebar.js | 4 +- .../settings/settings/EditSettingsForm.js | 1 + src/containers/settings/EditSettingsScreen.js | 10 + src/environment.js | 1 + src/i18n/globalMessages.js | 9 + src/i18n/locales/af.json | 2 +- src/i18n/locales/ar.json | 2 +- src/i18n/locales/be.json | 2 +- src/i18n/locales/bg.json | 2 +- src/i18n/locales/bs.json | 2 +- src/i18n/locales/ca.json | 2 +- src/i18n/locales/cs.json | 2 +- src/i18n/locales/da.json | 2 +- src/i18n/locales/de.json | 2 +- src/i18n/locales/defaultMessages.json | 504 +++++++++++---------- src/i18n/locales/el.json | 2 +- src/i18n/locales/en-US.json | 4 +- src/i18n/locales/es.json | 2 +- src/i18n/locales/et.json | 2 +- src/i18n/locales/fa.json | 2 +- src/i18n/locales/fi.json | 2 +- src/i18n/locales/fil.json | 2 +- src/i18n/locales/fr.json | 2 +- src/i18n/locales/ga.json | 2 +- src/i18n/locales/he.json | 2 +- src/i18n/locales/hi.json | 2 +- src/i18n/locales/hr.json | 2 +- src/i18n/locales/hu.json | 2 +- src/i18n/locales/id.json | 2 +- src/i18n/locales/it.json | 2 +- src/i18n/locales/ja.json | 2 +- src/i18n/locales/ka.json | 2 +- src/i18n/locales/kk.json | 2 +- src/i18n/locales/ko.json | 2 +- src/i18n/locales/ms.json | 2 +- src/i18n/locales/nl-BE.json | 2 +- src/i18n/locales/nl.json | 2 +- src/i18n/locales/no.json | 2 +- src/i18n/locales/pl.json | 2 +- src/i18n/locales/pt-BR.json | 2 +- src/i18n/locales/pt.json | 2 +- src/i18n/locales/ro.json | 2 +- src/i18n/locales/ru.json | 2 +- src/i18n/locales/si.json | 2 +- src/i18n/locales/sk.json | 2 +- src/i18n/locales/sl.json | 2 +- src/i18n/locales/sq.json | 2 +- src/i18n/locales/sr.json | 2 +- src/i18n/locales/sv.json | 2 +- src/i18n/locales/te.json | 2 +- src/i18n/locales/tr.json | 2 +- src/i18n/locales/uk.json | 2 +- src/i18n/locales/vi.json | 2 +- src/i18n/locales/zh-CN.json | 2 +- src/i18n/locales/zh-HANS.json | 2 +- src/i18n/locales/zh-HANT.json | 2 +- src/i18n/locales/zh-TW.json | 2 +- src/i18n/locales/zh.json | 2 +- .../messages/src/components/layout/Sidebar.json | 4 +- .../containers/settings/EditSettingsScreen.json | 177 ++++---- src/i18n/messages/src/i18n/globalMessages.json | 26 ++ src/i18n/messages/src/lib/Menu.json | 295 ++++++------ src/lib/Menu.js | 37 +- src/lib/Tray.js | 24 +- 65 files changed, 653 insertions(+), 549 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c898e4188..e5085cda9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# [v5.6.1-nightly.53](https://github.com/getferdi/ferdi/compare/v5.6.1-nightly.52...v5.6.1-nightly.53) (2021-09-08) + +- Add a confirmation dialog and a preference while quitting Ferdi (#1879) 💖 @vraravam + # [v5.6.1-nightly.52](https://github.com/getferdi/ferdi/compare/v5.6.1-nightly.51...v5.6.1-nightly.52) (2021-09-07) ### Bug Fixes diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index a1a4ab64f..935966764 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js @@ -40,11 +40,11 @@ const messages = defineMessages({ }, openTodosDrawer: { id: 'sidebar.openTodosDrawer', - defaultMessage: '!!!Open Franz Todos', + defaultMessage: '!!!Open Ferdi Todos', }, closeTodosDrawer: { id: 'sidebar.closeTodosDrawer', - defaultMessage: '!!!Close Franz Todos', + defaultMessage: '!!!Close Ferdi Todos', }, lockFerdi: { id: 'sidebar.lockFerdi', diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 41580ca78..3d135a048 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -334,6 +334,7 @@ export default @observer class EditSettingsForm extends Component {
+ diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index efa34dd85..09244bc3c 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -45,6 +45,10 @@ const messages = defineMessages({ id: 'settings.app.form.startMinimized', defaultMessage: '!!!Start minimized', }, + confirmOnQuit: { + id: 'settings.app.form.confirmOnQuit', + defaultMessage: '!!!Confirm when quitting Ferdi', + }, enableSystemTray: { id: 'settings.app.form.enableSystemTray', defaultMessage: '!!!Always show Ferdi in System Tray', @@ -253,6 +257,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e enableSystemTray: Boolean(settingsData.enableSystemTray), reloadAfterResume: Boolean(settingsData.reloadAfterResume), startMinimized: Boolean(settingsData.startMinimized), + confirmOnQuit: Boolean(settingsData.confirmOnQuit), minimizeToSystemTray: Boolean(settingsData.minimizeToSystemTray), closeToSystemTray: Boolean(settingsData.closeToSystemTray), privateNotifications: Boolean(settingsData.privateNotifications), @@ -390,6 +395,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e value: settings.all.app.startMinimized, default: DEFAULT_APP_SETTINGS.startMinimized, }, + confirmOnQuit: { + label: intl.formatMessage(messages.confirmOnQuit), + value: settings.all.app.confirmOnQuit, + default: DEFAULT_APP_SETTINGS.confirmOnQuit, + }, enableSystemTray: { label: intl.formatMessage(isMac ? messages.enableMenuBar : messages.enableSystemTray), value: settings.all.app.enableSystemTray, diff --git a/src/environment.js b/src/environment.js index f8a51b207..caeada94b 100644 --- a/src/environment.js +++ b/src/environment.js @@ -124,6 +124,7 @@ export const DEFAULT_APP_SETTINGS = { reloadAfterResume: true, enableSystemTray: true, startMinimized: false, + confirmOnQuit: false, minimizeToSystemTray: false, closeToSystemTray: false, privateNotifications: false, diff --git a/src/i18n/globalMessages.js b/src/i18n/globalMessages.js index f4d764577..1cebbddf0 100644 --- a/src/i18n/globalMessages.js +++ b/src/i18n/globalMessages.js @@ -57,4 +57,13 @@ export default defineMessages({ id: 'global.submit', defaultMessage: '!!!Submit', }, + quit: { + id: 'global.quit', + defaultMessage: '!!!Quit', + }, + quitConfirmation: { + id: 'global.quitConfirmation', + defaultMessage: + '!!!Do you really want to quit Ferdi?', + }, }); diff --git a/src/i18n/locales/af.json b/src/i18n/locales/af.json index 9715f4cab..18bf380d2 100644 --- a/src/i18n/locales/af.json +++ b/src/i18n/locales/af.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "You are not connected to the internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index eeb394b92..3e43a5eee 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -28,6 +28,7 @@ "global.cancel": "إلغاء", "global.notConnectedToTheInternet": "أنت غير متصل بالإنترنت.", "global.ok": "Ok", + "global.quit": "خروج", "global.save": "Save", "global.spellchecker.useDefault": "إستخدم الإعدادت الافتراضية ({default})", "global.spellchecking.autodetect": "الكشف عن اللغة تلقائياً", @@ -83,7 +84,6 @@ "menu.app.checkForUpdates": "التحقق من وجود تحديثات", "menu.app.hide": "إخفاء", "menu.app.hideOthers": "إخفاء الآخرين", - "menu.app.quit": "خروج", "menu.app.settings": "الإعدادات", "menu.app.unhide": "إظهار", "menu.edit": "تعديل", diff --git a/src/i18n/locales/be.json b/src/i18n/locales/be.json index 273b1fc4a..ef4554913 100644 --- a/src/i18n/locales/be.json +++ b/src/i18n/locales/be.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "You are not connected to the internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json index 138595221..14f2b1e7f 100644 --- a/src/i18n/locales/bg.json +++ b/src/i18n/locales/bg.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "Няма връзка с онлайн услугите на Франц", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "Не сте свързани към интернет", + "global.quit": "Изход", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", "global.spellchecking.autodetect.short": "Automatic", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "Проверка за обновления", "menu.app.hide": "Скрий", "menu.app.hideOthers": "Скрий другите", - "menu.app.quit": "Изход", "menu.app.settings": "Настройки", "menu.app.unhide": "Покажи", "menu.edit": "Редактиране", diff --git a/src/i18n/locales/bs.json b/src/i18n/locales/bs.json index 9715f4cab..18bf380d2 100644 --- a/src/i18n/locales/bs.json +++ b/src/i18n/locales/bs.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "You are not connected to the internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 7651633c9..c0c7ca4d1 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "No esteu connectat a Internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Utilitzar el predeterminat del sistema ({default})", "global.spellchecking.autodetect": "Detectar l'idioma automàticament", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Comprova si hi ha actualitzacions", "menu.app.hide": "Amaga", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Configuració", "menu.app.unhide": "Unhide", "menu.edit": "Edita", diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 601de0150..946a6826c 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Připojení k internetu není k dispozici.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Automaticky rozpoznat jazyk", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Zkontrolovat aktualizace", "menu.app.hide": "Skrýt", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Nastavení", "menu.app.unhide": "Unhide", "menu.edit": "Upravit", diff --git a/src/i18n/locales/da.json b/src/i18n/locales/da.json index ce9eaf3c0..2601cbc39 100644 --- a/src/i18n/locales/da.json +++ b/src/i18n/locales/da.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Du har ikke forbindelse til internettet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Benyt systemstandard ({default})", "global.spellchecking.autodetect": "Vælg sprog automatisk", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Søg efter opdateringer", "menu.app.hide": "Skjul", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Indstillinger", "menu.app.unhide": "Unhide", "menu.edit": "Rediger", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index a63368cd1..5cd208fad 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Du bist nicht mit dem Internet verbunden.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Standard benutzen ({default})", "global.spellchecking.autodetect": "Sprache automatisch erkennen", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Nach Updates suchen", "menu.app.hide": "Ausblenden", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Einstellungen", "menu.app.unhide": "Unhide", "menu.edit": "Bearbeiten", diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 94d5fb480..0ad4517bd 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -1141,7 +1141,7 @@ } }, { - "defaultMessage": "!!!Open Franz Todos", + "defaultMessage": "!!!Open Ferdi Todos", "end": { "column": 3, "line": 44 @@ -1154,7 +1154,7 @@ } }, { - "defaultMessage": "!!!Close Franz Todos", + "defaultMessage": "!!!Close Ferdi Todos", "end": { "column": 3, "line": 48 @@ -4276,536 +4276,549 @@ } }, { - "defaultMessage": "!!!Always show Ferdi in System Tray", + "defaultMessage": "!!!Confirm when quitting Ferdi", "end": { "column": 3, "line": 51 }, "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.confirmOnQuit", + "start": { + "column": 17, + "line": 48 + } + }, + { + "defaultMessage": "!!!Always show Ferdi in System Tray", + "end": { + "column": 3, + "line": 55 + }, + "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableSystemTray", "start": { "column": 20, - "line": 48 + "line": 52 } }, { "defaultMessage": "!!!Always show Ferdi in Menu Bar", "end": { "column": 3, - "line": 55 + "line": 59 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableMenuBar", "start": { "column": 17, - "line": 52 + "line": 56 } }, { "defaultMessage": "!!!Reload Ferdi after system resume", "end": { "column": 3, - "line": 59 + "line": 63 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.reloadAfterResume", "start": { "column": 21, - "line": 56 + "line": 60 } }, { "defaultMessage": "!!!Minimize Ferdi to system tray", "end": { "column": 3, - "line": 63 + "line": 67 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.minimizeToSystemTray", "start": { "column": 24, - "line": 60 + "line": 64 } }, { "defaultMessage": "!!!Close Ferdi to system tray", "end": { "column": 3, - "line": 67 + "line": 71 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.closeToSystemTray", "start": { "column": 21, - "line": 64 + "line": 68 } }, { "defaultMessage": "!!!Don't show message content in notifications", "end": { "column": 3, - "line": 71 + "line": 75 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.privateNotifications", "start": { "column": 24, - "line": 68 + "line": 72 } }, { "defaultMessage": "!!!Don't show notifications for clipboard events", "end": { "column": 3, - "line": 75 + "line": 79 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.clipboardNotifications", "start": { "column": 26, - "line": 72 + "line": 76 } }, { "defaultMessage": "!!!Notify TaskBar/Dock on new message", "end": { "column": 3, - "line": 79 + "line": 83 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.notifyTaskBarOnMessage", "start": { "column": 26, - "line": 76 + "line": 80 } }, { "defaultMessage": "!!!Navigation bar behaviour", "end": { "column": 3, - "line": 83 + "line": 87 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.navigationBarBehaviour", "start": { "column": 26, - "line": 80 + "line": 84 } }, { "defaultMessage": "!!!Search engine", "end": { "column": 3, - "line": 87 + "line": 91 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.searchEngine", "start": { "column": 16, - "line": 84 + "line": 88 } }, { "defaultMessage": "!!!Send telemetry data", "end": { "column": 3, - "line": 91 + "line": 95 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.sentry", "start": { "column": 10, - "line": 88 + "line": 92 } }, { "defaultMessage": "!!!Keep services in hibernation on startup", "end": { "column": 3, - "line": 95 + "line": 99 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.hibernateOnStartup", "start": { "column": 22, - "line": 92 + "line": 96 } }, { "defaultMessage": "!!!Hibernation strategy", "end": { "column": 3, - "line": 99 + "line": 103 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.hibernationStrategy", "start": { "column": 23, - "line": 96 + "line": 100 } }, { "defaultMessage": "!!!Wake up strategy", "end": { "column": 3, - "line": 103 + "line": 107 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.wakeUpStrategy", "start": { "column": 18, - "line": 100 + "line": 104 } }, { "defaultMessage": "!!!Todo Server", "end": { "column": 3, - "line": 107 + "line": 111 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.predefinedTodoServer", "start": { "column": 24, - "line": 104 + "line": 108 } }, { "defaultMessage": "!!!Custom TodoServer", "end": { "column": 3, - "line": 111 + "line": 115 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.customTodoServer", "start": { "column": 20, - "line": 108 + "line": 112 } }, { "defaultMessage": "!!!Enable Password Lock", "end": { "column": 3, - "line": 115 + "line": 119 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableLock", "start": { "column": 14, - "line": 112 + "line": 116 } }, { "defaultMessage": "!!!Password", "end": { "column": 3, - "line": 119 + "line": 123 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.lockPassword", "start": { "column": 16, - "line": 116 + "line": 120 } }, { "defaultMessage": "!!!Allow using Touch ID to unlock", "end": { "column": 3, - "line": 123 + "line": 127 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.useTouchIdToUnlock", "start": { "column": 22, - "line": 120 + "line": 124 } }, { "defaultMessage": "!!!Lock after inactivity", "end": { "column": 3, - "line": 127 + "line": 131 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.inactivityLock", "start": { "column": 18, - "line": 124 + "line": 128 } }, { "defaultMessage": "!!!Enable scheduled Do-not-Disturb", "end": { "column": 3, - "line": 131 + "line": 135 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDEnabled", "start": { "column": 23, - "line": 128 + "line": 132 } }, { "defaultMessage": "!!!From", "end": { "column": 3, - "line": 135 + "line": 139 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDStart", "start": { "column": 21, - "line": 132 + "line": 136 } }, { "defaultMessage": "!!!To", "end": { "column": 3, - "line": 139 + "line": 143 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDEnd", "start": { "column": 19, - "line": 136 + "line": 140 } }, { "defaultMessage": "!!!Language", "end": { "column": 3, - "line": 143 + "line": 147 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.language", "start": { "column": 12, - "line": 140 + "line": 144 } }, { "defaultMessage": "!!!Dark Mode", "end": { "column": 3, - "line": 147 + "line": 151 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.darkMode", "start": { "column": 12, - "line": 144 + "line": 148 } }, { "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", "end": { "column": 3, - "line": 151 + "line": 155 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.adaptableDarkMode", "start": { "column": 21, - "line": 148 + "line": 152 } }, { "defaultMessage": "!!!Enable universal Dark Mode", "end": { "column": 3, - "line": 155 + "line": 159 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.universalDarkMode", "start": { "column": 21, - "line": 152 + "line": 156 } }, { "defaultMessage": "!!!Sidebar width", "end": { "column": 3, - "line": 159 + "line": 163 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.serviceRibbonWidth", "start": { "column": 22, - "line": 156 + "line": 160 } }, { "defaultMessage": "!!!Service icon size", "end": { "column": 3, - "line": 163 + "line": 167 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.iconSize", "start": { "column": 12, - "line": 160 + "line": 164 } }, { "defaultMessage": "!!!Use horizontal style", "end": { "column": 3, - "line": 167 + "line": 171 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.useVerticalStyle", "start": { "column": 20, - "line": 164 + "line": 168 } }, { "defaultMessage": "!!!Always show workspace drawer", "end": { "column": 3, - "line": 171 + "line": 175 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.alwaysShowWorkspaces", "start": { "column": 24, - "line": 168 + "line": 172 } }, { "defaultMessage": "!!!Accent color", "end": { "column": 3, - "line": 175 + "line": 179 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.accentColor", "start": { "column": 15, - "line": 172 + "line": 176 } }, { "defaultMessage": "!!!Display disabled services tabs", "end": { "column": 3, - "line": 179 + "line": 183 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.showDisabledServices", "start": { "column": 24, - "line": 176 + "line": 180 } }, { "defaultMessage": "!!!Show unread message badge when notifications are disabled", "end": { "column": 3, - "line": 183 + "line": 187 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.showMessagesBadgesWhenMuted", "start": { "column": 29, - "line": 180 + "line": 184 } }, { "defaultMessage": "!!!Show draggable area on window", "end": { "column": 3, - "line": 187 + "line": 191 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.showDragArea", "start": { "column": 16, - "line": 184 + "line": 188 } }, { "defaultMessage": "!!!Enable spell checking", "end": { "column": 3, - "line": 191 + "line": 195 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableSpellchecking", "start": { "column": 23, - "line": 188 + "line": 192 } }, { "defaultMessage": "!!!Enable GPU Acceleration", "end": { "column": 3, - "line": 195 + "line": 199 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableGPUAcceleration", "start": { "column": 25, - "line": 192 + "line": 196 } }, { "defaultMessage": "!!!Include beta versions", "end": { "column": 3, - "line": 199 + "line": 203 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.beta", "start": { "column": 8, - "line": 196 + "line": 200 } }, { "defaultMessage": "!!!Enable updates", "end": { "column": 3, - "line": 203 + "line": 207 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.automaticUpdates", "start": { "column": 20, - "line": 200 + "line": 204 } }, { "defaultMessage": "!!!Enable Franz Todos", "end": { "column": 3, - "line": 207 + "line": 211 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableTodos", "start": { "column": 15, - "line": 204 + "line": 208 } }, { "defaultMessage": "!!!Keep all workspaces loaded", "end": { "column": 3, - "line": 211 + "line": 215 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.keepAllWorkspacesLoaded", "start": { "column": 27, - "line": 208 + "line": 212 } } ], @@ -5927,6 +5940,32 @@ "column": 10, "line": 56 } + }, + { + "defaultMessage": "!!!Quit", + "end": { + "column": 3, + "line": 63 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.quit", + "start": { + "column": 8, + "line": 60 + } + }, + { + "defaultMessage": "!!!Do you really want to quit Ferdi?", + "end": { + "column": 3, + "line": 68 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.quitConfirmation", + "start": { + "column": 20, + "line": 64 + } } ], "path": "src/i18n/globalMessages.json" @@ -5937,936 +5976,923 @@ "defaultMessage": "!!!Edit", "end": { "column": 3, - "line": 35 + "line": 36 }, "file": "src/lib/Menu.js", "id": "menu.edit", "start": { "column": 8, - "line": 32 + "line": 33 } }, { "defaultMessage": "!!!Undo", "end": { "column": 3, - "line": 39 + "line": 40 }, "file": "src/lib/Menu.js", "id": "menu.edit.undo", "start": { "column": 8, - "line": 36 + "line": 37 } }, { "defaultMessage": "!!!Redo", "end": { "column": 3, - "line": 43 + "line": 44 }, "file": "src/lib/Menu.js", "id": "menu.edit.redo", "start": { "column": 8, - "line": 40 + "line": 41 } }, { "defaultMessage": "!!!Cut", "end": { "column": 3, - "line": 47 + "line": 48 }, "file": "src/lib/Menu.js", "id": "menu.edit.cut", "start": { "column": 7, - "line": 44 + "line": 45 } }, { "defaultMessage": "!!!Copy", "end": { "column": 3, - "line": 51 + "line": 52 }, "file": "src/lib/Menu.js", "id": "menu.edit.copy", "start": { "column": 8, - "line": 48 + "line": 49 } }, { "defaultMessage": "!!!Paste", "end": { "column": 3, - "line": 55 + "line": 56 }, "file": "src/lib/Menu.js", "id": "menu.edit.paste", "start": { "column": 9, - "line": 52 + "line": 53 } }, { "defaultMessage": "!!!Paste And Match Style", "end": { "column": 3, - "line": 59 + "line": 60 }, "file": "src/lib/Menu.js", "id": "menu.edit.pasteAndMatchStyle", "start": { "column": 22, - "line": 56 + "line": 57 } }, { "defaultMessage": "!!!Delete", "end": { "column": 3, - "line": 63 + "line": 64 }, "file": "src/lib/Menu.js", "id": "menu.edit.delete", "start": { "column": 10, - "line": 60 + "line": 61 } }, { "defaultMessage": "!!!Select All", "end": { "column": 3, - "line": 67 + "line": 68 }, "file": "src/lib/Menu.js", "id": "menu.edit.selectAll", "start": { "column": 13, - "line": 64 + "line": 65 } }, { "defaultMessage": "!!!Find in Page", "end": { "column": 3, - "line": 71 + "line": 72 }, "file": "src/lib/Menu.js", "id": "menu.edit.findInPage", "start": { "column": 14, - "line": 68 + "line": 69 } }, { "defaultMessage": "!!!Speech", "end": { "column": 3, - "line": 75 + "line": 76 }, "file": "src/lib/Menu.js", "id": "menu.edit.speech", "start": { "column": 10, - "line": 72 + "line": 73 } }, { "defaultMessage": "!!!Start Speaking", "end": { "column": 3, - "line": 79 + "line": 80 }, "file": "src/lib/Menu.js", "id": "menu.edit.startSpeaking", "start": { "column": 17, - "line": 76 + "line": 77 } }, { "defaultMessage": "!!!Stop Speaking", "end": { "column": 3, - "line": 83 + "line": 84 }, "file": "src/lib/Menu.js", "id": "menu.edit.stopSpeaking", "start": { "column": 16, - "line": 80 + "line": 81 } }, { "defaultMessage": "!!!Start Dictation", "end": { "column": 3, - "line": 87 + "line": 88 }, "file": "src/lib/Menu.js", "id": "menu.edit.startDictation", "start": { "column": 18, - "line": 84 + "line": 85 } }, { "defaultMessage": "!!!Emoji & Symbols", "end": { "column": 3, - "line": 91 + "line": 92 }, "file": "src/lib/Menu.js", "id": "menu.edit.emojiSymbols", "start": { "column": 16, - "line": 88 + "line": 89 } }, { "defaultMessage": "!!!Open Quick Switch", "end": { "column": 3, - "line": 95 + "line": 96 }, "file": "src/lib/Menu.js", "id": "menu.view.openQuickSwitch", "start": { "column": 19, - "line": 92 + "line": 93 } }, { "defaultMessage": "!!!Back", "end": { "column": 3, - "line": 99 + "line": 100 }, "file": "src/lib/Menu.js", "id": "menu.view.back", "start": { "column": 8, - "line": 96 + "line": 97 } }, { "defaultMessage": "!!!Forward", "end": { "column": 3, - "line": 103 + "line": 104 }, "file": "src/lib/Menu.js", "id": "menu.view.forward", "start": { "column": 11, - "line": 100 + "line": 101 } }, { "defaultMessage": "!!!Actual Size", "end": { "column": 3, - "line": 107 + "line": 108 }, "file": "src/lib/Menu.js", "id": "menu.view.resetZoom", "start": { "column": 13, - "line": 104 + "line": 105 } }, { "defaultMessage": "!!!Zoom In", "end": { "column": 3, - "line": 111 + "line": 112 }, "file": "src/lib/Menu.js", "id": "menu.view.zoomIn", "start": { "column": 10, - "line": 108 + "line": 109 } }, { "defaultMessage": "!!!Zoom Out", "end": { "column": 3, - "line": 115 + "line": 116 }, "file": "src/lib/Menu.js", "id": "menu.view.zoomOut", "start": { "column": 11, - "line": 112 + "line": 113 } }, { "defaultMessage": "!!!Toggle Full Screen", "end": { "column": 3, - "line": 119 + "line": 120 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleFullScreen", "start": { "column": 20, - "line": 116 + "line": 117 } }, { "defaultMessage": "!!!Toggle Dark Mode", "end": { "column": 3, - "line": 123 + "line": 124 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleDarkMode", "start": { "column": 18, - "line": 120 + "line": 121 } }, { "defaultMessage": "!!!Toggle Developer Tools", "end": { "column": 3, - "line": 127 + "line": 128 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleDevTools", "start": { "column": 18, - "line": 124 + "line": 125 } }, { "defaultMessage": "!!!Toggle Todos Developer Tools", "end": { "column": 3, - "line": 131 + "line": 132 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleTodosDevTools", "start": { "column": 23, - "line": 128 + "line": 129 } }, { "defaultMessage": "!!!Toggle Service Developer Tools", "end": { "column": 3, - "line": 135 + "line": 136 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleServiceDevTools", "start": { "column": 25, - "line": 132 + "line": 133 } }, { "defaultMessage": "!!!Reload Service", "end": { "column": 3, - "line": 139 + "line": 140 }, "file": "src/lib/Menu.js", "id": "menu.view.reloadService", "start": { "column": 17, - "line": 136 + "line": 137 } }, { "defaultMessage": "!!!Reload Ferdi", "end": { "column": 3, - "line": 143 + "line": 144 }, "file": "src/lib/Menu.js", "id": "menu.view.reloadFerdi", "start": { "column": 15, - "line": 140 + "line": 141 } }, { "defaultMessage": "!!!Lock Ferdi", "end": { "column": 3, - "line": 147 + "line": 148 }, "file": "src/lib/Menu.js", "id": "menu.view.lockFerdi", "start": { "column": 13, - "line": 144 + "line": 145 } }, { "defaultMessage": "!!!Reload ToDos", "end": { "column": 3, - "line": 151 + "line": 152 }, "file": "src/lib/Menu.js", "id": "menu.view.reloadTodos", "start": { "column": 15, - "line": 148 + "line": 149 } }, { "defaultMessage": "!!!Minimize", "end": { "column": 3, - "line": 155 + "line": 156 }, "file": "src/lib/Menu.js", "id": "menu.window.minimize", "start": { "column": 12, - "line": 152 + "line": 153 } }, { "defaultMessage": "!!!Close", "end": { "column": 3, - "line": 159 + "line": 160 }, "file": "src/lib/Menu.js", "id": "menu.window.close", "start": { "column": 9, - "line": 156 + "line": 157 } }, { "defaultMessage": "!!!Learn More", "end": { "column": 3, - "line": 163 + "line": 164 }, "file": "src/lib/Menu.js", "id": "menu.help.learnMore", "start": { "column": 13, - "line": 160 + "line": 161 } }, { "defaultMessage": "!!!Changelog", "end": { "column": 3, - "line": 167 + "line": 168 }, "file": "src/lib/Menu.js", "id": "menu.help.changelog", "start": { "column": 13, - "line": 164 + "line": 165 } }, { "defaultMessage": "!!!Import/Export Configuration Data", "end": { "column": 3, - "line": 171 + "line": 172 }, "file": "src/lib/Menu.js", "id": "menu.help.importExportData", "start": { "column": 20, - "line": 168 + "line": 169 } }, { "defaultMessage": "!!!Support", "end": { "column": 3, - "line": 175 + "line": 176 }, "file": "src/lib/Menu.js", "id": "menu.help.support", "start": { "column": 11, - "line": 172 + "line": 173 } }, { "defaultMessage": "!!!Copy Debug Information", "end": { "column": 3, - "line": 179 + "line": 180 }, "file": "src/lib/Menu.js", "id": "menu.help.debugInfo", "start": { "column": 13, - "line": 176 + "line": 177 } }, { "defaultMessage": "!!!Publish Debug Information", "end": { "column": 3, - "line": 183 + "line": 184 }, "file": "src/lib/Menu.js", "id": "menu.help.publishDebugInfo", "start": { "column": 20, - "line": 180 + "line": 181 } }, { "defaultMessage": "!!!Ferdi Debug Information", "end": { "column": 3, - "line": 187 + "line": 188 }, "file": "src/lib/Menu.js", "id": "menu.help.debugInfoCopiedHeadline", "start": { "column": 27, - "line": 184 + "line": 185 } }, { "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", "end": { "column": 3, - "line": 192 + "line": 193 }, "file": "src/lib/Menu.js", "id": "menu.help.debugInfoCopiedBody", "start": { "column": 23, - "line": 188 + "line": 189 } }, { "defaultMessage": "!!!Unlock with Touch ID", "end": { "column": 3, - "line": 196 + "line": 197 }, "file": "src/lib/Menu.js", "id": "locked.touchId", "start": { "column": 11, - "line": 193 + "line": 194 } }, { "defaultMessage": "!!!unlock via Touch ID", "end": { "column": 3, - "line": 200 + "line": 201 }, "file": "src/lib/Menu.js", "id": "locked.touchIdPrompt", "start": { "column": 17, - "line": 197 + "line": 198 } }, { "defaultMessage": "!!!Terms of Service", "end": { "column": 3, - "line": 204 + "line": 205 }, "file": "src/lib/Menu.js", "id": "menu.help.tos", "start": { "column": 7, - "line": 201 + "line": 202 } }, { "defaultMessage": "!!!Privacy Statement", "end": { "column": 3, - "line": 208 + "line": 209 }, "file": "src/lib/Menu.js", "id": "menu.help.privacy", "start": { "column": 11, - "line": 205 + "line": 206 } }, { "defaultMessage": "!!!File", "end": { "column": 3, - "line": 212 + "line": 213 }, "file": "src/lib/Menu.js", "id": "menu.file", "start": { "column": 8, - "line": 209 + "line": 210 } }, { "defaultMessage": "!!!View", "end": { "column": 3, - "line": 216 + "line": 217 }, "file": "src/lib/Menu.js", "id": "menu.view", "start": { "column": 8, - "line": 213 + "line": 214 } }, { "defaultMessage": "!!!Services", "end": { "column": 3, - "line": 220 + "line": 221 }, "file": "src/lib/Menu.js", "id": "menu.services", "start": { "column": 12, - "line": 217 + "line": 218 } }, { "defaultMessage": "!!!Window", "end": { "column": 3, - "line": 224 + "line": 225 }, "file": "src/lib/Menu.js", "id": "menu.window", "start": { "column": 10, - "line": 221 + "line": 222 } }, { "defaultMessage": "!!!Help", "end": { "column": 3, - "line": 228 + "line": 229 }, "file": "src/lib/Menu.js", "id": "menu.help", "start": { "column": 8, - "line": 225 + "line": 226 } }, { "defaultMessage": "!!!About Ferdi", "end": { "column": 3, - "line": 232 + "line": 233 }, "file": "src/lib/Menu.js", "id": "menu.app.about", "start": { "column": 9, - "line": 229 + "line": 230 } }, { "defaultMessage": "!!!Settings", "end": { "column": 3, - "line": 236 + "line": 237 }, "file": "src/lib/Menu.js", "id": "menu.app.settings", "start": { "column": 12, - "line": 233 + "line": 234 } }, { "defaultMessage": "!!!Check for updates", "end": { "column": 3, - "line": 240 + "line": 241 }, "file": "src/lib/Menu.js", "id": "menu.app.checkForUpdates", "start": { "column": 19, - "line": 237 + "line": 238 } }, { "defaultMessage": "!!!Hide", "end": { "column": 3, - "line": 244 + "line": 245 }, "file": "src/lib/Menu.js", "id": "menu.app.hide", "start": { "column": 8, - "line": 241 + "line": 242 } }, { "defaultMessage": "!!!Hide Others", "end": { "column": 3, - "line": 248 + "line": 249 }, "file": "src/lib/Menu.js", "id": "menu.app.hideOthers", "start": { "column": 14, - "line": 245 + "line": 246 } }, { "defaultMessage": "!!!Unhide", "end": { "column": 3, - "line": 252 + "line": 253 }, "file": "src/lib/Menu.js", "id": "menu.app.unhide", "start": { "column": 10, - "line": 249 + "line": 250 } }, { "defaultMessage": "!!!Auto-hide menu bar", "end": { "column": 3, - "line": 256 + "line": 257 }, "file": "src/lib/Menu.js", "id": "menu.app.autohideMenuBar", "start": { "column": 19, - "line": 253 - } - }, - { - "defaultMessage": "!!!Quit", - "end": { - "column": 3, - "line": 260 - }, - "file": "src/lib/Menu.js", - "id": "menu.app.quit", - "start": { - "column": 8, - "line": 257 + "line": 254 } }, { "defaultMessage": "!!!Add New Service...", "end": { "column": 3, - "line": 264 + "line": 261 }, "file": "src/lib/Menu.js", "id": "menu.services.addNewService", "start": { "column": 17, - "line": 261 + "line": 258 } }, { "defaultMessage": "!!!Add New Workspace...", "end": { "column": 3, - "line": 268 + "line": 265 }, "file": "src/lib/Menu.js", "id": "menu.workspaces.addNewWorkspace", "start": { "column": 19, - "line": 265 + "line": 262 } }, { "defaultMessage": "!!!Open workspace drawer", "end": { "column": 3, - "line": 272 + "line": 269 }, "file": "src/lib/Menu.js", "id": "menu.workspaces.openWorkspaceDrawer", "start": { "column": 23, - "line": 269 + "line": 266 } }, { "defaultMessage": "!!!Close workspace drawer", "end": { "column": 3, - "line": 276 + "line": 273 }, "file": "src/lib/Menu.js", "id": "menu.workspaces.closeWorkspaceDrawer", "start": { "column": 24, - "line": 273 + "line": 270 } }, { "defaultMessage": "!!!Activate next service...", "end": { "column": 3, - "line": 280 + "line": 277 }, "file": "src/lib/Menu.js", "id": "menu.services.setNextServiceActive", "start": { "column": 23, - "line": 277 + "line": 274 } }, { "defaultMessage": "!!!Activate previous service...", "end": { "column": 3, - "line": 284 + "line": 281 }, "file": "src/lib/Menu.js", "id": "menu.services.activatePreviousService", "start": { "column": 27, - "line": 281 + "line": 278 } }, { "defaultMessage": "!!!Disable notifications & audio", "end": { "column": 3, - "line": 288 + "line": 285 }, "file": "src/lib/Menu.js", "id": "sidebar.muteApp", "start": { "column": 11, - "line": 285 + "line": 282 } }, { "defaultMessage": "!!!Enable notifications & audio", "end": { "column": 3, - "line": 292 + "line": 289 }, "file": "src/lib/Menu.js", "id": "sidebar.unmuteApp", "start": { "column": 13, - "line": 289 + "line": 286 } }, { "defaultMessage": "!!!Workspaces", "end": { "column": 3, - "line": 296 + "line": 293 }, "file": "src/lib/Menu.js", "id": "menu.workspaces", "start": { "column": 14, - "line": 293 + "line": 290 } }, { "defaultMessage": "!!!Default", "end": { "column": 3, - "line": 300 + "line": 297 }, "file": "src/lib/Menu.js", "id": "menu.workspaces.defaultWorkspace", "start": { "column": 20, - "line": 297 + "line": 294 } }, { "defaultMessage": "!!!Todos", "end": { "column": 3, - "line": 304 + "line": 301 }, "file": "src/lib/Menu.js", "id": "menu.todos", "start": { "column": 9, - "line": 301 + "line": 298 } }, { "defaultMessage": "!!!Open Todos drawer", "end": { "column": 3, - "line": 308 + "line": 305 }, "file": "src/lib/Menu.js", "id": "menu.Todoss.openTodosDrawer", "start": { "column": 19, - "line": 305 + "line": 302 } }, { "defaultMessage": "!!!Close Todos drawer", "end": { "column": 3, - "line": 312 + "line": 309 }, "file": "src/lib/Menu.js", "id": "menu.Todoss.closeTodosDrawer", "start": { "column": 20, - "line": 309 + "line": 306 } }, { "defaultMessage": "!!!Enable Todos", "end": { "column": 3, - "line": 316 + "line": 313 }, "file": "src/lib/Menu.js", "id": "menu.todos.enableTodos", "start": { "column": 15, - "line": 313 + "line": 310 } }, { "defaultMessage": "!!!Home", "end": { "column": 3, - "line": 320 + "line": 317 }, "file": "src/lib/Menu.js", "id": "menu.services.goHome", "start": { "column": 17, - "line": 317 + "line": 314 } } ], diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index 8db6cd696..40ac3b461 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Έχετε αποσυνδεθεί από το Διαδίκτυο", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Έλεγχος για ενημερώσεις", "menu.app.hide": "Απόκρυψη", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Ρυθμίσεις", "menu.app.unhide": "Unhide", "menu.edit": "Επεξεργασία", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 8006f8c58..98f31f573 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -29,6 +29,8 @@ "global.no": "No", "global.notConnectedToTheInternet": "You are not connected to the internet.", "global.ok": "Ok", + "global.quit": "Quit", + "global.quitConfirmation": "Do you really want to quit Ferdi?", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +86,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", @@ -216,6 +217,7 @@ "settings.app.form.beta": "Include beta versions", "settings.app.form.clipboardNotifications": "Don't show notifications for clipboard events", "settings.app.form.closeToSystemTray": "Close Ferdi to system tray", + "settings.app.form.confirmOnQuit": "Confirm when quitting Ferdi", "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 35d1c8920..87d283fad 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "No estás conectado a Internet", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Utilizar estándar del sistema ({default})", "global.spellchecking.autodetect": "Detectar el idioma automáticamente", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Comprobar actualizaciones", "menu.app.hide": "Ocultar", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Configuración", "menu.app.unhide": "Unhide", "menu.edit": "Editar", diff --git a/src/i18n/locales/et.json b/src/i18n/locales/et.json index 6d3512186..64451b484 100644 --- a/src/i18n/locales/et.json +++ b/src/i18n/locales/et.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "Ups! Ferdi'i võrguteenustega ei saa ühendust luua", "global.franzProRequired": "Vajalik Ferdi Professional tellimus", "global.notConnectedToTheInternet": "Teil pole Interneti-ühendust.", + "global.quit": "Sulge", "global.spellchecker.useDefault": "Kasuta süsteemi vaikeväärtust ({default})", "global.spellchecking.autodetect": "Tuvastage keel automaatselt", "global.spellchecking.autodetect.short": "Automaatne", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "Kontrolli kas värskendused on saadaval", "menu.app.hide": "Peida", "menu.app.hideOthers": "Peida teised", - "menu.app.quit": "Sulge", "menu.app.settings": "Sätted", "menu.app.unhide": "Näita", "menu.edit": "Muuda", diff --git a/src/i18n/locales/fa.json b/src/i18n/locales/fa.json index 7a3035b6f..e8a92c0d9 100644 --- a/src/i18n/locales/fa.json +++ b/src/i18n/locales/fa.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "به سرویس های آنلاین فرَنز متصل نشدی", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "اینترنت وصل نیست", + "global.quit": "خروج ", "global.spellchecker.useDefault": "استفاده از پیشفرض سیستم ({default})", "global.spellchecking.autodetect": "تشخیص خودکار زبان", "global.spellchecking.autodetect.short": "خودکار", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "بررسی وجود نسخه جدید ", "menu.app.hide": "مخفی‌کردن ", "menu.app.hideOthers": "مخفی کردن بقیه ", - "menu.app.quit": "خروج ", "menu.app.settings": "تنظیمات ", "menu.app.unhide": "آشکارسازی", "menu.edit": "ویرایش ", diff --git a/src/i18n/locales/fi.json b/src/i18n/locales/fi.json index d98ffed48..9b0f96b0f 100644 --- a/src/i18n/locales/fi.json +++ b/src/i18n/locales/fi.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Et ole yhteydessä internetiin.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Käytä järjestelmän oletusasetusta ({default})", "global.spellchecking.autodetect": "Tunnista kieli automaattisesti", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Tarkista päivitykset", "menu.app.hide": "Piilota", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Asetukset", "menu.app.unhide": "Unhide", "menu.edit": "Muokkaa", diff --git a/src/i18n/locales/fil.json b/src/i18n/locales/fil.json index 069f2fbd3..bea3df34d 100644 --- a/src/i18n/locales/fil.json +++ b/src/i18n/locales/fil.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "Hindi maka connect sa 'Ferdi online services'", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "Hindi ka naka connect sa internet.", + "global.quit": "Quit", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", "global.spellchecking.autodetect.short": "Automatic", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 2dc2a881f..aedf6194f 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Vous n'êtes pas connecté à Internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Par défaut ({default})", "global.spellchecking.autodetect": "Détecter automatiquement la langue", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Vérifier les mises à jour", "menu.app.hide": "Masquer", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Paramètres", "menu.app.unhide": "Unhide", "menu.edit": "Éditer", diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index aa8e4bb65..37aecf580 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Níl tú nasctha leis an Idirlíon.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Cuardaigh le nuashonruithe", "menu.app.hide": "Cuir Ferdi i bhfolach", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Socruithe", "menu.app.unhide": "Unhide", "menu.edit": "Cuir in eagar", diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index e4a386323..067ad5cfa 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "נראה שאתה לא מחובר לאינטרנט.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "השתמש בברירת המחדל של המערכת ({default})", "global.spellchecking.autodetect": "זהה שפה באופן אוטומטי", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "חפש עדכונים", "menu.app.hide": "הסתר", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "הגדרות", "menu.app.unhide": "Unhide", "menu.edit": "ערוך", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 8006f8c58..c17205c56 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "You are not connected to the internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 9de4e2632..cd5f0a4e1 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Sada ste povezani s internetom. ", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Potraži ažuriranja", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Postavke", "menu.app.unhide": "Unhide", "menu.edit": "Uredi", diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index a81bec656..3ab9a0358 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Nincs hálózati kapcsolat.", "global.ok": "Ok", + "global.quit": "Kilépés", "global.save": "Save", "global.spellchecker.useDefault": "Rendszer alapbeállítás használata ({default})", "global.spellchecking.autodetect": "Automatikus nyelvdetektálás", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Frissítések keresése", "menu.app.hide": "Elrejt", "menu.app.hideOthers": "Többi elrejtése", - "menu.app.quit": "Kilépés", "menu.app.settings": "Beállítások", "menu.app.unhide": "Megjelenít", "menu.edit": "Szerkesztés", diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 9c9459b2d..399fa08eb 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Anda tidak tersambung ke internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Gunakan Bawaan Sistem ({default})", "global.spellchecking.autodetect": "Deteksi bahasa secara otomatis", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Periksa versi baru", "menu.app.hide": "Sembunyikan", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Pengaturan", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index f0753d9e7..e36a763c8 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Non sei connesso a Internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Usa le impostazioni predefinite di sistema ({default})", "global.spellchecking.autodetect": "Rileva automaticamente la lingua", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Controlla aggiornamenti", "menu.app.hide": "Nascondi", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Impostazioni", "menu.app.unhide": "Unhide", "menu.edit": "Modifica", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 5711131bb..ae172e16f 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "インターネットに接続されていません。", "global.ok": "Ok", + "global.quit": "終了", "global.save": "Save", "global.spellchecker.useDefault": "システムデフォルトを使用する({default})", "global.spellchecking.autodetect": "言語を自動的に検出する", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "更新の確認", "menu.app.hide": "隠す", "menu.app.hideOthers": "他を非表示", - "menu.app.quit": "終了", "menu.app.settings": "設定", "menu.app.unhide": "再表示", "menu.edit": "編集", diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index 8aa09fbf3..b1f692442 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "თქვენ არ ხართ ინტერნეტთან დაკავშირებული.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "განახლებების შემოწმება", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "პარამეტრები", "menu.app.unhide": "Unhide", "menu.edit": "რედაქტირება", diff --git a/src/i18n/locales/kk.json b/src/i18n/locales/kk.json index 63c4b3b3e..5df9f8b05 100644 --- a/src/i18n/locales/kk.json +++ b/src/i18n/locales/kk.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "Can't connect to Ferdi online services", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "You are not connected to the internet.", + "global.quit": "Quit", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", "global.spellchecking.autodetect.short": "Automatic", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json index 78899079c..973354699 100644 --- a/src/i18n/locales/ko.json +++ b/src/i18n/locales/ko.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "인터넷에 연결할 수 없습니다.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "시스템 기본 사용 ({default})", "global.spellchecking.autodetect": "언어 자동 탐색", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "업데이트 확인", "menu.app.hide": "숨기기", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "설정", "menu.app.unhide": "Unhide", "menu.edit": "편집", diff --git a/src/i18n/locales/ms.json b/src/i18n/locales/ms.json index 67f62375f..7ecd9af97 100644 --- a/src/i18n/locales/ms.json +++ b/src/i18n/locales/ms.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "Tidak dapat bersambung ke perkhidmatan dalam talian Ferdi", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "Anda tidak disambungkan ke internet.", + "global.quit": "Keluar", "global.spellchecker.useDefault": "Gunakan System Default ({default})", "global.spellchecking.autodetect": "Kesan bahasa secara automatik", "global.spellchecking.autodetect.short": "Automatik", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "Semak untuk kemaskini", "menu.app.hide": "Sorokkan", "menu.app.hideOthers": "Sorokkan yang lain-lain", - "menu.app.quit": "Keluar", "menu.app.settings": "Tetapan", "menu.app.unhide": "Nyahsorok", "menu.edit": "Ubahsuai", diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index fbc447147..9ec0e8bef 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Je hebt geen internet verbinding.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Gebruik Systeemstandaard ({default})", "global.spellchecking.autodetect": "Taal automatisch herkennen", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Controleer op updates", "menu.app.hide": "Verbergen", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Instellingen", "menu.app.unhide": "Unhide", "menu.edit": "Bewerken", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 8914f2ded..f8cc3aa2e 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "U bent niet verbonden met het internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Gebruik systeemstandaard ({default})", "global.spellchecking.autodetect": "Taal automatisch herkennen", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Controleer op updates", "menu.app.hide": "Verbergen", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Instellingen", "menu.app.unhide": "Unhide", "menu.edit": "Bewerk", diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json index c4e79ab01..7cd247fc6 100644 --- a/src/i18n/locales/no.json +++ b/src/i18n/locales/no.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Du er ikke koblet til Internett.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Bruk systemstandarden ({default})", "global.spellchecking.autodetect": "Oppdag språk automatisk", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Se etter oppdateringer", "menu.app.hide": "Skjul", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Innstillinger", "menu.app.unhide": "Unhide", "menu.edit": "Rediger", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 4a2bc7a06..741110e81 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Nie masz połączenia z Internetem.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Użyj domyślnego dla systemu ({default})", "global.spellchecking.autodetect": "Automatycznie wykryj język", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Sprawdź aktualizacje", "menu.app.hide": "Ukryj", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Ustawienia", "menu.app.unhide": "Unhide", "menu.edit": "Edytuj", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index ecfb00cc7..d1a8f6327 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Você não está conectado à internet.", "global.ok": "Ok", + "global.quit": "Sair", "global.save": "Save", "global.spellchecker.useDefault": "Utilizar o Padrão do Sistema ({default})", "global.spellchecking.autodetect": "Detectar a idioma automaticamente", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Procurar atualizações", "menu.app.hide": "Ocultar", "menu.app.hideOthers": "Ocultar outros", - "menu.app.quit": "Sair", "menu.app.settings": "Configurações", "menu.app.unhide": "Reexibir", "menu.edit": "Editar", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 9ff896b80..81aa5321c 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Não está ligado à internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use o padrão de sistema ({default})", "global.spellchecking.autodetect": "Detectar idioma automaticamente", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Procurar atualizações", "menu.app.hide": "Ocultar", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Configurações", "menu.app.unhide": "Unhide", "menu.edit": "Editar", diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json index f4fd5ac10..8c848d311 100644 --- a/src/i18n/locales/ro.json +++ b/src/i18n/locales/ro.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Nu ești conectat la internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Folosește sistemul implicit ({default})", "global.spellchecking.autodetect": "Detectează limba automat", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 7a1a7458d..40a91a24f 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Вы не подключены к сети Интернет", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Использовать системные параметры по умолчанию ({default})", "global.spellchecking.autodetect": "Найти язык автоматически", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Проверить обновления", "menu.app.hide": "Скрыть", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Настройки", "menu.app.unhide": "Unhide", "menu.edit": "Правка", diff --git a/src/i18n/locales/si.json b/src/i18n/locales/si.json index 4291a575f..204886a77 100644 --- a/src/i18n/locales/si.json +++ b/src/i18n/locales/si.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "ෆ්රාන්ස් මාර්ගගත සේවාවන් වෙත සම්බන්ධ වීමට නොහැක.", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "ඔබ අන්තර්ජාලයට සම්බන්ධ වී නැත.", + "global.quit": "Quit", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", "global.spellchecking.autodetect.short": "Automatic", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index 7d7d36e88..c443ae9c5 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Nie ste pripojení k internetu.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Použiť predvolené nastavenie systému ({default})", "global.spellchecking.autodetect": "Automaticky rozpoznať jazyk", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Skontrolovať aktualizácie", "menu.app.hide": "Skryť", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Nastavenia", "menu.app.unhide": "Unhide", "menu.edit": "Upraviť", diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 9715f4cab..18bf380d2 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "You are not connected to the internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/sq.json b/src/i18n/locales/sq.json index db74679c0..13a0907f6 100644 --- a/src/i18n/locales/sq.json +++ b/src/i18n/locales/sq.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "Can't connect to Ferdi online services", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "You are not connected to the internet.", + "global.quit": "Quit", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", "global.spellchecking.autodetect.short": "Automatic", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index bbd4c576e..92ca00ba6 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Niste povezani sa serverom.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Potraži ažuriranja", "menu.app.hide": "Sakrij", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Postavke", "menu.app.unhide": "Unhide", "menu.edit": "Uredi", diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json index be673ee8f..88d1d9150 100644 --- a/src/i18n/locales/sv.json +++ b/src/i18n/locales/sv.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Du är inte ansluten till Internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Använd systemstandard ({default})", "global.spellchecking.autodetect": "Identifiera språk automatiskt", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Sök efter uppdateringar", "menu.app.hide": "Dölj", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Inställningar", "menu.app.unhide": "Unhide", "menu.edit": "Redigera", diff --git a/src/i18n/locales/te.json b/src/i18n/locales/te.json index 8006f8c58..c17205c56 100644 --- a/src/i18n/locales/te.json +++ b/src/i18n/locales/te.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "You are not connected to the internet.", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 6f6796d4d..8f5b279ae 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "İnternete bağlı değilsiniz.", "global.ok": "Ok", + "global.quit": "Çık", "global.save": "Save", "global.spellchecker.useDefault": "Sistem Dilini Kullan ({default})", "global.spellchecking.autodetect": "Dili otomatik tespit et", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Güncellemeleri kontrol et", "menu.app.hide": "Gizle", "menu.app.hideOthers": "Diğerlerini Gizle", - "menu.app.quit": "Çık", "menu.app.settings": "Ayarlar", "menu.app.unhide": "Göster", "menu.edit": "Düzenle", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 733da1428..42ca1e820 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Ви не підключені до Інтернету.", "global.ok": "Ok", + "global.quit": "Вийти", "global.save": "Save", "global.spellchecker.useDefault": "Використовувати системні параметри за змовчуванням ({default})", "global.spellchecking.autodetect": "Автоматично визначати мову", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Перевірити наявність оновлень", "menu.app.hide": "Приховати", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Вийти", "menu.app.settings": "Налаштування", "menu.app.unhide": "Показати", "menu.edit": "Редагувати", diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json index ccbc3188b..9c733013e 100644 --- a/src/i18n/locales/vi.json +++ b/src/i18n/locales/vi.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "Bạn không kết nối với Internet.", "global.ok": "Ok", + "global.quit": "Thoát", "global.save": "Save", "global.spellchecker.useDefault": "Dùng mặc định hệ thống ({default})", "global.spellchecking.autodetect": "Tự động phát hiện ngôn ngữ", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Kiểm tra cập nhật", "menu.app.hide": "Ẩn", "menu.app.hideOthers": "Ẩn các mục khác", - "menu.app.quit": "Thoát", "menu.app.settings": "Các thiết lập", "menu.app.unhide": "Bỏ ẩn", "menu.edit": "Chỉnh sửa", diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index 253016919..9daa34208 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -23,6 +23,7 @@ "global.api.unhealthy": "Can't connect to Ferdi online services", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "You are not connected to the internet.", + "global.quit": "Quit", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", "global.spellchecking.autodetect.short": "Automatic", @@ -70,7 +71,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "Settings", "menu.app.unhide": "Unhide", "menu.edit": "Edit", diff --git a/src/i18n/locales/zh-HANS.json b/src/i18n/locales/zh-HANS.json index fd26258fc..0b0652ad6 100644 --- a/src/i18n/locales/zh-HANS.json +++ b/src/i18n/locales/zh-HANS.json @@ -15,6 +15,7 @@ "global.api.unhealthy": "无法连接Ferdi在线服务", "global.franzProRequired": "需要 Ferdi 专业版。", "global.notConnectedToTheInternet": "没有网络服务", + "global.quit": "退出", "global.spellchecker.useDefault": "使用系统默认设置({default})", "global.spellchecking.autodetect": "自动检测语言", "global.spellchecking.autodetect.short": "自动", @@ -52,7 +53,6 @@ "menu.app.checkForUpdates": "检查更新", "menu.app.hide": "隐藏", "menu.app.hideOthers": "隐藏其它", - "menu.app.quit": "退出", "menu.app.settings": "设置", "menu.app.unhide": "显示", "menu.edit": "编辑", diff --git a/src/i18n/locales/zh-HANT.json b/src/i18n/locales/zh-HANT.json index a151c5367..5995adf53 100644 --- a/src/i18n/locales/zh-HANT.json +++ b/src/i18n/locales/zh-HANT.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "您未連上網際網路", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "使用系統預設值({default})", "global.spellchecking.autodetect": "自動檢測語言", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "檢查更新", "menu.app.hide": "隱藏", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "設置", "menu.app.unhide": "Unhide", "menu.edit": "編輯", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 29a72fe54..0fcd6891d 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -12,6 +12,7 @@ "global.api.unhealthy": "無法連線至 Ferdi 的伺服器", "global.franzProRequired": "Ferdi Professional Required", "global.notConnectedToTheInternet": "你沒有連上網路。", + "global.quit": "結束", "global.spellchecker.useDefault": "使用系統預設 ({default})", "global.spellchecking.autodetect": "自動偵測語言", "global.spellchecking.autodetect.short": "自動的", @@ -49,7 +50,6 @@ "menu.app.checkForUpdates": "檢查更新", "menu.app.hide": "隱藏", "menu.app.hideOthers": "隱藏其他", - "menu.app.quit": "結束", "menu.app.settings": "設定", "menu.app.unhide": "顯示", "menu.edit": "編輯", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 9dad28459..cc95949c5 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -29,6 +29,7 @@ "global.no": "No", "global.notConnectedToTheInternet": "您没有连接到互联网。", "global.ok": "Ok", + "global.quit": "Quit", "global.save": "Save", "global.spellchecker.useDefault": "使用系统默认值 ({default})", "global.spellchecking.autodetect": "自动检测语言", @@ -84,7 +85,6 @@ "menu.app.checkForUpdates": "Check for updates", "menu.app.hide": "隐藏", "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", "menu.app.settings": "设置", "menu.app.unhide": "Unhide", "menu.edit": "编辑", diff --git a/src/i18n/messages/src/components/layout/Sidebar.json b/src/i18n/messages/src/components/layout/Sidebar.json index f16baea32..1c40118e5 100644 --- a/src/i18n/messages/src/components/layout/Sidebar.json +++ b/src/i18n/messages/src/components/layout/Sidebar.json @@ -79,7 +79,7 @@ }, { "id": "sidebar.openTodosDrawer", - "defaultMessage": "!!!Open Franz Todos", + "defaultMessage": "!!!Open Ferdi Todos", "file": "src/components/layout/Sidebar.js", "start": { "line": 41, @@ -92,7 +92,7 @@ }, { "id": "sidebar.closeTodosDrawer", - "defaultMessage": "!!!Close Franz Todos", + "defaultMessage": "!!!Close Ferdi Todos", "file": "src/components/layout/Sidebar.js", "start": { "line": 45, diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json index 9a4a8de64..b0087e5dd 100644 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json @@ -51,16 +51,29 @@ "column": 3 } }, + { + "id": "settings.app.form.confirmOnQuit", + "defaultMessage": "!!!Confirm when quitting Ferdi", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 48, + "column": 17 + }, + "end": { + "line": 51, + "column": 3 + } + }, { "id": "settings.app.form.enableSystemTray", "defaultMessage": "!!!Always show Ferdi in System Tray", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 48, + "line": 52, "column": 20 }, "end": { - "line": 51, + "line": 55, "column": 3 } }, @@ -69,11 +82,11 @@ "defaultMessage": "!!!Always show Ferdi in Menu Bar", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 52, + "line": 56, "column": 17 }, "end": { - "line": 55, + "line": 59, "column": 3 } }, @@ -82,11 +95,11 @@ "defaultMessage": "!!!Reload Ferdi after system resume", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 56, + "line": 60, "column": 21 }, "end": { - "line": 59, + "line": 63, "column": 3 } }, @@ -95,11 +108,11 @@ "defaultMessage": "!!!Minimize Ferdi to system tray", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 60, + "line": 64, "column": 24 }, "end": { - "line": 63, + "line": 67, "column": 3 } }, @@ -108,11 +121,11 @@ "defaultMessage": "!!!Close Ferdi to system tray", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 64, + "line": 68, "column": 21 }, "end": { - "line": 67, + "line": 71, "column": 3 } }, @@ -121,11 +134,11 @@ "defaultMessage": "!!!Don't show message content in notifications", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 68, + "line": 72, "column": 24 }, "end": { - "line": 71, + "line": 75, "column": 3 } }, @@ -134,11 +147,11 @@ "defaultMessage": "!!!Don't show notifications for clipboard events", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 72, + "line": 76, "column": 26 }, "end": { - "line": 75, + "line": 79, "column": 3 } }, @@ -147,11 +160,11 @@ "defaultMessage": "!!!Notify TaskBar/Dock on new message", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 76, + "line": 80, "column": 26 }, "end": { - "line": 79, + "line": 83, "column": 3 } }, @@ -160,11 +173,11 @@ "defaultMessage": "!!!Navigation bar behaviour", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 80, + "line": 84, "column": 26 }, "end": { - "line": 83, + "line": 87, "column": 3 } }, @@ -173,11 +186,11 @@ "defaultMessage": "!!!Search engine", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 84, + "line": 88, "column": 16 }, "end": { - "line": 87, + "line": 91, "column": 3 } }, @@ -186,11 +199,11 @@ "defaultMessage": "!!!Send telemetry data", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 88, + "line": 92, "column": 10 }, "end": { - "line": 91, + "line": 95, "column": 3 } }, @@ -199,11 +212,11 @@ "defaultMessage": "!!!Keep services in hibernation on startup", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 92, + "line": 96, "column": 22 }, "end": { - "line": 95, + "line": 99, "column": 3 } }, @@ -212,11 +225,11 @@ "defaultMessage": "!!!Hibernation strategy", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 96, + "line": 100, "column": 23 }, "end": { - "line": 99, + "line": 103, "column": 3 } }, @@ -225,11 +238,11 @@ "defaultMessage": "!!!Wake up strategy", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 100, + "line": 104, "column": 18 }, "end": { - "line": 103, + "line": 107, "column": 3 } }, @@ -238,11 +251,11 @@ "defaultMessage": "!!!Todo Server", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 104, + "line": 108, "column": 24 }, "end": { - "line": 107, + "line": 111, "column": 3 } }, @@ -251,11 +264,11 @@ "defaultMessage": "!!!Custom TodoServer", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 108, + "line": 112, "column": 20 }, "end": { - "line": 111, + "line": 115, "column": 3 } }, @@ -264,11 +277,11 @@ "defaultMessage": "!!!Enable Password Lock", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 112, + "line": 116, "column": 14 }, "end": { - "line": 115, + "line": 119, "column": 3 } }, @@ -277,11 +290,11 @@ "defaultMessage": "!!!Password", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 116, + "line": 120, "column": 16 }, "end": { - "line": 119, + "line": 123, "column": 3 } }, @@ -290,11 +303,11 @@ "defaultMessage": "!!!Allow using Touch ID to unlock", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 120, + "line": 124, "column": 22 }, "end": { - "line": 123, + "line": 127, "column": 3 } }, @@ -303,11 +316,11 @@ "defaultMessage": "!!!Lock after inactivity", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 124, + "line": 128, "column": 18 }, "end": { - "line": 127, + "line": 131, "column": 3 } }, @@ -316,11 +329,11 @@ "defaultMessage": "!!!Enable scheduled Do-not-Disturb", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 128, + "line": 132, "column": 23 }, "end": { - "line": 131, + "line": 135, "column": 3 } }, @@ -329,11 +342,11 @@ "defaultMessage": "!!!From", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 132, + "line": 136, "column": 21 }, "end": { - "line": 135, + "line": 139, "column": 3 } }, @@ -342,11 +355,11 @@ "defaultMessage": "!!!To", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 136, + "line": 140, "column": 19 }, "end": { - "line": 139, + "line": 143, "column": 3 } }, @@ -355,11 +368,11 @@ "defaultMessage": "!!!Language", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 140, + "line": 144, "column": 12 }, "end": { - "line": 143, + "line": 147, "column": 3 } }, @@ -368,11 +381,11 @@ "defaultMessage": "!!!Dark Mode", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 144, + "line": 148, "column": 12 }, "end": { - "line": 147, + "line": 151, "column": 3 } }, @@ -381,11 +394,11 @@ "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 148, + "line": 152, "column": 21 }, "end": { - "line": 151, + "line": 155, "column": 3 } }, @@ -394,11 +407,11 @@ "defaultMessage": "!!!Enable universal Dark Mode", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 152, + "line": 156, "column": 21 }, "end": { - "line": 155, + "line": 159, "column": 3 } }, @@ -407,11 +420,11 @@ "defaultMessage": "!!!Sidebar width", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 156, + "line": 160, "column": 22 }, "end": { - "line": 159, + "line": 163, "column": 3 } }, @@ -420,11 +433,11 @@ "defaultMessage": "!!!Service icon size", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 160, + "line": 164, "column": 12 }, "end": { - "line": 163, + "line": 167, "column": 3 } }, @@ -433,11 +446,11 @@ "defaultMessage": "!!!Use horizontal style", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 164, + "line": 168, "column": 20 }, "end": { - "line": 167, + "line": 171, "column": 3 } }, @@ -446,11 +459,11 @@ "defaultMessage": "!!!Always show workspace drawer", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 168, + "line": 172, "column": 24 }, "end": { - "line": 171, + "line": 175, "column": 3 } }, @@ -459,11 +472,11 @@ "defaultMessage": "!!!Accent color", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 172, + "line": 176, "column": 15 }, "end": { - "line": 175, + "line": 179, "column": 3 } }, @@ -472,11 +485,11 @@ "defaultMessage": "!!!Display disabled services tabs", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 176, + "line": 180, "column": 24 }, "end": { - "line": 179, + "line": 183, "column": 3 } }, @@ -485,11 +498,11 @@ "defaultMessage": "!!!Show unread message badge when notifications are disabled", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 180, + "line": 184, "column": 29 }, "end": { - "line": 183, + "line": 187, "column": 3 } }, @@ -498,11 +511,11 @@ "defaultMessage": "!!!Show draggable area on window", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 184, + "line": 188, "column": 16 }, "end": { - "line": 187, + "line": 191, "column": 3 } }, @@ -511,11 +524,11 @@ "defaultMessage": "!!!Enable spell checking", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 188, + "line": 192, "column": 23 }, "end": { - "line": 191, + "line": 195, "column": 3 } }, @@ -524,11 +537,11 @@ "defaultMessage": "!!!Enable GPU Acceleration", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 192, + "line": 196, "column": 25 }, "end": { - "line": 195, + "line": 199, "column": 3 } }, @@ -537,11 +550,11 @@ "defaultMessage": "!!!Include beta versions", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 196, + "line": 200, "column": 8 }, "end": { - "line": 199, + "line": 203, "column": 3 } }, @@ -550,11 +563,11 @@ "defaultMessage": "!!!Enable updates", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 200, + "line": 204, "column": 20 }, "end": { - "line": 203, + "line": 207, "column": 3 } }, @@ -563,11 +576,11 @@ "defaultMessage": "!!!Enable Franz Todos", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 204, + "line": 208, "column": 15 }, "end": { - "line": 207, + "line": 211, "column": 3 } }, @@ -576,11 +589,11 @@ "defaultMessage": "!!!Keep all workspaces loaded", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 208, + "line": 212, "column": 27 }, "end": { - "line": 211, + "line": 215, "column": 3 } } diff --git a/src/i18n/messages/src/i18n/globalMessages.json b/src/i18n/messages/src/i18n/globalMessages.json index 39c1693d5..08ce743b5 100644 --- a/src/i18n/messages/src/i18n/globalMessages.json +++ b/src/i18n/messages/src/i18n/globalMessages.json @@ -180,5 +180,31 @@ "line": 59, "column": 3 } + }, + { + "id": "global.quit", + "defaultMessage": "!!!Quit", + "file": "src/i18n/globalMessages.js", + "start": { + "line": 60, + "column": 8 + }, + "end": { + "line": 63, + "column": 3 + } + }, + { + "id": "global.quitConfirmation", + "defaultMessage": "!!!Do you really want to quit Ferdi?", + "file": "src/i18n/globalMessages.js", + "start": { + "line": 64, + "column": 20 + }, + "end": { + "line": 68, + "column": 3 + } } ] \ No newline at end of file diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json index 3799c9130..ae1a1b448 100644 --- a/src/i18n/messages/src/lib/Menu.json +++ b/src/i18n/messages/src/lib/Menu.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Edit", "file": "src/lib/Menu.js", "start": { - "line": 32, + "line": 33, "column": 8 }, "end": { - "line": 35, + "line": 36, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Undo", "file": "src/lib/Menu.js", "start": { - "line": 36, + "line": 37, "column": 8 }, "end": { - "line": 39, + "line": 40, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Redo", "file": "src/lib/Menu.js", "start": { - "line": 40, + "line": 41, "column": 8 }, "end": { - "line": 43, + "line": 44, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!Cut", "file": "src/lib/Menu.js", "start": { - "line": 44, + "line": 45, "column": 7 }, "end": { - "line": 47, + "line": 48, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Copy", "file": "src/lib/Menu.js", "start": { - "line": 48, + "line": 49, "column": 8 }, "end": { - "line": 51, + "line": 52, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Paste", "file": "src/lib/Menu.js", "start": { - "line": 52, + "line": 53, "column": 9 }, "end": { - "line": 55, + "line": 56, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Paste And Match Style", "file": "src/lib/Menu.js", "start": { - "line": 56, + "line": 57, "column": 22 }, "end": { - "line": 59, + "line": 60, "column": 3 } }, @@ -95,11 +95,11 @@ "defaultMessage": "!!!Delete", "file": "src/lib/Menu.js", "start": { - "line": 60, + "line": 61, "column": 10 }, "end": { - "line": 63, + "line": 64, "column": 3 } }, @@ -108,11 +108,11 @@ "defaultMessage": "!!!Select All", "file": "src/lib/Menu.js", "start": { - "line": 64, + "line": 65, "column": 13 }, "end": { - "line": 67, + "line": 68, "column": 3 } }, @@ -121,11 +121,11 @@ "defaultMessage": "!!!Find in Page", "file": "src/lib/Menu.js", "start": { - "line": 68, + "line": 69, "column": 14 }, "end": { - "line": 71, + "line": 72, "column": 3 } }, @@ -134,11 +134,11 @@ "defaultMessage": "!!!Speech", "file": "src/lib/Menu.js", "start": { - "line": 72, + "line": 73, "column": 10 }, "end": { - "line": 75, + "line": 76, "column": 3 } }, @@ -147,11 +147,11 @@ "defaultMessage": "!!!Start Speaking", "file": "src/lib/Menu.js", "start": { - "line": 76, + "line": 77, "column": 17 }, "end": { - "line": 79, + "line": 80, "column": 3 } }, @@ -160,11 +160,11 @@ "defaultMessage": "!!!Stop Speaking", "file": "src/lib/Menu.js", "start": { - "line": 80, + "line": 81, "column": 16 }, "end": { - "line": 83, + "line": 84, "column": 3 } }, @@ -173,11 +173,11 @@ "defaultMessage": "!!!Start Dictation", "file": "src/lib/Menu.js", "start": { - "line": 84, + "line": 85, "column": 18 }, "end": { - "line": 87, + "line": 88, "column": 3 } }, @@ -186,11 +186,11 @@ "defaultMessage": "!!!Emoji & Symbols", "file": "src/lib/Menu.js", "start": { - "line": 88, + "line": 89, "column": 16 }, "end": { - "line": 91, + "line": 92, "column": 3 } }, @@ -199,11 +199,11 @@ "defaultMessage": "!!!Open Quick Switch", "file": "src/lib/Menu.js", "start": { - "line": 92, + "line": 93, "column": 19 }, "end": { - "line": 95, + "line": 96, "column": 3 } }, @@ -212,11 +212,11 @@ "defaultMessage": "!!!Back", "file": "src/lib/Menu.js", "start": { - "line": 96, + "line": 97, "column": 8 }, "end": { - "line": 99, + "line": 100, "column": 3 } }, @@ -225,11 +225,11 @@ "defaultMessage": "!!!Forward", "file": "src/lib/Menu.js", "start": { - "line": 100, + "line": 101, "column": 11 }, "end": { - "line": 103, + "line": 104, "column": 3 } }, @@ -238,11 +238,11 @@ "defaultMessage": "!!!Actual Size", "file": "src/lib/Menu.js", "start": { - "line": 104, + "line": 105, "column": 13 }, "end": { - "line": 107, + "line": 108, "column": 3 } }, @@ -251,11 +251,11 @@ "defaultMessage": "!!!Zoom In", "file": "src/lib/Menu.js", "start": { - "line": 108, + "line": 109, "column": 10 }, "end": { - "line": 111, + "line": 112, "column": 3 } }, @@ -264,11 +264,11 @@ "defaultMessage": "!!!Zoom Out", "file": "src/lib/Menu.js", "start": { - "line": 112, + "line": 113, "column": 11 }, "end": { - "line": 115, + "line": 116, "column": 3 } }, @@ -277,11 +277,11 @@ "defaultMessage": "!!!Toggle Full Screen", "file": "src/lib/Menu.js", "start": { - "line": 116, + "line": 117, "column": 20 }, "end": { - "line": 119, + "line": 120, "column": 3 } }, @@ -290,11 +290,11 @@ "defaultMessage": "!!!Toggle Dark Mode", "file": "src/lib/Menu.js", "start": { - "line": 120, + "line": 121, "column": 18 }, "end": { - "line": 123, + "line": 124, "column": 3 } }, @@ -303,11 +303,11 @@ "defaultMessage": "!!!Toggle Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 124, + "line": 125, "column": 18 }, "end": { - "line": 127, + "line": 128, "column": 3 } }, @@ -316,11 +316,11 @@ "defaultMessage": "!!!Toggle Todos Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 128, + "line": 129, "column": 23 }, "end": { - "line": 131, + "line": 132, "column": 3 } }, @@ -329,11 +329,11 @@ "defaultMessage": "!!!Toggle Service Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 132, + "line": 133, "column": 25 }, "end": { - "line": 135, + "line": 136, "column": 3 } }, @@ -342,11 +342,11 @@ "defaultMessage": "!!!Reload Service", "file": "src/lib/Menu.js", "start": { - "line": 136, + "line": 137, "column": 17 }, "end": { - "line": 139, + "line": 140, "column": 3 } }, @@ -355,11 +355,11 @@ "defaultMessage": "!!!Reload Ferdi", "file": "src/lib/Menu.js", "start": { - "line": 140, + "line": 141, "column": 15 }, "end": { - "line": 143, + "line": 144, "column": 3 } }, @@ -368,11 +368,11 @@ "defaultMessage": "!!!Lock Ferdi", "file": "src/lib/Menu.js", "start": { - "line": 144, + "line": 145, "column": 13 }, "end": { - "line": 147, + "line": 148, "column": 3 } }, @@ -381,11 +381,11 @@ "defaultMessage": "!!!Reload ToDos", "file": "src/lib/Menu.js", "start": { - "line": 148, + "line": 149, "column": 15 }, "end": { - "line": 151, + "line": 152, "column": 3 } }, @@ -394,11 +394,11 @@ "defaultMessage": "!!!Minimize", "file": "src/lib/Menu.js", "start": { - "line": 152, + "line": 153, "column": 12 }, "end": { - "line": 155, + "line": 156, "column": 3 } }, @@ -407,11 +407,11 @@ "defaultMessage": "!!!Close", "file": "src/lib/Menu.js", "start": { - "line": 156, + "line": 157, "column": 9 }, "end": { - "line": 159, + "line": 160, "column": 3 } }, @@ -420,11 +420,11 @@ "defaultMessage": "!!!Learn More", "file": "src/lib/Menu.js", "start": { - "line": 160, + "line": 161, "column": 13 }, "end": { - "line": 163, + "line": 164, "column": 3 } }, @@ -433,11 +433,11 @@ "defaultMessage": "!!!Changelog", "file": "src/lib/Menu.js", "start": { - "line": 164, + "line": 165, "column": 13 }, "end": { - "line": 167, + "line": 168, "column": 3 } }, @@ -446,11 +446,11 @@ "defaultMessage": "!!!Import/Export Configuration Data", "file": "src/lib/Menu.js", "start": { - "line": 168, + "line": 169, "column": 20 }, "end": { - "line": 171, + "line": 172, "column": 3 } }, @@ -459,11 +459,11 @@ "defaultMessage": "!!!Support", "file": "src/lib/Menu.js", "start": { - "line": 172, + "line": 173, "column": 11 }, "end": { - "line": 175, + "line": 176, "column": 3 } }, @@ -472,11 +472,11 @@ "defaultMessage": "!!!Copy Debug Information", "file": "src/lib/Menu.js", "start": { - "line": 176, + "line": 177, "column": 13 }, "end": { - "line": 179, + "line": 180, "column": 3 } }, @@ -485,11 +485,11 @@ "defaultMessage": "!!!Publish Debug Information", "file": "src/lib/Menu.js", "start": { - "line": 180, + "line": 181, "column": 20 }, "end": { - "line": 183, + "line": 184, "column": 3 } }, @@ -498,11 +498,11 @@ "defaultMessage": "!!!Ferdi Debug Information", "file": "src/lib/Menu.js", "start": { - "line": 184, + "line": 185, "column": 27 }, "end": { - "line": 187, + "line": 188, "column": 3 } }, @@ -511,11 +511,11 @@ "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", "file": "src/lib/Menu.js", "start": { - "line": 188, + "line": 189, "column": 23 }, "end": { - "line": 192, + "line": 193, "column": 3 } }, @@ -524,11 +524,11 @@ "defaultMessage": "!!!Unlock with Touch ID", "file": "src/lib/Menu.js", "start": { - "line": 193, + "line": 194, "column": 11 }, "end": { - "line": 196, + "line": 197, "column": 3 } }, @@ -537,11 +537,11 @@ "defaultMessage": "!!!unlock via Touch ID", "file": "src/lib/Menu.js", "start": { - "line": 197, + "line": 198, "column": 17 }, "end": { - "line": 200, + "line": 201, "column": 3 } }, @@ -550,11 +550,11 @@ "defaultMessage": "!!!Terms of Service", "file": "src/lib/Menu.js", "start": { - "line": 201, + "line": 202, "column": 7 }, "end": { - "line": 204, + "line": 205, "column": 3 } }, @@ -563,11 +563,11 @@ "defaultMessage": "!!!Privacy Statement", "file": "src/lib/Menu.js", "start": { - "line": 205, + "line": 206, "column": 11 }, "end": { - "line": 208, + "line": 209, "column": 3 } }, @@ -576,11 +576,11 @@ "defaultMessage": "!!!File", "file": "src/lib/Menu.js", "start": { - "line": 209, + "line": 210, "column": 8 }, "end": { - "line": 212, + "line": 213, "column": 3 } }, @@ -589,11 +589,11 @@ "defaultMessage": "!!!View", "file": "src/lib/Menu.js", "start": { - "line": 213, + "line": 214, "column": 8 }, "end": { - "line": 216, + "line": 217, "column": 3 } }, @@ -602,11 +602,11 @@ "defaultMessage": "!!!Services", "file": "src/lib/Menu.js", "start": { - "line": 217, + "line": 218, "column": 12 }, "end": { - "line": 220, + "line": 221, "column": 3 } }, @@ -615,11 +615,11 @@ "defaultMessage": "!!!Window", "file": "src/lib/Menu.js", "start": { - "line": 221, + "line": 222, "column": 10 }, "end": { - "line": 224, + "line": 225, "column": 3 } }, @@ -628,11 +628,11 @@ "defaultMessage": "!!!Help", "file": "src/lib/Menu.js", "start": { - "line": 225, + "line": 226, "column": 8 }, "end": { - "line": 228, + "line": 229, "column": 3 } }, @@ -641,11 +641,11 @@ "defaultMessage": "!!!About Ferdi", "file": "src/lib/Menu.js", "start": { - "line": 229, + "line": 230, "column": 9 }, "end": { - "line": 232, + "line": 233, "column": 3 } }, @@ -654,11 +654,11 @@ "defaultMessage": "!!!Settings", "file": "src/lib/Menu.js", "start": { - "line": 233, + "line": 234, "column": 12 }, "end": { - "line": 236, + "line": 237, "column": 3 } }, @@ -667,11 +667,11 @@ "defaultMessage": "!!!Check for updates", "file": "src/lib/Menu.js", "start": { - "line": 237, + "line": 238, "column": 19 }, "end": { - "line": 240, + "line": 241, "column": 3 } }, @@ -680,11 +680,11 @@ "defaultMessage": "!!!Hide", "file": "src/lib/Menu.js", "start": { - "line": 241, + "line": 242, "column": 8 }, "end": { - "line": 244, + "line": 245, "column": 3 } }, @@ -693,11 +693,11 @@ "defaultMessage": "!!!Hide Others", "file": "src/lib/Menu.js", "start": { - "line": 245, + "line": 246, "column": 14 }, "end": { - "line": 248, + "line": 249, "column": 3 } }, @@ -706,11 +706,11 @@ "defaultMessage": "!!!Unhide", "file": "src/lib/Menu.js", "start": { - "line": 249, + "line": 250, "column": 10 }, "end": { - "line": 252, + "line": 253, "column": 3 } }, @@ -719,24 +719,11 @@ "defaultMessage": "!!!Auto-hide menu bar", "file": "src/lib/Menu.js", "start": { - "line": 253, + "line": 254, "column": 19 }, "end": { - "line": 256, - "column": 3 - } - }, - { - "id": "menu.app.quit", - "defaultMessage": "!!!Quit", - "file": "src/lib/Menu.js", - "start": { "line": 257, - "column": 8 - }, - "end": { - "line": 260, "column": 3 } }, @@ -745,11 +732,11 @@ "defaultMessage": "!!!Add New Service...", "file": "src/lib/Menu.js", "start": { - "line": 261, + "line": 258, "column": 17 }, "end": { - "line": 264, + "line": 261, "column": 3 } }, @@ -758,11 +745,11 @@ "defaultMessage": "!!!Add New Workspace...", "file": "src/lib/Menu.js", "start": { - "line": 265, + "line": 262, "column": 19 }, "end": { - "line": 268, + "line": 265, "column": 3 } }, @@ -771,11 +758,11 @@ "defaultMessage": "!!!Open workspace drawer", "file": "src/lib/Menu.js", "start": { - "line": 269, + "line": 266, "column": 23 }, "end": { - "line": 272, + "line": 269, "column": 3 } }, @@ -784,11 +771,11 @@ "defaultMessage": "!!!Close workspace drawer", "file": "src/lib/Menu.js", "start": { - "line": 273, + "line": 270, "column": 24 }, "end": { - "line": 276, + "line": 273, "column": 3 } }, @@ -797,11 +784,11 @@ "defaultMessage": "!!!Activate next service...", "file": "src/lib/Menu.js", "start": { - "line": 277, + "line": 274, "column": 23 }, "end": { - "line": 280, + "line": 277, "column": 3 } }, @@ -810,11 +797,11 @@ "defaultMessage": "!!!Activate previous service...", "file": "src/lib/Menu.js", "start": { - "line": 281, + "line": 278, "column": 27 }, "end": { - "line": 284, + "line": 281, "column": 3 } }, @@ -823,11 +810,11 @@ "defaultMessage": "!!!Disable notifications & audio", "file": "src/lib/Menu.js", "start": { - "line": 285, + "line": 282, "column": 11 }, "end": { - "line": 288, + "line": 285, "column": 3 } }, @@ -836,11 +823,11 @@ "defaultMessage": "!!!Enable notifications & audio", "file": "src/lib/Menu.js", "start": { - "line": 289, + "line": 286, "column": 13 }, "end": { - "line": 292, + "line": 289, "column": 3 } }, @@ -849,11 +836,11 @@ "defaultMessage": "!!!Workspaces", "file": "src/lib/Menu.js", "start": { - "line": 293, + "line": 290, "column": 14 }, "end": { - "line": 296, + "line": 293, "column": 3 } }, @@ -862,11 +849,11 @@ "defaultMessage": "!!!Default", "file": "src/lib/Menu.js", "start": { - "line": 297, + "line": 294, "column": 20 }, "end": { - "line": 300, + "line": 297, "column": 3 } }, @@ -875,11 +862,11 @@ "defaultMessage": "!!!Todos", "file": "src/lib/Menu.js", "start": { - "line": 301, + "line": 298, "column": 9 }, "end": { - "line": 304, + "line": 301, "column": 3 } }, @@ -888,11 +875,11 @@ "defaultMessage": "!!!Open Todos drawer", "file": "src/lib/Menu.js", "start": { - "line": 305, + "line": 302, "column": 19 }, "end": { - "line": 308, + "line": 305, "column": 3 } }, @@ -901,11 +888,11 @@ "defaultMessage": "!!!Close Todos drawer", "file": "src/lib/Menu.js", "start": { - "line": 309, + "line": 306, "column": 20 }, "end": { - "line": 312, + "line": 309, "column": 3 } }, @@ -914,11 +901,11 @@ "defaultMessage": "!!!Enable Todos", "file": "src/lib/Menu.js", "start": { - "line": 313, + "line": 310, "column": 15 }, "end": { - "line": 316, + "line": 313, "column": 3 } }, @@ -927,11 +914,11 @@ "defaultMessage": "!!!Home", "file": "src/lib/Menu.js", "start": { - "line": 317, + "line": 314, "column": 17 }, "end": { - "line": 320, + "line": 317, "column": 3 } } diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 8a5af56fb..4f0041be6 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -27,6 +27,7 @@ import { workspaceActions } from '../features/workspaces/actions'; import { workspaceStore } from '../features/workspaces/index'; import apiBase, { termsBase } from '../api/apiBase'; import { openExternalUrl } from '../helpers/url-helpers'; +import globalMessages from '../i18n/globalMessages'; const menuItems = defineMessages({ edit: { @@ -254,10 +255,6 @@ const menuItems = defineMessages({ id: 'menu.app.autohideMenuBar', defaultMessage: '!!!Auto-hide menu bar', }, - quit: { - id: 'menu.app.quit', - defaultMessage: '!!!Quit', - }, addNewService: { id: 'menu.services.addNewService', defaultMessage: '!!!Add New Service...', @@ -599,6 +596,23 @@ export default class FranzMenu { const tpl = _titleBarTemplateFactory(intl, this.stores.settings.app.locked); const { actions } = this; + // TODO: Extract this into a reusable component and remove the duplications + const quitApp = () => { + const yesButtonIndex = 0; + let selection = yesButtonIndex; + if (window.ferdi.stores.settings.app.confirmOnQuit) { + selection = dialog.showMessageBoxSync(app.mainWindow, { + type: 'question', + message: intl.formatMessage(globalMessages.quit), + detail: intl.formatMessage(globalMessages.quitConfirmation), + buttons: [intl.formatMessage(globalMessages.yes), intl.formatMessage(globalMessages.no)], + }); + } + if (selection === yesButtonIndex) { + app.quit(); + } + }; + if (!isMac) { tpl[1].submenu.push({ label: intl.formatMessage(menuItems.autohideMenuBar), @@ -801,11 +815,9 @@ export default class FranzMenu { type: 'separator', }, { - label: intl.formatMessage(menuItems.quit), - role: 'quit', - click() { - app.quit(); - }, + label: intl.formatMessage(globalMessages.quit), + accelerator: `${cmdOrCtrlShortcutKey()}+Q`, + click: quitApp, }, ], }); @@ -862,12 +874,9 @@ export default class FranzMenu { type: 'separator', }, { - label: intl.formatMessage(menuItems.quit), - role: 'quit', + label: intl.formatMessage(globalMessages.quit), accelerator: `${cmdOrCtrlShortcutKey()}+Q`, - click() { - app.quit(); - }, + click: quitApp, }, ]; diff --git a/src/lib/Tray.js b/src/lib/Tray.js index f5970f7e7..c897d597a 100644 --- a/src/lib/Tray.js +++ b/src/lib/Tray.js @@ -1,5 +1,5 @@ import { - app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, ipcMain, + app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, ipcMain, dialog, } from 'electron'; import { join } from 'path'; import macosVersion from 'macos-version'; @@ -43,9 +43,7 @@ export default class TrayIcon { }, { label: 'Quit Ferdi', - click() { - app.quit(); - }, + click: this.quitApp, }, ]; @@ -178,4 +176,22 @@ export default class TrayIcon { __dirname, '..', 'assets', 'images', type, platform, `${asset}.${FILE_EXTENSION}`, )); } + + // TODO: Extract this into a reusable component and remove the duplications + quitApp = () => { + const yesButtonIndex = 0; + let selection = yesButtonIndex; + if (window.ferdi.stores.settings.app.confirmOnQuit) { + selection = dialog.showMessageBoxSync(app.mainWindow, { + // TODO: Externalize strings + type: 'question', + message: 'Quit', + detail: 'Do you really want to quit Ferdi?', + buttons: ['Yes', 'No'], + }); + } + if (selection === yesButtonIndex) { + app.quit(); + } + }; } -- cgit v1.2.3-70-g09d2