aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.all-contributorsrc12
-rw-r--r--.travis.yml10
-rw-r--r--README.md7
-rw-r--r--package.json5
-rw-r--r--src/components/settings/settings/EditSettingsForm.js28
-rw-r--r--src/containers/settings/EditSettingsScreen.js2
-rw-r--r--src/i18n/locales/defaultMessages.json222
-rw-r--r--src/i18n/locales/en-US.json2
-rw-r--r--src/i18n/messages/src/lib/Menu.json222
-rw-r--r--src/lib/Menu.js27
10 files changed, 331 insertions, 206 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc
index f6d3e4e8e..4e252f7df 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -90,7 +90,8 @@
90 "avatar_url": "https://avatars1.githubusercontent.com/u/5861826?v=4", 90 "avatar_url": "https://avatars1.githubusercontent.com/u/5861826?v=4",
91 "profile": "https://github.com/justus-saul", 91 "profile": "https://github.com/justus-saul",
92 "contributions": [ 92 "contributions": [
93 "bug" 93 "bug",
94 "ideas"
94 ] 95 ]
95 }, 96 },
96 { 97 {
@@ -119,6 +120,15 @@
119 "contributions": [ 120 "contributions": [
120 "bug" 121 "bug"
121 ] 122 ]
123 },
124 {
125 "login": "tobigue",
126 "name": "Tobias Gรผnther",
127 "avatar_url": "https://avatars2.githubusercontent.com/u/1560152?v=4",
128 "profile": "https://twitter.com/tobigue_",
129 "contributions": [
130 "ideas"
131 ]
122 } 132 }
123 ], 133 ],
124 "contributorsPerLine": 7 134 "contributorsPerLine": 7
diff --git a/.travis.yml b/.travis.yml
index 831f411f8..4cc941eff 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -33,14 +33,14 @@ deploy:
33 skip_cleanup: true 33 skip_cleanup: true
34 acl: public_read 34 acl: public_read
35 on: 35 on:
36 all_branches: true 36 tags: true
37 37
38env: 38env:
39 global: 39 global:
40 - secure: fddJzSmNYVX024jnhnFXEuAK1spEYi3y3RZdWaBtjQnzoObAxkcRW263JNpXQy+b7egnp2hSy8FvlQU+L967911F5Y70Pe3An4oI72hnS3DL4Njp2Dw5PwviwMA+X2ddWhzK4+k/JU6r8jBv1FGQ6ZjwSeaO/t8UKOsE8wDBFLRhnHqoR7QbM7zmKjzh/1oofunGbHsPOHmN4f7jBwSuSFTZltEENcQg3ZP++0NHU8UJdlpfqZOkro8v4AJMngAHeHlNtjwaAHdVv+6+kkwc4E/0Cy6YNyyBkbzipyngNY3GwnwzmNzvsfICD1TGklksjBlMQq7ld7eCiaYRNvyHVEmXJ17qlq7HhxkYgNy32hPRwb5Cv6o4M4tv8qS8UUk4W1RvBJ5fcmfZGQwGXPyQ/m85RJtrNfbYtr84jYcprTnSeji/9PuZv0f87dxELYm3DYmNUa1cgJqEdLUsEd0bMwUYNLnCSfu4ea2zxwir6LSBtJJCbGKxX87s5IOTrHkrWDe+PWd52v+UjQks7MBRlJnntTWo69Yy+ayXV1TnGVOHA5znHvPOvFlAF+y8tLGd4AGvehK1SAkf0+idmc9Q9xKk0QypT3ibjJui4D50p7sSajkzz3P2pUqOS/9HmjMfPMPN+Nl+48GU0CvB2aBGhdmp9vu54VaFzUaAGNGj4WI= 40 - secure: fddJzSmNYVX024jnhnFXEuAK1spEYi3y3RZdWaBtjQnzoObAxkcRW263JNpXQy+b7egnp2hSy8FvlQU+L967911F5Y70Pe3An4oI72hnS3DL4Njp2Dw5PwviwMA+X2ddWhzK4+k/JU6r8jBv1FGQ6ZjwSeaO/t8UKOsE8wDBFLRhnHqoR7QbM7zmKjzh/1oofunGbHsPOHmN4f7jBwSuSFTZltEENcQg3ZP++0NHU8UJdlpfqZOkro8v4AJMngAHeHlNtjwaAHdVv+6+kkwc4E/0Cy6YNyyBkbzipyngNY3GwnwzmNzvsfICD1TGklksjBlMQq7ld7eCiaYRNvyHVEmXJ17qlq7HhxkYgNy32hPRwb5Cv6o4M4tv8qS8UUk4W1RvBJ5fcmfZGQwGXPyQ/m85RJtrNfbYtr84jYcprTnSeji/9PuZv0f87dxELYm3DYmNUa1cgJqEdLUsEd0bMwUYNLnCSfu4ea2zxwir6LSBtJJCbGKxX87s5IOTrHkrWDe+PWd52v+UjQks7MBRlJnntTWo69Yy+ayXV1TnGVOHA5znHvPOvFlAF+y8tLGd4AGvehK1SAkf0+idmc9Q9xKk0QypT3ibjJui4D50p7sSajkzz3P2pUqOS/9HmjMfPMPN+Nl+48GU0CvB2aBGhdmp9vu54VaFzUaAGNGj4WI=
41 - secure: AjJvKhQ1jIloxogMdtOzJqovPQUBSA0lfHcRsmGdP8HIRKSRi9tKxCCgicTMpMWfvY7qtdexXBbl2/zl6cOhjfTYeAhNwwCg+dw7OVcE8LUn4E+gYZCYIKbNmmkVKsSckQd4h2IcyvqdqLwzjrEzdF95MoUI8WqdLwvQJLkoIaXju6ZT76FslGSUVXk58ZN7p2nr3kW8V7KclIzn/yyyYXE4bjBmS4djuvCReeSfSViCuX5CGT8avBb/IF/M5S7hcQVybmmalysOrranzSx0o9PPUIT9hHqqRpXW6iss2qVj+kCaFiC3ftlApVgizBoGcNAMA8N7hX8kkEjJSpiy7Vswuev9mVN9X94VwVZGyNvdYD8cKKxqTsfFDZDgefnuSYUhymKSBgM4yScYF6IPNJWFWJTugtVeMJ8ivqZhwJuD20nt6x7gGB1FS6m7axxRWeyp7h0FqWU9l6ZfmwHcRziVKNTk9BB4XIqco9M2wjV/YH321IGVwtVR5y6zty10+xk38TthCOidgBurFlMKbFKH5g9K5+84dhsCW0avMlJ0+QkgId0uAVyho+09Wx4cKqXLfobpznkUX+S0Um6G/NbAaUAU+SqBsm+X9CKFsPd/YJoxLdF7eBCG/3Fy4roKg3J4mBYeXe3wVnGft8Eeg0aNpOArMSStMY337UpdV80= 41 - secure: AjJvKhQ1jIloxogMdtOzJqovPQUBSA0lfHcRsmGdP8HIRKSRi9tKxCCgicTMpMWfvY7qtdexXBbl2/zl6cOhjfTYeAhNwwCg+dw7OVcE8LUn4E+gYZCYIKbNmmkVKsSckQd4h2IcyvqdqLwzjrEzdF95MoUI8WqdLwvQJLkoIaXju6ZT76FslGSUVXk58ZN7p2nr3kW8V7KclIzn/yyyYXE4bjBmS4djuvCReeSfSViCuX5CGT8avBb/IF/M5S7hcQVybmmalysOrranzSx0o9PPUIT9hHqqRpXW6iss2qVj+kCaFiC3ftlApVgizBoGcNAMA8N7hX8kkEjJSpiy7Vswuev9mVN9X94VwVZGyNvdYD8cKKxqTsfFDZDgefnuSYUhymKSBgM4yScYF6IPNJWFWJTugtVeMJ8ivqZhwJuD20nt6x7gGB1FS6m7axxRWeyp7h0FqWU9l6ZfmwHcRziVKNTk9BB4XIqco9M2wjV/YH321IGVwtVR5y6zty10+xk38TthCOidgBurFlMKbFKH5g9K5+84dhsCW0avMlJ0+QkgId0uAVyho+09Wx4cKqXLfobpznkUX+S0Um6G/NbAaUAU+SqBsm+X9CKFsPd/YJoxLdF7eBCG/3Fy4roKg3J4mBYeXe3wVnGft8Eeg0aNpOArMSStMY337UpdV80=
42 - secure: WNQBUyNvjTwMFm6pPzNXZYRvgLCTgEm93vLX/0amtr6gT6N8ZsTLL5+Ht3+v51MUOsjEe6tCM4cLSh4wSuwWcSEsUjK0jiqknlpgKKl6xLeo+1t8u6BKSgTpipWqrSD24TbvMrFUyeQrqCGRdZc3Ax/F1ERD81SXcsrg2evCL8g8zsYjxSMXc44drKrvYi68s/5ALrI+oH3t2PYsGuuP1ipj5CbaizUHEa5d8TukHRl96lxoEKCQ4Sa8UXRPNQsdb3TdkVmIEPIoioWU6AMPweBWR6Ky994aKwp0wWn1adWP49v8skMYWbirENniSxShtztF/NYqPQFyoyh0WD/C/ZJPh04HlMxnmQPUROq+LxBFz8WBY1eHDmz6GxH1lDYzneTtlRa5K8izvs2+ROhpVmmKeOgWHaL1ZRMy8Cn3V88kadF7i1K9NnqB6ZPyynJJctj7o0af6Os9/ZPqWfqIOWWeXgfXVzj17xJADfh6Z9epW95hdKZjnIf9IqGAI8aYTqhVL8DKTJ+PSGhJIOEX+ERm+0U9gMlwllwjHCDhBe42zCGuLaWZ239yD1eacM0Ko7yUM+xobiiF0FlB8VI/nBOpGdeUKNLeUfikLHILWd04AVRCNaQU67GMOHekfWdGR8tEh9I/5Y6GJR0IQL5eGmDUjSN0u/Ovss4jSEBOaXo= 42 - secure: WNQBUyNvjTwMFm6pPzNXZYRvgLCTgEm93vLX/0amtr6gT6N8ZsTLL5+Ht3+v51MUOsjEe6tCM4cLSh4wSuwWcSEsUjK0jiqknlpgKKl6xLeo+1t8u6BKSgTpipWqrSD24TbvMrFUyeQrqCGRdZc3Ax/F1ERD81SXcsrg2evCL8g8zsYjxSMXc44drKrvYi68s/5ALrI+oH3t2PYsGuuP1ipj5CbaizUHEa5d8TukHRl96lxoEKCQ4Sa8UXRPNQsdb3TdkVmIEPIoioWU6AMPweBWR6Ky994aKwp0wWn1adWP49v8skMYWbirENniSxShtztF/NYqPQFyoyh0WD/C/ZJPh04HlMxnmQPUROq+LxBFz8WBY1eHDmz6GxH1lDYzneTtlRa5K8izvs2+ROhpVmmKeOgWHaL1ZRMy8Cn3V88kadF7i1K9NnqB6ZPyynJJctj7o0af6Os9/ZPqWfqIOWWeXgfXVzj17xJADfh6Z9epW95hdKZjnIf9IqGAI8aYTqhVL8DKTJ+PSGhJIOEX+ERm+0U9gMlwllwjHCDhBe42zCGuLaWZ239yD1eacM0Ko7yUM+xobiiF0FlB8VI/nBOpGdeUKNLeUfikLHILWd04AVRCNaQU67GMOHekfWdGR8tEh9I/5Y6GJR0IQL5eGmDUjSN0u/Ovss4jSEBOaXo=
43 43
44branches: 44branches:
45 except: 45 except:
46 - i18n 46 - i18n
diff --git a/README.md b/README.md
index 7cd3d4808..d80b18d32 100644
--- a/README.md
+++ b/README.md
@@ -25,8 +25,10 @@ You can find the installers in the [latest release](https://github.com/kytwb/fer
25- [x] Makes all users Premium by default 25- [x] Makes all users Premium by default
26- [x] [Add option to change server to a custom](https://github.com/kytwb/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/vantezzen/ferdi-server) 26- [x] [Add option to change server to a custom](https://github.com/kytwb/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/vantezzen/ferdi-server)
27- [x] Add "Private Notification"-Mode, that hides message content from notifications (as suggested in [meetfranz/franz#879](https://github.com/meetfranz/franz/issues/879)) 27- [x] Add "Private Notification"-Mode, that hides message content from notifications (as suggested in [meetfranz/franz#879](https://github.com/meetfranz/franz/issues/879))
28- [x] [Add an option keep individual workspaces always loaded](https://github.com/kytwb/ferdi/issues/37) 28- [x] [Add an option to keep individual workspaces always loaded](https://github.com/kytwb/ferdi/issues/37)
29- [x] Add an option to auto-hide the menubar ([#7](https://github.com/kytwb/ferdi/issues/7), [meetfranz#833](https://github.com/meetfranz/franz/issues/833)) 29- [x] Add an option to auto-hide the menubar ([#7](https://github.com/kytwb/ferdi/issues/7), [meetfranz#833](https://github.com/meetfranz/franz/issues/833))
30- [x] [Add CTRL+โ† and CTRL+โ†’ shortcuts and menu options to go back and forward in the service browsing history](https://github.com/kytwb/ferdi/issues/39)
31- [x] Add "npm run prepare-code" command for development to lint and beautify code
30- [x] Remove "Franz is better together" popup 32- [x] Remove "Franz is better together" popup
31- [x] [Makes it possible to edit the "Franz Todo" server](https://github.com/kytwb/ferdi/wiki/Custom-Todo) 33- [x] [Makes it possible to edit the "Franz Todo" server](https://github.com/kytwb/ferdi/wiki/Custom-Todo)
32- [x] Makes RocketChat self-hosted generally available 34- [x] Makes RocketChat self-hosted generally available
@@ -84,12 +86,13 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
84 <td align="center"><a href="http://seriesgt.com"><img src="https://avatars3.githubusercontent.com/u/5977640?v=4" width="100px;" alt="ZeroCool"/><br /><sub><b>ZeroCool</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=ZeroCool940711" title="Code">๐Ÿ’ป</a> <a href="#ideas-ZeroCool940711" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td> 86 <td align="center"><a href="http://seriesgt.com"><img src="https://avatars3.githubusercontent.com/u/5977640?v=4" width="100px;" alt="ZeroCool"/><br /><sub><b>ZeroCool</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=ZeroCool940711" title="Code">๐Ÿ’ป</a> <a href="#ideas-ZeroCool940711" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td>
85 <td align="center"><a href="https://github.com/rseitbekov"><img src="https://avatars2.githubusercontent.com/u/35684439?v=4" width="100px;" alt="rseitbekov"/><br /><sub><b>rseitbekov</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=rseitbekov" title="Code">๐Ÿ’ป</a></td> 87 <td align="center"><a href="https://github.com/rseitbekov"><img src="https://avatars2.githubusercontent.com/u/35684439?v=4" width="100px;" alt="rseitbekov"/><br /><sub><b>rseitbekov</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/commits?author=rseitbekov" title="Code">๐Ÿ’ป</a></td>
86 <td align="center"><a href="https://djangogigs.com/developers/peter-bittner/"><img src="https://avatars2.githubusercontent.com/u/665072?v=4" width="100px;" alt="Peter Bittner"/><br /><sub><b>Peter Bittner</b></sub></a><br /><a href="#ideas-bittner" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td> 88 <td align="center"><a href="https://djangogigs.com/developers/peter-bittner/"><img src="https://avatars2.githubusercontent.com/u/665072?v=4" width="100px;" alt="Peter Bittner"/><br /><sub><b>Peter Bittner</b></sub></a><br /><a href="#ideas-bittner" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td>
87 <td align="center"><a href="https://github.com/justus-saul"><img src="https://avatars1.githubusercontent.com/u/5861826?v=4" width="100px;" alt="Justus Saul"/><br /><sub><b>Justus Saul</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/issues?q=author%3Ajustus-saul" title="Bug reports">๐Ÿ›</a></td> 89 <td align="center"><a href="https://github.com/justus-saul"><img src="https://avatars1.githubusercontent.com/u/5861826?v=4" width="100px;" alt="Justus Saul"/><br /><sub><b>Justus Saul</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/issues?q=author%3Ajustus-saul" title="Bug reports">๐Ÿ›</a> <a href="#ideas-justus-saul" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td>
88 </tr> 90 </tr>
89 <tr> 91 <tr>
90 <td align="center"><a href="https://github.com/igreil"><img src="https://avatars0.githubusercontent.com/u/17239151?v=4" width="100px;" alt="igreil"/><br /><sub><b>igreil</b></sub></a><br /><a href="#ideas-igreil" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td> 92 <td align="center"><a href="https://github.com/igreil"><img src="https://avatars0.githubusercontent.com/u/17239151?v=4" width="100px;" alt="igreil"/><br /><sub><b>igreil</b></sub></a><br /><a href="#ideas-igreil" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td>
91 <td align="center"><a href="http://marcolopes.eu"><img src="https://avatars1.githubusercontent.com/u/431889?v=4" width="100px;" alt="Marco Lopes"/><br /><sub><b>Marco Lopes</b></sub></a><br /><a href="#ideas-marcolopes" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td> 93 <td align="center"><a href="http://marcolopes.eu"><img src="https://avatars1.githubusercontent.com/u/431889?v=4" width="100px;" alt="Marco Lopes"/><br /><sub><b>Marco Lopes</b></sub></a><br /><a href="#ideas-marcolopes" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td>
92 <td align="center"><a href="https://github.com/dayzlun"><img src="https://avatars3.githubusercontent.com/u/17259690?v=4" width="100px;" alt="dayzlun"/><br /><sub><b>dayzlun</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/issues?q=author%3Adayzlun" title="Bug reports">๐Ÿ›</a></td> 94 <td align="center"><a href="https://github.com/dayzlun"><img src="https://avatars3.githubusercontent.com/u/17259690?v=4" width="100px;" alt="dayzlun"/><br /><sub><b>dayzlun</b></sub></a><br /><a href="https://github.com/kytwb/ferdi/issues?q=author%3Adayzlun" title="Bug reports">๐Ÿ›</a></td>
95 <td align="center"><a href="https://twitter.com/tobigue_"><img src="https://avatars2.githubusercontent.com/u/1560152?v=4" width="100px;" alt="Tobias Gรผnther"/><br /><sub><b>Tobias Gรผnther</b></sub></a><br /><a href="#ideas-tobigue" title="Ideas, Planning, & Feedback">๐Ÿค”</a></td>
93 </tr> 96 </tr>
94</table> 97</table>
95 98
diff --git a/package.json b/package.json
index 27ee107d4..134fa691d 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
2 "name": "ferdi", 2 "name": "ferdi",
3 "productName": "Ferdi", 3 "productName": "Ferdi",
4 "appId": "com.kytwb.ferdi", 4 "appId": "com.kytwb.ferdi",
5 "version": "5.3.2", 5 "version": "5.3.3-beta.1",
6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", 6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.",
7 "copyright": "kytwb", 7 "copyright": "kytwb",
8 "main": "index.js", 8 "main": "index.js",
@@ -29,7 +29,8 @@
29 "reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\"", 29 "reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\"",
30 "packages": "npx lerna publish --no-git-tag-version", 30 "packages": "npx lerna publish --no-git-tag-version",
31 "uidev": "cd uidev && webpack-dev-server", 31 "uidev": "cd uidev && webpack-dev-server",
32 "postinstall": "npx lerna run prepare" 32 "postinstall": "npx lerna run prepare",
33 "prepare-code": "npm run lint && npm run reformat-files && npm run manage-translations"
33 }, 34 },
34 "keywords": [], 35 "keywords": [],
35 "author": "Amine Mouafik <amine@mouafik.fr>", 36 "author": "Amine Mouafik <amine@mouafik.fr>",
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index 835fd394b..b4e6e08a1 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -112,6 +112,7 @@ export default @observer class EditSettingsForm extends Component {
112 isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, 112 isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired,
113 isTodosEnabled: PropTypes.bool.isRequired, 113 isTodosEnabled: PropTypes.bool.isRequired,
114 isWorkspaceEnabled: PropTypes.bool.isRequired, 114 isWorkspaceEnabled: PropTypes.bool.isRequired,
115 server: PropTypes.string.isRequired,
115 }; 116 };
116 117
117 static contextTypes = { 118 static contextTypes = {
@@ -144,6 +145,7 @@ export default @observer class EditSettingsForm extends Component {
144 isSpellcheckerIncludedInCurrentPlan, 145 isSpellcheckerIncludedInCurrentPlan,
145 isTodosEnabled, 146 isTodosEnabled,
146 isWorkspaceEnabled, 147 isWorkspaceEnabled,
148 server,
147 } = this.props; 149 } = this.props;
148 const { intl } = this.context; 150 const { intl } = this.context;
149 151
@@ -187,6 +189,32 @@ export default @observer class EditSettingsForm extends Component {
187 {isLoggedIn && ( 189 {isLoggedIn && (
188 <p>{ intl.formatMessage(messages.serverInfo) }</p> 190 <p>{ intl.formatMessage(messages.serverInfo) }</p>
189 )} 191 )}
192 {server === 'https://api.franzinfra.com' && (
193 <p
194 className="settings__message"
195 style={{
196 borderTop: 0, marginTop: 0, paddingTop: 0, marginBottom: '2rem',
197 }}
198 >
199 <span>
200 You are using the official Franz Server for Ferdi.
201 <br />
202 We know that Ferdi allows you to use all its features for free but you are
203 still using Franz&#x27;s server resources - which Franz&#x27;s creator has to pay for.
204 <br />
205 Please still consider
206 {' '}
207 <a href="https://www.meetfranz.com/pricing" target="_blank">paying for a Franz account</a>
208 or
209 {' '}
210 <a href="https://github.com/vantezzen/ferdi-server" target="_blank">using a self-hosted ferdi-server</a>
211 {' '}
212 (if you have the knowledge and resources to do so).
213 <br />
214 By using Ferdi, you still profit greatly from Franz&#x27;s recipe store, server resources and its development.
215 </span>
216 </p>
217 )}
190 {isWorkspaceEnabled && ( 218 {isWorkspaceEnabled && (
191 <Toggle field={form.$('keepAllWorkspacesLoaded')} /> 219 <Toggle field={form.$('keepAllWorkspacesLoaded')} />
192 )} 220 )}
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 09e7b43ab..778b70ad9 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -289,6 +289,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
289 cacheSize, 289 cacheSize,
290 updateStatusTypes, 290 updateStatusTypes,
291 isClearingAllCache, 291 isClearingAllCache,
292 server,
292 } = app; 293 } = app;
293 const { 294 const {
294 checkForUpdates, 295 checkForUpdates,
@@ -314,6 +315,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
314 isSpellcheckerIncludedInCurrentPlan={spellcheckerConfig.isIncludedInCurrentPlan} 315 isSpellcheckerIncludedInCurrentPlan={spellcheckerConfig.isIncludedInCurrentPlan}
315 isTodosEnabled={todos.isFeatureActive} 316 isTodosEnabled={todos.isFeatureActive}
316 isWorkspaceEnabled={workspaces.isFeatureActive} 317 isWorkspaceEnabled={workspaces.isFeatureActive}
318 server={server || 'https://api.franzinfra.com'}
317 /> 319 />
318 </ErrorBoundary> 320 </ErrorBoundary>
319 ); 321 );
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index 7fce61486..ffcf3e1dd 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -5035,640 +5035,666 @@
5035 } 5035 }
5036 }, 5036 },
5037 { 5037 {
5038 "defaultMessage": "!!!Actual Size", 5038 "defaultMessage": "!!!Back",
5039 "end": { 5039 "end": {
5040 "column": 3, 5040 "column": 3,
5041 "line": 75 5041 "line": 75
5042 }, 5042 },
5043 "file": "src/lib/Menu.js", 5043 "file": "src/lib/Menu.js",
5044 "id": "menu.view.back",
5045 "start": {
5046 "column": 8,
5047 "line": 72
5048 }
5049 },
5050 {
5051 "defaultMessage": "!!!Forward",
5052 "end": {
5053 "column": 3,
5054 "line": 79
5055 },
5056 "file": "src/lib/Menu.js",
5057 "id": "menu.view.forward",
5058 "start": {
5059 "column": 11,
5060 "line": 76
5061 }
5062 },
5063 {
5064 "defaultMessage": "!!!Actual Size",
5065 "end": {
5066 "column": 3,
5067 "line": 83
5068 },
5069 "file": "src/lib/Menu.js",
5044 "id": "menu.view.resetZoom", 5070 "id": "menu.view.resetZoom",
5045 "start": { 5071 "start": {
5046 "column": 13, 5072 "column": 13,
5047 "line": 72 5073 "line": 80
5048 } 5074 }
5049 }, 5075 },
5050 { 5076 {
5051 "defaultMessage": "!!!Zoom In", 5077 "defaultMessage": "!!!Zoom In",
5052 "end": { 5078 "end": {
5053 "column": 3, 5079 "column": 3,
5054 "line": 79 5080 "line": 87
5055 }, 5081 },
5056 "file": "src/lib/Menu.js", 5082 "file": "src/lib/Menu.js",
5057 "id": "menu.view.zoomIn", 5083 "id": "menu.view.zoomIn",
5058 "start": { 5084 "start": {
5059 "column": 10, 5085 "column": 10,
5060 "line": 76 5086 "line": 84
5061 } 5087 }
5062 }, 5088 },
5063 { 5089 {
5064 "defaultMessage": "!!!Zoom Out", 5090 "defaultMessage": "!!!Zoom Out",
5065 "end": { 5091 "end": {
5066 "column": 3, 5092 "column": 3,
5067 "line": 83 5093 "line": 91
5068 }, 5094 },
5069 "file": "src/lib/Menu.js", 5095 "file": "src/lib/Menu.js",
5070 "id": "menu.view.zoomOut", 5096 "id": "menu.view.zoomOut",
5071 "start": { 5097 "start": {
5072 "column": 11, 5098 "column": 11,
5073 "line": 80 5099 "line": 88
5074 } 5100 }
5075 }, 5101 },
5076 { 5102 {
5077 "defaultMessage": "!!!Enter Full Screen", 5103 "defaultMessage": "!!!Enter Full Screen",
5078 "end": { 5104 "end": {
5079 "column": 3, 5105 "column": 3,
5080 "line": 87 5106 "line": 95
5081 }, 5107 },
5082 "file": "src/lib/Menu.js", 5108 "file": "src/lib/Menu.js",
5083 "id": "menu.view.enterFullScreen", 5109 "id": "menu.view.enterFullScreen",
5084 "start": { 5110 "start": {
5085 "column": 19, 5111 "column": 19,
5086 "line": 84 5112 "line": 92
5087 } 5113 }
5088 }, 5114 },
5089 { 5115 {
5090 "defaultMessage": "!!!Exit Full Screen", 5116 "defaultMessage": "!!!Exit Full Screen",
5091 "end": { 5117 "end": {
5092 "column": 3, 5118 "column": 3,
5093 "line": 91 5119 "line": 99
5094 }, 5120 },
5095 "file": "src/lib/Menu.js", 5121 "file": "src/lib/Menu.js",
5096 "id": "menu.view.exitFullScreen", 5122 "id": "menu.view.exitFullScreen",
5097 "start": { 5123 "start": {
5098 "column": 18, 5124 "column": 18,
5099 "line": 88 5125 "line": 96
5100 } 5126 }
5101 }, 5127 },
5102 { 5128 {
5103 "defaultMessage": "!!!Toggle Full Screen", 5129 "defaultMessage": "!!!Toggle Full Screen",
5104 "end": { 5130 "end": {
5105 "column": 3, 5131 "column": 3,
5106 "line": 95 5132 "line": 103
5107 }, 5133 },
5108 "file": "src/lib/Menu.js", 5134 "file": "src/lib/Menu.js",
5109 "id": "menu.view.toggleFullScreen", 5135 "id": "menu.view.toggleFullScreen",
5110 "start": { 5136 "start": {
5111 "column": 20, 5137 "column": 20,
5112 "line": 92 5138 "line": 100
5113 } 5139 }
5114 }, 5140 },
5115 { 5141 {
5116 "defaultMessage": "!!!Toggle Developer Tools", 5142 "defaultMessage": "!!!Toggle Developer Tools",
5117 "end": { 5143 "end": {
5118 "column": 3, 5144 "column": 3,
5119 "line": 99 5145 "line": 107
5120 }, 5146 },
5121 "file": "src/lib/Menu.js", 5147 "file": "src/lib/Menu.js",
5122 "id": "menu.view.toggleDevTools", 5148 "id": "menu.view.toggleDevTools",
5123 "start": { 5149 "start": {
5124 "column": 18, 5150 "column": 18,
5125 "line": 96 5151 "line": 104
5126 } 5152 }
5127 }, 5153 },
5128 { 5154 {
5129 "defaultMessage": "!!!Toggle Todos Developer Tools", 5155 "defaultMessage": "!!!Toggle Todos Developer Tools",
5130 "end": { 5156 "end": {
5131 "column": 3, 5157 "column": 3,
5132 "line": 103 5158 "line": 111
5133 }, 5159 },
5134 "file": "src/lib/Menu.js", 5160 "file": "src/lib/Menu.js",
5135 "id": "menu.view.toggleTodosDevTools", 5161 "id": "menu.view.toggleTodosDevTools",
5136 "start": { 5162 "start": {
5137 "column": 23, 5163 "column": 23,
5138 "line": 100 5164 "line": 108
5139 } 5165 }
5140 }, 5166 },
5141 { 5167 {
5142 "defaultMessage": "!!!Toggle Service Developer Tools", 5168 "defaultMessage": "!!!Toggle Service Developer Tools",
5143 "end": { 5169 "end": {
5144 "column": 3, 5170 "column": 3,
5145 "line": 107 5171 "line": 115
5146 }, 5172 },
5147 "file": "src/lib/Menu.js", 5173 "file": "src/lib/Menu.js",
5148 "id": "menu.view.toggleServiceDevTools", 5174 "id": "menu.view.toggleServiceDevTools",
5149 "start": { 5175 "start": {
5150 "column": 25, 5176 "column": 25,
5151 "line": 104 5177 "line": 112
5152 } 5178 }
5153 }, 5179 },
5154 { 5180 {
5155 "defaultMessage": "!!!Reload Service", 5181 "defaultMessage": "!!!Reload Service",
5156 "end": { 5182 "end": {
5157 "column": 3, 5183 "column": 3,
5158 "line": 111 5184 "line": 119
5159 }, 5185 },
5160 "file": "src/lib/Menu.js", 5186 "file": "src/lib/Menu.js",
5161 "id": "menu.view.reloadService", 5187 "id": "menu.view.reloadService",
5162 "start": { 5188 "start": {
5163 "column": 17, 5189 "column": 17,
5164 "line": 108 5190 "line": 116
5165 } 5191 }
5166 }, 5192 },
5167 { 5193 {
5168 "defaultMessage": "!!!Reload Ferdi", 5194 "defaultMessage": "!!!Reload Ferdi",
5169 "end": { 5195 "end": {
5170 "column": 3, 5196 "column": 3,
5171 "line": 115 5197 "line": 123
5172 }, 5198 },
5173 "file": "src/lib/Menu.js", 5199 "file": "src/lib/Menu.js",
5174 "id": "menu.view.reloadFranz", 5200 "id": "menu.view.reloadFranz",
5175 "start": { 5201 "start": {
5176 "column": 15, 5202 "column": 15,
5177 "line": 112 5203 "line": 120
5178 } 5204 }
5179 }, 5205 },
5180 { 5206 {
5181 "defaultMessage": "!!!Minimize", 5207 "defaultMessage": "!!!Minimize",
5182 "end": { 5208 "end": {
5183 "column": 3, 5209 "column": 3,
5184 "line": 119 5210 "line": 127
5185 }, 5211 },
5186 "file": "src/lib/Menu.js", 5212 "file": "src/lib/Menu.js",
5187 "id": "menu.window.minimize", 5213 "id": "menu.window.minimize",
5188 "start": { 5214 "start": {
5189 "column": 12, 5215 "column": 12,
5190 "line": 116 5216 "line": 124
5191 } 5217 }
5192 }, 5218 },
5193 { 5219 {
5194 "defaultMessage": "!!!Close", 5220 "defaultMessage": "!!!Close",
5195 "end": { 5221 "end": {
5196 "column": 3, 5222 "column": 3,
5197 "line": 123 5223 "line": 131
5198 }, 5224 },
5199 "file": "src/lib/Menu.js", 5225 "file": "src/lib/Menu.js",
5200 "id": "menu.window.close", 5226 "id": "menu.window.close",
5201 "start": { 5227 "start": {
5202 "column": 9, 5228 "column": 9,
5203 "line": 120 5229 "line": 128
5204 } 5230 }
5205 }, 5231 },
5206 { 5232 {
5207 "defaultMessage": "!!!Learn More", 5233 "defaultMessage": "!!!Learn More",
5208 "end": { 5234 "end": {
5209 "column": 3, 5235 "column": 3,
5210 "line": 127 5236 "line": 135
5211 }, 5237 },
5212 "file": "src/lib/Menu.js", 5238 "file": "src/lib/Menu.js",
5213 "id": "menu.help.learnMore", 5239 "id": "menu.help.learnMore",
5214 "start": { 5240 "start": {
5215 "column": 13, 5241 "column": 13,
5216 "line": 124 5242 "line": 132
5217 } 5243 }
5218 }, 5244 },
5219 { 5245 {
5220 "defaultMessage": "!!!Changelog", 5246 "defaultMessage": "!!!Changelog",
5221 "end": { 5247 "end": {
5222 "column": 3, 5248 "column": 3,
5223 "line": 131 5249 "line": 139
5224 }, 5250 },
5225 "file": "src/lib/Menu.js", 5251 "file": "src/lib/Menu.js",
5226 "id": "menu.help.changelog", 5252 "id": "menu.help.changelog",
5227 "start": { 5253 "start": {
5228 "column": 13, 5254 "column": 13,
5229 "line": 128 5255 "line": 136
5230 } 5256 }
5231 }, 5257 },
5232 { 5258 {
5233 "defaultMessage": "!!!Support", 5259 "defaultMessage": "!!!Support",
5234 "end": { 5260 "end": {
5235 "column": 3, 5261 "column": 3,
5236 "line": 135 5262 "line": 143
5237 }, 5263 },
5238 "file": "src/lib/Menu.js", 5264 "file": "src/lib/Menu.js",
5239 "id": "menu.help.support", 5265 "id": "menu.help.support",
5240 "start": { 5266 "start": {
5241 "column": 11, 5267 "column": 11,
5242 "line": 132 5268 "line": 140
5243 } 5269 }
5244 }, 5270 },
5245 { 5271 {
5246 "defaultMessage": "!!!Copy Debug Information", 5272 "defaultMessage": "!!!Copy Debug Information",
5247 "end": { 5273 "end": {
5248 "column": 3, 5274 "column": 3,
5249 "line": 139 5275 "line": 147
5250 }, 5276 },
5251 "file": "src/lib/Menu.js", 5277 "file": "src/lib/Menu.js",
5252 "id": "menu.help.debugInfo", 5278 "id": "menu.help.debugInfo",
5253 "start": { 5279 "start": {
5254 "column": 13, 5280 "column": 13,
5255 "line": 136 5281 "line": 144
5256 } 5282 }
5257 }, 5283 },
5258 { 5284 {
5259 "defaultMessage": "!!!Ferdi Debug Information", 5285 "defaultMessage": "!!!Ferdi Debug Information",
5260 "end": { 5286 "end": {
5261 "column": 3, 5287 "column": 3,
5262 "line": 143 5288 "line": 151
5263 }, 5289 },
5264 "file": "src/lib/Menu.js", 5290 "file": "src/lib/Menu.js",
5265 "id": "menu.help.debugInfoCopiedHeadline", 5291 "id": "menu.help.debugInfoCopiedHeadline",
5266 "start": { 5292 "start": {
5267 "column": 27, 5293 "column": 27,
5268 "line": 140 5294 "line": 148
5269 } 5295 }
5270 }, 5296 },
5271 { 5297 {
5272 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 5298 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
5273 "end": { 5299 "end": {
5274 "column": 3, 5300 "column": 3,
5275 "line": 147 5301 "line": 155
5276 }, 5302 },
5277 "file": "src/lib/Menu.js", 5303 "file": "src/lib/Menu.js",
5278 "id": "menu.help.debugInfoCopiedBody", 5304 "id": "menu.help.debugInfoCopiedBody",
5279 "start": { 5305 "start": {
5280 "column": 23, 5306 "column": 23,
5281 "line": 144 5307 "line": 152
5282 } 5308 }
5283 }, 5309 },
5284 { 5310 {
5285 "defaultMessage": "!!!Terms of Service", 5311 "defaultMessage": "!!!Terms of Service",
5286 "end": { 5312 "end": {
5287 "column": 3, 5313 "column": 3,
5288 "line": 151 5314 "line": 159
5289 }, 5315 },
5290 "file": "src/lib/Menu.js", 5316 "file": "src/lib/Menu.js",
5291 "id": "menu.help.tos", 5317 "id": "menu.help.tos",
5292 "start": { 5318 "start": {
5293 "column": 7, 5319 "column": 7,
5294 "line": 148 5320 "line": 156
5295 } 5321 }
5296 }, 5322 },
5297 { 5323 {
5298 "defaultMessage": "!!!Privacy Statement", 5324 "defaultMessage": "!!!Privacy Statement",
5299 "end": { 5325 "end": {
5300 "column": 3, 5326 "column": 3,
5301 "line": 155 5327 "line": 163
5302 }, 5328 },
5303 "file": "src/lib/Menu.js", 5329 "file": "src/lib/Menu.js",
5304 "id": "menu.help.privacy", 5330 "id": "menu.help.privacy",
5305 "start": { 5331 "start": {
5306 "column": 11, 5332 "column": 11,
5307 "line": 152 5333 "line": 160
5308 } 5334 }
5309 }, 5335 },
5310 { 5336 {
5311 "defaultMessage": "!!!File", 5337 "defaultMessage": "!!!File",
5312 "end": { 5338 "end": {
5313 "column": 3, 5339 "column": 3,
5314 "line": 159 5340 "line": 167
5315 }, 5341 },
5316 "file": "src/lib/Menu.js", 5342 "file": "src/lib/Menu.js",
5317 "id": "menu.file", 5343 "id": "menu.file",
5318 "start": { 5344 "start": {
5319 "column": 8, 5345 "column": 8,
5320 "line": 156 5346 "line": 164
5321 } 5347 }
5322 }, 5348 },
5323 { 5349 {
5324 "defaultMessage": "!!!View", 5350 "defaultMessage": "!!!View",
5325 "end": { 5351 "end": {
5326 "column": 3, 5352 "column": 3,
5327 "line": 163 5353 "line": 171
5328 }, 5354 },
5329 "file": "src/lib/Menu.js", 5355 "file": "src/lib/Menu.js",
5330 "id": "menu.view", 5356 "id": "menu.view",
5331 "start": { 5357 "start": {
5332 "column": 8, 5358 "column": 8,
5333 "line": 160 5359 "line": 168
5334 } 5360 }
5335 }, 5361 },
5336 { 5362 {
5337 "defaultMessage": "!!!Services", 5363 "defaultMessage": "!!!Services",
5338 "end": { 5364 "end": {
5339 "column": 3, 5365 "column": 3,
5340 "line": 167 5366 "line": 175
5341 }, 5367 },
5342 "file": "src/lib/Menu.js", 5368 "file": "src/lib/Menu.js",
5343 "id": "menu.services", 5369 "id": "menu.services",
5344 "start": { 5370 "start": {
5345 "column": 12, 5371 "column": 12,
5346 "line": 164 5372 "line": 172
5347 } 5373 }
5348 }, 5374 },
5349 { 5375 {
5350 "defaultMessage": "!!!Window", 5376 "defaultMessage": "!!!Window",
5351 "end": { 5377 "end": {
5352 "column": 3, 5378 "column": 3,
5353 "line": 171 5379 "line": 179
5354 }, 5380 },
5355 "file": "src/lib/Menu.js", 5381 "file": "src/lib/Menu.js",
5356 "id": "menu.window", 5382 "id": "menu.window",
5357 "start": { 5383 "start": {
5358 "column": 10, 5384 "column": 10,
5359 "line": 168 5385 "line": 176
5360 } 5386 }
5361 }, 5387 },
5362 { 5388 {
5363 "defaultMessage": "!!!Help", 5389 "defaultMessage": "!!!Help",
5364 "end": { 5390 "end": {
5365 "column": 3, 5391 "column": 3,
5366 "line": 175 5392 "line": 183
5367 }, 5393 },
5368 "file": "src/lib/Menu.js", 5394 "file": "src/lib/Menu.js",
5369 "id": "menu.help", 5395 "id": "menu.help",
5370 "start": { 5396 "start": {
5371 "column": 8, 5397 "column": 8,
5372 "line": 172 5398 "line": 180
5373 } 5399 }
5374 }, 5400 },
5375 { 5401 {
5376 "defaultMessage": "!!!About Ferdi", 5402 "defaultMessage": "!!!About Ferdi",
5377 "end": { 5403 "end": {
5378 "column": 3, 5404 "column": 3,
5379 "line": 179 5405 "line": 187
5380 }, 5406 },
5381 "file": "src/lib/Menu.js", 5407 "file": "src/lib/Menu.js",
5382 "id": "menu.app.about", 5408 "id": "menu.app.about",
5383 "start": { 5409 "start": {
5384 "column": 9, 5410 "column": 9,
5385 "line": 176 5411 "line": 184
5386 } 5412 }
5387 }, 5413 },
5388 { 5414 {
5389 "defaultMessage": "!!!What's new?", 5415 "defaultMessage": "!!!What's new?",
5390 "end": { 5416 "end": {
5391 "column": 3, 5417 "column": 3,
5392 "line": 183 5418 "line": 191
5393 }, 5419 },
5394 "file": "src/lib/Menu.js", 5420 "file": "src/lib/Menu.js",
5395 "id": "menu.app.announcement", 5421 "id": "menu.app.announcement",
5396 "start": { 5422 "start": {
5397 "column": 16, 5423 "column": 16,
5398 "line": 180 5424 "line": 188
5399 } 5425 }
5400 }, 5426 },
5401 { 5427 {
5402 "defaultMessage": "!!!Settings", 5428 "defaultMessage": "!!!Settings",
5403 "end": { 5429 "end": {
5404 "column": 3, 5430 "column": 3,
5405 "line": 187 5431 "line": 195
5406 }, 5432 },
5407 "file": "src/lib/Menu.js", 5433 "file": "src/lib/Menu.js",
5408 "id": "menu.app.settings", 5434 "id": "menu.app.settings",
5409 "start": { 5435 "start": {
5410 "column": 12, 5436 "column": 12,
5411 "line": 184 5437 "line": 192
5412 } 5438 }
5413 }, 5439 },
5414 { 5440 {
5415 "defaultMessage": "!!!Check for updates", 5441 "defaultMessage": "!!!Check for updates",
5416 "end": { 5442 "end": {
5417 "column": 3, 5443 "column": 3,
5418 "line": 191 5444 "line": 199
5419 }, 5445 },
5420 "file": "src/lib/Menu.js", 5446 "file": "src/lib/Menu.js",
5421 "id": "menu.app.checkForUpdates", 5447 "id": "menu.app.checkForUpdates",
5422 "start": { 5448 "start": {
5423 "column": 19, 5449 "column": 19,
5424 "line": 188 5450 "line": 196
5425 } 5451 }
5426 }, 5452 },
5427 { 5453 {
5428 "defaultMessage": "!!!Hide", 5454 "defaultMessage": "!!!Hide",
5429 "end": { 5455 "end": {
5430 "column": 3, 5456 "column": 3,
5431 "line": 195 5457 "line": 203
5432 }, 5458 },
5433 "file": "src/lib/Menu.js", 5459 "file": "src/lib/Menu.js",
5434 "id": "menu.app.hide", 5460 "id": "menu.app.hide",
5435 "start": { 5461 "start": {
5436 "column": 8, 5462 "column": 8,
5437 "line": 192 5463 "line": 200
5438 } 5464 }
5439 }, 5465 },
5440 { 5466 {
5441 "defaultMessage": "!!!Hide Others", 5467 "defaultMessage": "!!!Hide Others",
5442 "end": { 5468 "end": {
5443 "column": 3, 5469 "column": 3,
5444 "line": 199 5470 "line": 207
5445 }, 5471 },
5446 "file": "src/lib/Menu.js", 5472 "file": "src/lib/Menu.js",
5447 "id": "menu.app.hideOthers", 5473 "id": "menu.app.hideOthers",
5448 "start": { 5474 "start": {
5449 "column": 14, 5475 "column": 14,
5450 "line": 196 5476 "line": 204
5451 } 5477 }
5452 }, 5478 },
5453 { 5479 {
5454 "defaultMessage": "!!!Unhide", 5480 "defaultMessage": "!!!Unhide",
5455 "end": { 5481 "end": {
5456 "column": 3, 5482 "column": 3,
5457 "line": 203 5483 "line": 211
5458 }, 5484 },
5459 "file": "src/lib/Menu.js", 5485 "file": "src/lib/Menu.js",
5460 "id": "menu.app.unhide", 5486 "id": "menu.app.unhide",
5461 "start": { 5487 "start": {
5462 "column": 10, 5488 "column": 10,
5463 "line": 200 5489 "line": 208
5464 } 5490 }
5465 }, 5491 },
5466 { 5492 {
5467 "defaultMessage": "!!!Auto-hide menu bar", 5493 "defaultMessage": "!!!Auto-hide menu bar",
5468 "end": { 5494 "end": {
5469 "column": 3, 5495 "column": 3,
5470 "line": 207 5496 "line": 215
5471 }, 5497 },
5472 "file": "src/lib/Menu.js", 5498 "file": "src/lib/Menu.js",
5473 "id": "menu.app.autohideMenuBar", 5499 "id": "menu.app.autohideMenuBar",
5474 "start": { 5500 "start": {
5475 "column": 19, 5501 "column": 19,
5476 "line": 204 5502 "line": 212
5477 } 5503 }
5478 }, 5504 },
5479 { 5505 {
5480 "defaultMessage": "!!!Quit", 5506 "defaultMessage": "!!!Quit",
5481 "end": { 5507 "end": {
5482 "column": 3, 5508 "column": 3,
5483 "line": 211 5509 "line": 219
5484 }, 5510 },
5485 "file": "src/lib/Menu.js", 5511 "file": "src/lib/Menu.js",
5486 "id": "menu.app.quit", 5512 "id": "menu.app.quit",
5487 "start": { 5513 "start": {
5488 "column": 8, 5514 "column": 8,
5489 "line": 208 5515 "line": 216
5490 } 5516 }
5491 }, 5517 },
5492 { 5518 {
5493 "defaultMessage": "!!!Add New Service...", 5519 "defaultMessage": "!!!Add New Service...",
5494 "end": { 5520 "end": {
5495 "column": 3, 5521 "column": 3,
5496 "line": 215 5522 "line": 223
5497 }, 5523 },
5498 "file": "src/lib/Menu.js", 5524 "file": "src/lib/Menu.js",
5499 "id": "menu.services.addNewService", 5525 "id": "menu.services.addNewService",
5500 "start": { 5526 "start": {
5501 "column": 17, 5527 "column": 17,
5502 "line": 212 5528 "line": 220
5503 } 5529 }
5504 }, 5530 },
5505 { 5531 {
5506 "defaultMessage": "!!!Add New Workspace...", 5532 "defaultMessage": "!!!Add New Workspace...",
5507 "end": { 5533 "end": {
5508 "column": 3, 5534 "column": 3,
5509 "line": 219 5535 "line": 227
5510 }, 5536 },
5511 "file": "src/lib/Menu.js", 5537 "file": "src/lib/Menu.js",
5512 "id": "menu.workspaces.addNewWorkspace", 5538 "id": "menu.workspaces.addNewWorkspace",
5513 "start": { 5539 "start": {
5514 "column": 19, 5540 "column": 19,
5515 "line": 216 5541 "line": 224
5516 } 5542 }
5517 }, 5543 },
5518 { 5544 {
5519 "defaultMessage": "!!!Open workspace drawer", 5545 "defaultMessage": "!!!Open workspace drawer",
5520 "end": { 5546 "end": {
5521 "column": 3, 5547 "column": 3,
5522 "line": 223 5548 "line": 231
5523 }, 5549 },
5524 "file": "src/lib/Menu.js", 5550 "file": "src/lib/Menu.js",
5525 "id": "menu.workspaces.openWorkspaceDrawer", 5551 "id": "menu.workspaces.openWorkspaceDrawer",
5526 "start": { 5552 "start": {
5527 "column": 23, 5553 "column": 23,
5528 "line": 220 5554 "line": 228
5529 } 5555 }
5530 }, 5556 },
5531 { 5557 {
5532 "defaultMessage": "!!!Close workspace drawer", 5558 "defaultMessage": "!!!Close workspace drawer",
5533 "end": { 5559 "end": {
5534 "column": 3, 5560 "column": 3,
5535 "line": 227 5561 "line": 235
5536 }, 5562 },
5537 "file": "src/lib/Menu.js", 5563 "file": "src/lib/Menu.js",
5538 "id": "menu.workspaces.closeWorkspaceDrawer", 5564 "id": "menu.workspaces.closeWorkspaceDrawer",
5539 "start": { 5565 "start": {
5540 "column": 24, 5566 "column": 24,
5541 "line": 224 5567 "line": 232
5542 } 5568 }
5543 }, 5569 },
5544 { 5570 {
5545 "defaultMessage": "!!!Activate next service...", 5571 "defaultMessage": "!!!Activate next service...",
5546 "end": { 5572 "end": {
5547 "column": 3, 5573 "column": 3,
5548 "line": 231 5574 "line": 239
5549 }, 5575 },
5550 "file": "src/lib/Menu.js", 5576 "file": "src/lib/Menu.js",
5551 "id": "menu.services.setNextServiceActive", 5577 "id": "menu.services.setNextServiceActive",
5552 "start": { 5578 "start": {
5553 "column": 23, 5579 "column": 23,
5554 "line": 228 5580 "line": 236
5555 } 5581 }
5556 }, 5582 },
5557 { 5583 {
5558 "defaultMessage": "!!!Activate previous service...", 5584 "defaultMessage": "!!!Activate previous service...",
5559 "end": { 5585 "end": {
5560 "column": 3, 5586 "column": 3,
5561 "line": 235 5587 "line": 243
5562 }, 5588 },
5563 "file": "src/lib/Menu.js", 5589 "file": "src/lib/Menu.js",
5564 "id": "menu.services.activatePreviousService", 5590 "id": "menu.services.activatePreviousService",
5565 "start": { 5591 "start": {
5566 "column": 27, 5592 "column": 27,
5567 "line": 232 5593 "line": 240
5568 } 5594 }
5569 }, 5595 },
5570 { 5596 {
5571 "defaultMessage": "!!!Disable notifications & audio", 5597 "defaultMessage": "!!!Disable notifications & audio",
5572 "end": { 5598 "end": {
5573 "column": 3, 5599 "column": 3,
5574 "line": 239 5600 "line": 247
5575 }, 5601 },
5576 "file": "src/lib/Menu.js", 5602 "file": "src/lib/Menu.js",
5577 "id": "sidebar.muteApp", 5603 "id": "sidebar.muteApp",
5578 "start": { 5604 "start": {
5579 "column": 11, 5605 "column": 11,
5580 "line": 236 5606 "line": 244
5581 } 5607 }
5582 }, 5608 },
5583 { 5609 {
5584 "defaultMessage": "!!!Enable notifications & audio", 5610 "defaultMessage": "!!!Enable notifications & audio",
5585 "end": { 5611 "end": {
5586 "column": 3, 5612 "column": 3,
5587 "line": 243 5613 "line": 251
5588 }, 5614 },
5589 "file": "src/lib/Menu.js", 5615 "file": "src/lib/Menu.js",
5590 "id": "sidebar.unmuteApp", 5616 "id": "sidebar.unmuteApp",
5591 "start": { 5617 "start": {
5592 "column": 13, 5618 "column": 13,
5593 "line": 240 5619 "line": 248
5594 } 5620 }
5595 }, 5621 },
5596 { 5622 {
5597 "defaultMessage": "!!!Workspaces", 5623 "defaultMessage": "!!!Workspaces",
5598 "end": { 5624 "end": {
5599 "column": 3, 5625 "column": 3,
5600 "line": 247 5626 "line": 255
5601 }, 5627 },
5602 "file": "src/lib/Menu.js", 5628 "file": "src/lib/Menu.js",
5603 "id": "menu.workspaces", 5629 "id": "menu.workspaces",
5604 "start": { 5630 "start": {
5605 "column": 14, 5631 "column": 14,
5606 "line": 244 5632 "line": 252
5607 } 5633 }
5608 }, 5634 },
5609 { 5635 {
5610 "defaultMessage": "!!!Default", 5636 "defaultMessage": "!!!Default",
5611 "end": { 5637 "end": {
5612 "column": 3, 5638 "column": 3,
5613 "line": 251 5639 "line": 259
5614 }, 5640 },
5615 "file": "src/lib/Menu.js", 5641 "file": "src/lib/Menu.js",
5616 "id": "menu.workspaces.defaultWorkspace", 5642 "id": "menu.workspaces.defaultWorkspace",
5617 "start": { 5643 "start": {
5618 "column": 20, 5644 "column": 20,
5619 "line": 248 5645 "line": 256
5620 } 5646 }
5621 }, 5647 },
5622 { 5648 {
5623 "defaultMessage": "!!!Todos", 5649 "defaultMessage": "!!!Todos",
5624 "end": { 5650 "end": {
5625 "column": 3, 5651 "column": 3,
5626 "line": 255 5652 "line": 263
5627 }, 5653 },
5628 "file": "src/lib/Menu.js", 5654 "file": "src/lib/Menu.js",
5629 "id": "menu.todos", 5655 "id": "menu.todos",
5630 "start": { 5656 "start": {
5631 "column": 9, 5657 "column": 9,
5632 "line": 252 5658 "line": 260
5633 } 5659 }
5634 }, 5660 },
5635 { 5661 {
5636 "defaultMessage": "!!!Open Todos drawer", 5662 "defaultMessage": "!!!Open Todos drawer",
5637 "end": { 5663 "end": {
5638 "column": 3, 5664 "column": 3,
5639 "line": 259 5665 "line": 267
5640 }, 5666 },
5641 "file": "src/lib/Menu.js", 5667 "file": "src/lib/Menu.js",
5642 "id": "menu.Todoss.openTodosDrawer", 5668 "id": "menu.Todoss.openTodosDrawer",
5643 "start": { 5669 "start": {
5644 "column": 19, 5670 "column": 19,
5645 "line": 256 5671 "line": 264
5646 } 5672 }
5647 }, 5673 },
5648 { 5674 {
5649 "defaultMessage": "!!!Close Todos drawer", 5675 "defaultMessage": "!!!Close Todos drawer",
5650 "end": { 5676 "end": {
5651 "column": 3, 5677 "column": 3,
5652 "line": 263 5678 "line": 271
5653 }, 5679 },
5654 "file": "src/lib/Menu.js", 5680 "file": "src/lib/Menu.js",
5655 "id": "menu.Todoss.closeTodosDrawer", 5681 "id": "menu.Todoss.closeTodosDrawer",
5656 "start": { 5682 "start": {
5657 "column": 20, 5683 "column": 20,
5658 "line": 260 5684 "line": 268
5659 } 5685 }
5660 }, 5686 },
5661 { 5687 {
5662 "defaultMessage": "!!!Enable Todos", 5688 "defaultMessage": "!!!Enable Todos",
5663 "end": { 5689 "end": {
5664 "column": 3, 5690 "column": 3,
5665 "line": 267 5691 "line": 275
5666 }, 5692 },
5667 "file": "src/lib/Menu.js", 5693 "file": "src/lib/Menu.js",
5668 "id": "menu.todos.enableTodos", 5694 "id": "menu.todos.enableTodos",
5669 "start": { 5695 "start": {
5670 "column": 15, 5696 "column": 15,
5671 "line": 264 5697 "line": 272
5672 } 5698 }
5673 } 5699 }
5674 ], 5700 ],
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index d19ddff13..dd1b00d79 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -99,8 +99,10 @@
99 "menu.todos": "Todos", 99 "menu.todos": "Todos",
100 "menu.todos.enableTodos": "Enable Todos", 100 "menu.todos.enableTodos": "Enable Todos",
101 "menu.view": "View", 101 "menu.view": "View",
102 "menu.view.back": "Back",
102 "menu.view.enterFullScreen": "Enter Full Screen", 103 "menu.view.enterFullScreen": "Enter Full Screen",
103 "menu.view.exitFullScreen": "Exit Full Screen", 104 "menu.view.exitFullScreen": "Exit Full Screen",
105 "menu.view.forward": "Forward",
104 "menu.view.reloadFranz": "Reload Ferdi", 106 "menu.view.reloadFranz": "Reload Ferdi",
105 "menu.view.reloadService": "Reload Service", 107 "menu.view.reloadService": "Reload Service",
106 "menu.view.resetZoom": "Actual Size", 108 "menu.view.resetZoom": "Actual Size",
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json
index aac207e0a..311ed5362 100644
--- a/src/i18n/messages/src/lib/Menu.json
+++ b/src/i18n/messages/src/lib/Menu.json
@@ -182,15 +182,41 @@
182 } 182 }
183 }, 183 },
184 { 184 {
185 "id": "menu.view.back",
186 "defaultMessage": "!!!Back",
187 "file": "src/lib/Menu.js",
188 "start": {
189 "line": 72,
190 "column": 8
191 },
192 "end": {
193 "line": 75,
194 "column": 3
195 }
196 },
197 {
198 "id": "menu.view.forward",
199 "defaultMessage": "!!!Forward",
200 "file": "src/lib/Menu.js",
201 "start": {
202 "line": 76,
203 "column": 11
204 },
205 "end": {
206 "line": 79,
207 "column": 3
208 }
209 },
210 {
185 "id": "menu.view.resetZoom", 211 "id": "menu.view.resetZoom",
186 "defaultMessage": "!!!Actual Size", 212 "defaultMessage": "!!!Actual Size",
187 "file": "src/lib/Menu.js", 213 "file": "src/lib/Menu.js",
188 "start": { 214 "start": {
189 "line": 72, 215 "line": 80,
190 "column": 13 216 "column": 13
191 }, 217 },
192 "end": { 218 "end": {
193 "line": 75, 219 "line": 83,
194 "column": 3 220 "column": 3
195 } 221 }
196 }, 222 },
@@ -199,11 +225,11 @@
199 "defaultMessage": "!!!Zoom In", 225 "defaultMessage": "!!!Zoom In",
200 "file": "src/lib/Menu.js", 226 "file": "src/lib/Menu.js",
201 "start": { 227 "start": {
202 "line": 76, 228 "line": 84,
203 "column": 10 229 "column": 10
204 }, 230 },
205 "end": { 231 "end": {
206 "line": 79, 232 "line": 87,
207 "column": 3 233 "column": 3
208 } 234 }
209 }, 235 },
@@ -212,11 +238,11 @@
212 "defaultMessage": "!!!Zoom Out", 238 "defaultMessage": "!!!Zoom Out",
213 "file": "src/lib/Menu.js", 239 "file": "src/lib/Menu.js",
214 "start": { 240 "start": {
215 "line": 80, 241 "line": 88,
216 "column": 11 242 "column": 11
217 }, 243 },
218 "end": { 244 "end": {
219 "line": 83, 245 "line": 91,
220 "column": 3 246 "column": 3
221 } 247 }
222 }, 248 },
@@ -225,11 +251,11 @@
225 "defaultMessage": "!!!Enter Full Screen", 251 "defaultMessage": "!!!Enter Full Screen",
226 "file": "src/lib/Menu.js", 252 "file": "src/lib/Menu.js",
227 "start": { 253 "start": {
228 "line": 84, 254 "line": 92,
229 "column": 19 255 "column": 19
230 }, 256 },
231 "end": { 257 "end": {
232 "line": 87, 258 "line": 95,
233 "column": 3 259 "column": 3
234 } 260 }
235 }, 261 },
@@ -238,11 +264,11 @@
238 "defaultMessage": "!!!Exit Full Screen", 264 "defaultMessage": "!!!Exit Full Screen",
239 "file": "src/lib/Menu.js", 265 "file": "src/lib/Menu.js",
240 "start": { 266 "start": {
241 "line": 88, 267 "line": 96,
242 "column": 18 268 "column": 18
243 }, 269 },
244 "end": { 270 "end": {
245 "line": 91, 271 "line": 99,
246 "column": 3 272 "column": 3
247 } 273 }
248 }, 274 },
@@ -251,11 +277,11 @@
251 "defaultMessage": "!!!Toggle Full Screen", 277 "defaultMessage": "!!!Toggle Full Screen",
252 "file": "src/lib/Menu.js", 278 "file": "src/lib/Menu.js",
253 "start": { 279 "start": {
254 "line": 92, 280 "line": 100,
255 "column": 20 281 "column": 20
256 }, 282 },
257 "end": { 283 "end": {
258 "line": 95, 284 "line": 103,
259 "column": 3 285 "column": 3
260 } 286 }
261 }, 287 },
@@ -264,11 +290,11 @@
264 "defaultMessage": "!!!Toggle Developer Tools", 290 "defaultMessage": "!!!Toggle Developer Tools",
265 "file": "src/lib/Menu.js", 291 "file": "src/lib/Menu.js",
266 "start": { 292 "start": {
267 "line": 96, 293 "line": 104,
268 "column": 18 294 "column": 18
269 }, 295 },
270 "end": { 296 "end": {
271 "line": 99, 297 "line": 107,
272 "column": 3 298 "column": 3
273 } 299 }
274 }, 300 },
@@ -277,11 +303,11 @@
277 "defaultMessage": "!!!Toggle Todos Developer Tools", 303 "defaultMessage": "!!!Toggle Todos Developer Tools",
278 "file": "src/lib/Menu.js", 304 "file": "src/lib/Menu.js",
279 "start": { 305 "start": {
280 "line": 100, 306 "line": 108,
281 "column": 23 307 "column": 23
282 }, 308 },
283 "end": { 309 "end": {
284 "line": 103, 310 "line": 111,
285 "column": 3 311 "column": 3
286 } 312 }
287 }, 313 },
@@ -290,11 +316,11 @@
290 "defaultMessage": "!!!Toggle Service Developer Tools", 316 "defaultMessage": "!!!Toggle Service Developer Tools",
291 "file": "src/lib/Menu.js", 317 "file": "src/lib/Menu.js",
292 "start": { 318 "start": {
293 "line": 104, 319 "line": 112,
294 "column": 25 320 "column": 25
295 }, 321 },
296 "end": { 322 "end": {
297 "line": 107, 323 "line": 115,
298 "column": 3 324 "column": 3
299 } 325 }
300 }, 326 },
@@ -303,11 +329,11 @@
303 "defaultMessage": "!!!Reload Service", 329 "defaultMessage": "!!!Reload Service",
304 "file": "src/lib/Menu.js", 330 "file": "src/lib/Menu.js",
305 "start": { 331 "start": {
306 "line": 108, 332 "line": 116,
307 "column": 17 333 "column": 17
308 }, 334 },
309 "end": { 335 "end": {
310 "line": 111, 336 "line": 119,
311 "column": 3 337 "column": 3
312 } 338 }
313 }, 339 },
@@ -316,11 +342,11 @@
316 "defaultMessage": "!!!Reload Ferdi", 342 "defaultMessage": "!!!Reload Ferdi",
317 "file": "src/lib/Menu.js", 343 "file": "src/lib/Menu.js",
318 "start": { 344 "start": {
319 "line": 112, 345 "line": 120,
320 "column": 15 346 "column": 15
321 }, 347 },
322 "end": { 348 "end": {
323 "line": 115, 349 "line": 123,
324 "column": 3 350 "column": 3
325 } 351 }
326 }, 352 },
@@ -329,11 +355,11 @@
329 "defaultMessage": "!!!Minimize", 355 "defaultMessage": "!!!Minimize",
330 "file": "src/lib/Menu.js", 356 "file": "src/lib/Menu.js",
331 "start": { 357 "start": {
332 "line": 116, 358 "line": 124,
333 "column": 12 359 "column": 12
334 }, 360 },
335 "end": { 361 "end": {
336 "line": 119, 362 "line": 127,
337 "column": 3 363 "column": 3
338 } 364 }
339 }, 365 },
@@ -342,11 +368,11 @@
342 "defaultMessage": "!!!Close", 368 "defaultMessage": "!!!Close",
343 "file": "src/lib/Menu.js", 369 "file": "src/lib/Menu.js",
344 "start": { 370 "start": {
345 "line": 120, 371 "line": 128,
346 "column": 9 372 "column": 9
347 }, 373 },
348 "end": { 374 "end": {
349 "line": 123, 375 "line": 131,
350 "column": 3 376 "column": 3
351 } 377 }
352 }, 378 },
@@ -355,11 +381,11 @@
355 "defaultMessage": "!!!Learn More", 381 "defaultMessage": "!!!Learn More",
356 "file": "src/lib/Menu.js", 382 "file": "src/lib/Menu.js",
357 "start": { 383 "start": {
358 "line": 124, 384 "line": 132,
359 "column": 13 385 "column": 13
360 }, 386 },
361 "end": { 387 "end": {
362 "line": 127, 388 "line": 135,
363 "column": 3 389 "column": 3
364 } 390 }
365 }, 391 },
@@ -368,11 +394,11 @@
368 "defaultMessage": "!!!Changelog", 394 "defaultMessage": "!!!Changelog",
369 "file": "src/lib/Menu.js", 395 "file": "src/lib/Menu.js",
370 "start": { 396 "start": {
371 "line": 128, 397 "line": 136,
372 "column": 13 398 "column": 13
373 }, 399 },
374 "end": { 400 "end": {
375 "line": 131, 401 "line": 139,
376 "column": 3 402 "column": 3
377 } 403 }
378 }, 404 },
@@ -381,11 +407,11 @@
381 "defaultMessage": "!!!Support", 407 "defaultMessage": "!!!Support",
382 "file": "src/lib/Menu.js", 408 "file": "src/lib/Menu.js",
383 "start": { 409 "start": {
384 "line": 132, 410 "line": 140,
385 "column": 11 411 "column": 11
386 }, 412 },
387 "end": { 413 "end": {
388 "line": 135, 414 "line": 143,
389 "column": 3 415 "column": 3
390 } 416 }
391 }, 417 },
@@ -394,11 +420,11 @@
394 "defaultMessage": "!!!Copy Debug Information", 420 "defaultMessage": "!!!Copy Debug Information",
395 "file": "src/lib/Menu.js", 421 "file": "src/lib/Menu.js",
396 "start": { 422 "start": {
397 "line": 136, 423 "line": 144,
398 "column": 13 424 "column": 13
399 }, 425 },
400 "end": { 426 "end": {
401 "line": 139, 427 "line": 147,
402 "column": 3 428 "column": 3
403 } 429 }
404 }, 430 },
@@ -407,11 +433,11 @@
407 "defaultMessage": "!!!Ferdi Debug Information", 433 "defaultMessage": "!!!Ferdi Debug Information",
408 "file": "src/lib/Menu.js", 434 "file": "src/lib/Menu.js",
409 "start": { 435 "start": {
410 "line": 140, 436 "line": 148,
411 "column": 27 437 "column": 27
412 }, 438 },
413 "end": { 439 "end": {
414 "line": 143, 440 "line": 151,
415 "column": 3 441 "column": 3
416 } 442 }
417 }, 443 },
@@ -420,11 +446,11 @@
420 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 446 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
421 "file": "src/lib/Menu.js", 447 "file": "src/lib/Menu.js",
422 "start": { 448 "start": {
423 "line": 144, 449 "line": 152,
424 "column": 23 450 "column": 23
425 }, 451 },
426 "end": { 452 "end": {
427 "line": 147, 453 "line": 155,
428 "column": 3 454 "column": 3
429 } 455 }
430 }, 456 },
@@ -433,11 +459,11 @@
433 "defaultMessage": "!!!Terms of Service", 459 "defaultMessage": "!!!Terms of Service",
434 "file": "src/lib/Menu.js", 460 "file": "src/lib/Menu.js",
435 "start": { 461 "start": {
436 "line": 148, 462 "line": 156,
437 "column": 7 463 "column": 7
438 }, 464 },
439 "end": { 465 "end": {
440 "line": 151, 466 "line": 159,
441 "column": 3 467 "column": 3
442 } 468 }
443 }, 469 },
@@ -446,11 +472,11 @@
446 "defaultMessage": "!!!Privacy Statement", 472 "defaultMessage": "!!!Privacy Statement",
447 "file": "src/lib/Menu.js", 473 "file": "src/lib/Menu.js",
448 "start": { 474 "start": {
449 "line": 152, 475 "line": 160,
450 "column": 11 476 "column": 11
451 }, 477 },
452 "end": { 478 "end": {
453 "line": 155, 479 "line": 163,
454 "column": 3 480 "column": 3
455 } 481 }
456 }, 482 },
@@ -459,11 +485,11 @@
459 "defaultMessage": "!!!File", 485 "defaultMessage": "!!!File",
460 "file": "src/lib/Menu.js", 486 "file": "src/lib/Menu.js",
461 "start": { 487 "start": {
462 "line": 156, 488 "line": 164,
463 "column": 8 489 "column": 8
464 }, 490 },
465 "end": { 491 "end": {
466 "line": 159, 492 "line": 167,
467 "column": 3 493 "column": 3
468 } 494 }
469 }, 495 },
@@ -472,11 +498,11 @@
472 "defaultMessage": "!!!View", 498 "defaultMessage": "!!!View",
473 "file": "src/lib/Menu.js", 499 "file": "src/lib/Menu.js",
474 "start": { 500 "start": {
475 "line": 160, 501 "line": 168,
476 "column": 8 502 "column": 8
477 }, 503 },
478 "end": { 504 "end": {
479 "line": 163, 505 "line": 171,
480 "column": 3 506 "column": 3
481 } 507 }
482 }, 508 },
@@ -485,11 +511,11 @@
485 "defaultMessage": "!!!Services", 511 "defaultMessage": "!!!Services",
486 "file": "src/lib/Menu.js", 512 "file": "src/lib/Menu.js",
487 "start": { 513 "start": {
488 "line": 164, 514 "line": 172,
489 "column": 12 515 "column": 12
490 }, 516 },
491 "end": { 517 "end": {
492 "line": 167, 518 "line": 175,
493 "column": 3 519 "column": 3
494 } 520 }
495 }, 521 },
@@ -498,11 +524,11 @@
498 "defaultMessage": "!!!Window", 524 "defaultMessage": "!!!Window",
499 "file": "src/lib/Menu.js", 525 "file": "src/lib/Menu.js",
500 "start": { 526 "start": {
501 "line": 168, 527 "line": 176,
502 "column": 10 528 "column": 10
503 }, 529 },
504 "end": { 530 "end": {
505 "line": 171, 531 "line": 179,
506 "column": 3 532 "column": 3
507 } 533 }
508 }, 534 },
@@ -511,11 +537,11 @@
511 "defaultMessage": "!!!Help", 537 "defaultMessage": "!!!Help",
512 "file": "src/lib/Menu.js", 538 "file": "src/lib/Menu.js",
513 "start": { 539 "start": {
514 "line": 172, 540 "line": 180,
515 "column": 8 541 "column": 8
516 }, 542 },
517 "end": { 543 "end": {
518 "line": 175, 544 "line": 183,
519 "column": 3 545 "column": 3
520 } 546 }
521 }, 547 },
@@ -524,11 +550,11 @@
524 "defaultMessage": "!!!About Ferdi", 550 "defaultMessage": "!!!About Ferdi",
525 "file": "src/lib/Menu.js", 551 "file": "src/lib/Menu.js",
526 "start": { 552 "start": {
527 "line": 176, 553 "line": 184,
528 "column": 9 554 "column": 9
529 }, 555 },
530 "end": { 556 "end": {
531 "line": 179, 557 "line": 187,
532 "column": 3 558 "column": 3
533 } 559 }
534 }, 560 },
@@ -537,11 +563,11 @@
537 "defaultMessage": "!!!What's new?", 563 "defaultMessage": "!!!What's new?",
538 "file": "src/lib/Menu.js", 564 "file": "src/lib/Menu.js",
539 "start": { 565 "start": {
540 "line": 180, 566 "line": 188,
541 "column": 16 567 "column": 16
542 }, 568 },
543 "end": { 569 "end": {
544 "line": 183, 570 "line": 191,
545 "column": 3 571 "column": 3
546 } 572 }
547 }, 573 },
@@ -550,11 +576,11 @@
550 "defaultMessage": "!!!Settings", 576 "defaultMessage": "!!!Settings",
551 "file": "src/lib/Menu.js", 577 "file": "src/lib/Menu.js",
552 "start": { 578 "start": {
553 "line": 184, 579 "line": 192,
554 "column": 12 580 "column": 12
555 }, 581 },
556 "end": { 582 "end": {
557 "line": 187, 583 "line": 195,
558 "column": 3 584 "column": 3
559 } 585 }
560 }, 586 },
@@ -563,11 +589,11 @@
563 "defaultMessage": "!!!Check for updates", 589 "defaultMessage": "!!!Check for updates",
564 "file": "src/lib/Menu.js", 590 "file": "src/lib/Menu.js",
565 "start": { 591 "start": {
566 "line": 188, 592 "line": 196,
567 "column": 19 593 "column": 19
568 }, 594 },
569 "end": { 595 "end": {
570 "line": 191, 596 "line": 199,
571 "column": 3 597 "column": 3
572 } 598 }
573 }, 599 },
@@ -576,11 +602,11 @@
576 "defaultMessage": "!!!Hide", 602 "defaultMessage": "!!!Hide",
577 "file": "src/lib/Menu.js", 603 "file": "src/lib/Menu.js",
578 "start": { 604 "start": {
579 "line": 192, 605 "line": 200,
580 "column": 8 606 "column": 8
581 }, 607 },
582 "end": { 608 "end": {
583 "line": 195, 609 "line": 203,
584 "column": 3 610 "column": 3
585 } 611 }
586 }, 612 },
@@ -589,11 +615,11 @@
589 "defaultMessage": "!!!Hide Others", 615 "defaultMessage": "!!!Hide Others",
590 "file": "src/lib/Menu.js", 616 "file": "src/lib/Menu.js",
591 "start": { 617 "start": {
592 "line": 196, 618 "line": 204,
593 "column": 14 619 "column": 14
594 }, 620 },
595 "end": { 621 "end": {
596 "line": 199, 622 "line": 207,
597 "column": 3 623 "column": 3
598 } 624 }
599 }, 625 },
@@ -602,11 +628,11 @@
602 "defaultMessage": "!!!Unhide", 628 "defaultMessage": "!!!Unhide",
603 "file": "src/lib/Menu.js", 629 "file": "src/lib/Menu.js",
604 "start": { 630 "start": {
605 "line": 200, 631 "line": 208,
606 "column": 10 632 "column": 10
607 }, 633 },
608 "end": { 634 "end": {
609 "line": 203, 635 "line": 211,
610 "column": 3 636 "column": 3
611 } 637 }
612 }, 638 },
@@ -615,11 +641,11 @@
615 "defaultMessage": "!!!Auto-hide menu bar", 641 "defaultMessage": "!!!Auto-hide menu bar",
616 "file": "src/lib/Menu.js", 642 "file": "src/lib/Menu.js",
617 "start": { 643 "start": {
618 "line": 204, 644 "line": 212,
619 "column": 19 645 "column": 19
620 }, 646 },
621 "end": { 647 "end": {
622 "line": 207, 648 "line": 215,
623 "column": 3 649 "column": 3
624 } 650 }
625 }, 651 },
@@ -628,11 +654,11 @@
628 "defaultMessage": "!!!Quit", 654 "defaultMessage": "!!!Quit",
629 "file": "src/lib/Menu.js", 655 "file": "src/lib/Menu.js",
630 "start": { 656 "start": {
631 "line": 208, 657 "line": 216,
632 "column": 8 658 "column": 8
633 }, 659 },
634 "end": { 660 "end": {
635 "line": 211, 661 "line": 219,
636 "column": 3 662 "column": 3
637 } 663 }
638 }, 664 },
@@ -641,11 +667,11 @@
641 "defaultMessage": "!!!Add New Service...", 667 "defaultMessage": "!!!Add New Service...",
642 "file": "src/lib/Menu.js", 668 "file": "src/lib/Menu.js",
643 "start": { 669 "start": {
644 "line": 212, 670 "line": 220,
645 "column": 17 671 "column": 17
646 }, 672 },
647 "end": { 673 "end": {
648 "line": 215, 674 "line": 223,
649 "column": 3 675 "column": 3
650 } 676 }
651 }, 677 },
@@ -654,11 +680,11 @@
654 "defaultMessage": "!!!Add New Workspace...", 680 "defaultMessage": "!!!Add New Workspace...",
655 "file": "src/lib/Menu.js", 681 "file": "src/lib/Menu.js",
656 "start": { 682 "start": {
657 "line": 216, 683 "line": 224,
658 "column": 19 684 "column": 19
659 }, 685 },
660 "end": { 686 "end": {
661 "line": 219, 687 "line": 227,
662 "column": 3 688 "column": 3
663 } 689 }
664 }, 690 },
@@ -667,11 +693,11 @@
667 "defaultMessage": "!!!Open workspace drawer", 693 "defaultMessage": "!!!Open workspace drawer",
668 "file": "src/lib/Menu.js", 694 "file": "src/lib/Menu.js",
669 "start": { 695 "start": {
670 "line": 220, 696 "line": 228,
671 "column": 23 697 "column": 23
672 }, 698 },
673 "end": { 699 "end": {
674 "line": 223, 700 "line": 231,
675 "column": 3 701 "column": 3
676 } 702 }
677 }, 703 },
@@ -680,11 +706,11 @@
680 "defaultMessage": "!!!Close workspace drawer", 706 "defaultMessage": "!!!Close workspace drawer",
681 "file": "src/lib/Menu.js", 707 "file": "src/lib/Menu.js",
682 "start": { 708 "start": {
683 "line": 224, 709 "line": 232,
684 "column": 24 710 "column": 24
685 }, 711 },
686 "end": { 712 "end": {
687 "line": 227, 713 "line": 235,
688 "column": 3 714 "column": 3
689 } 715 }
690 }, 716 },
@@ -693,11 +719,11 @@
693 "defaultMessage": "!!!Activate next service...", 719 "defaultMessage": "!!!Activate next service...",
694 "file": "src/lib/Menu.js", 720 "file": "src/lib/Menu.js",
695 "start": { 721 "start": {
696 "line": 228, 722 "line": 236,
697 "column": 23 723 "column": 23
698 }, 724 },
699 "end": { 725 "end": {
700 "line": 231, 726 "line": 239,
701 "column": 3 727 "column": 3
702 } 728 }
703 }, 729 },
@@ -706,11 +732,11 @@
706 "defaultMessage": "!!!Activate previous service...", 732 "defaultMessage": "!!!Activate previous service...",
707 "file": "src/lib/Menu.js", 733 "file": "src/lib/Menu.js",
708 "start": { 734 "start": {
709 "line": 232, 735 "line": 240,
710 "column": 27 736 "column": 27
711 }, 737 },
712 "end": { 738 "end": {
713 "line": 235, 739 "line": 243,
714 "column": 3 740 "column": 3
715 } 741 }
716 }, 742 },
@@ -719,11 +745,11 @@
719 "defaultMessage": "!!!Disable notifications & audio", 745 "defaultMessage": "!!!Disable notifications & audio",
720 "file": "src/lib/Menu.js", 746 "file": "src/lib/Menu.js",
721 "start": { 747 "start": {
722 "line": 236, 748 "line": 244,
723 "column": 11 749 "column": 11
724 }, 750 },
725 "end": { 751 "end": {
726 "line": 239, 752 "line": 247,
727 "column": 3 753 "column": 3
728 } 754 }
729 }, 755 },
@@ -732,11 +758,11 @@
732 "defaultMessage": "!!!Enable notifications & audio", 758 "defaultMessage": "!!!Enable notifications & audio",
733 "file": "src/lib/Menu.js", 759 "file": "src/lib/Menu.js",
734 "start": { 760 "start": {
735 "line": 240, 761 "line": 248,
736 "column": 13 762 "column": 13
737 }, 763 },
738 "end": { 764 "end": {
739 "line": 243, 765 "line": 251,
740 "column": 3 766 "column": 3
741 } 767 }
742 }, 768 },
@@ -745,11 +771,11 @@
745 "defaultMessage": "!!!Workspaces", 771 "defaultMessage": "!!!Workspaces",
746 "file": "src/lib/Menu.js", 772 "file": "src/lib/Menu.js",
747 "start": { 773 "start": {
748 "line": 244, 774 "line": 252,
749 "column": 14 775 "column": 14
750 }, 776 },
751 "end": { 777 "end": {
752 "line": 247, 778 "line": 255,
753 "column": 3 779 "column": 3
754 } 780 }
755 }, 781 },
@@ -758,11 +784,11 @@
758 "defaultMessage": "!!!Default", 784 "defaultMessage": "!!!Default",
759 "file": "src/lib/Menu.js", 785 "file": "src/lib/Menu.js",
760 "start": { 786 "start": {
761 "line": 248, 787 "line": 256,
762 "column": 20 788 "column": 20
763 }, 789 },
764 "end": { 790 "end": {
765 "line": 251, 791 "line": 259,
766 "column": 3 792 "column": 3
767 } 793 }
768 }, 794 },
@@ -771,11 +797,11 @@
771 "defaultMessage": "!!!Todos", 797 "defaultMessage": "!!!Todos",
772 "file": "src/lib/Menu.js", 798 "file": "src/lib/Menu.js",
773 "start": { 799 "start": {
774 "line": 252, 800 "line": 260,
775 "column": 9 801 "column": 9
776 }, 802 },
777 "end": { 803 "end": {
778 "line": 255, 804 "line": 263,
779 "column": 3 805 "column": 3
780 } 806 }
781 }, 807 },
@@ -784,11 +810,11 @@
784 "defaultMessage": "!!!Open Todos drawer", 810 "defaultMessage": "!!!Open Todos drawer",
785 "file": "src/lib/Menu.js", 811 "file": "src/lib/Menu.js",
786 "start": { 812 "start": {
787 "line": 256, 813 "line": 264,
788 "column": 19 814 "column": 19
789 }, 815 },
790 "end": { 816 "end": {
791 "line": 259, 817 "line": 267,
792 "column": 3 818 "column": 3
793 } 819 }
794 }, 820 },
@@ -797,11 +823,11 @@
797 "defaultMessage": "!!!Close Todos drawer", 823 "defaultMessage": "!!!Close Todos drawer",
798 "file": "src/lib/Menu.js", 824 "file": "src/lib/Menu.js",
799 "start": { 825 "start": {
800 "line": 260, 826 "line": 268,
801 "column": 20 827 "column": 20
802 }, 828 },
803 "end": { 829 "end": {
804 "line": 263, 830 "line": 271,
805 "column": 3 831 "column": 3
806 } 832 }
807 }, 833 },
@@ -810,11 +836,11 @@
810 "defaultMessage": "!!!Enable Todos", 836 "defaultMessage": "!!!Enable Todos",
811 "file": "src/lib/Menu.js", 837 "file": "src/lib/Menu.js",
812 "start": { 838 "start": {
813 "line": 264, 839 "line": 272,
814 "column": 15 840 "column": 15
815 }, 841 },
816 "end": { 842 "end": {
817 "line": 267, 843 "line": 275,
818 "column": 3 844 "column": 3
819 } 845 }
820 } 846 }
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index c0436a501..f5d24951c 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -69,6 +69,14 @@ const menuItems = defineMessages({
69 id: 'menu.edit.emojiSymbols', 69 id: 'menu.edit.emojiSymbols',
70 defaultMessage: '!!!Emoji & Symbols', 70 defaultMessage: '!!!Emoji & Symbols',
71 }, 71 },
72 back: {
73 id: 'menu.view.back',
74 defaultMessage: '!!!Back',
75 },
76 forward: {
77 id: 'menu.view.forward',
78 defaultMessage: '!!!Forward',
79 },
72 resetZoom: { 80 resetZoom: {
73 id: 'menu.view.resetZoom', 81 id: 'menu.view.resetZoom',
74 defaultMessage: '!!!Actual Size', 82 defaultMessage: '!!!Actual Size',
@@ -324,6 +332,25 @@ const _templateFactory = intl => [
324 type: 'separator', 332 type: 'separator',
325 }, 333 },
326 { 334 {
335 label: intl.formatMessage(menuItems.back),
336 accelerator: 'CmdOrCtrl+Left',
337 click() {
338 const activeService = getActiveWebview();
339 activeService.goBack();
340 },
341 },
342 {
343 label: intl.formatMessage(menuItems.forward),
344 accelerator: 'CmdOrCtrl+Right',
345 click() {
346 const activeService = getActiveWebview();
347 activeService.goForward();
348 },
349 },
350 {
351 type: 'separator',
352 },
353 {
327 label: intl.formatMessage(menuItems.resetZoom), 354 label: intl.formatMessage(menuItems.resetZoom),
328 accelerator: 'Cmd+0', 355 accelerator: 'Cmd+0',
329 click() { 356 click() {