From 47c1c99d893517efc679ab29d675cc0bf44be8be Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Thu, 11 Apr 2019 16:54:01 +0200 Subject: feat(App): Added Workspaces for all your daily routines 🥳 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * merge default and fetched feature configs * ignore intellij project files * basic setup for workspaces feature * define workspaces as premium feature * add workspaces menu item in settings dialog * basic setup of workspaces settings screen * fix eslint error * assign react key prop to workspace items * add styles for workspace table * setup logic to display workspace edit page * consolidate workspace feature for further development * prepare basic workspace edit form * add on enter key handler for form input component * add form for creating workspaces * small fixes * adds flow for deleting workspaces * stop tracking google analytics in components * pin gulp-sass-variables version to 1.1.1 * fix merge conflict * fix bug in form input library * improve workspace form setup * finish basic workspace settings * finish workspaces mvp * fix eslint issues * remove dev logs * detach service when underlying webview unmounts * disable no-param-reassign eslint rule * add workspace drawer * change workspace switch shortcuts to start with zero * add workspace drawer toggle menu item and shortcut * improve workspace switching ux * style add workspace icon in drawer like the sidebar icons * improve workspace drawer layout * add i18n messages for service loading and workspace switching * small fixes * add tooltip to add workspace button in drawer * add workspaces count badge in settings navigation * fix merge conflicts with latest develop * refactor state management for workspace feature * reset api requests when workspace feature is stopped * hide workspace feature if it is disabled * handle get workspaces request errors in the ui * show infobox when updating workspaces * indicate any server interaction with spinners and infoboxes * add analytic events for workspace actions * improve styling of workspace switch indicator * add workspace premium notice to dashboard * add workspace feature info in drawer for free users * add workspace premium badge in settings nav * fix premium workspace badge in settings menu for light theme * fix active workspaces settings premium badge in light theme * give upgrade account button a bit more padding * add open last used workspace logic * use mobx-localstorage directly in the store * fix wrong workspace tooltip shortcut in sidebar * fix bug in workspace feature initialization * show workspaces intro in drawer when user has none yet * fix issues for users that have workspace but downgraded to free * border radius for premium intro in workspace settings * close workspace drawer after clicking on a workspace * add hover effect for drawer workspace items * ensure drawer is open on workspace settings routes * add small text label for adding new workspace to drawer * make workspace settings list items taller * refactor workspace table css away from legacy styles * render workspace service list like services + toggle * change plus icon in workspace drawer to settings icon * autofocus create workspace input field * add css transition to drawer workspace item hover * fix drawer add workspace label styles * refactors workspace theme vars into object structure * improve contrast of workspace switching indicator * added generic pro badge component for settings nav * add premium badge to workspace drawer headline * add context menu for workspace drawer items * handle deleted services that are attached to workspaces --- src/i18n/locales/defaultMessages.json | 930 ++++++++++++++++++++++++++-------- 1 file changed, 710 insertions(+), 220 deletions(-) (limited to 'src/i18n/locales/defaultMessages.json') diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 0641c510c..65799b614 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -625,78 +625,78 @@ "defaultMessage": "!!!Your services have been updated.", "end": { "column": 3, - "line": 25 + "line": 28 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.servicesUpdated", "start": { "column": 19, - "line": 22 + "line": 25 } }, { "defaultMessage": "!!!A new update for Franz is available.", "end": { "column": 3, - "line": 29 + "line": 32 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.updateAvailable", "start": { "column": 19, - "line": 26 + "line": 29 } }, { "defaultMessage": "!!!Reload services", "end": { "column": 3, - "line": 33 + "line": 36 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.buttonReloadServices", "start": { "column": 24, - "line": 30 + "line": 33 } }, { "defaultMessage": "!!!Changelog", "end": { "column": 3, - "line": 37 + "line": 40 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.buttonChangelog", "start": { "column": 13, - "line": 34 + "line": 37 } }, { "defaultMessage": "!!!Restart & install update", "end": { "column": 3, - "line": 41 + "line": 44 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.buttonInstallUpdate", "start": { "column": 23, - "line": 38 + "line": 41 } }, { "defaultMessage": "!!!Could not load services and user information", "end": { "column": 3, - "line": 45 + "line": 48 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.requiredRequestsFailed", "start": { "column": 26, - "line": 42 + "line": 45 } } ], @@ -708,52 +708,78 @@ "defaultMessage": "!!!Settings", "end": { "column": 3, - "line": 14 + "line": 16 }, "file": "src/components/layout/Sidebar.js", "id": "sidebar.settings", "start": { "column": 12, - "line": 11 + "line": 13 } }, { "defaultMessage": "!!!Add new service", "end": { "column": 3, - "line": 18 + "line": 20 }, "file": "src/components/layout/Sidebar.js", "id": "sidebar.addNewService", "start": { "column": 17, - "line": 15 + "line": 17 } }, { "defaultMessage": "!!!Disable notifications & audio", "end": { "column": 3, - "line": 22 + "line": 24 }, "file": "src/components/layout/Sidebar.js", "id": "sidebar.muteApp", "start": { "column": 8, - "line": 19 + "line": 21 } }, { "defaultMessage": "!!!Enable notifications & audio", "end": { "column": 3, - "line": 26 + "line": 28 }, "file": "src/components/layout/Sidebar.js", "id": "sidebar.unmuteApp", "start": { "column": 10, - "line": 23 + "line": 25 + } + }, + { + "defaultMessage": "!!!Open workspace drawer", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/components/layout/Sidebar.js", + "id": "sidebar.openWorkspaceDrawer", + "start": { + "column": 23, + "line": 29 + } + }, + { + "defaultMessage": "!!!Close workspace drawer", + "end": { + "column": 3, + "line": 36 + }, + "file": "src/components/layout/Sidebar.js", + "id": "sidebar.closeWorkspaceDrawer", + "start": { + "column": 24, + "line": 33 } } ], @@ -1276,78 +1302,91 @@ "defaultMessage": "!!!Available services", "end": { "column": 3, - "line": 12 + "line": 15 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.availableServices", "start": { "column": 21, - "line": 9 + "line": 12 } }, { "defaultMessage": "!!!Your services", "end": { "column": 3, - "line": 16 + "line": 19 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.yourServices", "start": { "column": 16, - "line": 13 + "line": 16 } }, { - "defaultMessage": "!!!Account", + "defaultMessage": "!!!Your workspaces", "end": { "column": 3, + "line": 23 + }, + "file": "src/components/settings/navigation/SettingsNavigation.js", + "id": "settings.navigation.yourWorkspaces", + "start": { + "column": 18, "line": 20 + } + }, + { + "defaultMessage": "!!!Account", + "end": { + "column": 3, + "line": 27 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.account", "start": { "column": 11, - "line": 17 + "line": 24 } }, { "defaultMessage": "!!!Settings", "end": { "column": 3, - "line": 24 + "line": 31 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.settings", "start": { "column": 12, - "line": 21 + "line": 28 } }, { "defaultMessage": "!!!Invite Friends", "end": { "column": 3, - "line": 28 + "line": 35 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.inviteFriends", "start": { "column": 17, - "line": 25 + "line": 32 } }, { "defaultMessage": "!!!Logout", "end": { "column": 3, - "line": 32 + "line": 39 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.logout", "start": { "column": 10, - "line": 29 + "line": 36 } } ], @@ -2496,18 +2535,36 @@ "defaultMessage": "!!!Upgrade account", "end": { "column": 3, - "line": 17 + "line": 18 }, "file": "src/components/ui/PremiumFeatureContainer/index.js", "id": "premiumFeature.button.upgradeAccount", "start": { "column": 10, - "line": 14 + "line": 15 } } ], "path": "src/components/ui/PremiumFeatureContainer/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "!!!Loading", + "end": { + "column": 3, + "line": 14 + }, + "file": "src/components/ui/WebviewLoader/index.js", + "id": "service.webviewLoader.loading", + "start": { + "column": 11, + "line": 11 + } + } + ], + "path": "src/components/ui/WebviewLoader/index.json" + }, { "descriptors": [ { @@ -3147,7 +3204,7 @@ } }, { - "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz", + "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @FranzMessenger", "end": { "column": 3, "line": 42 @@ -3165,767 +3222,1200 @@ { "descriptors": [ { - "defaultMessage": "!!!Field is required", + "defaultMessage": "!!!Create workspace", "end": { "column": 3, - "line": 7 + "line": 16 }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.required", + "file": "src/features/workspaces/components/CreateWorkspaceForm.js", + "id": "settings.workspace.add.form.submitButton", "start": { - "column": 12, - "line": 4 + "column": 16, + "line": 13 } }, { - "defaultMessage": "!!!Email not valid", + "defaultMessage": "!!!Name", "end": { "column": 3, - "line": 11 + "line": 20 }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.email", + "file": "src/features/workspaces/components/CreateWorkspaceForm.js", + "id": "settings.workspace.add.form.name", "start": { - "column": 9, - "line": 8 + "column": 8, + "line": 17 } - }, + } + ], + "path": "src/features/workspaces/components/CreateWorkspaceForm.json" + }, + { + "descriptors": [ { - "defaultMessage": "!!!Not a valid URL", + "defaultMessage": "!!!Delete workspace", "end": { "column": 3, - "line": 15 + "line": 22 }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.url", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "id": "settings.workspace.form.buttonDelete", "start": { - "column": 7, - "line": 12 - } - }, - { - "defaultMessage": "!!!Too few characters", - "end": { - "column": 3, + "column": 16, "line": 19 - }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.minLength", - "start": { - "column": 13, - "line": 16 } }, { - "defaultMessage": "!!!At least one is required", + "defaultMessage": "!!!Save workspace", "end": { "column": 3, - "line": 23 + "line": 26 }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.oneRequired", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "id": "settings.workspace.form.buttonSave", "start": { - "column": 15, - "line": 20 + "column": 14, + "line": 23 } - } - ], - "path": "src/helpers/validation-helpers.json" - }, - { - "descriptors": [ + }, { - "defaultMessage": "!!!Can't connect to Franz Online Services", + "defaultMessage": "!!!Name", "end": { "column": 3, - "line": 7 + "line": 30 }, - "file": "src/i18n/globalMessages.js", - "id": "global.api.unhealthy", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "id": "settings.workspace.form.name", "start": { - "column": 16, - "line": 4 + "column": 8, + "line": 27 } }, { - "defaultMessage": "!!!You are not connected to the internet.", + "defaultMessage": "!!!Your workspaces", "end": { "column": 3, - "line": 11 + "line": 34 }, - "file": "src/i18n/globalMessages.js", - "id": "global.notConnectedToTheInternet", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "id": "settings.workspace.form.yourWorkspaces", "start": { - "column": 29, - "line": 8 + "column": 18, + "line": 31 } }, { - "defaultMessage": "!!!Spell checking language", + "defaultMessage": "!!!Services in this Workspace", "end": { "column": 3, - "line": 15 + "line": 38 }, - "file": "src/i18n/globalMessages.js", - "id": "global.spellchecking.language", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "id": "settings.workspace.form.servicesInWorkspaceHeadline", "start": { - "column": 24, - "line": 12 + "column": 31, + "line": 35 } - }, + } + ], + "path": "src/features/workspaces/components/EditWorkspaceForm.json" + }, + { + "descriptors": [ { - "defaultMessage": "!!!Use System Default ({default})", + "defaultMessage": "!!!Workspaces", "end": { "column": 3, "line": 19 }, - "file": "src/i18n/globalMessages.js", - "id": "global.spellchecker.useDefault", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.headline", "start": { - "column": 29, + "column": 12, "line": 16 } }, { - "defaultMessage": "!!!Detect language automatically", + "defaultMessage": "!!!All services", "end": { "column": 3, "line": 23 }, - "file": "src/i18n/globalMessages.js", - "id": "global.spellchecking.autodetect", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.allServices", "start": { - "column": 34, + "column": 15, "line": 20 } }, { - "defaultMessage": "!!!Automatic", + "defaultMessage": "!!!Workspaces settings", "end": { "column": 3, "line": 27 }, - "file": "src/i18n/globalMessages.js", - "id": "global.spellchecking.autodetect.short", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.workspacesSettingsTooltip", "start": { - "column": 39, + "column": 29, "line": 24 } - } - ], - "path": "src/i18n/globalMessages.json" - }, - { - "descriptors": [ + }, { - "defaultMessage": "!!!Edit", + "defaultMessage": "!!!Info about workspace feature", "end": { "column": 3, - "line": 13 + "line": 31 }, - "file": "src/lib/Menu.js", - "id": "menu.edit", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.workspaceFeatureInfo", "start": { - "column": 8, - "line": 10 + "column": 24, + "line": 28 } }, { - "defaultMessage": "!!!Undo", + "defaultMessage": "!!!Create your first workspace", "end": { "column": 3, - "line": 17 + "line": 35 }, - "file": "src/lib/Menu.js", - "id": "menu.edit.undo", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.premiumCtaButtonLabel", "start": { - "column": 8, - "line": 14 + "column": 25, + "line": 32 } }, { - "defaultMessage": "!!!Redo", + "defaultMessage": "!!!Reactivate premium account", "end": { "column": 3, - "line": 21 + "line": 39 }, - "file": "src/lib/Menu.js", - "id": "menu.edit.redo", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.reactivatePremiumAccountLabel", + "start": { + "column": 28, + "line": 36 + } + }, + { + "defaultMessage": "!!!add new workspace", + "end": { + "column": 3, + "line": 43 + }, + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.addNewWorkspaceLabel", + "start": { + "column": 24, + "line": 40 + } + }, + { + "defaultMessage": "!!!Premium feature", + "end": { + "column": 3, + "line": 47 + }, + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.proFeatureBadge", + "start": { + "column": 23, + "line": 44 + } + } + ], + "path": "src/features/workspaces/components/WorkspaceDrawer.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!No services added yet", + "end": { + "column": 3, + "line": 15 + }, + "file": "src/features/workspaces/components/WorkspaceDrawerItem.js", + "id": "workspaceDrawer.item.noServicesAddedYet", + "start": { + "column": 22, + "line": 12 + } + }, + { + "defaultMessage": "!!!edit", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/features/workspaces/components/WorkspaceDrawerItem.js", + "id": "workspaceDrawer.item.contextMenuEdit", + "start": { + "column": 19, + "line": 16 + } + } + ], + "path": "src/features/workspaces/components/WorkspaceDrawerItem.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Your workspaces", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.headline", + "start": { + "column": 12, + "line": 17 + } + }, + { + "defaultMessage": "!!!You haven't added any workspaces yet.", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.noWorkspacesAdded", + "start": { + "column": 19, + "line": 21 + } + }, + { + "defaultMessage": "!!!Could not load your workspaces", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.workspacesRequestFailed", + "start": { + "column": 27, + "line": 25 + } + }, + { + "defaultMessage": "!!!Try again", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.tryReloadWorkspaces", + "start": { + "column": 23, + "line": 29 + } + }, + { + "defaultMessage": "!!!Your changes have been saved", + "end": { + "column": 3, + "line": 36 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.updatedInfo", + "start": { + "column": 15, + "line": 33 + } + }, + { + "defaultMessage": "!!!Workspace has been deleted", + "end": { + "column": 3, + "line": 40 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.deletedInfo", + "start": { + "column": 15, + "line": 37 + } + }, + { + "defaultMessage": "!!!Info about workspace feature", + "end": { + "column": 3, + "line": 44 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.workspaceFeatureInfo", + "start": { + "column": 24, + "line": 41 + } + }, + { + "defaultMessage": "!!!Less is More: Introducing Franz Workspaces", + "end": { + "column": 3, + "line": 48 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.workspaceFeatureHeadline", + "start": { + "column": 28, + "line": 45 + } + } + ], + "path": "src/features/workspaces/components/WorkspacesDashboard.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Switching to", + "end": { + "column": 3, + "line": 15 + }, + "file": "src/features/workspaces/components/WorkspaceSwitchingIndicator.js", + "id": "workspaces.switchingIndicator.switchingTo", + "start": { + "column": 15, + "line": 12 + } + } + ], + "path": "src/features/workspaces/components/WorkspaceSwitchingIndicator.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Field is required", + "end": { + "column": 3, + "line": 7 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.required", + "start": { + "column": 12, + "line": 4 + } + }, + { + "defaultMessage": "!!!Email not valid", + "end": { + "column": 3, + "line": 11 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.email", + "start": { + "column": 9, + "line": 8 + } + }, + { + "defaultMessage": "!!!Not a valid URL", + "end": { + "column": 3, + "line": 15 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.url", + "start": { + "column": 7, + "line": 12 + } + }, + { + "defaultMessage": "!!!Too few characters", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.minLength", + "start": { + "column": 13, + "line": 16 + } + }, + { + "defaultMessage": "!!!At least one is required", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.oneRequired", + "start": { + "column": 15, + "line": 20 + } + } + ], + "path": "src/helpers/validation-helpers.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Can't connect to Franz Online Services", + "end": { + "column": 3, + "line": 7 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.api.unhealthy", + "start": { + "column": 16, + "line": 4 + } + }, + { + "defaultMessage": "!!!You are not connected to the internet.", + "end": { + "column": 3, + "line": 11 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.notConnectedToTheInternet", + "start": { + "column": 29, + "line": 8 + } + }, + { + "defaultMessage": "!!!Spell checking language", + "end": { + "column": 3, + "line": 15 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.spellchecking.language", + "start": { + "column": 24, + "line": 12 + } + }, + { + "defaultMessage": "!!!Use System Default ({default})", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.spellchecker.useDefault", + "start": { + "column": 29, + "line": 16 + } + }, + { + "defaultMessage": "!!!Detect language automatically", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.spellchecking.autodetect", + "start": { + "column": 34, + "line": 20 + } + }, + { + "defaultMessage": "!!!Automatic", + "end": { + "column": 3, + "line": 27 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.spellchecking.autodetect.short", + "start": { + "column": 39, + "line": 24 + } + } + ], + "path": "src/i18n/globalMessages.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Edit", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit", "start": { "column": 8, - "line": 18 + "line": 13 + } + }, + { + "defaultMessage": "!!!Undo", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.undo", + "start": { + "column": 8, + "line": 17 + } + }, + { + "defaultMessage": "!!!Redo", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.redo", + "start": { + "column": 8, + "line": 21 } }, { "defaultMessage": "!!!Cut", "end": { "column": 3, - "line": 25 + "line": 28 }, "file": "src/lib/Menu.js", "id": "menu.edit.cut", "start": { "column": 7, - "line": 22 + "line": 25 } }, { "defaultMessage": "!!!Copy", "end": { "column": 3, - "line": 29 + "line": 32 }, "file": "src/lib/Menu.js", "id": "menu.edit.copy", "start": { "column": 8, - "line": 26 + "line": 29 } }, { "defaultMessage": "!!!Paste", "end": { "column": 3, - "line": 33 + "line": 36 }, "file": "src/lib/Menu.js", "id": "menu.edit.paste", "start": { "column": 9, - "line": 30 + "line": 33 } }, { "defaultMessage": "!!!Paste And Match Style", "end": { "column": 3, - "line": 37 + "line": 40 }, "file": "src/lib/Menu.js", "id": "menu.edit.pasteAndMatchStyle", "start": { "column": 22, - "line": 34 + "line": 37 } }, { "defaultMessage": "!!!Delete", "end": { "column": 3, - "line": 41 + "line": 44 }, "file": "src/lib/Menu.js", "id": "menu.edit.delete", "start": { "column": 10, - "line": 38 + "line": 41 } }, { "defaultMessage": "!!!Select All", "end": { "column": 3, - "line": 45 + "line": 48 }, "file": "src/lib/Menu.js", "id": "menu.edit.selectAll", "start": { "column": 13, - "line": 42 + "line": 45 } }, { "defaultMessage": "!!!Speech", "end": { "column": 3, - "line": 49 + "line": 52 }, "file": "src/lib/Menu.js", "id": "menu.edit.speech", "start": { "column": 10, - "line": 46 + "line": 49 } }, { "defaultMessage": "!!!Start Speaking", "end": { "column": 3, - "line": 53 + "line": 56 }, "file": "src/lib/Menu.js", "id": "menu.edit.startSpeaking", "start": { "column": 17, - "line": 50 + "line": 53 } }, { "defaultMessage": "!!!Stop Speaking", "end": { "column": 3, - "line": 57 + "line": 60 }, "file": "src/lib/Menu.js", "id": "menu.edit.stopSpeaking", "start": { "column": 16, - "line": 54 + "line": 57 } }, { "defaultMessage": "!!!Start Dictation", "end": { "column": 3, - "line": 61 + "line": 64 }, "file": "src/lib/Menu.js", "id": "menu.edit.startDictation", "start": { "column": 18, - "line": 58 + "line": 61 } }, { "defaultMessage": "!!!Emoji & Symbols", "end": { "column": 3, - "line": 65 + "line": 68 }, "file": "src/lib/Menu.js", "id": "menu.edit.emojiSymbols", "start": { "column": 16, - "line": 62 + "line": 65 } }, { "defaultMessage": "!!!Actual Size", "end": { "column": 3, - "line": 69 + "line": 72 }, "file": "src/lib/Menu.js", "id": "menu.view.resetZoom", "start": { "column": 13, - "line": 66 + "line": 69 } }, { "defaultMessage": "!!!Zoom In", "end": { "column": 3, - "line": 73 + "line": 76 }, "file": "src/lib/Menu.js", "id": "menu.view.zoomIn", "start": { "column": 10, - "line": 70 + "line": 73 } }, { "defaultMessage": "!!!Zoom Out", "end": { "column": 3, - "line": 77 + "line": 80 }, "file": "src/lib/Menu.js", "id": "menu.view.zoomOut", "start": { "column": 11, - "line": 74 + "line": 77 } }, { "defaultMessage": "!!!Enter Full Screen", "end": { "column": 3, - "line": 81 + "line": 84 }, "file": "src/lib/Menu.js", "id": "menu.view.enterFullScreen", "start": { "column": 19, - "line": 78 + "line": 81 } }, { "defaultMessage": "!!!Exit Full Screen", "end": { "column": 3, - "line": 85 + "line": 88 }, "file": "src/lib/Menu.js", "id": "menu.view.exitFullScreen", "start": { "column": 18, - "line": 82 + "line": 85 } }, { "defaultMessage": "!!!Toggle Full Screen", "end": { "column": 3, - "line": 89 + "line": 92 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleFullScreen", "start": { "column": 20, - "line": 86 + "line": 89 } }, { "defaultMessage": "!!!Toggle Developer Tools", "end": { "column": 3, - "line": 93 + "line": 96 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleDevTools", "start": { "column": 18, - "line": 90 + "line": 93 } }, { "defaultMessage": "!!!Toggle Service Developer Tools", "end": { "column": 3, - "line": 97 + "line": 100 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleServiceDevTools", "start": { "column": 25, - "line": 94 + "line": 97 } }, { "defaultMessage": "!!!Reload Service", "end": { "column": 3, - "line": 101 + "line": 104 }, "file": "src/lib/Menu.js", "id": "menu.view.reloadService", "start": { "column": 17, - "line": 98 + "line": 101 } }, { "defaultMessage": "!!!Reload Franz", "end": { "column": 3, - "line": 105 + "line": 108 }, "file": "src/lib/Menu.js", "id": "menu.view.reloadFranz", "start": { "column": 15, - "line": 102 + "line": 105 } }, { "defaultMessage": "!!!Minimize", "end": { "column": 3, - "line": 109 + "line": 112 }, "file": "src/lib/Menu.js", "id": "menu.window.minimize", "start": { "column": 12, - "line": 106 + "line": 109 } }, { "defaultMessage": "!!!Close", "end": { "column": 3, - "line": 113 + "line": 116 }, "file": "src/lib/Menu.js", "id": "menu.window.close", "start": { "column": 9, - "line": 110 + "line": 113 } }, { "defaultMessage": "!!!Learn More", "end": { "column": 3, - "line": 117 + "line": 120 }, "file": "src/lib/Menu.js", "id": "menu.help.learnMore", "start": { "column": 13, - "line": 114 + "line": 117 } }, { "defaultMessage": "!!!Changelog", "end": { "column": 3, - "line": 121 + "line": 124 }, "file": "src/lib/Menu.js", "id": "menu.help.changelog", "start": { "column": 13, - "line": 118 + "line": 121 } }, { "defaultMessage": "!!!Support", "end": { "column": 3, - "line": 125 + "line": 128 }, "file": "src/lib/Menu.js", "id": "menu.help.support", "start": { "column": 11, - "line": 122 + "line": 125 } }, { "defaultMessage": "!!!Terms of Service", "end": { "column": 3, - "line": 129 + "line": 132 }, "file": "src/lib/Menu.js", "id": "menu.help.tos", "start": { "column": 7, - "line": 126 + "line": 129 } }, { "defaultMessage": "!!!Privacy Statement", "end": { "column": 3, - "line": 133 + "line": 136 }, "file": "src/lib/Menu.js", "id": "menu.help.privacy", "start": { "column": 11, - "line": 130 + "line": 133 } }, { "defaultMessage": "!!!File", "end": { "column": 3, - "line": 137 + "line": 140 }, "file": "src/lib/Menu.js", "id": "menu.file", "start": { "column": 8, - "line": 134 + "line": 137 } }, { "defaultMessage": "!!!View", "end": { "column": 3, - "line": 141 + "line": 144 }, "file": "src/lib/Menu.js", "id": "menu.view", "start": { "column": 8, - "line": 138 + "line": 141 } }, { "defaultMessage": "!!!Services", "end": { "column": 3, - "line": 145 + "line": 148 }, "file": "src/lib/Menu.js", "id": "menu.services", "start": { "column": 12, - "line": 142 + "line": 145 } }, { "defaultMessage": "!!!Window", "end": { "column": 3, - "line": 149 + "line": 152 }, "file": "src/lib/Menu.js", "id": "menu.window", "start": { "column": 10, - "line": 146 + "line": 149 } }, { "defaultMessage": "!!!Help", "end": { "column": 3, - "line": 153 + "line": 156 }, "file": "src/lib/Menu.js", "id": "menu.help", "start": { "column": 8, - "line": 150 + "line": 153 } }, { "defaultMessage": "!!!About Franz", "end": { "column": 3, - "line": 157 + "line": 160 }, "file": "src/lib/Menu.js", "id": "menu.app.about", "start": { "column": 9, - "line": 154 + "line": 157 } }, { "defaultMessage": "!!!Settings", "end": { "column": 3, - "line": 161 + "line": 164 }, "file": "src/lib/Menu.js", "id": "menu.app.settings", "start": { "column": 12, - "line": 158 + "line": 161 } }, { "defaultMessage": "!!!Hide", "end": { "column": 3, - "line": 165 + "line": 168 }, "file": "src/lib/Menu.js", "id": "menu.app.hide", "start": { "column": 8, - "line": 162 + "line": 165 } }, { "defaultMessage": "!!!Hide Others", "end": { "column": 3, - "line": 169 + "line": 172 }, "file": "src/lib/Menu.js", "id": "menu.app.hideOthers", "start": { "column": 14, - "line": 166 + "line": 169 } }, { "defaultMessage": "!!!Unhide", "end": { "column": 3, - "line": 173 + "line": 176 }, "file": "src/lib/Menu.js", "id": "menu.app.unhide", "start": { "column": 10, - "line": 170 + "line": 173 } }, { "defaultMessage": "!!!Quit", "end": { "column": 3, - "line": 177 + "line": 180 }, "file": "src/lib/Menu.js", "id": "menu.app.quit", "start": { "column": 8, - "line": 174 + "line": 177 } }, { "defaultMessage": "!!!Add New Service...", "end": { "column": 3, - "line": 181 + "line": 184 }, "file": "src/lib/Menu.js", "id": "menu.services.addNewService", "start": { "column": 17, - "line": 178 + "line": 181 } }, { - "defaultMessage": "!!!Activate next service...", + "defaultMessage": "!!!Add New Workspace...", "end": { "column": 3, + "line": 188 + }, + "file": "src/lib/Menu.js", + "id": "menu.workspaces.addNewWorkspace", + "start": { + "column": 19, "line": 185 + } + }, + { + "defaultMessage": "!!!Open workspace drawer", + "end": { + "column": 3, + "line": 192 + }, + "file": "src/lib/Menu.js", + "id": "menu.workspaces.openWorkspaceDrawer", + "start": { + "column": 23, + "line": 189 + } + }, + { + "defaultMessage": "!!!Close workspace drawer", + "end": { + "column": 3, + "line": 196 + }, + "file": "src/lib/Menu.js", + "id": "menu.workspaces.closeWorkspaceDrawer", + "start": { + "column": 24, + "line": 193 + } + }, + { + "defaultMessage": "!!!Activate next service...", + "end": { + "column": 3, + "line": 200 }, "file": "src/lib/Menu.js", "id": "menu.services.setNextServiceActive", "start": { "column": 23, - "line": 182 + "line": 197 } }, { "defaultMessage": "!!!Activate previous service...", "end": { "column": 3, - "line": 189 + "line": 204 }, "file": "src/lib/Menu.js", "id": "menu.services.activatePreviousService", "start": { "column": 27, - "line": 186 + "line": 201 } }, { "defaultMessage": "!!!Disable notifications & audio", "end": { "column": 3, - "line": 193 + "line": 208 }, "file": "src/lib/Menu.js", "id": "sidebar.muteApp", "start": { "column": 11, - "line": 190 + "line": 205 } }, { "defaultMessage": "!!!Enable notifications & audio", "end": { "column": 3, - "line": 197 + "line": 212 }, "file": "src/lib/Menu.js", "id": "sidebar.unmuteApp", "start": { "column": 13, - "line": 194 + "line": 209 + } + }, + { + "defaultMessage": "!!!Workspaces", + "end": { + "column": 3, + "line": 216 + }, + "file": "src/lib/Menu.js", + "id": "menu.workspaces", + "start": { + "column": 14, + "line": 213 + } + }, + { + "defaultMessage": "!!!Default", + "end": { + "column": 3, + "line": 220 + }, + "file": "src/lib/Menu.js", + "id": "menu.workspaces.defaultWorkspace", + "start": { + "column": 20, + "line": 217 } } ], -- cgit v1.2.3-70-g09d2