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/de.json | 12 + src/i18n/locales/defaultMessages.json | 930 ++++++++++++++++----- src/i18n/locales/en-US.json | 39 +- .../messages/src/components/layout/AppLayout.json | 24 +- .../messages/src/components/layout/Sidebar.json | 42 +- .../settings/navigation/SettingsNavigation.json | 37 +- .../ui/PremiumFeatureContainer/index.json | 4 +- .../src/components/ui/WebviewLoader/index.json | 15 + .../workspaces/components/CreateWorkspaceForm.json | 28 + .../workspaces/components/EditWorkspaceForm.json | 67 ++ .../workspaces/components/WorkspaceDrawer.json | 106 +++ .../workspaces/components/WorkspaceDrawerItem.json | 28 + .../components/WorkspaceSwitchingIndicator.json | 15 + .../workspaces/components/WorkspacesDashboard.json | 106 +++ src/i18n/messages/src/lib/Menu.json | 253 +++--- 15 files changed, 1356 insertions(+), 350 deletions(-) create mode 100644 src/i18n/messages/src/components/ui/WebviewLoader/index.json create mode 100644 src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json create mode 100644 src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json create mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json create mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspaceDrawerItem.json create mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspaceSwitchingIndicator.json create mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json (limited to 'src/i18n') diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 2560a5add..06a03db65 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -87,6 +87,9 @@ "menu.window" : "Fenster", "menu.window.close" : "Schließen", "menu.window.minimize" : "Minimieren", + "menu.workspaces": "Workspaces", + "menu.workspaces.defaultWorkspace": "All services", + "menu.workspaces.addNewWorkspace": "Add New Workspace", "password.email.label" : "E-Mail Adresse", "password.headline" : "Passwort zurücksetzen", "password.link.login" : "An Deinem Konto anmelden", @@ -169,6 +172,7 @@ "settings.navigation.logout" : "Abmelden", "settings.navigation.settings" : "Einstellungen", "settings.navigation.yourServices" : "Deine Dienste", + "settings.navigation.yourWorkspaces": "Deine Workspaces", "settings.recipes.all" : "Alle Dienste", "settings.recipes.dev" : "Entwicklung", "settings.recipes.headline" : "Verfügbare Dienste", @@ -226,6 +230,14 @@ "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", + "settings.workspaces.headline": "Deine Workspaces", + "settings.workspace.add.form.submitButton": "Workspace erstellen", + "settings.workspace.add.form.name": "Name", + "settings.workspace.form.yourWorkspaces": "Deine Workspaces", + "settings.workspace.form.name": "Name", + "settings.workspace.form.buttonDelete": "Workspace löschen", + "settings.workspace.form.buttonSave": "Workspace speichern", + "settings.workspace.form.servicesInWorkspaceHeadline": "Services in diesem Workspace", "settings.user.form.accountType.company" : "Firma", "settings.user.form.accountType.individual" : "Einzelperson", "settings.user.form.accountType.label" : "Konto-Typ", 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 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 06cda4aca..84a71117a 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -87,6 +87,11 @@ "menu.window": "Window", "menu.window.close": "Close", "menu.window.minimize": "Minimize", + "menu.workspaces": "Workspaces", + "menu.workspaces.addNewWorkspace": "Add New Workspace...", + "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", + "menu.workspaces.defaultWorkspace": "All services", + "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", "password.email.label": "Email address", "password.headline": "Reset password", "password.link.login": "Sign in to your account", @@ -110,6 +115,7 @@ "service.errorHandler.headline": "Oh no!", "service.errorHandler.message": "Error", "service.errorHandler.text": "{name} has failed to load.", + "service.webviewLoader.loading": "Loading", "services.getStarted": "Get started", "services.welcome": "Welcome to Franz", "settings.account.account.editButton": "Edit account", @@ -169,6 +175,7 @@ "settings.navigation.logout": "Logout", "settings.navigation.settings": "Settings", "settings.navigation.yourServices": "Your services", + "settings.navigation.yourWorkspaces": "Your workspaces", "settings.recipes.all": "All services", "settings.recipes.dev": "Development", "settings.recipes.headline": "Available services", @@ -235,8 +242,25 @@ "settings.user.form.firstname": "First Name", "settings.user.form.lastname": "Last Name", "settings.user.form.newPassword": "New password", + "settings.workspace.add.form.name": "Name", + "settings.workspace.add.form.submitButton": "Create workspace", + "settings.workspace.form.buttonDelete": "Delete workspace", + "settings.workspace.form.buttonSave": "Save workspace", + "settings.workspace.form.name": "Name", + "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", + "settings.workspace.form.yourWorkspaces": "Your workspaces", + "settings.workspaces.deletedInfo": "Workspace has been deleted", + "settings.workspaces.headline": "Your workspaces", + "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", + "settings.workspaces.tryReloadWorkspaces": "Try again", + "settings.workspaces.updatedInfo": "Your changes have been saved", + "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Franz Workspaces", + "settings.workspaces.workspaceFeatureInfo": "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", + "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", "sidebar.addNewService": "Add new service", + "sidebar.closeWorkspaceDrawer": "Close workspace drawer", "sidebar.muteApp": "Disable notifications & audio", + "sidebar.openWorkspaceDrawer": "Open workspace drawer", "sidebar.settings": "Settings", "sidebar.unmuteApp": "Enable notifications & audio", "signup.company.label": "Company", @@ -281,5 +305,16 @@ "validation.required": "{field} is required", "validation.url": "{field} is not a valid URL", "welcome.loginButton": "Login to your account", - "welcome.signupButton": "Create a free account" -} + "welcome.signupButton": "Create a free account", + "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", + "workspaceDrawer.allServices": "All services", + "workspaceDrawer.headline": "Workspaces", + "workspaceDrawer.item.contextMenuEdit": "edit", + "workspaceDrawer.item.noServicesAddedYet": "No services added yet", + "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", + "workspaceDrawer.proFeatureBadge": "Premium feature", + "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", + "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", + "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", + "workspaces.switchingIndicator.switchingTo": "Switching to" +} \ No newline at end of file diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json index 07603d062..92593ed5c 100644 --- a/src/i18n/messages/src/components/layout/AppLayout.json +++ b/src/i18n/messages/src/components/layout/AppLayout.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Your services have been updated.", "file": "src/components/layout/AppLayout.js", "start": { - "line": 22, + "line": 25, "column": 19 }, "end": { - "line": 25, + "line": 28, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!A new update for Franz is available.", "file": "src/components/layout/AppLayout.js", "start": { - "line": 26, + "line": 29, "column": 19 }, "end": { - "line": 29, + "line": 32, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Reload services", "file": "src/components/layout/AppLayout.js", "start": { - "line": 30, + "line": 33, "column": 24 }, "end": { - "line": 33, + "line": 36, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!Changelog", "file": "src/components/layout/AppLayout.js", "start": { - "line": 34, + "line": 37, "column": 13 }, "end": { - "line": 37, + "line": 40, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Restart & install update", "file": "src/components/layout/AppLayout.js", "start": { - "line": 38, + "line": 41, "column": 23 }, "end": { - "line": 41, + "line": 44, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Could not load services and user information", "file": "src/components/layout/AppLayout.js", "start": { - "line": 42, + "line": 45, "column": 26 }, "end": { - "line": 45, + "line": 48, "column": 3 } } diff --git a/src/i18n/messages/src/components/layout/Sidebar.json b/src/i18n/messages/src/components/layout/Sidebar.json index 7aa00a186..d67adc96e 100644 --- a/src/i18n/messages/src/components/layout/Sidebar.json +++ b/src/i18n/messages/src/components/layout/Sidebar.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Settings", "file": "src/components/layout/Sidebar.js", "start": { - "line": 11, + "line": 13, "column": 12 }, "end": { - "line": 14, + "line": 16, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Add new service", "file": "src/components/layout/Sidebar.js", "start": { - "line": 15, + "line": 17, "column": 17 }, "end": { - "line": 18, + "line": 20, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Disable notifications & audio", "file": "src/components/layout/Sidebar.js", "start": { - "line": 19, + "line": 21, "column": 8 }, "end": { - "line": 22, + "line": 24, "column": 3 } }, @@ -43,11 +43,37 @@ "defaultMessage": "!!!Enable notifications & audio", "file": "src/components/layout/Sidebar.js", "start": { - "line": 23, + "line": 25, "column": 10 }, "end": { - "line": 26, + "line": 28, + "column": 3 + } + }, + { + "id": "sidebar.openWorkspaceDrawer", + "defaultMessage": "!!!Open workspace drawer", + "file": "src/components/layout/Sidebar.js", + "start": { + "line": 29, + "column": 23 + }, + "end": { + "line": 32, + "column": 3 + } + }, + { + "id": "sidebar.closeWorkspaceDrawer", + "defaultMessage": "!!!Close workspace drawer", + "file": "src/components/layout/Sidebar.js", + "start": { + "line": 33, + "column": 24 + }, + "end": { + "line": 36, "column": 3 } } diff --git a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json index 785ce9f29..77b0ed8a4 100644 --- a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json +++ b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Available services", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 9, + "line": 12, "column": 21 }, "end": { - "line": 12, + "line": 15, "column": 3 } }, @@ -17,11 +17,24 @@ "defaultMessage": "!!!Your services", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 13, + "line": 16, "column": 16 }, "end": { - "line": 16, + "line": 19, + "column": 3 + } + }, + { + "id": "settings.navigation.yourWorkspaces", + "defaultMessage": "!!!Your workspaces", + "file": "src/components/settings/navigation/SettingsNavigation.js", + "start": { + "line": 20, + "column": 18 + }, + "end": { + "line": 23, "column": 3 } }, @@ -30,11 +43,11 @@ "defaultMessage": "!!!Account", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 17, + "line": 24, "column": 11 }, "end": { - "line": 20, + "line": 27, "column": 3 } }, @@ -43,11 +56,11 @@ "defaultMessage": "!!!Settings", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 21, + "line": 28, "column": 12 }, "end": { - "line": 24, + "line": 31, "column": 3 } }, @@ -56,11 +69,11 @@ "defaultMessage": "!!!Invite Friends", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 25, + "line": 32, "column": 17 }, "end": { - "line": 28, + "line": 35, "column": 3 } }, @@ -69,11 +82,11 @@ "defaultMessage": "!!!Logout", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 29, + "line": 36, "column": 10 }, "end": { - "line": 32, + "line": 39, "column": 3 } } diff --git a/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json index 582d546fa..320d3ca3e 100644 --- a/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json +++ b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Upgrade account", "file": "src/components/ui/PremiumFeatureContainer/index.js", "start": { - "line": 14, + "line": 15, "column": 10 }, "end": { - "line": 17, + "line": 18, "column": 3 } } diff --git a/src/i18n/messages/src/components/ui/WebviewLoader/index.json b/src/i18n/messages/src/components/ui/WebviewLoader/index.json new file mode 100644 index 000000000..ef3e4b593 --- /dev/null +++ b/src/i18n/messages/src/components/ui/WebviewLoader/index.json @@ -0,0 +1,15 @@ +[ + { + "id": "service.webviewLoader.loading", + "defaultMessage": "!!!Loading", + "file": "src/components/ui/WebviewLoader/index.js", + "start": { + "line": 11, + "column": 11 + }, + "end": { + "line": 14, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json new file mode 100644 index 000000000..f62bac42c --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json @@ -0,0 +1,28 @@ +[ + { + "id": "settings.workspace.add.form.submitButton", + "defaultMessage": "!!!Create workspace", + "file": "src/features/workspaces/components/CreateWorkspaceForm.js", + "start": { + "line": 13, + "column": 16 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "settings.workspace.add.form.name", + "defaultMessage": "!!!Name", + "file": "src/features/workspaces/components/CreateWorkspaceForm.js", + "start": { + "line": 17, + "column": 8 + }, + "end": { + "line": 20, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json new file mode 100644 index 000000000..7b0c3e1ce --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json @@ -0,0 +1,67 @@ +[ + { + "id": "settings.workspace.form.buttonDelete", + "defaultMessage": "!!!Delete workspace", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "start": { + "line": 19, + "column": 16 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "settings.workspace.form.buttonSave", + "defaultMessage": "!!!Save workspace", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "start": { + "line": 23, + "column": 14 + }, + "end": { + "line": 26, + "column": 3 + } + }, + { + "id": "settings.workspace.form.name", + "defaultMessage": "!!!Name", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "start": { + "line": 27, + "column": 8 + }, + "end": { + "line": 30, + "column": 3 + } + }, + { + "id": "settings.workspace.form.yourWorkspaces", + "defaultMessage": "!!!Your workspaces", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "start": { + "line": 31, + "column": 18 + }, + "end": { + "line": 34, + "column": 3 + } + }, + { + "id": "settings.workspace.form.servicesInWorkspaceHeadline", + "defaultMessage": "!!!Services in this Workspace", + "file": "src/features/workspaces/components/EditWorkspaceForm.js", + "start": { + "line": 35, + "column": 31 + }, + "end": { + "line": 38, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json new file mode 100644 index 000000000..9f0935620 --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json @@ -0,0 +1,106 @@ +[ + { + "id": "workspaceDrawer.headline", + "defaultMessage": "!!!Workspaces", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 16, + "column": 12 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "workspaceDrawer.allServices", + "defaultMessage": "!!!All services", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 20, + "column": 15 + }, + "end": { + "line": 23, + "column": 3 + } + }, + { + "id": "workspaceDrawer.workspacesSettingsTooltip", + "defaultMessage": "!!!Workspaces settings", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 24, + "column": 29 + }, + "end": { + "line": 27, + "column": 3 + } + }, + { + "id": "workspaceDrawer.workspaceFeatureInfo", + "defaultMessage": "!!!Info about workspace feature", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 28, + "column": 24 + }, + "end": { + "line": 31, + "column": 3 + } + }, + { + "id": "workspaceDrawer.premiumCtaButtonLabel", + "defaultMessage": "!!!Create your first workspace", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 32, + "column": 25 + }, + "end": { + "line": 35, + "column": 3 + } + }, + { + "id": "workspaceDrawer.reactivatePremiumAccountLabel", + "defaultMessage": "!!!Reactivate premium account", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 36, + "column": 28 + }, + "end": { + "line": 39, + "column": 3 + } + }, + { + "id": "workspaceDrawer.addNewWorkspaceLabel", + "defaultMessage": "!!!add new workspace", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 40, + "column": 24 + }, + "end": { + "line": 43, + "column": 3 + } + }, + { + "id": "workspaceDrawer.proFeatureBadge", + "defaultMessage": "!!!Premium feature", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 44, + "column": 23 + }, + "end": { + "line": 47, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawerItem.json b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawerItem.json new file mode 100644 index 000000000..4ff190606 --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawerItem.json @@ -0,0 +1,28 @@ +[ + { + "id": "workspaceDrawer.item.noServicesAddedYet", + "defaultMessage": "!!!No services added yet", + "file": "src/features/workspaces/components/WorkspaceDrawerItem.js", + "start": { + "line": 12, + "column": 22 + }, + "end": { + "line": 15, + "column": 3 + } + }, + { + "id": "workspaceDrawer.item.contextMenuEdit", + "defaultMessage": "!!!edit", + "file": "src/features/workspaces/components/WorkspaceDrawerItem.js", + "start": { + "line": 16, + "column": 19 + }, + "end": { + "line": 19, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspaceSwitchingIndicator.json b/src/i18n/messages/src/features/workspaces/components/WorkspaceSwitchingIndicator.json new file mode 100644 index 000000000..4f3e6d55c --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/WorkspaceSwitchingIndicator.json @@ -0,0 +1,15 @@ +[ + { + "id": "workspaces.switchingIndicator.switchingTo", + "defaultMessage": "!!!Switching to", + "file": "src/features/workspaces/components/WorkspaceSwitchingIndicator.js", + "start": { + "line": 12, + "column": 15 + }, + "end": { + "line": 15, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json new file mode 100644 index 000000000..ef8f1bebc --- /dev/null +++ b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json @@ -0,0 +1,106 @@ +[ + { + "id": "settings.workspaces.headline", + "defaultMessage": "!!!Your workspaces", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 17, + "column": 12 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "settings.workspaces.noWorkspacesAdded", + "defaultMessage": "!!!You haven't added any workspaces yet.", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 21, + "column": 19 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "settings.workspaces.workspacesRequestFailed", + "defaultMessage": "!!!Could not load your workspaces", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 25, + "column": 27 + }, + "end": { + "line": 28, + "column": 3 + } + }, + { + "id": "settings.workspaces.tryReloadWorkspaces", + "defaultMessage": "!!!Try again", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 29, + "column": 23 + }, + "end": { + "line": 32, + "column": 3 + } + }, + { + "id": "settings.workspaces.updatedInfo", + "defaultMessage": "!!!Your changes have been saved", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 33, + "column": 15 + }, + "end": { + "line": 36, + "column": 3 + } + }, + { + "id": "settings.workspaces.deletedInfo", + "defaultMessage": "!!!Workspace has been deleted", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 37, + "column": 15 + }, + "end": { + "line": 40, + "column": 3 + } + }, + { + "id": "settings.workspaces.workspaceFeatureInfo", + "defaultMessage": "!!!Info about workspace feature", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 41, + "column": 24 + }, + "end": { + "line": 44, + "column": 3 + } + }, + { + "id": "settings.workspaces.workspaceFeatureHeadline", + "defaultMessage": "!!!Less is More: Introducing Franz Workspaces", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 45, + "column": 28 + }, + "end": { + "line": 48, + "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 9314f5cce..3889d39e0 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": 10, + "line": 13, "column": 8 }, "end": { - "line": 13, + "line": 16, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Undo", "file": "src/lib/Menu.js", "start": { - "line": 14, + "line": 17, "column": 8 }, "end": { - "line": 17, + "line": 20, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Redo", "file": "src/lib/Menu.js", "start": { - "line": 18, + "line": 21, "column": 8 }, "end": { - "line": 21, + "line": 24, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!Cut", "file": "src/lib/Menu.js", "start": { - "line": 22, + "line": 25, "column": 7 }, "end": { - "line": 25, + "line": 28, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Copy", "file": "src/lib/Menu.js", "start": { - "line": 26, + "line": 29, "column": 8 }, "end": { - "line": 29, + "line": 32, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Paste", "file": "src/lib/Menu.js", "start": { - "line": 30, + "line": 33, "column": 9 }, "end": { - "line": 33, + "line": 36, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Paste And Match Style", "file": "src/lib/Menu.js", "start": { - "line": 34, + "line": 37, "column": 22 }, "end": { - "line": 37, + "line": 40, "column": 3 } }, @@ -95,11 +95,11 @@ "defaultMessage": "!!!Delete", "file": "src/lib/Menu.js", "start": { - "line": 38, + "line": 41, "column": 10 }, "end": { - "line": 41, + "line": 44, "column": 3 } }, @@ -108,11 +108,11 @@ "defaultMessage": "!!!Select All", "file": "src/lib/Menu.js", "start": { - "line": 42, + "line": 45, "column": 13 }, "end": { - "line": 45, + "line": 48, "column": 3 } }, @@ -121,11 +121,11 @@ "defaultMessage": "!!!Speech", "file": "src/lib/Menu.js", "start": { - "line": 46, + "line": 49, "column": 10 }, "end": { - "line": 49, + "line": 52, "column": 3 } }, @@ -134,11 +134,11 @@ "defaultMessage": "!!!Start Speaking", "file": "src/lib/Menu.js", "start": { - "line": 50, + "line": 53, "column": 17 }, "end": { - "line": 53, + "line": 56, "column": 3 } }, @@ -147,11 +147,11 @@ "defaultMessage": "!!!Stop Speaking", "file": "src/lib/Menu.js", "start": { - "line": 54, + "line": 57, "column": 16 }, "end": { - "line": 57, + "line": 60, "column": 3 } }, @@ -160,11 +160,11 @@ "defaultMessage": "!!!Start Dictation", "file": "src/lib/Menu.js", "start": { - "line": 58, + "line": 61, "column": 18 }, "end": { - "line": 61, + "line": 64, "column": 3 } }, @@ -173,11 +173,11 @@ "defaultMessage": "!!!Emoji & Symbols", "file": "src/lib/Menu.js", "start": { - "line": 62, + "line": 65, "column": 16 }, "end": { - "line": 65, + "line": 68, "column": 3 } }, @@ -186,11 +186,11 @@ "defaultMessage": "!!!Actual Size", "file": "src/lib/Menu.js", "start": { - "line": 66, + "line": 69, "column": 13 }, "end": { - "line": 69, + "line": 72, "column": 3 } }, @@ -199,11 +199,11 @@ "defaultMessage": "!!!Zoom In", "file": "src/lib/Menu.js", "start": { - "line": 70, + "line": 73, "column": 10 }, "end": { - "line": 73, + "line": 76, "column": 3 } }, @@ -212,11 +212,11 @@ "defaultMessage": "!!!Zoom Out", "file": "src/lib/Menu.js", "start": { - "line": 74, + "line": 77, "column": 11 }, "end": { - "line": 77, + "line": 80, "column": 3 } }, @@ -225,11 +225,11 @@ "defaultMessage": "!!!Enter Full Screen", "file": "src/lib/Menu.js", "start": { - "line": 78, + "line": 81, "column": 19 }, "end": { - "line": 81, + "line": 84, "column": 3 } }, @@ -238,11 +238,11 @@ "defaultMessage": "!!!Exit Full Screen", "file": "src/lib/Menu.js", "start": { - "line": 82, + "line": 85, "column": 18 }, "end": { - "line": 85, + "line": 88, "column": 3 } }, @@ -251,11 +251,11 @@ "defaultMessage": "!!!Toggle Full Screen", "file": "src/lib/Menu.js", "start": { - "line": 86, + "line": 89, "column": 20 }, "end": { - "line": 89, + "line": 92, "column": 3 } }, @@ -264,11 +264,11 @@ "defaultMessage": "!!!Toggle Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 90, + "line": 93, "column": 18 }, "end": { - "line": 93, + "line": 96, "column": 3 } }, @@ -277,11 +277,11 @@ "defaultMessage": "!!!Toggle Service Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 94, + "line": 97, "column": 25 }, "end": { - "line": 97, + "line": 100, "column": 3 } }, @@ -290,11 +290,11 @@ "defaultMessage": "!!!Reload Service", "file": "src/lib/Menu.js", "start": { - "line": 98, + "line": 101, "column": 17 }, "end": { - "line": 101, + "line": 104, "column": 3 } }, @@ -303,11 +303,11 @@ "defaultMessage": "!!!Reload Franz", "file": "src/lib/Menu.js", "start": { - "line": 102, + "line": 105, "column": 15 }, "end": { - "line": 105, + "line": 108, "column": 3 } }, @@ -316,11 +316,11 @@ "defaultMessage": "!!!Minimize", "file": "src/lib/Menu.js", "start": { - "line": 106, + "line": 109, "column": 12 }, "end": { - "line": 109, + "line": 112, "column": 3 } }, @@ -329,11 +329,11 @@ "defaultMessage": "!!!Close", "file": "src/lib/Menu.js", "start": { - "line": 110, + "line": 113, "column": 9 }, "end": { - "line": 113, + "line": 116, "column": 3 } }, @@ -342,11 +342,11 @@ "defaultMessage": "!!!Learn More", "file": "src/lib/Menu.js", "start": { - "line": 114, + "line": 117, "column": 13 }, "end": { - "line": 117, + "line": 120, "column": 3 } }, @@ -355,11 +355,11 @@ "defaultMessage": "!!!Changelog", "file": "src/lib/Menu.js", "start": { - "line": 118, + "line": 121, "column": 13 }, "end": { - "line": 121, + "line": 124, "column": 3 } }, @@ -368,11 +368,11 @@ "defaultMessage": "!!!Support", "file": "src/lib/Menu.js", "start": { - "line": 122, + "line": 125, "column": 11 }, "end": { - "line": 125, + "line": 128, "column": 3 } }, @@ -381,11 +381,11 @@ "defaultMessage": "!!!Terms of Service", "file": "src/lib/Menu.js", "start": { - "line": 126, + "line": 129, "column": 7 }, "end": { - "line": 129, + "line": 132, "column": 3 } }, @@ -394,11 +394,11 @@ "defaultMessage": "!!!Privacy Statement", "file": "src/lib/Menu.js", "start": { - "line": 130, + "line": 133, "column": 11 }, "end": { - "line": 133, + "line": 136, "column": 3 } }, @@ -407,11 +407,11 @@ "defaultMessage": "!!!File", "file": "src/lib/Menu.js", "start": { - "line": 134, + "line": 137, "column": 8 }, "end": { - "line": 137, + "line": 140, "column": 3 } }, @@ -420,11 +420,11 @@ "defaultMessage": "!!!View", "file": "src/lib/Menu.js", "start": { - "line": 138, + "line": 141, "column": 8 }, "end": { - "line": 141, + "line": 144, "column": 3 } }, @@ -433,11 +433,11 @@ "defaultMessage": "!!!Services", "file": "src/lib/Menu.js", "start": { - "line": 142, + "line": 145, "column": 12 }, "end": { - "line": 145, + "line": 148, "column": 3 } }, @@ -446,11 +446,11 @@ "defaultMessage": "!!!Window", "file": "src/lib/Menu.js", "start": { - "line": 146, + "line": 149, "column": 10 }, "end": { - "line": 149, + "line": 152, "column": 3 } }, @@ -459,11 +459,11 @@ "defaultMessage": "!!!Help", "file": "src/lib/Menu.js", "start": { - "line": 150, + "line": 153, "column": 8 }, "end": { - "line": 153, + "line": 156, "column": 3 } }, @@ -472,11 +472,11 @@ "defaultMessage": "!!!About Franz", "file": "src/lib/Menu.js", "start": { - "line": 154, + "line": 157, "column": 9 }, "end": { - "line": 157, + "line": 160, "column": 3 } }, @@ -485,11 +485,11 @@ "defaultMessage": "!!!Settings", "file": "src/lib/Menu.js", "start": { - "line": 158, + "line": 161, "column": 12 }, "end": { - "line": 161, + "line": 164, "column": 3 } }, @@ -498,11 +498,11 @@ "defaultMessage": "!!!Hide", "file": "src/lib/Menu.js", "start": { - "line": 162, + "line": 165, "column": 8 }, "end": { - "line": 165, + "line": 168, "column": 3 } }, @@ -511,11 +511,11 @@ "defaultMessage": "!!!Hide Others", "file": "src/lib/Menu.js", "start": { - "line": 166, + "line": 169, "column": 14 }, "end": { - "line": 169, + "line": 172, "column": 3 } }, @@ -524,11 +524,11 @@ "defaultMessage": "!!!Unhide", "file": "src/lib/Menu.js", "start": { - "line": 170, + "line": 173, "column": 10 }, "end": { - "line": 173, + "line": 176, "column": 3 } }, @@ -537,11 +537,11 @@ "defaultMessage": "!!!Quit", "file": "src/lib/Menu.js", "start": { - "line": 174, + "line": 177, "column": 8 }, "end": { - "line": 177, + "line": 180, "column": 3 } }, @@ -550,11 +550,50 @@ "defaultMessage": "!!!Add New Service...", "file": "src/lib/Menu.js", "start": { - "line": 178, + "line": 181, "column": 17 }, "end": { - "line": 181, + "line": 184, + "column": 3 + } + }, + { + "id": "menu.workspaces.addNewWorkspace", + "defaultMessage": "!!!Add New Workspace...", + "file": "src/lib/Menu.js", + "start": { + "line": 185, + "column": 19 + }, + "end": { + "line": 188, + "column": 3 + } + }, + { + "id": "menu.workspaces.openWorkspaceDrawer", + "defaultMessage": "!!!Open workspace drawer", + "file": "src/lib/Menu.js", + "start": { + "line": 189, + "column": 23 + }, + "end": { + "line": 192, + "column": 3 + } + }, + { + "id": "menu.workspaces.closeWorkspaceDrawer", + "defaultMessage": "!!!Close workspace drawer", + "file": "src/lib/Menu.js", + "start": { + "line": 193, + "column": 24 + }, + "end": { + "line": 196, "column": 3 } }, @@ -563,11 +602,11 @@ "defaultMessage": "!!!Activate next service...", "file": "src/lib/Menu.js", "start": { - "line": 182, + "line": 197, "column": 23 }, "end": { - "line": 185, + "line": 200, "column": 3 } }, @@ -576,11 +615,11 @@ "defaultMessage": "!!!Activate previous service...", "file": "src/lib/Menu.js", "start": { - "line": 186, + "line": 201, "column": 27 }, "end": { - "line": 189, + "line": 204, "column": 3 } }, @@ -589,11 +628,11 @@ "defaultMessage": "!!!Disable notifications & audio", "file": "src/lib/Menu.js", "start": { - "line": 190, + "line": 205, "column": 11 }, "end": { - "line": 193, + "line": 208, "column": 3 } }, @@ -602,11 +641,37 @@ "defaultMessage": "!!!Enable notifications & audio", "file": "src/lib/Menu.js", "start": { - "line": 194, + "line": 209, "column": 13 }, "end": { - "line": 197, + "line": 212, + "column": 3 + } + }, + { + "id": "menu.workspaces", + "defaultMessage": "!!!Workspaces", + "file": "src/lib/Menu.js", + "start": { + "line": 213, + "column": 14 + }, + "end": { + "line": 216, + "column": 3 + } + }, + { + "id": "menu.workspaces.defaultWorkspace", + "defaultMessage": "!!!Default", + "file": "src/lib/Menu.js", + "start": { + "line": 217, + "column": 20 + }, + "end": { + "line": 220, "column": 3 } } -- cgit v1.2.3-54-g00ecf