aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md9
-rw-r--r--screenshots/Ferdi-Todo.pngbin0 -> 319543 bytes
-rw-r--r--src/components/settings/settings/EditSettingsForm.js15
-rw-r--r--src/config.js1
-rw-r--r--src/containers/settings/EditSettingsScreen.js12
-rw-r--r--src/features/todos/components/TodosWebview.js12
-rw-r--r--src/i18n/locales/en-US.json2
-rw-r--r--src/i18n/messages/src/components/settings/settings/EditSettingsForm.json77
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json45
-rw-r--r--src/i18n/messages/src/features/todos/components/TodosWebview.json12
10 files changed, 125 insertions, 60 deletions
diff --git a/README.md b/README.md
index b2ee68a9f..c4f3f7554 100644
--- a/README.md
+++ b/README.md
@@ -12,16 +12,23 @@
12- [x] Makes all users Premium by default 12- [x] Makes all users Premium by default
13- [x] [Add option to change server to a custom](#servers) [ferdi-server](https://github.com/vantezzen/ferdi-server) 13- [x] [Add option to change server to a custom](#servers) [ferdi-server](https://github.com/vantezzen/ferdi-server)
14- [x] Remove "Franz is better together" popup 14- [x] Remove "Franz is better together" popup
15- [x] [Makes it possible to edit the "Franz Todo" server](#franz-todo)
15- [x] Makes RocketChat self-hosted generally available 16- [x] Makes RocketChat self-hosted generally available
16- [x] Comes with a custom branding proper to Ferdi 17- [x] Comes with a custom branding proper to Ferdi
17 18
18## Servers 19### Servers
19Ferdi adds the option to change your Ferdi server. By default, this will be `https://api.franzinfra.com` - the official Franz server. This allows Ferdi to stay compatible with your current Franz account. 20Ferdi adds the option to change your Ferdi server. By default, this will be `https://api.franzinfra.com` - the official Franz server. This allows Ferdi to stay compatible with your current Franz account.
20 21
21If you want to experience all Ferdi features, you may want to use a custom [ferdi-server](https://github.com/vantezzen/ferdi-server). ferdi-server allows you to use Premium features without restrictions and adds the ability to package and add additional recipes. You can also import your existing Franz account into your ferdi-server to start right where you left off. 22If you want to experience all Ferdi features, you may want to use a custom [ferdi-server](https://github.com/vantezzen/ferdi-server). ferdi-server allows you to use Premium features without restrictions and adds the ability to package and add additional recipes. You can also import your existing Franz account into your ferdi-server to start right where you left off.
22 23
23More information on how to set up a ferdi-server can be found at <https://github.com/vantezzen/ferdi-server/blob/master/README.md>. 24More information on how to set up a ferdi-server can be found at <https://github.com/vantezzen/ferdi-server/blob/master/README.md>.
24 25
26### Franz Todo
27Starting with Franz 5.3.0, Franz ships with the "Franz Todo" feature. This feature allows you to create a Franz Todo list that stays open at all times.
28
29Ferdi makes it possible to change the Franz Todo list server to any URL you want, e.g. to `todoist.com` to use your Todoist todo list in Franz todo.
30
31![Todoist in Franz Todo](screenshots/Ferdi-Todo.png)
25 32
26## Packaging 33## Packaging
27 34
diff --git a/screenshots/Ferdi-Todo.png b/screenshots/Ferdi-Todo.png
new file mode 100644
index 000000000..5bbacdfa0
--- /dev/null
+++ b/screenshots/Ferdi-Todo.png
Binary files differ
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index 19333fdff..da9d72009 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -26,6 +26,10 @@ const messages = defineMessages({
26 id: 'settings.app.serverInfo', 26 id: 'settings.app.serverInfo',
27 defaultMessage: '!!!We advice you to logout after changing your server as your settings might not be saved otherwise.', 27 defaultMessage: '!!!We advice you to logout after changing your server as your settings might not be saved otherwise.',
28 }, 28 },
29 todoServerInfo: {
30 id: 'settings.app.todoServerInfo',
31 defaultMessage: '!!!This server will be used for the "Franz Todo" feature. The default server will only work for premium users. (default: https://app.franztodos.com)'
32 },
29 headlineLanguage: { 33 headlineLanguage: {
30 id: 'settings.app.headlineLanguage', 34 id: 'settings.app.headlineLanguage',
31 defaultMessage: '!!!Language', 35 defaultMessage: '!!!Language',
@@ -181,7 +185,16 @@ export default @observer class EditSettingsForm extends Component {
181 <p>{ intl.formatMessage(messages.serverInfo) }</p> 185 <p>{ intl.formatMessage(messages.serverInfo) }</p>
182 )} 186 )}
183 {isTodosEnabled && ( 187 {isTodosEnabled && (
184 <Toggle field={form.$('enableTodos')} /> 188 <>
189 <Toggle field={form.$('enableTodos')} />
190 <Input
191 placeholder="Todo Server"
192 onChange={e => this.submit(e)}
193 field={form.$('todoServer')}
194 autoFocus
195 />
196 <p>{ intl.formatMessage(messages.todoServerInfo) }</p>
197 </>
185 )} 198 )}
186 199
187 {/* Appearance */} 200 {/* Appearance */}
diff --git a/src/config.js b/src/config.js
index dcbc53bf5..06b4b79a9 100644
--- a/src/config.js
+++ b/src/config.js
@@ -37,6 +37,7 @@ export const DEFAULT_APP_SETTINGS = {
37 enableSystemTray: true, 37 enableSystemTray: true,
38 minimizeToSystemTray: false, 38 minimizeToSystemTray: false,
39 server: LIVE_API, 39 server: LIVE_API,
40 todoServer: PRODUCTION_TODOS_FRONTEND_URL,
40 showDisabledServices: true, 41 showDisabledServices: true,
41 showMessageBadgeWhenMuted: true, 42 showMessageBadgeWhenMuted: true,
42 enableSpellchecking: true, 43 enableSpellchecking: true,
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 954f64dc6..d03b01539 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -17,7 +17,7 @@ import { getSelectOptions } from '../../helpers/i18n-helpers';
17import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; 17import EditSettingsForm from '../../components/settings/settings/EditSettingsForm';
18import ErrorBoundary from '../../components/util/ErrorBoundary'; 18import ErrorBoundary from '../../components/util/ErrorBoundary';
19 19
20import { API } from '../../environment'; 20import { API, TODOS_FRONTEND } from '../../environment';
21 21
22import globalMessages from '../../i18n/globalMessages'; 22import globalMessages from '../../i18n/globalMessages';
23import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos'; 23import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos';
@@ -47,6 +47,10 @@ const messages = defineMessages({
47 id: 'settings.app.form.server', 47 id: 'settings.app.form.server',
48 defaultMessage: '!!!Server', 48 defaultMessage: '!!!Server',
49 }, 49 },
50 todoServer: {
51 id: 'settings.app.form.todoServer',
52 defaultMessage: '!!!Todo Server',
53 },
50 language: { 54 language: {
51 id: 'settings.app.form.language', 55 id: 'settings.app.form.language',
52 defaultMessage: '!!!Language', 56 defaultMessage: '!!!Language',
@@ -107,6 +111,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
107 enableSystemTray: settingsData.enableSystemTray, 111 enableSystemTray: settingsData.enableSystemTray,
108 minimizeToSystemTray: settingsData.minimizeToSystemTray, 112 minimizeToSystemTray: settingsData.minimizeToSystemTray,
109 server: settingsData.server, 113 server: settingsData.server,
114 todoServer: settingsData.todoServer,
110 enableGPUAcceleration: settingsData.enableGPUAcceleration, 115 enableGPUAcceleration: settingsData.enableGPUAcceleration,
111 showDisabledServices: settingsData.showDisabledServices, 116 showDisabledServices: settingsData.showDisabledServices,
112 darkMode: settingsData.darkMode, 117 darkMode: settingsData.darkMode,
@@ -177,6 +182,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
177 value: settings.all.app.server || API, 182 value: settings.all.app.server || API,
178 default: API, 183 default: API,
179 }, 184 },
185 todoServer: {
186 label: intl.formatMessage(messages.todoServer),
187 value: settings.all.app.todoServer || TODOS_FRONTEND,
188 default: TODOS_FRONTEND,
189 },
180 showDisabledServices: { 190 showDisabledServices: {
181 label: intl.formatMessage(messages.showDisabledServices), 191 label: intl.formatMessage(messages.showDisabledServices),
182 value: settings.all.app.showDisabledServices, 192 value: settings.all.app.showDisabledServices,
diff --git a/src/features/todos/components/TodosWebview.js b/src/features/todos/components/TodosWebview.js
index c06183e37..530a5b2a9 100644
--- a/src/features/todos/components/TodosWebview.js
+++ b/src/features/todos/components/TodosWebview.js
@@ -1,6 +1,6 @@
1import React, { Component } from 'react'; 1import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 3import { observer, inject } from 'mobx-react';
4import injectSheet from 'react-jss'; 4import injectSheet from 'react-jss';
5import Webview from 'react-electron-web-view'; 5import Webview from 'react-electron-web-view';
6import { Icon } from '@meetfranz/ui'; 6import { Icon } from '@meetfranz/ui';
@@ -11,6 +11,8 @@ import * as environment from '../../../environment';
11import Appear from '../../../components/ui/effects/Appear'; 11import Appear from '../../../components/ui/effects/Appear';
12import UpgradeButton from '../../../components/ui/UpgradeButton'; 12import UpgradeButton from '../../../components/ui/UpgradeButton';
13 13
14import SettingsStore from '../../../stores/SettingsStore'
15
14const OPEN_TODOS_BUTTON_SIZE = 45; 16const OPEN_TODOS_BUTTON_SIZE = 45;
15const CLOSE_TODOS_BUTTON_SIZE = 35; 17const CLOSE_TODOS_BUTTON_SIZE = 35;
16 18
@@ -127,7 +129,7 @@ const styles = theme => ({
127 }, 129 },
128}); 130});
129 131
130@injectSheet(styles) @observer 132@injectSheet(styles) @observer @inject('stores')
131class TodosWebview extends Component { 133class TodosWebview extends Component {
132 static propTypes = { 134 static propTypes = {
133 classes: PropTypes.object.isRequired, 135 classes: PropTypes.object.isRequired,
@@ -139,6 +141,9 @@ class TodosWebview extends Component {
139 width: PropTypes.number.isRequired, 141 width: PropTypes.number.isRequired,
140 minWidth: PropTypes.number.isRequired, 142 minWidth: PropTypes.number.isRequired,
141 isTodosIncludedInCurrentPlan: PropTypes.bool.isRequired, 143 isTodosIncludedInCurrentPlan: PropTypes.bool.isRequired,
144 stores: PropTypes.shape({
145 settings: PropTypes.instanceOf(SettingsStore).isRequired,
146 }).isRequired,
142 }; 147 };
143 148
144 state = { 149 state = {
@@ -230,6 +235,7 @@ class TodosWebview extends Component {
230 isVisible, 235 isVisible,
231 togglePanel, 236 togglePanel,
232 isTodosIncludedInCurrentPlan, 237 isTodosIncludedInCurrentPlan,
238 stores,
233 } = this.props; 239 } = this.props;
234 240
235 const { 241 const {
@@ -276,7 +282,7 @@ class TodosWebview extends Component {
276 partition="persist:todos" 282 partition="persist:todos"
277 preload="./features/todos/preload.js" 283 preload="./features/todos/preload.js"
278 ref={(webview) => { this.webview = webview ? webview.view : null; }} 284 ref={(webview) => { this.webview = webview ? webview.view : null; }}
279 src={environment.TODOS_FRONTEND} 285 src={ stores.settings.all.app.todoServer || environment.TODOS_FRONTEND}
280 /> 286 />
281 ) : ( 287 ) : (
282 <Appear> 288 <Appear>
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 72a296430..93ec1840e 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -218,6 +218,7 @@
218 "settings.app.form.server": "Server", 218 "settings.app.form.server": "Server",
219 "settings.app.form.showDisabledServices": "Display disabled services tabs", 219 "settings.app.form.showDisabledServices": "Display disabled services tabs",
220 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 220 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
221 "settings.app.form.todoServer": "Todo Server",
221 "settings.app.headline": "Settings", 222 "settings.app.headline": "Settings",
222 "settings.app.headlineAdvanced": "Advanced", 223 "settings.app.headlineAdvanced": "Advanced",
223 "settings.app.headlineAppearance": "Appearance", 224 "settings.app.headlineAppearance": "Appearance",
@@ -228,6 +229,7 @@
228 "settings.app.restartRequired": "Changes require restart", 229 "settings.app.restartRequired": "Changes require restart",
229 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", 230 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
230 "settings.app.subheadlineCache": "Cache", 231 "settings.app.subheadlineCache": "Cache",
232 "settings.app.todoServerInfo": "This server will be used for the \"Franz Todo\" feature. The default server may not work for non-premium users. (default: https://app.franztodos.com)",
231 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 233 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
232 "settings.app.updateStatusAvailable": "Update available, downloading...", 234 "settings.app.updateStatusAvailable": "Update available, downloading...",
233 "settings.app.updateStatusSearching": "Is searching for update", 235 "settings.app.updateStatusSearching": "Is searching for update",
diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
index a62ddb5b8..52553a727 100644
--- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
+++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
@@ -39,15 +39,28 @@
39 } 39 }
40 }, 40 },
41 { 41 {
42 "id": "settings.app.todoServerInfo",
43 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. The default server will only work for premium users. (default: https://app.franztodos.com)",
44 "file": "src/components/settings/settings/EditSettingsForm.js",
45 "start": {
46 "line": 29,
47 "column": 18
48 },
49 "end": {
50 "line": 32,
51 "column": 3
52 }
53 },
54 {
42 "id": "settings.app.headlineLanguage", 55 "id": "settings.app.headlineLanguage",
43 "defaultMessage": "!!!Language", 56 "defaultMessage": "!!!Language",
44 "file": "src/components/settings/settings/EditSettingsForm.js", 57 "file": "src/components/settings/settings/EditSettingsForm.js",
45 "start": { 58 "start": {
46 "line": 29, 59 "line": 33,
47 "column": 20 60 "column": 20
48 }, 61 },
49 "end": { 62 "end": {
50 "line": 32, 63 "line": 36,
51 "column": 3 64 "column": 3
52 } 65 }
53 }, 66 },
@@ -56,11 +69,11 @@
56 "defaultMessage": "!!!Updates", 69 "defaultMessage": "!!!Updates",
57 "file": "src/components/settings/settings/EditSettingsForm.js", 70 "file": "src/components/settings/settings/EditSettingsForm.js",
58 "start": { 71 "start": {
59 "line": 33, 72 "line": 37,
60 "column": 19 73 "column": 19
61 }, 74 },
62 "end": { 75 "end": {
63 "line": 36, 76 "line": 40,
64 "column": 3 77 "column": 3
65 } 78 }
66 }, 79 },
@@ -69,11 +82,11 @@
69 "defaultMessage": "!!!Appearance", 82 "defaultMessage": "!!!Appearance",
70 "file": "src/components/settings/settings/EditSettingsForm.js", 83 "file": "src/components/settings/settings/EditSettingsForm.js",
71 "start": { 84 "start": {
72 "line": 37, 85 "line": 41,
73 "column": 22 86 "column": 22
74 }, 87 },
75 "end": { 88 "end": {
76 "line": 40, 89 "line": 44,
77 "column": 3 90 "column": 3
78 } 91 }
79 }, 92 },
@@ -82,11 +95,11 @@
82 "defaultMessage": "!!!Advanced", 95 "defaultMessage": "!!!Advanced",
83 "file": "src/components/settings/settings/EditSettingsForm.js", 96 "file": "src/components/settings/settings/EditSettingsForm.js",
84 "start": { 97 "start": {
85 "line": 41, 98 "line": 45,
86 "column": 20 99 "column": 20
87 }, 100 },
88 "end": { 101 "end": {
89 "line": 44, 102 "line": 48,
90 "column": 3 103 "column": 3
91 } 104 }
92 }, 105 },
@@ -95,11 +108,11 @@
95 "defaultMessage": "!!!Help us to translate Ferdi into your language.", 108 "defaultMessage": "!!!Help us to translate Ferdi into your language.",
96 "file": "src/components/settings/settings/EditSettingsForm.js", 109 "file": "src/components/settings/settings/EditSettingsForm.js",
97 "start": { 110 "start": {
98 "line": 45, 111 "line": 49,
99 "column": 19 112 "column": 19
100 }, 113 },
101 "end": { 114 "end": {
102 "line": 48, 115 "line": 52,
103 "column": 3 116 "column": 3
104 } 117 }
105 }, 118 },
@@ -108,11 +121,11 @@
108 "defaultMessage": "!!!Cache", 121 "defaultMessage": "!!!Cache",
109 "file": "src/components/settings/settings/EditSettingsForm.js", 122 "file": "src/components/settings/settings/EditSettingsForm.js",
110 "start": { 123 "start": {
111 "line": 49, 124 "line": 53,
112 "column": 20 125 "column": 20
113 }, 126 },
114 "end": { 127 "end": {
115 "line": 52, 128 "line": 56,
116 "column": 3 129 "column": 3
117 } 130 }
118 }, 131 },
@@ -121,11 +134,11 @@
121 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", 134 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
122 "file": "src/components/settings/settings/EditSettingsForm.js", 135 "file": "src/components/settings/settings/EditSettingsForm.js",
123 "start": { 136 "start": {
124 "line": 53, 137 "line": 57,
125 "column": 13 138 "column": 13
126 }, 139 },
127 "end": { 140 "end": {
128 "line": 56, 141 "line": 60,
129 "column": 3 142 "column": 3
130 } 143 }
131 }, 144 },
@@ -134,11 +147,11 @@
134 "defaultMessage": "!!!Clear cache", 147 "defaultMessage": "!!!Clear cache",
135 "file": "src/components/settings/settings/EditSettingsForm.js", 148 "file": "src/components/settings/settings/EditSettingsForm.js",
136 "start": { 149 "start": {
137 "line": 57, 150 "line": 61,
138 "column": 23 151 "column": 23
139 }, 152 },
140 "end": { 153 "end": {
141 "line": 60, 154 "line": 64,
142 "column": 3 155 "column": 3
143 } 156 }
144 }, 157 },
@@ -147,11 +160,11 @@
147 "defaultMessage": "!!!Check for updates", 160 "defaultMessage": "!!!Check for updates",
148 "file": "src/components/settings/settings/EditSettingsForm.js", 161 "file": "src/components/settings/settings/EditSettingsForm.js",
149 "start": { 162 "start": {
150 "line": 61, 163 "line": 65,
151 "column": 25 164 "column": 25
152 }, 165 },
153 "end": { 166 "end": {
154 "line": 64, 167 "line": 68,
155 "column": 3 168 "column": 3
156 } 169 }
157 }, 170 },
@@ -160,11 +173,11 @@
160 "defaultMessage": "!!!Restart & install update", 173 "defaultMessage": "!!!Restart & install update",
161 "file": "src/components/settings/settings/EditSettingsForm.js", 174 "file": "src/components/settings/settings/EditSettingsForm.js",
162 "start": { 175 "start": {
163 "line": 65, 176 "line": 69,
164 "column": 23 177 "column": 23
165 }, 178 },
166 "end": { 179 "end": {
167 "line": 68, 180 "line": 72,
168 "column": 3 181 "column": 3
169 } 182 }
170 }, 183 },
@@ -173,11 +186,11 @@
173 "defaultMessage": "!!!Is searching for update", 186 "defaultMessage": "!!!Is searching for update",
174 "file": "src/components/settings/settings/EditSettingsForm.js", 187 "file": "src/components/settings/settings/EditSettingsForm.js",
175 "start": { 188 "start": {
176 "line": 69, 189 "line": 73,
177 "column": 25 190 "column": 25
178 }, 191 },
179 "end": { 192 "end": {
180 "line": 72, 193 "line": 76,
181 "column": 3 194 "column": 3
182 } 195 }
183 }, 196 },
@@ -186,11 +199,11 @@
186 "defaultMessage": "!!!Update available, downloading...", 199 "defaultMessage": "!!!Update available, downloading...",
187 "file": "src/components/settings/settings/EditSettingsForm.js", 200 "file": "src/components/settings/settings/EditSettingsForm.js",
188 "start": { 201 "start": {
189 "line": 73, 202 "line": 77,
190 "column": 25 203 "column": 25
191 }, 204 },
192 "end": { 205 "end": {
193 "line": 76, 206 "line": 80,
194 "column": 3 207 "column": 3
195 } 208 }
196 }, 209 },
@@ -199,11 +212,11 @@
199 "defaultMessage": "!!!You are using the latest version of Franz", 212 "defaultMessage": "!!!You are using the latest version of Franz",
200 "file": "src/components/settings/settings/EditSettingsForm.js", 213 "file": "src/components/settings/settings/EditSettingsForm.js",
201 "start": { 214 "start": {
202 "line": 77, 215 "line": 81,
203 "column": 24 216 "column": 24
204 }, 217 },
205 "end": { 218 "end": {
206 "line": 80, 219 "line": 84,
207 "column": 3 220 "column": 3
208 } 221 }
209 }, 222 },
@@ -212,11 +225,11 @@
212 "defaultMessage": "!!!Current version:", 225 "defaultMessage": "!!!Current version:",
213 "file": "src/components/settings/settings/EditSettingsForm.js", 226 "file": "src/components/settings/settings/EditSettingsForm.js",
214 "start": { 227 "start": {
215 "line": 81, 228 "line": 85,
216 "column": 18 229 "column": 18
217 }, 230 },
218 "end": { 231 "end": {
219 "line": 84, 232 "line": 88,
220 "column": 3 233 "column": 3
221 } 234 }
222 }, 235 },
@@ -225,11 +238,11 @@
225 "defaultMessage": "!!!Changes require restart", 238 "defaultMessage": "!!!Changes require restart",
226 "file": "src/components/settings/settings/EditSettingsForm.js", 239 "file": "src/components/settings/settings/EditSettingsForm.js",
227 "start": { 240 "start": {
228 "line": 85, 241 "line": 89,
229 "column": 29 242 "column": 29
230 }, 243 },
231 "end": { 244 "end": {
232 "line": 88, 245 "line": 92,
233 "column": 3 246 "column": 3
234 } 247 }
235 }, 248 },
@@ -238,11 +251,11 @@
238 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", 251 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.",
239 "file": "src/components/settings/settings/EditSettingsForm.js", 252 "file": "src/components/settings/settings/EditSettingsForm.js",
240 "start": { 253 "start": {
241 "line": 89, 254 "line": 93,
242 "column": 22 255 "column": 22
243 }, 256 },
244 "end": { 257 "end": {
245 "line": 92, 258 "line": 96,
246 "column": 3 259 "column": 3
247 } 260 }
248 } 261 }
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
index cda7a90d9..70ec74ada 100644
--- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
+++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
@@ -78,15 +78,28 @@
78 } 78 }
79 }, 79 },
80 { 80 {
81 "id": "settings.app.form.todoServer",
82 "defaultMessage": "!!!Todo Server",
83 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": {
85 "line": 50,
86 "column": 14
87 },
88 "end": {
89 "line": 53,
90 "column": 3
91 }
92 },
93 {
81 "id": "settings.app.form.language", 94 "id": "settings.app.form.language",
82 "defaultMessage": "!!!Language", 95 "defaultMessage": "!!!Language",
83 "file": "src/containers/settings/EditSettingsScreen.js", 96 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": { 97 "start": {
85 "line": 50, 98 "line": 54,
86 "column": 12 99 "column": 12
87 }, 100 },
88 "end": { 101 "end": {
89 "line": 53, 102 "line": 57,
90 "column": 3 103 "column": 3
91 } 104 }
92 }, 105 },
@@ -95,11 +108,11 @@
95 "defaultMessage": "!!!Dark Mode", 108 "defaultMessage": "!!!Dark Mode",
96 "file": "src/containers/settings/EditSettingsScreen.js", 109 "file": "src/containers/settings/EditSettingsScreen.js",
97 "start": { 110 "start": {
98 "line": 54, 111 "line": 58,
99 "column": 12 112 "column": 12
100 }, 113 },
101 "end": { 114 "end": {
102 "line": 57, 115 "line": 61,
103 "column": 3 116 "column": 3
104 } 117 }
105 }, 118 },
@@ -108,11 +121,11 @@
108 "defaultMessage": "!!!Display disabled services tabs", 121 "defaultMessage": "!!!Display disabled services tabs",
109 "file": "src/containers/settings/EditSettingsScreen.js", 122 "file": "src/containers/settings/EditSettingsScreen.js",
110 "start": { 123 "start": {
111 "line": 58, 124 "line": 62,
112 "column": 24 125 "column": 24
113 }, 126 },
114 "end": { 127 "end": {
115 "line": 61, 128 "line": 65,
116 "column": 3 129 "column": 3
117 } 130 }
118 }, 131 },
@@ -121,11 +134,11 @@
121 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 134 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
122 "file": "src/containers/settings/EditSettingsScreen.js", 135 "file": "src/containers/settings/EditSettingsScreen.js",
123 "start": { 136 "start": {
124 "line": 62, 137 "line": 66,
125 "column": 29 138 "column": 29
126 }, 139 },
127 "end": { 140 "end": {
128 "line": 65, 141 "line": 69,
129 "column": 3 142 "column": 3
130 } 143 }
131 }, 144 },
@@ -134,11 +147,11 @@
134 "defaultMessage": "!!!Enable spell checking", 147 "defaultMessage": "!!!Enable spell checking",
135 "file": "src/containers/settings/EditSettingsScreen.js", 148 "file": "src/containers/settings/EditSettingsScreen.js",
136 "start": { 149 "start": {
137 "line": 66, 150 "line": 70,
138 "column": 23 151 "column": 23
139 }, 152 },
140 "end": { 153 "end": {
141 "line": 69, 154 "line": 73,
142 "column": 3 155 "column": 3
143 } 156 }
144 }, 157 },
@@ -147,11 +160,11 @@
147 "defaultMessage": "!!!Enable GPU Acceleration", 160 "defaultMessage": "!!!Enable GPU Acceleration",
148 "file": "src/containers/settings/EditSettingsScreen.js", 161 "file": "src/containers/settings/EditSettingsScreen.js",
149 "start": { 162 "start": {
150 "line": 70, 163 "line": 74,
151 "column": 25 164 "column": 25
152 }, 165 },
153 "end": { 166 "end": {
154 "line": 73, 167 "line": 77,
155 "column": 3 168 "column": 3
156 } 169 }
157 }, 170 },
@@ -160,11 +173,11 @@
160 "defaultMessage": "!!!Include beta versions", 173 "defaultMessage": "!!!Include beta versions",
161 "file": "src/containers/settings/EditSettingsScreen.js", 174 "file": "src/containers/settings/EditSettingsScreen.js",
162 "start": { 175 "start": {
163 "line": 74, 176 "line": 78,
164 "column": 8 177 "column": 8
165 }, 178 },
166 "end": { 179 "end": {
167 "line": 77, 180 "line": 81,
168 "column": 3 181 "column": 3
169 } 182 }
170 }, 183 },
@@ -173,11 +186,11 @@
173 "defaultMessage": "!!!Enable Franz Todos", 186 "defaultMessage": "!!!Enable Franz Todos",
174 "file": "src/containers/settings/EditSettingsScreen.js", 187 "file": "src/containers/settings/EditSettingsScreen.js",
175 "start": { 188 "start": {
176 "line": 78, 189 "line": 82,
177 "column": 15 190 "column": 15
178 }, 191 },
179 "end": { 192 "end": {
180 "line": 81, 193 "line": 85,
181 "column": 3 194 "column": 3
182 } 195 }
183 } 196 }
diff --git a/src/i18n/messages/src/features/todos/components/TodosWebview.json b/src/i18n/messages/src/features/todos/components/TodosWebview.json
index 9cc3325d1..664e8613b 100644
--- a/src/i18n/messages/src/features/todos/components/TodosWebview.json
+++ b/src/i18n/messages/src/features/todos/components/TodosWebview.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Franz Todos are available to premium users now!", 4 "defaultMessage": "!!!Franz Todos are available to premium users now!",
5 "file": "src/features/todos/components/TodosWebview.js", 5 "file": "src/features/todos/components/TodosWebview.js",
6 "start": { 6 "start": {
7 "line": 18, 7 "line": 20,
8 "column": 15 8 "column": 15
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 21, 11 "line": 23,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Upgrade Account", 17 "defaultMessage": "!!!Upgrade Account",
18 "file": "src/features/todos/components/TodosWebview.js", 18 "file": "src/features/todos/components/TodosWebview.js",
19 "start": { 19 "start": {
20 "line": 22, 20 "line": 24,
21 "column": 14 21 "column": 14
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 25, 24 "line": 27,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Everyone else will have to wait a little longer.", 30 "defaultMessage": "!!!Everyone else will have to wait a little longer.",
31 "file": "src/features/todos/components/TodosWebview.js", 31 "file": "src/features/todos/components/TodosWebview.js",
32 "start": { 32 "start": {
33 "line": 26, 33 "line": 28,
34 "column": 15 34 "column": 15
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 29, 37 "line": 31,
38 "column": 3 38 "column": 3
39 } 39 }
40 } 40 }