aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Amine Mouafik <amine@mouafik.fr>2020-02-28 23:27:25 +0100
committerLibravatar Amine Mouafik <amine@mouafik.fr>2020-02-28 23:27:25 +0100
commitc896aafc7303eb970f9d0e655a5b3afd337c3272 (patch)
tree718918b497e105cfa6084b4aca5e2a8a559b2219
parentMerge branch 'develop' (diff)
parent5.4.4-beta.2 (diff)
downloadferdium-app-c896aafc7303eb970f9d0e655a5b3afd337c3272.tar.gz
ferdium-app-c896aafc7303eb970f9d0e655a5b3afd337c3272.tar.zst
ferdium-app-c896aafc7303eb970f9d0e655a5b3afd337c3272.zip
Merge branch 'develop'
-rw-r--r--.all-contributorsrc9
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md47
-rw-r--r--README.md27
-rw-r--r--appveyor.yml6
-rw-r--r--misty.yml4
-rw-r--r--package-lock.json119
-rw-r--r--package.json8
m---------recipes0
-rw-r--r--src/actions/service.js3
-rw-r--r--src/app.js1
-rw-r--r--src/components/layout/AppLayout.js2
-rw-r--r--src/components/layout/Sidebar.js11
-rw-r--r--src/components/services/content/ServiceView.js6
-rw-r--r--src/components/settings/services/EditServiceForm.js67
-rw-r--r--src/components/settings/settings/EditSettingsForm.js17
-rw-r--r--src/config.js42
-rw-r--r--src/containers/settings/EditServiceScreen.js26
-rw-r--r--src/containers/settings/EditSettingsScreen.js60
-rw-r--r--src/containers/settings/RecipesScreen.js3
-rw-r--r--src/electron/ipc-api/appIndicator.js2
-rw-r--r--src/electron/ipc-api/download.js2
-rw-r--r--src/features/appearance/index.js29
-rw-r--r--src/features/publishDebugInfo/Component.js208
-rw-r--r--src/features/publishDebugInfo/index.js24
-rw-r--r--src/features/todos/preload.js27
-rw-r--r--src/i18n/locales/af.json16
-rw-r--r--src/i18n/locales/ar.json16
-rw-r--r--src/i18n/locales/bs.json16
-rw-r--r--src/i18n/locales/ca.json16
-rw-r--r--src/i18n/locales/cs.json16
-rw-r--r--src/i18n/locales/da.json16
-rw-r--r--src/i18n/locales/de.json16
-rw-r--r--src/i18n/locales/defaultMessages.json556
-rw-r--r--src/i18n/locales/el.json16
-rw-r--r--src/i18n/locales/en-US.json16
-rw-r--r--src/i18n/locales/es.json16
-rw-r--r--src/i18n/locales/fi.json16
-rw-r--r--src/i18n/locales/fr.json32
-rw-r--r--src/i18n/locales/ga.json16
-rw-r--r--src/i18n/locales/he.json16
-rw-r--r--src/i18n/locales/hr.json26
-rw-r--r--src/i18n/locales/hu.json16
-rw-r--r--src/i18n/locales/id.json22
-rw-r--r--src/i18n/locales/it.json16
-rw-r--r--src/i18n/locales/ja.json16
-rw-r--r--src/i18n/locales/ka.json16
-rw-r--r--src/i18n/locales/ko.json42
-rw-r--r--src/i18n/locales/nb.json (renamed from src/i18n/locales/nb-NO.json)0
-rw-r--r--src/i18n/locales/nl-BE.json16
-rw-r--r--src/i18n/locales/nl.json16
-rw-r--r--src/i18n/locales/no.json16
-rw-r--r--src/i18n/locales/pl.json16
-rw-r--r--src/i18n/locales/pt-BR.json18
-rw-r--r--src/i18n/locales/pt.json320
-rw-r--r--src/i18n/locales/ro.json16
-rw-r--r--src/i18n/locales/ru.json16
-rw-r--r--src/i18n/locales/sk.json16
-rw-r--r--src/i18n/locales/sl.json16
-rw-r--r--src/i18n/locales/sr.json46
-rw-r--r--src/i18n/locales/sv.json16
-rw-r--r--src/i18n/locales/tr.json18
-rw-r--r--src/i18n/locales/ua.json168
-rw-r--r--src/i18n/locales/uk.json16
-rw-r--r--src/i18n/locales/vi.json16
-rw-r--r--src/i18n/locales/zh-CN.json504
-rw-r--r--src/i18n/locales/zh-HANT.json16
-rw-r--r--src/i18n/locales/zh-TW.json4
-rw-r--r--src/i18n/locales/zh.json16
-rw-r--r--src/i18n/messages/src/components/layout/AppLayout.json16
-rw-r--r--src/i18n/messages/src/components/settings/services/EditServiceForm.json119
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json162
-rw-r--r--src/i18n/messages/src/features/debugger/Component.json15
-rw-r--r--src/i18n/messages/src/features/publishDebugInfo/Component.json93
-rw-r--r--src/i18n/messages/src/lib/Menu.json145
-rw-r--r--src/index.js8
m---------src/internal-server0
-rw-r--r--src/lib/Menu.js192
-rw-r--r--src/lib/Tray.js14
-rw-r--r--src/models/Service.js6
-rw-r--r--src/stores/FeaturesStore.js2
-rw-r--r--src/stores/ServicesStore.js14
-rw-r--r--src/stores/SettingsStore.js96
-rw-r--r--src/styles/settings.scss10
-rw-r--r--src/webview/recipe.js33
84 files changed, 2816 insertions, 1095 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 2644b1edb..2da78ea6b 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -287,6 +287,15 @@
287 "contributions": [ 287 "contributions": [
288 "code" 288 "code"
289 ] 289 ]
290 },
291 {
292 "login": "dpeukert",
293 "name": "Daniel Peukert",
294 "avatar_url": "https://avatars2.githubusercontent.com/u/3451904?v=4",
295 "profile": "https://gitlab.com/dpeukert",
296 "contributions": [
297 "code"
298 ]
290 } 299 }
291 ], 300 ],
292 "contributorsPerLine": 6, 301 "contributorsPerLine": 6,
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 9792c40be..e206b128f 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -2,11 +2,17 @@
2name: Bug report 2name: Bug report
3about: Create a report to help us improve 3about: Create a report to help us improve
4--- 4---
5<!--
6Please fill our form below, this way we can analyse and fix the problem as fast as possible.
5 7
8Please keep in mind that any text inside "<!--" and "--\>" are comments from us and won't be
9visible in your bug report, so please don't put any text in them.
10-->
6**Describe the bug** 11**Describe the bug**
7A clear and concise description of what the bug is. 12<!-- Add a clear and concise description of what the bug is -->
8 13
9**To Reproduce** 14**To Reproduce**
15<!-- Explain to us how we can reproduce your bug on our computer -->
10Steps to reproduce the behavior: 16Steps to reproduce the behavior:
11 17
121. Go to '...' 181. Go to '...'
@@ -15,26 +21,33 @@ Steps to reproduce the behavior:
154. See error 214. See error
16 22
17**Expected behavior** 23**Expected behavior**
18A clear and concise description of what you expected to happen. 24<!-- If applicable, add a description of what you expected to happen. -->
19 25
20**Screenshots** 26**Screenshots**
21If applicable, add screenshots to help explain your problem. 27<!-- If applicable, add screenshots to help explain your problem. -->
28<!-- You can simply drag and drop any image file into the editor to add it to the report -->
22 29
23**Desktop (please complete the following information):** 30**Desktop:**
24 31
25- OS: [e.g. iOS] 32- OS: [e.g. macOS, Windows 10 etc.]
26- Browser [e.g. chrome, safari] 33- Ferdi Version [e.g. 5.4.3]
27- Version [e.g. 22] 34<!-- ℹ You can find Ferdi's version by opening File > About Ferdi or Help > About Ferdi, depending on your Operating System -->
35- Server Used: [e.g. https://api.getferdi.com]
36<!-- ℹ You can find Ferdi's server in Ferdi's settings under "Server". If you self-host or use Ferdi without an account please say so. -->
28 37
29**Smartphone (please complete the following information):** 38<!--
30 39If you are using Ferdi >= 5.4.4-beta.2 please publish your debugging information and share them in your bug report.
31- Device: [e.g. iPhone6] 40To publish a bug report, inside Ferdi's menu bar click on "Help" > "Publish debug information", accept our terms
32- OS: [e.g. iOS8.1] 41and copy the link given to you.
33- Browser [e.g. stock browser, safari] 42-->
34- Version [e.g. 22] 43Debug information: https://debug.getferdi.com/...
35 44
36**Additional context** 45**Additional context**
37Add any other context about the problem here. 46<!-- Add any other context about the problem here. -->
38 47
39<!-- Love Ferdi? Please consider supporting our collective: 48<!--
40👉 https://opencollective.com/getferdi/donate --> 49Love Ferdi? Please consider supporting our open-collective:
50👉 https://opencollective.com/getferdi/donate
51or following us on Twitter:
52👉 https://twitter.com/getferdi
53-->
diff --git a/README.md b/README.md
index 67bac2277..6a3a8ff54 100644
--- a/README.md
+++ b/README.md
@@ -57,8 +57,8 @@ Ferdi is a messaging browser that allows you to combine your favorite messaging
57<em>"Keep all your messaging services in one place."</em> 57<em>"Keep all your messaging services in one place."</em>
58<img alt="Order your services with Ferdi Workspaces." src="./branding/screenshots/workspaces.png"> 58<img alt="Order your services with Ferdi Workspaces." src="./branding/screenshots/workspaces.png">
59<em>"Order your services with Ferdi Workspaces."</em> 59<em>"Order your services with Ferdi Workspaces."</em>
60<img alt="Always keep your Todo list open with Ferdi Todos." src="./branding/screenshots/todos.png"> 60<img alt="Always keep your Todos list open with Ferdi Todos." src="./branding/screenshots/todos.png">
61<em>"Always keep your Todo list open with Ferdi Todos."</em> 61<em>"Always keep your Todos list open with Ferdi Todos."</em>
62<img alt="Supporting all your services." src="./branding/screenshots/service-store.png"> 62<img alt="Supporting all your services." src="./branding/screenshots/service-store.png">
63<em>"Supporting all your services."</em> 63<em>"Supporting all your services."</em>
64</p> 64</p>
@@ -76,13 +76,12 @@ You can find the installers in the [latest stable release](https://github.com/ge
76 76
77### Or use AUR (Arch Linux) 77### Or use AUR (Arch Linux)
78 78
79Ferdi has two seperate AUR packages you can use: 79Ferdi has three seperate AUR packages you can use:
80- **ferdi-bin**: Uses your debian build and extracts it to Arch 80- **[ferdi](https://aur.archlinux.org/packages/ferdi/)**: Uses your system electron version to run the latest release
81- **ferdi-git**: Uses system electron version 81- **[ferdi-bin](https://aur.archlinux.org/packages/ferdi-bin/)**: Uses the latest Fedora release and extracts it to Arch
82- **[ferdi-git](https://aur.archlinux.org/packages/ferdi-git/)**: Uses your system electron version to run the latest commit from the develop branch
82 83
83If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi-bin`. 84If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
84
85`ferdi-git` may not work on all systems so we advice you to use `ferdi-bin` instead.
86 85
87## Ferdi-specific Features 86## Ferdi-specific Features
88 87
@@ -113,11 +112,12 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi-bin`.
113- [x] Add Process Manager to find services using a lot of resources 112- [x] Add Process Manager to find services using a lot of resources
114- [x] Add "npm run prepare-code" command for development to lint and beautify code 113- [x] Add "npm run prepare-code" command for development to lint and beautify code
115- [x] Add button to open darkmode.css for a service 114- [x] Add button to open darkmode.css for a service
115- [x] [Add `user.css` and `user.js` that allows users to inject custom code into services](https://github.com/getferdi/ferdi/wiki/Using-user.css-and-user.js) ([#83](https://github.com/getferdi/ferdi/issues/83))
116- [x] Allow SVGs for service custom icon 116- [x] Allow SVGs for service custom icon
117- [x] Switch to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) to improve application size 117- [x] Switch to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) to improve application size
118- [x] Improve "About Ferdi" screen to better display versions 118- [x] Improve "About Ferdi" screen to better display versions
119- [x] Minifying build files to improve app size 119- [x] Minifying build files to improve app size
120- [x] [Makes it possible to edit the "Franz Todo" server](https://github.com/getferdi/ferdi/wiki/Custom-Todo) 120- [x] [Makes it possible to edit the "Franz Todos" service](https://github.com/getferdi/ferdi/wiki/Custom-Todo) (e.g. Todoist via https://todoist.com/app)
121- [x] Makes RocketChat self-hosted generally available ([#6](https://github.com/getferdi/ferdi/issues/6)) 121- [x] Makes RocketChat self-hosted generally available ([#6](https://github.com/getferdi/ferdi/issues/6))
122- [x] Comes with a custom branding proper to Ferdi 122- [x] Comes with a custom branding proper to Ferdi
123- [x] UI improvements 123- [x] UI improvements
@@ -180,13 +180,19 @@ $ npm run rebuild
180 180
181### Start development app 181### Start development app
182 182
183Run these two commands **simultaneously** in different console tabs: 183Run these two commands **simultaneously** in different terminals:
184 184
185```bash 185```bash
186$ npm run dev 186$ npm run dev
187$ npm run start 187$ npm run start
188``` 188```
189 189
190Optionally, you can run both commands in one terminal with [misty](https://github.com/adlk/misty) (see [misty.yml](https://github.com/getferdi/ferdi/blob/develop/misty.yml)):
191
192```bash
193$ npx misty
194```
195
190Be aware that the development database will be reset regularly. 196Be aware that the development database will be reset regularly.
191 197
192### Packaging 198### Packaging
@@ -255,6 +261,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
255 <tr> 261 <tr>
256 <td align="center"><a href="http://lhw.ring0.de"><img src="https://avatars2.githubusercontent.com/u/351875?v=4" width="40px;" alt=""/><br /><sub><b>Lennart Weller</b></sub></a><br /><a href="#platform-lhw" title="Packaging/porting to new platform">📦</a></td> 262 <td align="center"><a href="http://lhw.ring0.de"><img src="https://avatars2.githubusercontent.com/u/351875?v=4" width="40px;" alt=""/><br /><sub><b>Lennart Weller</b></sub></a><br /><a href="#platform-lhw" title="Packaging/porting to new platform">📦</a></td>
257 <td align="center"><a href="https://github.com/jereksel"><img src="https://avatars0.githubusercontent.com/u/1307829?v=4" width="40px;" alt=""/><br /><sub><b>Andrzej Ressel</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=jereksel" title="Code">💻</a></td> 263 <td align="center"><a href="https://github.com/jereksel"><img src="https://avatars0.githubusercontent.com/u/1307829?v=4" width="40px;" alt=""/><br /><sub><b>Andrzej Ressel</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=jereksel" title="Code">💻</a></td>
264 <td align="center"><a href="https://gitlab.com/dpeukert"><img src="https://avatars2.githubusercontent.com/u/3451904?v=4" width="40px;" alt=""/><br /><sub><b>Daniel Peukert</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=dpeukert" title="Code">💻</a></td>
258 </tr> 265 </tr>
259</table> 266</table>
260 267
diff --git a/appveyor.yml b/appveyor.yml
index ff32387a6..2499b324b 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -22,4 +22,8 @@ branches:
22 except: 22 except:
23 - i18n 23 - i18n
24 - l10n_master 24 - l10n_master
25 - l10n_develop \ No newline at end of file 25 - l10n_develop
26
27skip_commits:
28 files:
29 - src/i18n/locales/*.json
diff --git a/misty.yml b/misty.yml
index a1e024c4e..2b93d025e 100644
--- a/misty.yml
+++ b/misty.yml
@@ -2,5 +2,5 @@ code:
2 cmd: npm run dev 2 cmd: npm run dev
3 3
4app: 4app:
5 cmd: npx electron ./build 5 cmd: npm start
6 waitOn: http://localhost:8000 \ No newline at end of file 6 waitOn: http://localhost:8000
diff --git a/package-lock.json b/package-lock.json
index fd54e00b0..497e19a62 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
1{ 1{
2 "name": "ferdi", 2 "name": "ferdi",
3 "version": "5.4.3", 3 "version": "5.4.4-beta.2",
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
@@ -2592,9 +2592,9 @@
2592 } 2592 }
2593 }, 2593 },
2594 "@electron/get": { 2594 "@electron/get": {
2595 "version": "1.7.2", 2595 "version": "1.7.6",
2596 "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.2.tgz", 2596 "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.6.tgz",
2597 "integrity": "sha512-LSE4LZGMjGS9TloDx0yO44D2UTbaeKRk+QjlhWLiQlikV6J4spgDCjb6z4YIcqmPAwNzlNCnWF4dubytwI+ATA==", 2597 "integrity": "sha512-zlNikt6ziVLNcm4lly1L4y62fJd/eYpEBjF5DiV/VAQq2vdPjH4sbUphXt9upmHz86lAhAj8g9lTnWrxJ/KBZw==",
2598 "dev": true, 2598 "dev": true,
2599 "requires": { 2599 "requires": {
2600 "debug": "^4.1.1", 2600 "debug": "^4.1.1",
@@ -6741,9 +6741,9 @@
6741 "dev": true 6741 "dev": true
6742 }, 6742 },
6743 "boolean": { 6743 "boolean": {
6744 "version": "3.0.0", 6744 "version": "3.0.1",
6745 "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.0.tgz", 6745 "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz",
6746 "integrity": "sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ==", 6746 "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==",
6747 "dev": true, 6747 "dev": true,
6748 "optional": true 6748 "optional": true
6749 }, 6749 },
@@ -9624,9 +9624,9 @@
9624 "dev": true 9624 "dev": true
9625 }, 9625 },
9626 "electron": { 9626 "electron": {
9627 "version": "7.1.6", 9627 "version": "8.0.0",
9628 "resolved": "https://registry.npmjs.org/electron/-/electron-7.1.6.tgz", 9628 "resolved": "https://registry.npmjs.org/electron/-/electron-8.0.0.tgz",
9629 "integrity": "sha512-0QSxQYYzSrBRbctKgAWS79k/I+vm95I7bz/zTuF0Qv4PvTtQf5hK21q6wtyKVPPJFFXnmSyvfQ2ce6iktfgK8g==", 9629 "integrity": "sha512-vBXUKRqTUq0jv1upvISdvScDDH3uCPwXj4eA5BeR3UDbJp2hOhq7eJxwjIQbfLQql98aYz4X6pSlzBnhfyQqHA==",
9630 "dev": true, 9630 "dev": true,
9631 "requires": { 9631 "requires": {
9632 "@electron/get": "^1.0.1", 9632 "@electron/get": "^1.0.1",
@@ -9878,20 +9878,20 @@
9878 } 9878 }
9879 }, 9879 },
9880 "electron-rebuild": { 9880 "electron-rebuild": {
9881 "version": "1.8.8", 9881 "version": "1.10.0",
9882 "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.8.tgz", 9882 "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.10.0.tgz",
9883 "integrity": "sha512-9a/VGbVpTJcuBaZa8yMcegqJ5flGPYDo363AxXDMxY4ZHPtFMLedGzQW9+720SIS1cvjX8B0zC+vMHO75ncOiA==", 9883 "integrity": "sha512-n10i30GJg7JH8yZL3ZY3x80YtKmSYuuN8cl+3Feljm+sQDU4rUW1jbnYGu0eUHlK3kPOiNWPtW7srGcwZ9p1zQ==",
9884 "dev": true, 9884 "dev": true,
9885 "requires": { 9885 "requires": {
9886 "colors": "^1.3.3", 9886 "colors": "^1.3.3",
9887 "debug": "^4.1.1", 9887 "debug": "^4.1.1",
9888 "detect-libc": "^1.0.3", 9888 "detect-libc": "^1.0.3",
9889 "fs-extra": "^7.0.1", 9889 "fs-extra": "^8.1.0",
9890 "node-abi": "^2.11.0", 9890 "node-abi": "^2.11.0",
9891 "node-gyp": "^6.0.1", 9891 "node-gyp": "^6.0.1",
9892 "ora": "^3.4.0", 9892 "ora": "^3.4.0",
9893 "spawn-rx": "^3.0.0", 9893 "spawn-rx": "^3.0.0",
9894 "yargs": "^13.2.4" 9894 "yargs": "^14.2.0"
9895 }, 9895 },
9896 "dependencies": { 9896 "dependencies": {
9897 "ansi-regex": { 9897 "ansi-regex": {
@@ -9917,6 +9917,17 @@
9917 "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", 9917 "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==",
9918 "dev": true 9918 "dev": true
9919 }, 9919 },
9920 "fs-extra": {
9921 "version": "8.1.0",
9922 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
9923 "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
9924 "dev": true,
9925 "requires": {
9926 "graceful-fs": "^4.2.0",
9927 "jsonfile": "^4.0.0",
9928 "universalify": "^0.1.0"
9929 }
9930 },
9920 "get-caller-file": { 9931 "get-caller-file": {
9921 "version": "2.0.5", 9932 "version": "2.0.5",
9922 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 9933 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -9934,9 +9945,9 @@
9934 } 9945 }
9935 }, 9946 },
9936 "node-gyp": { 9947 "node-gyp": {
9937 "version": "6.0.1", 9948 "version": "6.1.0",
9938 "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-6.0.1.tgz", 9949 "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-6.1.0.tgz",
9939 "integrity": "sha512-udHG4hGe3Ji97AYJbJhaRwuSOuQO7KHnE4ZPH3Sox3tjRZ+bkBsDvfZ7eYA1qwD8eLWr//193x806ss3HFTPRw==", 9950 "integrity": "sha512-h4A2zDlOujeeaaTx06r4Vy+8MZ1679lU+wbCKDS4ZtvY2A37DESo37oejIw0mtmR3+rvNwts5B6Kpt1KrNYdNw==",
9940 "dev": true, 9951 "dev": true,
9941 "requires": { 9952 "requires": {
9942 "env-paths": "^2.2.0", 9953 "env-paths": "^2.2.0",
@@ -10015,12 +10026,13 @@
10015 } 10026 }
10016 }, 10027 },
10017 "yargs": { 10028 "yargs": {
10018 "version": "13.3.0", 10029 "version": "14.2.2",
10019 "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", 10030 "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz",
10020 "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", 10031 "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==",
10021 "dev": true, 10032 "dev": true,
10022 "requires": { 10033 "requires": {
10023 "cliui": "^5.0.0", 10034 "cliui": "^5.0.0",
10035 "decamelize": "^1.2.0",
10024 "find-up": "^3.0.0", 10036 "find-up": "^3.0.0",
10025 "get-caller-file": "^2.0.1", 10037 "get-caller-file": "^2.0.1",
10026 "require-directory": "^2.1.1", 10038 "require-directory": "^2.1.1",
@@ -10029,13 +10041,13 @@
10029 "string-width": "^3.0.0", 10041 "string-width": "^3.0.0",
10030 "which-module": "^2.0.0", 10042 "which-module": "^2.0.0",
10031 "y18n": "^4.0.0", 10043 "y18n": "^4.0.0",
10032 "yargs-parser": "^13.1.1" 10044 "yargs-parser": "^15.0.0"
10033 } 10045 }
10034 }, 10046 },
10035 "yargs-parser": { 10047 "yargs-parser": {
10036 "version": "13.1.1", 10048 "version": "15.0.0",
10037 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", 10049 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz",
10038 "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", 10050 "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==",
10039 "dev": true, 10051 "dev": true,
10040 "requires": { 10052 "requires": {
10041 "camelcase": "^5.0.0", 10053 "camelcase": "^5.0.0",
@@ -13471,32 +13483,32 @@
13471 } 13483 }
13472 }, 13484 },
13473 "global-agent": { 13485 "global-agent": {
13474 "version": "2.1.7", 13486 "version": "2.1.8",
13475 "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.7.tgz", 13487 "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz",
13476 "integrity": "sha512-ooK7eqGYZku+LgnbfH/Iv0RJ74XfhrBZDlke1QSzcBt0bw1PmJcnRADPAQuFE+R45pKKDTynAr25SBasY2kvow==", 13488 "integrity": "sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==",
13477 "dev": true, 13489 "dev": true,
13478 "optional": true, 13490 "optional": true,
13479 "requires": { 13491 "requires": {
13480 "boolean": "^3.0.0", 13492 "boolean": "^3.0.0",
13481 "core-js": "^3.4.1", 13493 "core-js": "^3.6.4",
13482 "es6-error": "^4.1.1", 13494 "es6-error": "^4.1.1",
13483 "matcher": "^2.0.0", 13495 "matcher": "^2.1.0",
13484 "roarr": "^2.14.5", 13496 "roarr": "^2.15.2",
13485 "semver": "^6.3.0", 13497 "semver": "^7.1.2",
13486 "serialize-error": "^5.0.0" 13498 "serialize-error": "^5.0.0"
13487 }, 13499 },
13488 "dependencies": { 13500 "dependencies": {
13489 "core-js": { 13501 "core-js": {
13490 "version": "3.5.0", 13502 "version": "3.6.4",
13491 "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.5.0.tgz", 13503 "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
13492 "integrity": "sha512-Ifh3kj78gzQ7NAoJXeTu+XwzDld0QRIwjBLRqAMhuLhP3d2Av5wmgE9ycfnvK6NAEjTkQ1sDPeoEZAWO3Hx1Uw==", 13504 "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
13493 "dev": true, 13505 "dev": true,
13494 "optional": true 13506 "optional": true
13495 }, 13507 },
13496 "semver": { 13508 "semver": {
13497 "version": "6.3.0", 13509 "version": "7.1.3",
13498 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 13510 "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
13499 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 13511 "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
13500 "dev": true, 13512 "dev": true,
13501 "optional": true 13513 "optional": true
13502 } 13514 }
@@ -19134,9 +19146,9 @@
19134 } 19146 }
19135 }, 19147 },
19136 "node-abi": { 19148 "node-abi": {
19137 "version": "2.13.0", 19149 "version": "2.15.0",
19138 "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.13.0.tgz", 19150 "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.15.0.tgz",
19139 "integrity": "sha512-9HrZGFVTR5SOu3PZAnAY2hLO36aW1wmA+FDsVkr85BTST32TLCA1H/AEcatVRAsWLyXS3bqUDYCAjq5/QGuSTA==", 19151 "integrity": "sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg==",
19140 "dev": true, 19152 "dev": true,
19141 "requires": { 19153 "requires": {
19142 "semver": "^5.4.1" 19154 "semver": "^5.4.1"
@@ -19890,15 +19902,9 @@
19890 } 19902 }
19891 }, 19903 },
19892 "normalize-url": { 19904 "normalize-url": {
19893 "version": "1.9.1", 19905 "version": "5.0.0",
19894 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", 19906 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.0.0.tgz",
19895 "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", 19907 "integrity": "sha512-bAEm2fx8Dq/a35Z6PIRkkBBJvR56BbEJvhpNtvCZ4W9FyORSna77fn+xtYFjqk5JpBS+fMnAOG/wFgkQBmB7hw=="
19896 "requires": {
19897 "object-assign": "^4.0.1",
19898 "prepend-http": "^1.0.0",
19899 "query-string": "^4.1.0",
19900 "sort-keys": "^1.0.0"
19901 }
19902 }, 19908 },
19903 "now-and-later": { 19909 "now-and-later": {
19904 "version": "2.0.1", 19910 "version": "2.0.1",
@@ -21006,11 +21012,6 @@
21006 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 21012 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
21007 "dev": true 21013 "dev": true
21008 }, 21014 },
21009 "prepend-http": {
21010 "version": "1.0.4",
21011 "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
21012 "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
21013 },
21014 "preserve": { 21015 "preserve": {
21015 "version": "0.2.0", 21016 "version": "0.2.0",
21016 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 21017 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
@@ -23005,15 +23006,15 @@
23005 "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" 23006 "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w="
23006 }, 23007 },
23007 "roarr": { 23008 "roarr": {
23008 "version": "2.14.6", 23009 "version": "2.15.2",
23009 "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.14.6.tgz", 23010 "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.2.tgz",
23010 "integrity": "sha512-qjbw0BEesKA+3XFBPt+KVe1PC/Z6ShfJ4wPlx2XifqH5h2Lj8/KQT5XJTsy3n1Es5kai+BwKALaECW3F70B1cg==", 23011 "integrity": "sha512-jmaDhK9CO4YbQAV8zzCnq9vjAqeO489MS5ehZ+rXmFiPFFE6B+S9KYO6prjmLJ5A0zY3QxVlQdrIya7E/azz/Q==",
23011 "dev": true, 23012 "dev": true,
23012 "optional": true, 23013 "optional": true,
23013 "requires": { 23014 "requires": {
23014 "boolean": "^3.0.0", 23015 "boolean": "^3.0.0",
23015 "detect-node": "^2.0.4", 23016 "detect-node": "^2.0.4",
23016 "globalthis": "^1.0.0", 23017 "globalthis": "^1.0.1",
23017 "json-stringify-safe": "^5.0.1", 23018 "json-stringify-safe": "^5.0.1",
23018 "semver-compare": "^1.0.0", 23019 "semver-compare": "^1.0.0",
23019 "sprintf-js": "^1.1.2" 23020 "sprintf-js": "^1.1.2"
diff --git a/package.json b/package.json
index c33bf4f7a..0e54b0f95 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.4.4-beta.1", 5 "version": "5.4.4-beta.2",
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",
@@ -96,7 +96,7 @@
96 "moment": "^2.17.1", 96 "moment": "^2.17.1",
97 "ms": "2.1.2", 97 "ms": "2.1.2",
98 "node-fetch": "2.6.0", 98 "node-fetch": "2.6.0",
99 "normalize-url": "^1.9.1", 99 "normalize-url": "5.0.0",
100 "pretty-bytes": "^4.0.2", 100 "pretty-bytes": "^4.0.2",
101 "prop-types": "^15.5.10", 101 "prop-types": "^15.5.10",
102 "react": "16.12.0", 102 "react": "16.12.0",
@@ -153,10 +153,10 @@
153 "cross-env": "^5.0.5", 153 "cross-env": "^5.0.5",
154 "cz-conventional-changelog": "2.1.0", 154 "cz-conventional-changelog": "2.1.0",
155 "dotenv": "^4.0.0", 155 "dotenv": "^4.0.0",
156 "electron": "7.1.6", 156 "electron": "8.0.0",
157 "electron-builder": "21.2.0", 157 "electron-builder": "21.2.0",
158 "electron-notarize": "0.2.1", 158 "electron-notarize": "0.2.1",
159 "electron-rebuild": "1.8.8", 159 "electron-rebuild": "1.10.0",
160 "eslint": "5.10.0", 160 "eslint": "5.10.0",
161 "eslint-config-airbnb": "17.1.0", 161 "eslint-config-airbnb": "17.1.0",
162 "eslint-loader": "^1.9.0", 162 "eslint-loader": "^1.9.0",
diff --git a/recipes b/recipes
Subproject 21ba80d1485f1cb8015fd20fed7f3665e5722ed Subproject 65ff976ebb463105ff409b93938cd673c797292
diff --git a/src/actions/service.js b/src/actions/service.js
index d32bb80d3..f0c42e8aa 100644
--- a/src/actions/service.js
+++ b/src/actions/service.js
@@ -28,8 +28,9 @@ export default {
28 serviceId: PropTypes.string.isRequired, 28 serviceId: PropTypes.string.isRequired,
29 redirect: PropTypes.string, 29 redirect: PropTypes.string,
30 }, 30 },
31 openDarkmodeCss: { 31 openRecipeFile: {
32 recipe: PropTypes.string.isRequired, 32 recipe: PropTypes.string.isRequired,
33 file: PropTypes.string.isRequired,
33 }, 34 },
34 clearCache: { 35 clearCache: {
35 serviceId: PropTypes.string.isRequired, 36 serviceId: PropTypes.string.isRequired,
diff --git a/src/app.js b/src/app.js
index 1c2f66592..d8fa37014 100644
--- a/src/app.js
+++ b/src/app.js
@@ -52,7 +52,6 @@ smoothScroll.polyfill();
52 52
53// Basic electron Setup 53// Basic electron Setup
54webFrame.setVisualZoomLevelLimits(1, 1); 54webFrame.setVisualZoomLevelLimits(1, 1);
55webFrame.setLayoutZoomLevelLimits(0, 0);
56 55
57window.addEventListener('load', () => { 56window.addEventListener('load', () => {
58 const serverApi = new ServerApi(); 57 const serverApi = new ServerApi();
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js
index 80e6daf19..fe43c42d2 100644
--- a/src/components/layout/AppLayout.js
+++ b/src/components/layout/AppLayout.js
@@ -9,6 +9,7 @@ import InfoBar from '../ui/InfoBar';
9import { Component as BasicAuth } from '../../features/basicAuth'; 9import { Component as BasicAuth } from '../../features/basicAuth';
10import { Component as ShareFranz } from '../../features/shareFranz'; 10import { Component as ShareFranz } from '../../features/shareFranz';
11import { Component as QuickSwitch } from '../../features/quickSwitch'; 11import { Component as QuickSwitch } from '../../features/quickSwitch';
12import { Component as PublishDebugInfo } from '../../features/publishDebugInfo';
12import ErrorBoundary from '../util/ErrorBoundary'; 13import ErrorBoundary from '../util/ErrorBoundary';
13 14
14// import globalMessages from '../../i18n/globalMessages'; 15// import globalMessages from '../../i18n/globalMessages';
@@ -189,6 +190,7 @@ class AppLayout extends Component {
189 <BasicAuth /> 190 <BasicAuth />
190 <ShareFranz /> 191 <ShareFranz />
191 <QuickSwitch /> 192 <QuickSwitch />
193 <PublishDebugInfo />
192 {services} 194 {services}
193 {children} 195 {children}
194 <TrialStatusBar /> 196 <TrialStatusBar />
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js
index 48a83c5a1..bd10ccb4a 100644
--- a/src/components/layout/Sidebar.js
+++ b/src/components/layout/Sidebar.js
@@ -118,21 +118,12 @@ export default @inject('stores', 'actions') @observer class Sidebar extends Comp
118 type="button" 118 type="button"
119 className="sidebar__button" 119 className="sidebar__button"
120 onClick={() => { 120 onClick={() => {
121 // Disable lock first - otherwise the application might not update correctly
122 actions.settings.update({ 121 actions.settings.update({
123 type: 'app', 122 type: 'app',
124 data: { 123 data: {
125 locked: false, 124 locked: true,
126 }, 125 },
127 }); 126 });
128 setTimeout(() => {
129 actions.settings.update({
130 type: 'app',
131 data: {
132 locked: true,
133 },
134 });
135 }, 0);
136 }} 127 }}
137 data-tip={`${intl.formatMessage(messages.lockFerdi)} (${ctrlKey}+Shift+L)`} 128 data-tip={`${intl.formatMessage(messages.lockFerdi)} (${ctrlKey}+Shift+L)`}
138 > 129 >
diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js
index 860863d26..f6832038a 100644
--- a/src/components/services/content/ServiceView.js
+++ b/src/components/services/content/ServiceView.js
@@ -135,9 +135,11 @@ export default @inject('stores', 'actions') @observer class ServiceView extends
135 } = this.props; 135 } = this.props;
136 136
137 const { 137 const {
138 showServiceNavigationBar, 138 navigationBarBehaviour,
139 } = stores.settings.app; 139 } = stores.settings.app;
140 140
141 const showNavBar = navigationBarBehaviour === 'always' || (navigationBarBehaviour === 'custom' && service.recipe.id === CUSTOM_WEBSITE_ID);
142
141 const webviewClasses = classnames({ 143 const webviewClasses = classnames({
142 services__webview: true, 144 services__webview: true,
143 'services__webview-wrapper': true, 145 'services__webview-wrapper': true,
@@ -193,7 +195,7 @@ export default @inject('stores', 'actions') @observer class ServiceView extends
193 <> 195 <>
194 {!service.isHibernating ? ( 196 {!service.isHibernating ? (
195 <> 197 <>
196 {(service.recipe.id === CUSTOM_WEBSITE_ID || showServiceNavigationBar) && ( 198 {showNavBar && (
197 <WebControlsScreen service={service} /> 199 <WebControlsScreen service={service} />
198 )} 200 )}
199 <ServiceWebview 201 <ServiceWebview
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index fa34ac60b..98051d78f 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -33,6 +33,18 @@ const messages = defineMessages({
33 id: 'settings.service.form.openDarkmodeCss', 33 id: 'settings.service.form.openDarkmodeCss',
34 defaultMessage: '!!!Open darkmode.css', 34 defaultMessage: '!!!Open darkmode.css',
35 }, 35 },
36 openUserCss: {
37 id: 'settings.service.form.openUserCss',
38 defaultMessage: '!!!Open user.css',
39 },
40 openUserJs: {
41 id: 'settings.service.form.openUserJs',
42 defaultMessage: '!!!Open user.js',
43 },
44 recipeFileInfo: {
45 id: 'settings.service.form.recipeFileInfo',
46 defaultMessage: '!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.',
47 },
36 availableServices: { 48 availableServices: {
37 id: 'settings.service.form.availableServices', 49 id: 'settings.service.form.availableServices',
38 defaultMessage: '!!!Available services', 50 defaultMessage: '!!!Available services',
@@ -131,8 +143,7 @@ export default @observer class EditServiceForm extends Component {
131 form: PropTypes.instanceOf(Form).isRequired, 143 form: PropTypes.instanceOf(Form).isRequired,
132 onSubmit: PropTypes.func.isRequired, 144 onSubmit: PropTypes.func.isRequired,
133 onDelete: PropTypes.func.isRequired, 145 onDelete: PropTypes.func.isRequired,
134 openDarkmodeCss: PropTypes.func.isRequired, 146 openRecipeFile: PropTypes.func.isRequired,
135 isOpeningDarkModeCss: PropTypes.bool.isRequired,
136 isSaving: PropTypes.bool.isRequired, 147 isSaving: PropTypes.bool.isRequired,
137 isDeleting: PropTypes.bool.isRequired, 148 isDeleting: PropTypes.bool.isRequired,
138 isProxyFeatureEnabled: PropTypes.bool.isRequired, 149 isProxyFeatureEnabled: PropTypes.bool.isRequired,
@@ -169,7 +180,7 @@ export default @observer class EditServiceForm extends Component {
169 if (recipe.validateUrl && values.customUrl) { 180 if (recipe.validateUrl && values.customUrl) {
170 this.setState({ isValidatingCustomUrl: true }); 181 this.setState({ isValidatingCustomUrl: true });
171 try { 182 try {
172 values.customUrl = normalizeUrl(values.customUrl, { stripWWW: false }); 183 values.customUrl = normalizeUrl(values.customUrl, { stripWWW: false, removeTrailingSlash: false });
173 isValid = await recipe.validateUrl(values.customUrl); 184 isValid = await recipe.validateUrl(values.customUrl);
174 } catch (err) { 185 } catch (err) {
175 console.warn('ValidateURL', err); 186 console.warn('ValidateURL', err);
@@ -199,8 +210,7 @@ export default @observer class EditServiceForm extends Component {
199 isSaving, 210 isSaving,
200 isDeleting, 211 isDeleting,
201 onDelete, 212 onDelete,
202 openDarkmodeCss, 213 openRecipeFile,
203 isOpeningDarkModeCss,
204 isProxyFeatureEnabled, 214 isProxyFeatureEnabled,
205 isServiceProxyIncludedInCurrentPlan, 215 isServiceProxyIncludedInCurrentPlan,
206 isSpellcheckerIncludedInCurrentPlan, 216 isSpellcheckerIncludedInCurrentPlan,
@@ -226,23 +236,6 @@ export default @observer class EditServiceForm extends Component {
226 /> 236 />
227 ); 237 );
228 238
229 const openDarkmodeCssButton = isOpeningDarkModeCss ? (
230 <Button
231 label={intl.formatMessage(messages.openDarkmodeCss)}
232 loaded={false}
233 buttonType="secondary"
234 className="settings__open-dark-mode-button"
235 disabled
236 />
237 ) : (
238 <Button
239 buttonType="secondary"
240 label={intl.formatMessage(messages.openDarkmodeCss)}
241 className="settings__open-dark-mode-button"
242 onClick={openDarkmodeCss}
243 />
244 );
245
246 let activeTabIndex = 0; 239 let activeTabIndex = 0;
247 if (recipe.hasHostedOption && service.team) { 240 if (recipe.hasHostedOption && service.team) {
248 activeTabIndex = 1; 241 activeTabIndex = 1;
@@ -430,11 +423,39 @@ export default @observer class EditServiceForm extends Component {
430 </PremiumFeatureContainer> 423 </PremiumFeatureContainer>
431 )} 424 )}
432 </form> 425 </form>
426
427 {action === 'edit' && (
428 <>
429 <div className="settings__open-recipe-file-container">
430 <Button
431 buttonType="secondary"
432 label={intl.formatMessage(messages.openDarkmodeCss)}
433 className="settings__open-recipe-file-button"
434 onClick={() => openRecipeFile('darkmode.css')}
435 />
436 <Button
437 buttonType="secondary"
438 label={intl.formatMessage(messages.openUserCss)}
439 className="settings__open-recipe-file-button"
440 onClick={() => openRecipeFile('user.css')}
441 />
442 <Button
443 buttonType="secondary"
444 label={intl.formatMessage(messages.openUserJs)}
445 className="settings__open-recipe-file-button"
446 onClick={() => openRecipeFile('user.js')}
447 />
448 </div>
449 <p style={{ marginTop: 10 }}>
450 <span className="mdi mdi-information" />
451 {intl.formatMessage(messages.recipeFileInfo)}
452 </p>
453 </>
454 )}
433 </div> 455 </div>
434 <div className="settings__controls"> 456 <div className="settings__controls">
435 {/* Delete Button */} 457 {/* Delete Button */}
436 {action === 'edit' && deleteButton} 458 {action === 'edit' && deleteButton}
437 {action === 'edit' && openDarkmodeCssButton}
438 459
439 {/* Save Button */} 460 {/* Save Button */}
440 {isSaving || isValidatingCustomUrl ? ( 461 {isSaving || isValidatingCustomUrl ? (
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index f7868db50..f41c7db8e 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -252,8 +252,11 @@ export default @observer class EditSettingsForm extends Component {
252 <Toggle field={form.$('runInBackground')} /> 252 <Toggle field={form.$('runInBackground')} />
253 <Toggle field={form.$('enableSystemTray')} /> 253 <Toggle field={form.$('enableSystemTray')} />
254 {isTrayEnabled && <Toggle field={form.$('startMinimized')} />} 254 {isTrayEnabled && <Toggle field={form.$('startMinimized')} />}
255 {process.platform === 'win32' && (
256 <Toggle field={form.$('minimizeToSystemTray')} />
257 )}
255 <Toggle field={form.$('privateNotifications')} /> 258 <Toggle field={form.$('privateNotifications')} />
256 <Toggle field={form.$('showServiceNavigationBar')} /> 259 <Select field={form.$('navigationBarBehaviour')} />
257 260
258 <Hr /> 261 <Hr />
259 262
@@ -279,10 +282,6 @@ export default @observer class EditSettingsForm extends Component {
279 282
280 <Hr /> 283 <Hr />
281 284
282 {process.platform === 'win32' && (
283 <Toggle field={form.$('minimizeToSystemTray')} />
284 )}
285
286 <Input 285 <Input
287 placeholder="Server" 286 placeholder="Server"
288 onChange={e => this.submit(e)} 287 onChange={e => this.submit(e)}
@@ -450,7 +449,7 @@ export default @observer class EditSettingsForm extends Component {
450 <Hr /> 449 <Hr />
451 450
452 {isMac && <Toggle field={form.$('adaptableDarkMode')} />} 451 {isMac && <Toggle field={form.$('adaptableDarkMode')} />}
453 {!(isMac && isAdaptableDarkModeEnabled) && <Toggle field={form.$('darkMode')} disabled={isAdaptableDarkModeEnabled} />} 452 {!(isMac && isAdaptableDarkModeEnabled) && <Toggle field={form.$('darkMode')} />}
454 {(isDarkmodeEnabled || isAdaptableDarkModeEnabled) && ( 453 {(isDarkmodeEnabled || isAdaptableDarkModeEnabled) && (
455 <> 454 <>
456 <Toggle field={form.$('universalDarkMode')} /> 455 <Toggle field={form.$('universalDarkMode')} />
@@ -469,6 +468,12 @@ export default @observer class EditSettingsForm extends Component {
469 468
470 <Hr /> 469 <Hr />
471 470
471 <Select field={form.$('serviceRibbonWidth')} />
472
473 <Select field={form.$('iconSize')} />
474
475 <Hr />
476
472 <Input 477 <Input
473 placeholder="Accent Color" 478 placeholder="Accent Color"
474 onChange={e => this.submit(e)} 479 onChange={e => this.submit(e)}
diff --git a/src/config.js b/src/config.js
index b4705105d..283c20f84 100644
--- a/src/config.js
+++ b/src/config.js
@@ -1,8 +1,7 @@
1import electron from 'electron'; 1import electron from 'electron';
2import path from 'path';
3import isDevMode from 'electron-is-dev'; 2import isDevMode from 'electron-is-dev';
4import ms from 'ms'; 3import ms from 'ms';
5 4import path from 'path';
6import { asarPath } from './helpers/asar-helpers'; 5import { asarPath } from './helpers/asar-helpers';
7 6
8const app = process.type === 'renderer' ? electron.remote.app : electron.app; 7const app = process.type === 'renderer' ? electron.remote.app : electron.app;
@@ -14,6 +13,9 @@ export const LOCAL_API = 'http://localhost:3000';
14export const DEV_API = 'https://dev.franzinfra.com'; 13export const DEV_API = 'https://dev.franzinfra.com';
15export const LIVE_API = 'https://api.getferdi.com'; 14export const LIVE_API = 'https://api.getferdi.com';
16 15
16// URL used to submit debugger information, see https://github.com/getferdi/debugger
17export const DEBUG_API = 'https://debug.getferdi.com';
18
17export const LOCAL_WS_API = 'ws://localhost:3000'; 19export const LOCAL_WS_API = 'ws://localhost:3000';
18export const DEV_WS_API = 'wss://dev.franzinfra.com'; 20export const DEV_WS_API = 'wss://dev.franzinfra.com';
19export const LIVE_WS_API = 'wss://api.franzinfra.com'; 21export const LIVE_WS_API = 'wss://api.franzinfra.com';
@@ -43,6 +45,34 @@ export const HIBERNATION_STRATEGIES = {
43 3600: 'Extemely Slow Hibernation (1hour)', 45 3600: 'Extemely Slow Hibernation (1hour)',
44}; 46};
45 47
48export const NAVIGATION_BAR_BEHAVIOURS = {
49 custom: 'Show navigation bar on custom websites only',
50 always: 'Show navigation bar on all services',
51 never: 'Never show navigation bar',
52};
53
54export const SIDEBAR_WIDTH = {
55 35: 'Extemely slim sidebar',
56 45: 'Very slim sidebar',
57 55: 'Slim sidebar',
58 68: 'Normal sidebar',
59 80: 'Wide sidebar',
60 90: 'Very wide sidebar',
61 100: 'Extemely wide sidebar',
62};
63
64export const ICON_SIZES = {
65 0: 'Very small icons',
66 10: 'Small icons',
67 20: 'Normal icons',
68 30: 'Large icons',
69 40: 'Very large icons',
70};
71// We need a bias to push all icon sizes into positive numbers
72// otherwise the settings screen won't sort the sizes correctly.
73// The bias should always be the "Normal icons" value
74export const iconSizeBias = 20;
75
46export const DEFAULT_APP_SETTINGS = { 76export const DEFAULT_APP_SETTINGS = {
47 autoLaunchInBackground: false, 77 autoLaunchInBackground: false,
48 runInBackground: true, 78 runInBackground: true,
@@ -81,7 +111,9 @@ export const DEFAULT_APP_SETTINGS = {
81 adaptableDarkMode: true, 111 adaptableDarkMode: true,
82 accentColor: '#7367f0', 112 accentColor: '#7367f0',
83 serviceRibbonWidth: 68, 113 serviceRibbonWidth: 68,
114 iconSize: iconSizeBias,
84 sentry: false, 115 sentry: false,
116 navigationBarBehaviour: 'custom',
85}; 117};
86 118
87export const DEFAULT_FEATURES_CONFIG = { 119export const DEFAULT_FEATURES_CONFIG = {
@@ -123,11 +155,11 @@ if (process.env.FERDI_APPDATA_DIR != null) {
123 app.setPath('appData', process.env.FERDI_APPDATA_DIR); 155 app.setPath('appData', process.env.FERDI_APPDATA_DIR);
124 app.setPath('userData', path.join(app.getPath('appData'))); 156 app.setPath('userData', path.join(app.getPath('appData')));
125} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) { 157} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) {
126 app.setPath('appData', process.env.PORTABLE_EXECUTABLE_DIR, `${app.getName()}AppData`); 158 app.setPath('appData', process.env.PORTABLE_EXECUTABLE_DIR, `${app.name}AppData`);
127 app.setPath('userData', path.join(app.getPath('appData'), `${app.getName()}AppData`)); 159 app.setPath('userData', path.join(app.getPath('appData'), `${app.name}AppData`));
128} else if (process.platform === 'win32') { 160} else if (process.platform === 'win32') {
129 app.setPath('appData', process.env.APPDATA); 161 app.setPath('appData', process.env.APPDATA);
130 app.setPath('userData', path.join(app.getPath('appData'), app.getName())); 162 app.setPath('userData', path.join(app.getPath('appData'), app.name));
131} 163}
132 164
133export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config'); 165export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config');
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js
index 99c40b086..a7d33a3ea 100644
--- a/src/containers/settings/EditServiceScreen.js
+++ b/src/containers/settings/EditServiceScreen.js
@@ -92,10 +92,6 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
92 intl: intlShape, 92 intl: intlShape,
93 }; 93 };
94 94
95 state = {
96 isOpeningDarkModeCss: false,
97 }
98
99 onSubmit(data) { 95 onSubmit(data) {
100 const { action } = this.props.router.params; 96 const { action } = this.props.router.params;
101 const { recipes, services } = this.props.stores; 97 const { recipes, services } = this.props.stores;
@@ -282,25 +278,16 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
282 } 278 }
283 } 279 }
284 280
285 openDarkmodeCss() { 281 openRecipeFile(file) {
286 const { openDarkmodeCss } = this.props.actions.service; 282 const { openRecipeFile } = this.props.actions.service;
287 const { action } = this.props.router.params; 283 const { action } = this.props.router.params;
288 284
289 if (action === 'edit') { 285 if (action === 'edit') {
290 this.setState({
291 isOpeningDarkModeCss: true,
292 });
293
294 const { activeSettings: service } = this.props.stores.services; 286 const { activeSettings: service } = this.props.stores.services;
295 openDarkmodeCss({ 287 openRecipeFile({
296 recipe: service.recipe.id, 288 recipe: service.recipe.id,
289 file,
297 }); 290 });
298
299 setTimeout(() => {
300 this.setState({
301 isOpeningDarkModeCss: false,
302 });
303 }, 2500);
304 } 291 }
305 } 292 }
306 293
@@ -355,8 +342,7 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
355 isDeleting={services.deleteServiceRequest.isExecuting} 342 isDeleting={services.deleteServiceRequest.isExecuting}
356 onSubmit={d => this.onSubmit(d)} 343 onSubmit={d => this.onSubmit(d)}
357 onDelete={() => this.deleteService()} 344 onDelete={() => this.deleteService()}
358 openDarkmodeCss={() => this.openDarkmodeCss()} 345 openRecipeFile={file => this.openRecipeFile(file)}
359 isOpeningDarkModeCss={this.state.isOpeningDarkModeCss}
360 isProxyFeatureEnabled={proxyFeature.isEnabled} 346 isProxyFeatureEnabled={proxyFeature.isEnabled}
361 isServiceProxyIncludedInCurrentPlan={proxyFeature.isIncludedInCurrentPlan} 347 isServiceProxyIncludedInCurrentPlan={proxyFeature.isIncludedInCurrentPlan}
362 isSpellcheckerIncludedInCurrentPlan={spellcheckerFeature.isIncludedInCurrentPlan} 348 isSpellcheckerIncludedInCurrentPlan={spellcheckerFeature.isIncludedInCurrentPlan}
@@ -384,7 +370,7 @@ EditServiceScreen.wrappedComponent.propTypes = {
384 createService: PropTypes.func.isRequired, 370 createService: PropTypes.func.isRequired,
385 updateService: PropTypes.func.isRequired, 371 updateService: PropTypes.func.isRequired,
386 deleteService: PropTypes.func.isRequired, 372 deleteService: PropTypes.func.isRequired,
387 openDarkmodeCss: PropTypes.func.isRequired, 373 openRecipeFile: PropTypes.func.isRequired,
388 }).isRequired, 374 }).isRequired,
389 // settings: PropTypes.shape({ 375 // settings: PropTypes.shape({
390 // update: PropTypes.func.isRequred, 376 // update: PropTypes.func.isRequred,
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 595cfdcc7..6dd21f961 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -10,7 +10,9 @@ import UserStore from '../../stores/UserStore';
10import TodosStore from '../../features/todos/store'; 10import TodosStore from '../../features/todos/store';
11import Form from '../../lib/Form'; 11import Form from '../../lib/Form';
12import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; 12import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages';
13import { DEFAULT_APP_SETTINGS, HIBERNATION_STRATEGIES } from '../../config'; 13import {
14 DEFAULT_APP_SETTINGS, HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS,
15} from '../../config';
14import { config as spellcheckerConfig } from '../../features/spellchecker'; 16import { config as spellcheckerConfig } from '../../features/spellchecker';
15 17
16import { getSelectOptions } from '../../helpers/i18n-helpers'; 18import { getSelectOptions } from '../../helpers/i18n-helpers';
@@ -44,7 +46,7 @@ const messages = defineMessages({
44 }, 46 },
45 enableSystemTray: { 47 enableSystemTray: {
46 id: 'settings.app.form.enableSystemTray', 48 id: 'settings.app.form.enableSystemTray',
47 defaultMessage: '!!!Show Ferdi in system tray', 49 defaultMessage: '!!!Always show Ferdi in system tray',
48 }, 50 },
49 minimizeToSystemTray: { 51 minimizeToSystemTray: {
50 id: 'settings.app.form.minimizeToSystemTray', 52 id: 'settings.app.form.minimizeToSystemTray',
@@ -54,9 +56,9 @@ const messages = defineMessages({
54 id: 'settings.app.form.privateNotifications', 56 id: 'settings.app.form.privateNotifications',
55 defaultMessage: '!!!Don\'t show message content in notifications', 57 defaultMessage: '!!!Don\'t show message content in notifications',
56 }, 58 },
57 showServiceNavigationBar: { 59 navigationBarBehaviour: {
58 id: 'settings.app.form.showServiceNavigationBar', 60 id: 'settings.app.form.navigationBarBehaviour',
59 defaultMessage: '!!!Always show service navigation bar', 61 defaultMessage: '!!!Navigation bar behaviour',
60 }, 62 },
61 sentry: { 63 sentry: {
62 id: 'settings.app.form.sentry', 64 id: 'settings.app.form.sentry',
@@ -118,6 +120,14 @@ const messages = defineMessages({
118 id: 'settings.app.form.universalDarkMode', 120 id: 'settings.app.form.universalDarkMode',
119 defaultMessage: '!!!Enable universal Dark Mode', 121 defaultMessage: '!!!Enable universal Dark Mode',
120 }, 122 },
123 serviceRibbonWidth: {
124 id: 'settings.app.form.serviceRibbonWidth',
125 defaultMessage: '!!!Sidebar width',
126 },
127 iconSize: {
128 id: 'settings.app.form.iconSize',
129 defaultMessage: '!!!Service icon size',
130 },
121 accentColor: { 131 accentColor: {
122 id: 'settings.app.form.accentColor', 132 id: 'settings.app.form.accentColor',
123 defaultMessage: '!!!Accent color', 133 defaultMessage: '!!!Accent color',
@@ -184,7 +194,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
184 startMinimized: settingsData.startMinimized, 194 startMinimized: settingsData.startMinimized,
185 minimizeToSystemTray: settingsData.minimizeToSystemTray, 195 minimizeToSystemTray: settingsData.minimizeToSystemTray,
186 privateNotifications: settingsData.privateNotifications, 196 privateNotifications: settingsData.privateNotifications,
187 showServiceNavigationBar: settingsData.showServiceNavigationBar, 197 navigationBarBehaviour: settingsData.navigationBarBehaviour,
188 sentry: settingsData.sentry, 198 sentry: settingsData.sentry,
189 hibernate: settingsData.hibernate, 199 hibernate: settingsData.hibernate,
190 hibernationStrategy: settingsData.hibernationStrategy, 200 hibernationStrategy: settingsData.hibernationStrategy,
@@ -201,6 +211,8 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
201 darkMode: settingsData.darkMode, 211 darkMode: settingsData.darkMode,
202 adaptableDarkMode: settingsData.adaptableDarkMode, 212 adaptableDarkMode: settingsData.adaptableDarkMode,
203 universalDarkMode: settingsData.universalDarkMode, 213 universalDarkMode: settingsData.universalDarkMode,
214 serviceRibbonWidth: settingsData.serviceRibbonWidth,
215 iconSize: settingsData.iconSize,
204 accentColor: settingsData.accentColor, 216 accentColor: settingsData.accentColor,
205 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, 217 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted,
206 enableSpellchecking: settingsData.enableSpellchecking, 218 enableSpellchecking: settingsData.enableSpellchecking,
@@ -248,11 +260,26 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
248 locales: APP_LOCALES, 260 locales: APP_LOCALES,
249 }); 261 });
250 262
263 const navigationBarBehaviours = getSelectOptions({
264 locales: NAVIGATION_BAR_BEHAVIOURS,
265 sort: false,
266 });
267
251 const hibernationStrategies = getSelectOptions({ 268 const hibernationStrategies = getSelectOptions({
252 locales: HIBERNATION_STRATEGIES, 269 locales: HIBERNATION_STRATEGIES,
253 sort: false, 270 sort: false,
254 }); 271 });
255 272
273 const sidebarWidth = getSelectOptions({
274 locales: SIDEBAR_WIDTH,
275 sort: false,
276 });
277
278 const iconSizes = getSelectOptions({
279 locales: ICON_SIZES,
280 sort: false,
281 });
282
256 const spellcheckingLanguages = getSelectOptions({ 283 const spellcheckingLanguages = getSelectOptions({
257 locales: SPELLCHECKER_LOCALES, 284 locales: SPELLCHECKER_LOCALES,
258 automaticDetectionText: this.context.intl.formatMessage(globalMessages.spellcheckerAutomaticDetection), 285 automaticDetectionText: this.context.intl.formatMessage(globalMessages.spellcheckerAutomaticDetection),
@@ -295,10 +322,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
295 value: settings.all.app.privateNotifications, 322 value: settings.all.app.privateNotifications,
296 default: DEFAULT_APP_SETTINGS.privateNotifications, 323 default: DEFAULT_APP_SETTINGS.privateNotifications,
297 }, 324 },
298 showServiceNavigationBar: { 325 navigationBarBehaviour: {
299 label: intl.formatMessage(messages.showServiceNavigationBar), 326 label: intl.formatMessage(messages.navigationBarBehaviour),
300 value: settings.all.app.showServiceNavigationBar, 327 value: settings.all.app.navigationBarBehaviour,
301 default: DEFAULT_APP_SETTINGS.showServiceNavigationBar, 328 default: DEFAULT_APP_SETTINGS.navigationBarBehaviour,
329 options: navigationBarBehaviours,
302 }, 330 },
303 sentry: { 331 sentry: {
304 label: intl.formatMessage(messages.sentry), 332 label: intl.formatMessage(messages.sentry),
@@ -396,6 +424,18 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
396 value: settings.all.app.universalDarkMode, 424 value: settings.all.app.universalDarkMode,
397 default: DEFAULT_APP_SETTINGS.universalDarkMode, 425 default: DEFAULT_APP_SETTINGS.universalDarkMode,
398 }, 426 },
427 serviceRibbonWidth: {
428 label: intl.formatMessage(messages.serviceRibbonWidth),
429 value: settings.all.app.serviceRibbonWidth,
430 default: DEFAULT_APP_SETTINGS.serviceRibbonWidth,
431 options: sidebarWidth,
432 },
433 iconSize: {
434 label: intl.formatMessage(messages.iconSize),
435 value: settings.all.app.iconSize,
436 default: DEFAULT_APP_SETTINGS.iconSize,
437 options: iconSizes,
438 },
399 accentColor: { 439 accentColor: {
400 label: intl.formatMessage(messages.accentColor), 440 label: intl.formatMessage(messages.accentColor),
401 value: settings.all.app.accentColor, 441 value: settings.all.app.accentColor,
diff --git a/src/containers/settings/RecipesScreen.js b/src/containers/settings/RecipesScreen.js
index 70b599d9c..460b915bb 100644
--- a/src/containers/settings/RecipesScreen.js
+++ b/src/containers/settings/RecipesScreen.js
@@ -161,7 +161,8 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend
161 serviceStatus={services.actionStatus} 161 serviceStatus={services.actionStatus}
162 recipeFilter={filter} 162 recipeFilter={filter}
163 recipeDirectory={recipeDirectory} 163 recipeDirectory={recipeDirectory}
164 openRecipeDirectory={() => { 164 openRecipeDirectory={async () => {
165 await fs.ensureDir(recipeDirectory);
165 shell.openItem(recipeDirectory); 166 shell.openItem(recipeDirectory);
166 }} 167 }}
167 openDevDocs={() => { 168 openDevDocs={() => {
diff --git a/src/electron/ipc-api/appIndicator.js b/src/electron/ipc-api/appIndicator.js
index e568bf35d..9957ef5fc 100644
--- a/src/electron/ipc-api/appIndicator.js
+++ b/src/electron/ipc-api/appIndicator.js
@@ -35,7 +35,7 @@ export default (params) => {
35 || process.platform === 'linux') 35 || process.platform === 'linux')
36 && typeof (args.indicator) === 'number' 36 && typeof (args.indicator) === 'number'
37 ) { 37 ) {
38 app.setBadgeCount(args.indicator); 38 app.badgeCount = args.indicator;
39 } 39 }
40 40
41 if (process.platform === 'win32') { 41 if (process.platform === 'win32') {
diff --git a/src/electron/ipc-api/download.js b/src/electron/ipc-api/download.js
index 01b81d388..36eca3c9f 100644
--- a/src/electron/ipc-api/download.js
+++ b/src/electron/ipc-api/download.js
@@ -22,7 +22,7 @@ export default (params) => {
22 const dl = await download(params.mainWindow, url, { 22 const dl = await download(params.mainWindow, url, {
23 saveAs: true, 23 saveAs: true,
24 }); 24 });
25 debug('File saved to', dl.getSavePath()); 25 debug('File saved to', dl.savePath);
26 } else { 26 } else {
27 const extension = mime.extension(fileOptions.mime); 27 const extension = mime.extension(fileOptions.mime);
28 const filename = `${fileOptions.name}.${extension}`; 28 const filename = `${fileOptions.name}.${extension}`;
diff --git a/src/features/appearance/index.js b/src/features/appearance/index.js
index 8a81054df..6dcdfc986 100644
--- a/src/features/appearance/index.js
+++ b/src/features/appearance/index.js
@@ -1,6 +1,6 @@
1import { reaction } from 'mobx'; 1import { reaction } from 'mobx';
2import themeInfo from '../../assets/themeInfo.json'; 2import themeInfo from '../../assets/themeInfo.json';
3import { DEFAULT_APP_SETTINGS } from '../../config'; 3import { DEFAULT_APP_SETTINGS, iconSizeBias } from '../../config';
4 4
5const STYLE_ELEMENT_ID = 'custom-appearance-style'; 5const STYLE_ELEMENT_ID = 'custom-appearance-style';
6 6
@@ -42,17 +42,23 @@ function generateAccentStyle(color) {
42 return style; 42 return style;
43} 43}
44 44
45function generateServiceRibbonWidthStyle(width) { 45function generateServiceRibbonWidthStyle(widthStr, iconSizeStr) {
46 const width = Number(widthStr);
47 const iconSize = Number(iconSizeStr) - iconSizeBias;
48
46 return ` 49 return `
47 .sidebar { 50 .sidebar {
48 width: ${width}px !important; 51 width: ${width}px !important;
49 } 52 }
50 .tab-item { 53 .tab-item {
51 width: ${width - 2}px !important; 54 width: ${width - 2}px !important;
52 height: ${width - 5}px !important; 55 height: ${width - 5 + iconSize}px !important;
53 } 56 }
54 .tab-item .tab-item__icon { 57 .tab-item .tab-item__icon {
55 width: ${width / 2}px !important; 58 width: ${(width / 2) + iconSize}px !important;
59 }
60 .sidebar__button {
61 font-size: ${width / 3}px !important;
56 } 62 }
57 `; 63 `;
58} 64}
@@ -63,13 +69,15 @@ function generateStyle(settings) {
63 const { 69 const {
64 accentColor, 70 accentColor,
65 serviceRibbonWidth, 71 serviceRibbonWidth,
72 iconSize,
66 } = settings; 73 } = settings;
67 74
68 if (accentColor !== DEFAULT_APP_SETTINGS.accentColor) { 75 if (accentColor !== DEFAULT_APP_SETTINGS.accentColor) {
69 style += generateAccentStyle(accentColor); 76 style += generateAccentStyle(accentColor);
70 } 77 }
71 if (serviceRibbonWidth !== DEFAULT_APP_SETTINGS.serviceRibbonWidth) { 78 if (serviceRibbonWidth !== DEFAULT_APP_SETTINGS.serviceRibbonWidth
72 style += generateServiceRibbonWidthStyle(serviceRibbonWidth); 79 || iconSize !== DEFAULT_APP_SETTINGS.iconSize) {
80 style += generateServiceRibbonWidthStyle(serviceRibbonWidth, iconSize);
73 } 81 }
74 82
75 return style; 83 return style;
@@ -104,4 +112,13 @@ export default function initAppearance(stores) {
104 updateStyle(settings.all.app); 112 updateStyle(settings.all.app);
105 }, 113 },
106 ); 114 );
115 // Update icon size
116 reaction(
117 () => (
118 settings.all.app.iconSize
119 ),
120 () => {
121 updateStyle(settings.all.app);
122 },
123 );
107} 124}
diff --git a/src/features/publishDebugInfo/Component.js b/src/features/publishDebugInfo/Component.js
new file mode 100644
index 000000000..1f1b0ed45
--- /dev/null
+++ b/src/features/publishDebugInfo/Component.js
@@ -0,0 +1,208 @@
1import { H1 } from '@meetfranz/ui';
2import { inject, observer } from 'mobx-react';
3import PropTypes from 'prop-types';
4import React, { Component } from 'react';
5import { defineMessages, intlShape } from 'react-intl';
6import injectSheet from 'react-jss';
7import { state as ModalState } from '.';
8import { sendAuthRequest } from '../../api/utils/auth';
9import Button from '../../components/ui/Button';
10import Input from '../../components/ui/Input';
11import Modal from '../../components/ui/Modal';
12import { DEBUG_API } from '../../config';
13import AppStore from '../../stores/AppStore';
14
15
16const messages = defineMessages({
17 title: {
18 id: 'feature.publishDebugInfo.title',
19 defaultMessage: '!!!Publish debug information',
20 },
21 info: {
22 id: 'feature.publishDebugInfo.info',
23 defaultMessage: '!!!Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger\'s privacy policy and terms of service',
24 },
25 error: {
26 id: 'feature.publishDebugInfo.error',
27 defaultMessage: '!!!There was an error while trying to publish the debug information. Please try again later or view the console for more information.',
28 },
29 privacy: {
30 id: 'feature.publishDebugInfo.privacy',
31 defaultMessage: '!!!Privacy policy',
32 },
33 terms: {
34 id: 'feature.publishDebugInfo.terms',
35 defaultMessage: '!!!Terms of service',
36 },
37 publish: {
38 id: 'feature.publishDebugInfo.publish',
39 defaultMessage: '!!!Accept and publish',
40 },
41 published: {
42 id: 'feature.publishDebugInfo.published',
43 defaultMessage: '!!!Your debug log was published and is now availible at',
44 },
45});
46
47const styles = theme => ({
48 container: {
49 minWidth: '70vw',
50 },
51 info: {
52 paddingTop: 20,
53 paddingBottom: 20,
54 },
55 link: {
56 color: `${theme.styleTypes.primary.accent} !important`,
57 padding: 10,
58 cursor: 'pointer',
59 },
60 button: {
61 width: '100%',
62 marginTop: 10,
63 cursor: 'pointer',
64 },
65 url: {
66 marginTop: 20,
67 width: '100%',
68
69 '& div': {
70 fontFamily: 'SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace',
71 },
72
73 '& input': {
74 width: '100%',
75 padding: 15,
76 borderRadius: 6,
77 border: `solid 1px ${theme.styleTypes.primary.accent}`,
78 },
79 },
80});
81
82export default @injectSheet(styles) @inject('stores', 'actions') @observer class PublishDebugLogModal extends Component {
83 static propTypes = {
84 classes: PropTypes.object.isRequired,
85 };
86
87 static contextTypes = {
88 intl: intlShape,
89 };
90
91 state = {
92 log: null,
93 error: false,
94 isSendingLog: false,
95 }
96
97 // Close this modal
98 close() {
99 ModalState.isModalVisible = false;
100 }
101
102 async publishDebugInfo() {
103 this.setState({
104 isSendingLog: true,
105 });
106
107 const debugInfo = JSON.stringify(this.props.stores.app.debugInfo);
108
109 const request = await sendAuthRequest(`${DEBUG_API}/create`, {
110 method: 'POST',
111 body: JSON.stringify({
112 log: debugInfo,
113 }),
114 }, false);
115 const response = await request.json();
116
117 if (response.id) {
118 this.setState({
119 log: response.id,
120 });
121 } else {
122 this.setState({
123 error: true,
124 });
125 }
126 }
127
128 render() {
129 const { isModalVisible } = ModalState;
130
131 const {
132 classes,
133 } = this.props;
134
135 const {
136 log,
137 error,
138 isSendingLog,
139 } = this.state;
140
141 const { intl } = this.context;
142
143 return (
144 <Modal
145 isOpen={isModalVisible}
146 shouldCloseOnOverlayClick
147 close={() => this.close()}
148 >
149 <div className={classes.container}>
150 <H1>
151 {intl.formatMessage(messages.title)}
152 </H1>
153 { log && (
154 <>
155 <p className={classes.info}>{intl.formatMessage(messages.published)}</p>
156 <Input
157 className={classes.url}
158 showLabel={false}
159 field={{
160 type: 'url',
161 value: `${DEBUG_API}/${log}`,
162 disabled: true,
163 }}
164 readonly
165 />
166 </>
167 )}
168
169 {error && (
170 <p className={classes.info}>{intl.formatMessage(messages.error)}</p>
171 )}
172
173 {!log && !error && (
174 <>
175 <p className={classes.info}>{intl.formatMessage(messages.info)}</p>
176
177 <a href={`${DEBUG_API}/privacy.html`} target="_blank" className={classes.link}>
178 {intl.formatMessage(messages.privacy)}
179 </a>
180 <a href={`${DEBUG_API}/terms.html`} target="_blank" className={classes.link}>
181 {intl.formatMessage(messages.terms)}
182 </a>
183
184 <Button
185 type="button"
186 label={intl.formatMessage(messages.publish)}
187 className={classes.button}
188 onClick={() => this.publishDebugInfo()}
189 disabled={isSendingLog}
190 />
191 </>
192 )}
193 </div>
194 </Modal>
195 );
196 }
197}
198
199PublishDebugLogModal.wrappedComponent.propTypes = {
200 stores: PropTypes.shape({
201 app: PropTypes.instanceOf(AppStore).isRequired,
202 }).isRequired,
203 actions: PropTypes.shape({
204 service: PropTypes.shape({
205 setActive: PropTypes.func.isRequired,
206 }).isRequired,
207 }).isRequired,
208};
diff --git a/src/features/publishDebugInfo/index.js b/src/features/publishDebugInfo/index.js
new file mode 100644
index 000000000..7d0d310c2
--- /dev/null
+++ b/src/features/publishDebugInfo/index.js
@@ -0,0 +1,24 @@
1import { observable } from 'mobx';
2
3export { default as Component } from './Component';
4
5const debug = require('debug')('Ferdi:feature:publishDebugInfo');
6
7const defaultState = {
8 isModalVisible: false,
9};
10
11export const state = observable(defaultState);
12
13export default function initialize() {
14 debug('Initialize publishDebugInfo feature');
15
16 function showModal() {
17 state.isModalVisible = true;
18 }
19
20 window.ferdi.features.publishDebugInfo = {
21 state,
22 showModal,
23 };
24}
diff --git a/src/features/todos/preload.js b/src/features/todos/preload.js
index d1838e0d6..d834cf547 100644
--- a/src/features/todos/preload.js
+++ b/src/features/todos/preload.js
@@ -21,3 +21,30 @@ ipcRenderer.on(IPC.TODOS_HOST_CHANNEL, (event, message) => {
21 debug('Received host message', event, message); 21 debug('Received host message', event, message);
22 hostMessageListener(message); 22 hostMessageListener(message);
23}); 23});
24
25if (window.location.href === 'https://app.franztodos.com/login/') {
26 // Insert info element informing about Franz accounts
27 const infoElement = document.createElement('p');
28 infoElement.innerText = `You are using Franz's official Todo Service.
29This service will only work with accounts registered with Franz - no Ferdi accounts will work here!
30If you do not have a Franz account you can change the Todo service by going into Ferdi's settings and changing the "Todo server".
31You can choose any service as this Todo server, e.g. Todoist or Apple Notes.`;
32
33 // Franz Todos uses React. Because of this we can't directly insert the element into the page
34 // but we have to wait for React to finish rendering the login page
35 let numChecks = 0;
36 const waitForReact = setInterval(() => {
37 const textElement = document.querySelector('p');
38 if (textElement) {
39 clearInterval(waitForReact);
40 textElement.parentElement.insertBefore(infoElement, textElement);
41 } else {
42 numChecks += 1;
43
44 // Stop after ~10 seconds. We are probably not on the login page
45 if (numChecks > 1000) {
46 clearInterval(waitForReact);
47 }
48 }
49 }, 10);
50}
diff --git a/src/i18n/locales/af.json b/src/i18n/locales/af.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/af.json
+++ b/src/i18n/locales/af.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json
index 0f02dd06e..29b461d17 100644
--- a/src/i18n/locales/ar.json
+++ b/src/i18n/locales/ar.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "إعادة التحميل", 2 "app.errorHandler.action": "إعادة التحميل",
3 "app.errorHandler.headline": "لقد حدث خطب ما", 3 "app.errorHandler.headline": "لقد حدث خطب ما",
4 "feature.announcements.changelog.headline": "تغيرات في فريدي {version}", 4 "feature.announcements.changelog.headline": "تغيرات في فريدي {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "رجاء قيم بشراء رخصة الدعم لبرنامج فريدي للتخلص من وقت الانتظار", 6 "feature.delayApp.headline": "رجاء قيم بشراء رخصة الدعم لبرنامج فريدي للتخلص من وقت الانتظار",
6 "feature.delayApp.text": "فريدي سوف يستكمل خلال {seconds} ثانية.", 7 "feature.delayApp.text": "فريدي سوف يستكمل خلال {seconds} ثانية.",
7 "feature.delayApp.trial.action": "أجل, أريد الحصول على 14 يوم تجريبي مجاني من برنامج فريدي بروفشنال", 8 "feature.delayApp.trial.action": "أجل, أريد الحصول على 14 يوم تجريبي مجاني من برنامج فريدي بروفشنال",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/bs.json b/src/i18n/locales/bs.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/bs.json
+++ b/src/i18n/locales/bs.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index 6c65a6bf7..c82819b9d 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Recarrega", 2 "app.errorHandler.action": "Recarrega",
3 "app.errorHandler.headline": "Quelcom ha anat malament", 3 "app.errorHandler.headline": "Quelcom ha anat malament",
4 "feature.announcements.changelog.headline": "Canvis en Ferdi {version}", 4 "feature.announcements.changelog.headline": "Canvis en Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Si us plau, compra una llicència de suport per a Ferdi per saltar l'espera", 6 "feature.delayApp.headline": "Si us plau, compra una llicència de suport per a Ferdi per saltar l'espera",
6 "feature.delayApp.text": "Ferdi continuarà en {seconds} segons", 7 "feature.delayApp.text": "Ferdi continuarà en {seconds} segons",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Termes del Servei",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Conegueu-ne més detalls", 131 "menu.help.learnMore": "Conegueu-ne més detalls",
124 "menu.help.privacy": "Declaració de privacitat", 132 "menu.help.privacy": "Declaració de privacitat",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Suport", 134 "menu.help.support": "Suport",
126 "menu.help.tos": "Condicions del Servei", 135 "menu.help.tos": "Condicions del Servei",
127 "menu.services": "Serveis", 136 "menu.services": "Serveis",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Idioma", 284 "settings.app.form.language": "Idioma",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimitza Ferdi a la safata del sistema", 286 "settings.app.form.minimizeToSystemTray": "Minimitza Ferdi a la safata del sistema",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Mantén a Ferdi en segon pla en tancar la finestra", 290 "settings.app.form.runInBackground": "Mantén a Ferdi en segon pla en tancar la finestra",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Mostra les pestanyes dels serveis desactivats", 297 "settings.app.form.showDisabledServices": "Mostra les pestanyes dels serveis desactivats",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Quan es desactiva, tots els sons de notificació i reproducció d'àudio es silenciaran", 374 "settings.service.form.isMutedInfo": "Quan es desactiva, tots els sons de notificació i reproducció d'àudio es silenciaran",
364 "settings.service.form.name": "Nom", 375 "settings.service.form.name": "Nom",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Ajustaments Proxy HTTP/HTTPS", 379 "settings.service.form.proxy.headline": "Ajustaments Proxy HTTP/HTTPS",
367 "settings.service.form.proxy.host": "Host Proxy / IP", 380 "settings.service.form.proxy.host": "Host Proxy / IP",
368 "settings.service.form.proxy.info": "Els ajustaments del Proxy no es sincronitzaran amb els servidors de Ferdi", 381 "settings.service.form.proxy.info": "Els ajustaments del Proxy no es sincronitzaran amb els servidors de Ferdi",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Siusplau, reinicieu el Ferdi després de canviar els ajustaments de proxy", 385 "settings.service.form.proxy.restartInfo": "Siusplau, reinicieu el Ferdi després de canviar els ajustaments de proxy",
373 "settings.service.form.proxy.user": "Usuari (opcional)", 386 "settings.service.form.proxy.user": "Usuari (opcional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Desa el servei", 388 "settings.service.form.saveButton": "Desa el servei",
375 "settings.service.form.tabHosted": "Allotjat", 389 "settings.service.form.tabHosted": "Allotjat",
376 "settings.service.form.tabOnPremise": "Allotjat per si mateix ⭐️", 390 "settings.service.form.tabOnPremise": "Allotjat per si mateix ⭐️",
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json
index fbcd92210..a236d8f6c 100644
--- a/src/i18n/locales/cs.json
+++ b/src/i18n/locales/cs.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Obnovit", 2 "app.errorHandler.action": "Obnovit",
3 "app.errorHandler.headline": "Něco se pokazilo", 3 "app.errorHandler.headline": "Něco se pokazilo",
4 "feature.announcements.changelog.headline": "Změny ve Ferdi {version}", 4 "feature.announcements.changelog.headline": "Změny ve Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Kup si Ferdi Supporter licenci a nebudeš už muset čekat", 6 "feature.delayApp.headline": "Kup si Ferdi Supporter licenci a nebudeš už muset čekat",
6 "feature.delayApp.text": "Ferdi bude pokračovat v {seconds} sekundách.", 7 "feature.delayApp.text": "Ferdi bude pokračovat v {seconds} sekundách.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Podmínky služby",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Dozvědět se více", 131 "menu.help.learnMore": "Dozvědět se více",
124 "menu.help.privacy": "Prohlášení o ochraně soukromí", 132 "menu.help.privacy": "Prohlášení o ochraně soukromí",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Podpora", 134 "menu.help.support": "Podpora",
126 "menu.help.tos": "Podmínky použití", 135 "menu.help.tos": "Podmínky použití",
127 "menu.services": "Služby", 136 "menu.services": "Služby",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Jazyk", 284 "settings.app.form.language": "Jazyk",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimalizovat Ferdi do systémové lišty", 286 "settings.app.form.minimizeToSystemTray": "Minimalizovat Ferdi do systémové lišty",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Ponechat Ferdie v pozadí při zavírání okna", 290 "settings.app.form.runInBackground": "Ponechat Ferdie v pozadí při zavírání okna",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Zobrazit záložky vypnutých služeb", 297 "settings.app.form.showDisabledServices": "Zobrazit záložky vypnutých služeb",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Pokud je vypnuto, všechny zvuky notifikací a jiného audia budou ztišeny", 374 "settings.service.form.isMutedInfo": "Pokud je vypnuto, všechny zvuky notifikací a jiného audia budou ztišeny",
364 "settings.service.form.name": "Jméno", 375 "settings.service.form.name": "Jméno",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Nastavení HTTP/HTTPS Proxy", 379 "settings.service.form.proxy.headline": "Nastavení HTTP/HTTPS Proxy",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Uložit službu", 388 "settings.service.form.saveButton": "Uložit službu",
375 "settings.service.form.tabHosted": "Hostováno", 389 "settings.service.form.tabHosted": "Hostováno",
376 "settings.service.form.tabOnPremise": "Samostatně hostované ⭐️", 390 "settings.service.form.tabOnPremise": "Samostatně hostované ⭐️",
diff --git a/src/i18n/locales/da.json b/src/i18n/locales/da.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/da.json
+++ b/src/i18n/locales/da.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index eb4da28f6..82de95f8b 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Neu laden", 2 "app.errorHandler.action": "Neu laden",
3 "app.errorHandler.headline": "Es ist ein Fehler aufgetreten", 3 "app.errorHandler.headline": "Es ist ein Fehler aufgetreten",
4 "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen", 6 "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen",
6 "feature.delayApp.text": "In {seconds} Sekunden geht's weiter!", 7 "feature.delayApp.text": "In {seconds} Sekunden geht's weiter!",
7 "feature.delayApp.trial.action": "Ja, ich möchte Ferdi Professional 14 Tage gratis testen", 8 "feature.delayApp.trial.action": "Ja, ich möchte Ferdi Professional 14 Tage gratis testen",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "Weitere Dienste, keine Wartezeiten - ideal für den persönlichen Gebrauch.", 26 "feature.planSelection.personal.text": "Weitere Dienste, keine Wartezeiten - ideal für den persönlichen Gebrauch.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Nutzungsbedingungen",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Wähle einen Service mit TAB, ↑ und ↓. Um einen Service zu öffnen, drücke ENTER.", 36 "feature.quickSwitch.info": "Wähle einen Service mit TAB, ↑ und ↓. Um einen Service zu öffnen, drücke ENTER.",
29 "feature.quickSwitch.search": "Suchen...", 37 "feature.quickSwitch.search": "Suchen...",
30 "feature.quickSwitch.title": "Schnellauswahl", 38 "feature.quickSwitch.title": "Schnellauswahl",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debugging-Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debugging-Information",
123 "menu.help.learnMore": "Mehr erfahren", 131 "menu.help.learnMore": "Mehr erfahren",
124 "menu.help.privacy": "Datenschutzerklärung", 132 "menu.help.privacy": "Datenschutzerklärung",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Hilfe", 134 "menu.help.support": "Hilfe",
126 "menu.help.tos": "Nutzungsbedingungen", 135 "menu.help.tos": "Nutzungsbedingungen",
127 "menu.services": "Dienste", 136 "menu.services": "Dienste",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Ferdi Todos aktivieren", 278 "settings.app.form.enableTodos": "Ferdi Todos aktivieren",
270 "settings.app.form.hibernate": "\"Service Hibernation\" aktivieren", 279 "settings.app.form.hibernate": "\"Service Hibernation\" aktivieren",
271 "settings.app.form.hibernationStrategy": "\"Service Hibernation\"-Strategie", 280 "settings.app.form.hibernationStrategy": "\"Service Hibernation\"-Strategie",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Alle Arbeitsbereiche geladen lassen", 283 "settings.app.form.keepAllWorkspacesLoaded": "Alle Arbeitsbereiche geladen lassen",
274 "settings.app.form.language": "Sprache", 284 "settings.app.form.language": "Sprache",
275 "settings.app.form.lockPassword": "Passwort", 285 "settings.app.form.lockPassword": "Passwort",
276 "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren", 286 "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Updates deaktivieren", 288 "settings.app.form.noUpdates": "Updates deaktivieren",
278 "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen", 289 "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen",
279 "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird", 290 "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "Bis", 293 "settings.app.form.scheduledDNDStart": "Bis",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen", 297 "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind",
287 "settings.app.form.showServiceNavigationBar": "Navigationsleiste immer anzeigen",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo-Server", 300 "settings.app.form.todoServer": "Todo-Server",
290 "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren", 301 "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Sämtliche Wiedergabe von Tönen wird deaktiviert", 374 "settings.service.form.isMutedInfo": "Sämtliche Wiedergabe von Tönen wird deaktiviert",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Öffne darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Öffne darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP-/HTTPS-Proxy-Einstellungen", 379 "settings.service.form.proxy.headline": "HTTP-/HTTPS-Proxy-Einstellungen",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy-Einstellungen werden nicht mit den Ferdi Servern synchronisiert.", 381 "settings.service.form.proxy.info": "Proxy-Einstellungen werden nicht mit den Ferdi Servern synchronisiert.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Bitte starte Ferdi nach dem Ändern der Proxy-Einstellungen neu.", 385 "settings.service.form.proxy.restartInfo": "Bitte starte Ferdi nach dem Ändern der Proxy-Einstellungen neu.",
373 "settings.service.form.proxy.user": "Benutzer (optional)", 386 "settings.service.form.proxy.user": "Benutzer (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Dienst speichern", 388 "settings.service.form.saveButton": "Dienst speichern",
375 "settings.service.form.tabHosted": "Gehostet", 389 "settings.service.form.tabHosted": "Gehostet",
376 "settings.service.form.tabOnPremise": "Selbst gehostet ⭐️", 390 "settings.service.form.tabOnPremise": "Selbst gehostet ⭐️",
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index 59930a054..211214d93 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -934,52 +934,52 @@
934 "defaultMessage": "!!!Your services have been updated.", 934 "defaultMessage": "!!!Your services have been updated.",
935 "end": { 935 "end": {
936 "column": 3, 936 "column": 3,
937 "line": 33 937 "line": 34
938 }, 938 },
939 "file": "src/components/layout/AppLayout.js", 939 "file": "src/components/layout/AppLayout.js",
940 "id": "infobar.servicesUpdated", 940 "id": "infobar.servicesUpdated",
941 "start": { 941 "start": {
942 "column": 19, 942 "column": 19,
943 "line": 30 943 "line": 31
944 } 944 }
945 }, 945 },
946 { 946 {
947 "defaultMessage": "!!!Reload services", 947 "defaultMessage": "!!!Reload services",
948 "end": { 948 "end": {
949 "column": 3, 949 "column": 3,
950 "line": 37 950 "line": 38
951 }, 951 },
952 "file": "src/components/layout/AppLayout.js", 952 "file": "src/components/layout/AppLayout.js",
953 "id": "infobar.buttonReloadServices", 953 "id": "infobar.buttonReloadServices",
954 "start": { 954 "start": {
955 "column": 24, 955 "column": 24,
956 "line": 34 956 "line": 35
957 } 957 }
958 }, 958 },
959 { 959 {
960 "defaultMessage": "!!!Could not load services and user information", 960 "defaultMessage": "!!!Could not load services and user information",
961 "end": { 961 "end": {
962 "column": 3, 962 "column": 3,
963 "line": 41 963 "line": 42
964 }, 964 },
965 "file": "src/components/layout/AppLayout.js", 965 "file": "src/components/layout/AppLayout.js",
966 "id": "infobar.requiredRequestsFailed", 966 "id": "infobar.requiredRequestsFailed",
967 "start": { 967 "start": {
968 "column": 26, 968 "column": 26,
969 "line": 38 969 "line": 39
970 } 970 }
971 }, 971 },
972 { 972 {
973 "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 973 "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
974 "end": { 974 "end": {
975 "column": 3, 975 "column": 3,
976 "line": 45 976 "line": 46
977 }, 977 },
978 "file": "src/components/layout/AppLayout.js", 978 "file": "src/components/layout/AppLayout.js",
979 "id": "infobar.authRequestFailed", 979 "id": "infobar.authRequestFailed",
980 "start": { 980 "start": {
981 "column": 21, 981 "column": 21,
982 "line": 42 982 "line": 43
983 } 983 }
984 } 984 }
985 ], 985 ],
@@ -2143,263 +2143,302 @@
2143 } 2143 }
2144 }, 2144 },
2145 { 2145 {
2146 "defaultMessage": "!!!Available services", 2146 "defaultMessage": "!!!Open user.css",
2147 "end": { 2147 "end": {
2148 "column": 3, 2148 "column": 3,
2149 "line": 39 2149 "line": 39
2150 }, 2150 },
2151 "file": "src/components/settings/services/EditServiceForm.js", 2151 "file": "src/components/settings/services/EditServiceForm.js",
2152 "id": "settings.service.form.openUserCss",
2153 "start": {
2154 "column": 15,
2155 "line": 36
2156 }
2157 },
2158 {
2159 "defaultMessage": "!!!Open user.js",
2160 "end": {
2161 "column": 3,
2162 "line": 43
2163 },
2164 "file": "src/components/settings/services/EditServiceForm.js",
2165 "id": "settings.service.form.openUserJs",
2166 "start": {
2167 "column": 14,
2168 "line": 40
2169 }
2170 },
2171 {
2172 "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
2173 "end": {
2174 "column": 3,
2175 "line": 47
2176 },
2177 "file": "src/components/settings/services/EditServiceForm.js",
2178 "id": "settings.service.form.recipeFileInfo",
2179 "start": {
2180 "column": 18,
2181 "line": 44
2182 }
2183 },
2184 {
2185 "defaultMessage": "!!!Available services",
2186 "end": {
2187 "column": 3,
2188 "line": 51
2189 },
2190 "file": "src/components/settings/services/EditServiceForm.js",
2152 "id": "settings.service.form.availableServices", 2191 "id": "settings.service.form.availableServices",
2153 "start": { 2192 "start": {
2154 "column": 21, 2193 "column": 21,
2155 "line": 36 2194 "line": 48
2156 } 2195 }
2157 }, 2196 },
2158 { 2197 {
2159 "defaultMessage": "!!!Your services", 2198 "defaultMessage": "!!!Your services",
2160 "end": { 2199 "end": {
2161 "column": 3, 2200 "column": 3,
2162 "line": 43 2201 "line": 55
2163 }, 2202 },
2164 "file": "src/components/settings/services/EditServiceForm.js", 2203 "file": "src/components/settings/services/EditServiceForm.js",
2165 "id": "settings.service.form.yourServices", 2204 "id": "settings.service.form.yourServices",
2166 "start": { 2205 "start": {
2167 "column": 16, 2206 "column": 16,
2168 "line": 40 2207 "line": 52
2169 } 2208 }
2170 }, 2209 },
2171 { 2210 {
2172 "defaultMessage": "!!!Add {name}", 2211 "defaultMessage": "!!!Add {name}",
2173 "end": { 2212 "end": {
2174 "column": 3, 2213 "column": 3,
2175 "line": 47 2214 "line": 59
2176 }, 2215 },
2177 "file": "src/components/settings/services/EditServiceForm.js", 2216 "file": "src/components/settings/services/EditServiceForm.js",
2178 "id": "settings.service.form.addServiceHeadline", 2217 "id": "settings.service.form.addServiceHeadline",
2179 "start": { 2218 "start": {
2180 "column": 22, 2219 "column": 22,
2181 "line": 44 2220 "line": 56
2182 } 2221 }
2183 }, 2222 },
2184 { 2223 {
2185 "defaultMessage": "!!!Edit {name}", 2224 "defaultMessage": "!!!Edit {name}",
2186 "end": { 2225 "end": {
2187 "column": 3, 2226 "column": 3,
2188 "line": 51 2227 "line": 63
2189 }, 2228 },
2190 "file": "src/components/settings/services/EditServiceForm.js", 2229 "file": "src/components/settings/services/EditServiceForm.js",
2191 "id": "settings.service.form.editServiceHeadline", 2230 "id": "settings.service.form.editServiceHeadline",
2192 "start": { 2231 "start": {
2193 "column": 23, 2232 "column": 23,
2194 "line": 48 2233 "line": 60
2195 } 2234 }
2196 }, 2235 },
2197 { 2236 {
2198 "defaultMessage": "!!!Hosted", 2237 "defaultMessage": "!!!Hosted",
2199 "end": { 2238 "end": {
2200 "column": 3, 2239 "column": 3,
2201 "line": 55 2240 "line": 67
2202 }, 2241 },
2203 "file": "src/components/settings/services/EditServiceForm.js", 2242 "file": "src/components/settings/services/EditServiceForm.js",
2204 "id": "settings.service.form.tabHosted", 2243 "id": "settings.service.form.tabHosted",
2205 "start": { 2244 "start": {
2206 "column": 13, 2245 "column": 13,
2207 "line": 52 2246 "line": 64
2208 } 2247 }
2209 }, 2248 },
2210 { 2249 {
2211 "defaultMessage": "!!!Self hosted ⭐️", 2250 "defaultMessage": "!!!Self hosted ⭐️",
2212 "end": { 2251 "end": {
2213 "column": 3, 2252 "column": 3,
2214 "line": 59 2253 "line": 71
2215 }, 2254 },
2216 "file": "src/components/settings/services/EditServiceForm.js", 2255 "file": "src/components/settings/services/EditServiceForm.js",
2217 "id": "settings.service.form.tabOnPremise", 2256 "id": "settings.service.form.tabOnPremise",
2218 "start": { 2257 "start": {
2219 "column": 16, 2258 "column": 16,
2220 "line": 56 2259 "line": 68
2221 } 2260 }
2222 }, 2261 },
2223 { 2262 {
2224 "defaultMessage": "!!!Use the hosted {name} service.", 2263 "defaultMessage": "!!!Use the hosted {name} service.",
2225 "end": { 2264 "end": {
2226 "column": 3, 2265 "column": 3,
2227 "line": 63 2266 "line": 75
2228 }, 2267 },
2229 "file": "src/components/settings/services/EditServiceForm.js", 2268 "file": "src/components/settings/services/EditServiceForm.js",
2230 "id": "settings.service.form.useHostedService", 2269 "id": "settings.service.form.useHostedService",
2231 "start": { 2270 "start": {
2232 "column": 20, 2271 "column": 20,
2233 "line": 60 2272 "line": 72
2234 } 2273 }
2235 }, 2274 },
2236 { 2275 {
2237 "defaultMessage": "!!!Could not validate custom {name} server.", 2276 "defaultMessage": "!!!Could not validate custom {name} server.",
2238 "end": { 2277 "end": {
2239 "column": 3, 2278 "column": 3,
2240 "line": 67 2279 "line": 79
2241 }, 2280 },
2242 "file": "src/components/settings/services/EditServiceForm.js", 2281 "file": "src/components/settings/services/EditServiceForm.js",
2243 "id": "settings.service.form.customUrlValidationError", 2282 "id": "settings.service.form.customUrlValidationError",
2244 "start": { 2283 "start": {
2245 "column": 28, 2284 "column": 28,
2246 "line": 64 2285 "line": 76
2247 } 2286 }
2248 }, 2287 },
2249 { 2288 {
2250 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.", 2289 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.",
2251 "end": { 2290 "end": {
2252 "column": 3, 2291 "column": 3,
2253 "line": 71 2292 "line": 83
2254 }, 2293 },
2255 "file": "src/components/settings/services/EditServiceForm.js", 2294 "file": "src/components/settings/services/EditServiceForm.js",
2256 "id": "settings.service.form.customUrlPremiumInfo", 2295 "id": "settings.service.form.customUrlPremiumInfo",
2257 "start": { 2296 "start": {
2258 "column": 24, 2297 "column": 24,
2259 "line": 68 2298 "line": 80
2260 } 2299 }
2261 }, 2300 },
2262 { 2301 {
2263 "defaultMessage": "!!!Upgrade your account", 2302 "defaultMessage": "!!!Upgrade your account",
2264 "end": { 2303 "end": {
2265 "column": 3, 2304 "column": 3,
2266 "line": 75 2305 "line": 87
2267 }, 2306 },
2268 "file": "src/components/settings/services/EditServiceForm.js", 2307 "file": "src/components/settings/services/EditServiceForm.js",
2269 "id": "settings.service.form.customUrlUpgradeAccount", 2308 "id": "settings.service.form.customUrlUpgradeAccount",
2270 "start": { 2309 "start": {
2271 "column": 27, 2310 "column": 27,
2272 "line": 72 2311 "line": 84
2273 } 2312 }
2274 }, 2313 },
2275 { 2314 {
2276 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 2315 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
2277 "end": { 2316 "end": {
2278 "column": 3, 2317 "column": 3,
2279 "line": 79 2318 "line": 91
2280 }, 2319 },
2281 "file": "src/components/settings/services/EditServiceForm.js", 2320 "file": "src/components/settings/services/EditServiceForm.js",
2282 "id": "settings.service.form.indirectMessageInfo", 2321 "id": "settings.service.form.indirectMessageInfo",
2283 "start": { 2322 "start": {
2284 "column": 23, 2323 "column": 23,
2285 "line": 76 2324 "line": 88
2286 } 2325 }
2287 }, 2326 },
2288 { 2327 {
2289 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", 2328 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted",
2290 "end": { 2329 "end": {
2291 "column": 3, 2330 "column": 3,
2292 "line": 83 2331 "line": 95
2293 }, 2332 },
2294 "file": "src/components/settings/services/EditServiceForm.js", 2333 "file": "src/components/settings/services/EditServiceForm.js",
2295 "id": "settings.service.form.isMutedInfo", 2334 "id": "settings.service.form.isMutedInfo",
2296 "start": { 2335 "start": {
2297 "column": 15, 2336 "column": 15,
2298 "line": 80 2337 "line": 92
2299 } 2338 }
2300 }, 2339 },
2301 { 2340 {
2302 "defaultMessage": "!!!Notifications", 2341 "defaultMessage": "!!!Notifications",
2303 "end": { 2342 "end": {
2304 "column": 3, 2343 "column": 3,
2305 "line": 87 2344 "line": 99
2306 }, 2345 },
2307 "file": "src/components/settings/services/EditServiceForm.js", 2346 "file": "src/components/settings/services/EditServiceForm.js",
2308 "id": "settings.service.form.headlineNotifications", 2347 "id": "settings.service.form.headlineNotifications",
2309 "start": { 2348 "start": {
2310 "column": 25, 2349 "column": 25,
2311 "line": 84 2350 "line": 96
2312 } 2351 }
2313 }, 2352 },
2314 { 2353 {
2315 "defaultMessage": "!!!Unread message badges", 2354 "defaultMessage": "!!!Unread message badges",
2316 "end": { 2355 "end": {
2317 "column": 3, 2356 "column": 3,
2318 "line": 91 2357 "line": 103
2319 }, 2358 },
2320 "file": "src/components/settings/services/EditServiceForm.js", 2359 "file": "src/components/settings/services/EditServiceForm.js",
2321 "id": "settings.service.form.headlineBadges", 2360 "id": "settings.service.form.headlineBadges",
2322 "start": { 2361 "start": {
2323 "column": 18, 2362 "column": 18,
2324 "line": 88 2363 "line": 100
2325 } 2364 }
2326 }, 2365 },
2327 { 2366 {
2328 "defaultMessage": "!!!General", 2367 "defaultMessage": "!!!General",
2329 "end": { 2368 "end": {
2330 "column": 3, 2369 "column": 3,
2331 "line": 95 2370 "line": 107
2332 }, 2371 },
2333 "file": "src/components/settings/services/EditServiceForm.js", 2372 "file": "src/components/settings/services/EditServiceForm.js",
2334 "id": "settings.service.form.headlineGeneral", 2373 "id": "settings.service.form.headlineGeneral",
2335 "start": { 2374 "start": {
2336 "column": 19, 2375 "column": 19,
2337 "line": 92 2376 "line": 104
2338 } 2377 }
2339 }, 2378 },
2340 { 2379 {
2341 "defaultMessage": "!!!Delete", 2380 "defaultMessage": "!!!Delete",
2342 "end": { 2381 "end": {
2343 "column": 3, 2382 "column": 3,
2344 "line": 99 2383 "line": 111
2345 }, 2384 },
2346 "file": "src/components/settings/services/EditServiceForm.js", 2385 "file": "src/components/settings/services/EditServiceForm.js",
2347 "id": "settings.service.form.iconDelete", 2386 "id": "settings.service.form.iconDelete",
2348 "start": { 2387 "start": {
2349 "column": 14, 2388 "column": 14,
2350 "line": 96 2389 "line": 108
2351 } 2390 }
2352 }, 2391 },
2353 { 2392 {
2354 "defaultMessage": "!!!Drop your image, or click here", 2393 "defaultMessage": "!!!Drop your image, or click here",
2355 "end": { 2394 "end": {
2356 "column": 3, 2395 "column": 3,
2357 "line": 103 2396 "line": 115
2358 }, 2397 },
2359 "file": "src/components/settings/services/EditServiceForm.js", 2398 "file": "src/components/settings/services/EditServiceForm.js",
2360 "id": "settings.service.form.iconUpload", 2399 "id": "settings.service.form.iconUpload",
2361 "start": { 2400 "start": {
2362 "column": 14, 2401 "column": 14,
2363 "line": 100 2402 "line": 112
2364 } 2403 }
2365 }, 2404 },
2366 { 2405 {
2367 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", 2406 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings",
2368 "end": { 2407 "end": {
2369 "column": 3, 2408 "column": 3,
2370 "line": 107 2409 "line": 119
2371 }, 2410 },
2372 "file": "src/components/settings/services/EditServiceForm.js", 2411 "file": "src/components/settings/services/EditServiceForm.js",
2373 "id": "settings.service.form.proxy.headline", 2412 "id": "settings.service.form.proxy.headline",
2374 "start": { 2413 "start": {
2375 "column": 17, 2414 "column": 17,
2376 "line": 104 2415 "line": 116
2377 } 2416 }
2378 }, 2417 },
2379 { 2418 {
2380 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", 2419 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.",
2381 "end": { 2420 "end": {
2382 "column": 3, 2421 "column": 3,
2383 "line": 111 2422 "line": 123
2384 }, 2423 },
2385 "file": "src/components/settings/services/EditServiceForm.js", 2424 "file": "src/components/settings/services/EditServiceForm.js",
2386 "id": "settings.service.form.proxy.restartInfo", 2425 "id": "settings.service.form.proxy.restartInfo",
2387 "start": { 2426 "start": {
2388 "column": 20, 2427 "column": 20,
2389 "line": 108 2428 "line": 120
2390 } 2429 }
2391 }, 2430 },
2392 { 2431 {
2393 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", 2432 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.",
2394 "end": { 2433 "end": {
2395 "column": 3, 2434 "column": 3,
2396 "line": 115 2435 "line": 127
2397 }, 2436 },
2398 "file": "src/components/settings/services/EditServiceForm.js", 2437 "file": "src/components/settings/services/EditServiceForm.js",
2399 "id": "settings.service.form.proxy.info", 2438 "id": "settings.service.form.proxy.info",
2400 "start": { 2439 "start": {
2401 "column": 13, 2440 "column": 13,
2402 "line": 112 2441 "line": 124
2403 } 2442 }
2404 } 2443 }
2405 ], 2444 ],
@@ -4087,416 +4126,442 @@
4087 "defaultMessage": "!!!Launch Ferdi on start", 4126 "defaultMessage": "!!!Launch Ferdi on start",
4088 "end": { 4127 "end": {
4089 "column": 3, 4128 "column": 3,
4090 "line": 32 4129 "line": 34
4091 }, 4130 },
4092 "file": "src/containers/settings/EditSettingsScreen.js", 4131 "file": "src/containers/settings/EditSettingsScreen.js",
4093 "id": "settings.app.form.autoLaunchOnStart", 4132 "id": "settings.app.form.autoLaunchOnStart",
4094 "start": { 4133 "start": {
4095 "column": 21, 4134 "column": 21,
4096 "line": 29 4135 "line": 31
4097 } 4136 }
4098 }, 4137 },
4099 { 4138 {
4100 "defaultMessage": "!!!Open in background", 4139 "defaultMessage": "!!!Open in background",
4101 "end": { 4140 "end": {
4102 "column": 3, 4141 "column": 3,
4103 "line": 36 4142 "line": 38
4104 }, 4143 },
4105 "file": "src/containers/settings/EditSettingsScreen.js", 4144 "file": "src/containers/settings/EditSettingsScreen.js",
4106 "id": "settings.app.form.autoLaunchInBackground", 4145 "id": "settings.app.form.autoLaunchInBackground",
4107 "start": { 4146 "start": {
4108 "column": 26, 4147 "column": 26,
4109 "line": 33 4148 "line": 35
4110 } 4149 }
4111 }, 4150 },
4112 { 4151 {
4113 "defaultMessage": "!!!Keep Ferdi in background when closing the window", 4152 "defaultMessage": "!!!Keep Ferdi in background when closing the window",
4114 "end": { 4153 "end": {
4115 "column": 3, 4154 "column": 3,
4116 "line": 40 4155 "line": 42
4117 }, 4156 },
4118 "file": "src/containers/settings/EditSettingsScreen.js", 4157 "file": "src/containers/settings/EditSettingsScreen.js",
4119 "id": "settings.app.form.runInBackground", 4158 "id": "settings.app.form.runInBackground",
4120 "start": { 4159 "start": {
4121 "column": 19, 4160 "column": 19,
4122 "line": 37 4161 "line": 39
4123 } 4162 }
4124 }, 4163 },
4125 { 4164 {
4126 "defaultMessage": "!!!Start minimized in tray", 4165 "defaultMessage": "!!!Start minimized in tray",
4127 "end": { 4166 "end": {
4128 "column": 3, 4167 "column": 3,
4129 "line": 44 4168 "line": 46
4130 }, 4169 },
4131 "file": "src/containers/settings/EditSettingsScreen.js", 4170 "file": "src/containers/settings/EditSettingsScreen.js",
4132 "id": "settings.app.form.startMinimized", 4171 "id": "settings.app.form.startMinimized",
4133 "start": { 4172 "start": {
4134 "column": 18, 4173 "column": 18,
4135 "line": 41 4174 "line": 43
4136 } 4175 }
4137 }, 4176 },
4138 { 4177 {
4139 "defaultMessage": "!!!Show Ferdi in system tray", 4178 "defaultMessage": "!!!Always show Ferdi in system tray",
4140 "end": { 4179 "end": {
4141 "column": 3, 4180 "column": 3,
4142 "line": 48 4181 "line": 50
4143 }, 4182 },
4144 "file": "src/containers/settings/EditSettingsScreen.js", 4183 "file": "src/containers/settings/EditSettingsScreen.js",
4145 "id": "settings.app.form.enableSystemTray", 4184 "id": "settings.app.form.enableSystemTray",
4146 "start": { 4185 "start": {
4147 "column": 20, 4186 "column": 20,
4148 "line": 45 4187 "line": 47
4149 } 4188 }
4150 }, 4189 },
4151 { 4190 {
4152 "defaultMessage": "!!!Minimize Ferdi to system tray", 4191 "defaultMessage": "!!!Minimize Ferdi to system tray",
4153 "end": { 4192 "end": {
4154 "column": 3, 4193 "column": 3,
4155 "line": 52 4194 "line": 54
4156 }, 4195 },
4157 "file": "src/containers/settings/EditSettingsScreen.js", 4196 "file": "src/containers/settings/EditSettingsScreen.js",
4158 "id": "settings.app.form.minimizeToSystemTray", 4197 "id": "settings.app.form.minimizeToSystemTray",
4159 "start": { 4198 "start": {
4160 "column": 24, 4199 "column": 24,
4161 "line": 49 4200 "line": 51
4162 } 4201 }
4163 }, 4202 },
4164 { 4203 {
4165 "defaultMessage": "!!!Don't show message content in notifications", 4204 "defaultMessage": "!!!Don't show message content in notifications",
4166 "end": { 4205 "end": {
4167 "column": 3, 4206 "column": 3,
4168 "line": 56 4207 "line": 58
4169 }, 4208 },
4170 "file": "src/containers/settings/EditSettingsScreen.js", 4209 "file": "src/containers/settings/EditSettingsScreen.js",
4171 "id": "settings.app.form.privateNotifications", 4210 "id": "settings.app.form.privateNotifications",
4172 "start": { 4211 "start": {
4173 "column": 24, 4212 "column": 24,
4174 "line": 53 4213 "line": 55
4175 } 4214 }
4176 }, 4215 },
4177 { 4216 {
4178 "defaultMessage": "!!!Always show service navigation bar", 4217 "defaultMessage": "!!!Navigation bar behaviour",
4179 "end": { 4218 "end": {
4180 "column": 3, 4219 "column": 3,
4181 "line": 60 4220 "line": 62
4182 }, 4221 },
4183 "file": "src/containers/settings/EditSettingsScreen.js", 4222 "file": "src/containers/settings/EditSettingsScreen.js",
4184 "id": "settings.app.form.showServiceNavigationBar", 4223 "id": "settings.app.form.navigationBarBehaviour",
4185 "start": { 4224 "start": {
4186 "column": 28, 4225 "column": 26,
4187 "line": 57 4226 "line": 59
4188 } 4227 }
4189 }, 4228 },
4190 { 4229 {
4191 "defaultMessage": "!!!Send telemetry data", 4230 "defaultMessage": "!!!Send telemetry data",
4192 "end": { 4231 "end": {
4193 "column": 3, 4232 "column": 3,
4194 "line": 64 4233 "line": 66
4195 }, 4234 },
4196 "file": "src/containers/settings/EditSettingsScreen.js", 4235 "file": "src/containers/settings/EditSettingsScreen.js",
4197 "id": "settings.app.form.sentry", 4236 "id": "settings.app.form.sentry",
4198 "start": { 4237 "start": {
4199 "column": 10, 4238 "column": 10,
4200 "line": 61 4239 "line": 63
4201 } 4240 }
4202 }, 4241 },
4203 { 4242 {
4204 "defaultMessage": "!!!Enable service hibernation", 4243 "defaultMessage": "!!!Enable service hibernation",
4205 "end": { 4244 "end": {
4206 "column": 3, 4245 "column": 3,
4207 "line": 68 4246 "line": 70
4208 }, 4247 },
4209 "file": "src/containers/settings/EditSettingsScreen.js", 4248 "file": "src/containers/settings/EditSettingsScreen.js",
4210 "id": "settings.app.form.hibernate", 4249 "id": "settings.app.form.hibernate",
4211 "start": { 4250 "start": {
4212 "column": 13, 4251 "column": 13,
4213 "line": 65 4252 "line": 67
4214 } 4253 }
4215 }, 4254 },
4216 { 4255 {
4217 "defaultMessage": "!!!Hibernation strategy", 4256 "defaultMessage": "!!!Hibernation strategy",
4218 "end": { 4257 "end": {
4219 "column": 3, 4258 "column": 3,
4220 "line": 72 4259 "line": 74
4221 }, 4260 },
4222 "file": "src/containers/settings/EditSettingsScreen.js", 4261 "file": "src/containers/settings/EditSettingsScreen.js",
4223 "id": "settings.app.form.hibernationStrategy", 4262 "id": "settings.app.form.hibernationStrategy",
4224 "start": { 4263 "start": {
4225 "column": 23, 4264 "column": 23,
4226 "line": 69 4265 "line": 71
4227 } 4266 }
4228 }, 4267 },
4229 { 4268 {
4230 "defaultMessage": "!!!Server", 4269 "defaultMessage": "!!!Server",
4231 "end": { 4270 "end": {
4232 "column": 3, 4271 "column": 3,
4233 "line": 76 4272 "line": 78
4234 }, 4273 },
4235 "file": "src/containers/settings/EditSettingsScreen.js", 4274 "file": "src/containers/settings/EditSettingsScreen.js",
4236 "id": "settings.app.form.server", 4275 "id": "settings.app.form.server",
4237 "start": { 4276 "start": {
4238 "column": 10, 4277 "column": 10,
4239 "line": 73 4278 "line": 75
4240 } 4279 }
4241 }, 4280 },
4242 { 4281 {
4243 "defaultMessage": "!!!Todo Server", 4282 "defaultMessage": "!!!Todo Server",
4244 "end": { 4283 "end": {
4245 "column": 3, 4284 "column": 3,
4246 "line": 80 4285 "line": 82
4247 }, 4286 },
4248 "file": "src/containers/settings/EditSettingsScreen.js", 4287 "file": "src/containers/settings/EditSettingsScreen.js",
4249 "id": "settings.app.form.todoServer", 4288 "id": "settings.app.form.todoServer",
4250 "start": { 4289 "start": {
4251 "column": 14, 4290 "column": 14,
4252 "line": 77 4291 "line": 79
4253 } 4292 }
4254 }, 4293 },
4255 { 4294 {
4256 "defaultMessage": "!!!Enable Password Lock", 4295 "defaultMessage": "!!!Enable Password Lock",
4257 "end": { 4296 "end": {
4258 "column": 3, 4297 "column": 3,
4259 "line": 84 4298 "line": 86
4260 }, 4299 },
4261 "file": "src/containers/settings/EditSettingsScreen.js", 4300 "file": "src/containers/settings/EditSettingsScreen.js",
4262 "id": "settings.app.form.enableLock", 4301 "id": "settings.app.form.enableLock",
4263 "start": { 4302 "start": {
4264 "column": 14, 4303 "column": 14,
4265 "line": 81 4304 "line": 83
4266 } 4305 }
4267 }, 4306 },
4268 { 4307 {
4269 "defaultMessage": "!!!Password", 4308 "defaultMessage": "!!!Password",
4270 "end": { 4309 "end": {
4271 "column": 3, 4310 "column": 3,
4272 "line": 88 4311 "line": 90
4273 }, 4312 },
4274 "file": "src/containers/settings/EditSettingsScreen.js", 4313 "file": "src/containers/settings/EditSettingsScreen.js",
4275 "id": "settings.app.form.lockPassword", 4314 "id": "settings.app.form.lockPassword",
4276 "start": { 4315 "start": {
4277 "column": 16, 4316 "column": 16,
4278 "line": 85 4317 "line": 87
4279 } 4318 }
4280 }, 4319 },
4281 { 4320 {
4282 "defaultMessage": "!!!Lock after inactivity", 4321 "defaultMessage": "!!!Lock after inactivity",
4283 "end": { 4322 "end": {
4284 "column": 3, 4323 "column": 3,
4285 "line": 92 4324 "line": 94
4286 }, 4325 },
4287 "file": "src/containers/settings/EditSettingsScreen.js", 4326 "file": "src/containers/settings/EditSettingsScreen.js",
4288 "id": "settings.app.form.inactivityLock", 4327 "id": "settings.app.form.inactivityLock",
4289 "start": { 4328 "start": {
4290 "column": 18, 4329 "column": 18,
4291 "line": 89 4330 "line": 91
4292 } 4331 }
4293 }, 4332 },
4294 { 4333 {
4295 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 4334 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
4296 "end": { 4335 "end": {
4297 "column": 3, 4336 "column": 3,
4298 "line": 96 4337 "line": 98
4299 }, 4338 },
4300 "file": "src/containers/settings/EditSettingsScreen.js", 4339 "file": "src/containers/settings/EditSettingsScreen.js",
4301 "id": "settings.app.form.scheduledDNDEnabled", 4340 "id": "settings.app.form.scheduledDNDEnabled",
4302 "start": { 4341 "start": {
4303 "column": 23, 4342 "column": 23,
4304 "line": 93 4343 "line": 95
4305 } 4344 }
4306 }, 4345 },
4307 { 4346 {
4308 "defaultMessage": "!!!From", 4347 "defaultMessage": "!!!From",
4309 "end": { 4348 "end": {
4310 "column": 3, 4349 "column": 3,
4311 "line": 100 4350 "line": 102
4312 }, 4351 },
4313 "file": "src/containers/settings/EditSettingsScreen.js", 4352 "file": "src/containers/settings/EditSettingsScreen.js",
4314 "id": "settings.app.form.scheduledDNDStart", 4353 "id": "settings.app.form.scheduledDNDStart",
4315 "start": { 4354 "start": {
4316 "column": 21, 4355 "column": 21,
4317 "line": 97 4356 "line": 99
4318 } 4357 }
4319 }, 4358 },
4320 { 4359 {
4321 "defaultMessage": "!!!To", 4360 "defaultMessage": "!!!To",
4322 "end": { 4361 "end": {
4323 "column": 3, 4362 "column": 3,
4324 "line": 104 4363 "line": 106
4325 }, 4364 },
4326 "file": "src/containers/settings/EditSettingsScreen.js", 4365 "file": "src/containers/settings/EditSettingsScreen.js",
4327 "id": "settings.app.form.scheduledDNDEnd", 4366 "id": "settings.app.form.scheduledDNDEnd",
4328 "start": { 4367 "start": {
4329 "column": 19, 4368 "column": 19,
4330 "line": 101 4369 "line": 103
4331 } 4370 }
4332 }, 4371 },
4333 { 4372 {
4334 "defaultMessage": "!!!Language", 4373 "defaultMessage": "!!!Language",
4335 "end": { 4374 "end": {
4336 "column": 3, 4375 "column": 3,
4337 "line": 108 4376 "line": 110
4338 }, 4377 },
4339 "file": "src/containers/settings/EditSettingsScreen.js", 4378 "file": "src/containers/settings/EditSettingsScreen.js",
4340 "id": "settings.app.form.language", 4379 "id": "settings.app.form.language",
4341 "start": { 4380 "start": {
4342 "column": 12, 4381 "column": 12,
4343 "line": 105 4382 "line": 107
4344 } 4383 }
4345 }, 4384 },
4346 { 4385 {
4347 "defaultMessage": "!!!Dark Mode", 4386 "defaultMessage": "!!!Dark Mode",
4348 "end": { 4387 "end": {
4349 "column": 3, 4388 "column": 3,
4350 "line": 112 4389 "line": 114
4351 }, 4390 },
4352 "file": "src/containers/settings/EditSettingsScreen.js", 4391 "file": "src/containers/settings/EditSettingsScreen.js",
4353 "id": "settings.app.form.darkMode", 4392 "id": "settings.app.form.darkMode",
4354 "start": { 4393 "start": {
4355 "column": 12, 4394 "column": 12,
4356 "line": 109 4395 "line": 111
4357 } 4396 }
4358 }, 4397 },
4359 { 4398 {
4360 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", 4399 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting",
4361 "end": { 4400 "end": {
4362 "column": 3, 4401 "column": 3,
4363 "line": 116 4402 "line": 118
4364 }, 4403 },
4365 "file": "src/containers/settings/EditSettingsScreen.js", 4404 "file": "src/containers/settings/EditSettingsScreen.js",
4366 "id": "settings.app.form.adaptableDarkMode", 4405 "id": "settings.app.form.adaptableDarkMode",
4367 "start": { 4406 "start": {
4368 "column": 21, 4407 "column": 21,
4369 "line": 113 4408 "line": 115
4370 } 4409 }
4371 }, 4410 },
4372 { 4411 {
4373 "defaultMessage": "!!!Enable universal Dark Mode", 4412 "defaultMessage": "!!!Enable universal Dark Mode",
4374 "end": { 4413 "end": {
4375 "column": 3, 4414 "column": 3,
4376 "line": 120 4415 "line": 122
4377 }, 4416 },
4378 "file": "src/containers/settings/EditSettingsScreen.js", 4417 "file": "src/containers/settings/EditSettingsScreen.js",
4379 "id": "settings.app.form.universalDarkMode", 4418 "id": "settings.app.form.universalDarkMode",
4380 "start": { 4419 "start": {
4381 "column": 21, 4420 "column": 21,
4382 "line": 117 4421 "line": 119
4422 }
4423 },
4424 {
4425 "defaultMessage": "!!!Sidebar width",
4426 "end": {
4427 "column": 3,
4428 "line": 126
4429 },
4430 "file": "src/containers/settings/EditSettingsScreen.js",
4431 "id": "settings.app.form.serviceRibbonWidth",
4432 "start": {
4433 "column": 22,
4434 "line": 123
4435 }
4436 },
4437 {
4438 "defaultMessage": "!!!Service icon size",
4439 "end": {
4440 "column": 3,
4441 "line": 130
4442 },
4443 "file": "src/containers/settings/EditSettingsScreen.js",
4444 "id": "settings.app.form.iconSize",
4445 "start": {
4446 "column": 12,
4447 "line": 127
4383 } 4448 }
4384 }, 4449 },
4385 { 4450 {
4386 "defaultMessage": "!!!Accent color", 4451 "defaultMessage": "!!!Accent color",
4387 "end": { 4452 "end": {
4388 "column": 3, 4453 "column": 3,
4389 "line": 124 4454 "line": 134
4390 }, 4455 },
4391 "file": "src/containers/settings/EditSettingsScreen.js", 4456 "file": "src/containers/settings/EditSettingsScreen.js",
4392 "id": "settings.app.form.accentColor", 4457 "id": "settings.app.form.accentColor",
4393 "start": { 4458 "start": {
4394 "column": 15, 4459 "column": 15,
4395 "line": 121 4460 "line": 131
4396 } 4461 }
4397 }, 4462 },
4398 { 4463 {
4399 "defaultMessage": "!!!Display disabled services tabs", 4464 "defaultMessage": "!!!Display disabled services tabs",
4400 "end": { 4465 "end": {
4401 "column": 3, 4466 "column": 3,
4402 "line": 128 4467 "line": 138
4403 }, 4468 },
4404 "file": "src/containers/settings/EditSettingsScreen.js", 4469 "file": "src/containers/settings/EditSettingsScreen.js",
4405 "id": "settings.app.form.showDisabledServices", 4470 "id": "settings.app.form.showDisabledServices",
4406 "start": { 4471 "start": {
4407 "column": 24, 4472 "column": 24,
4408 "line": 125 4473 "line": 135
4409 } 4474 }
4410 }, 4475 },
4411 { 4476 {
4412 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 4477 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
4413 "end": { 4478 "end": {
4414 "column": 3, 4479 "column": 3,
4415 "line": 132 4480 "line": 142
4416 }, 4481 },
4417 "file": "src/containers/settings/EditSettingsScreen.js", 4482 "file": "src/containers/settings/EditSettingsScreen.js",
4418 "id": "settings.app.form.showMessagesBadgesWhenMuted", 4483 "id": "settings.app.form.showMessagesBadgesWhenMuted",
4419 "start": { 4484 "start": {
4420 "column": 29, 4485 "column": 29,
4421 "line": 129 4486 "line": 139
4422 } 4487 }
4423 }, 4488 },
4424 { 4489 {
4425 "defaultMessage": "!!!Enable spell checking", 4490 "defaultMessage": "!!!Enable spell checking",
4426 "end": { 4491 "end": {
4427 "column": 3, 4492 "column": 3,
4428 "line": 136 4493 "line": 146
4429 }, 4494 },
4430 "file": "src/containers/settings/EditSettingsScreen.js", 4495 "file": "src/containers/settings/EditSettingsScreen.js",
4431 "id": "settings.app.form.enableSpellchecking", 4496 "id": "settings.app.form.enableSpellchecking",
4432 "start": { 4497 "start": {
4433 "column": 23, 4498 "column": 23,
4434 "line": 133 4499 "line": 143
4435 } 4500 }
4436 }, 4501 },
4437 { 4502 {
4438 "defaultMessage": "!!!Enable GPU Acceleration", 4503 "defaultMessage": "!!!Enable GPU Acceleration",
4439 "end": { 4504 "end": {
4440 "column": 3, 4505 "column": 3,
4441 "line": 140 4506 "line": 150
4442 }, 4507 },
4443 "file": "src/containers/settings/EditSettingsScreen.js", 4508 "file": "src/containers/settings/EditSettingsScreen.js",
4444 "id": "settings.app.form.enableGPUAcceleration", 4509 "id": "settings.app.form.enableGPUAcceleration",
4445 "start": { 4510 "start": {
4446 "column": 25, 4511 "column": 25,
4447 "line": 137 4512 "line": 147
4448 } 4513 }
4449 }, 4514 },
4450 { 4515 {
4451 "defaultMessage": "!!!Include beta versions", 4516 "defaultMessage": "!!!Include beta versions",
4452 "end": { 4517 "end": {
4453 "column": 3, 4518 "column": 3,
4454 "line": 144 4519 "line": 154
4455 }, 4520 },
4456 "file": "src/containers/settings/EditSettingsScreen.js", 4521 "file": "src/containers/settings/EditSettingsScreen.js",
4457 "id": "settings.app.form.beta", 4522 "id": "settings.app.form.beta",
4458 "start": { 4523 "start": {
4459 "column": 8, 4524 "column": 8,
4460 "line": 141 4525 "line": 151
4461 } 4526 }
4462 }, 4527 },
4463 { 4528 {
4464 "defaultMessage": "!!!Disable updates", 4529 "defaultMessage": "!!!Disable updates",
4465 "end": { 4530 "end": {
4466 "column": 3, 4531 "column": 3,
4467 "line": 148 4532 "line": 158
4468 }, 4533 },
4469 "file": "src/containers/settings/EditSettingsScreen.js", 4534 "file": "src/containers/settings/EditSettingsScreen.js",
4470 "id": "settings.app.form.noUpdates", 4535 "id": "settings.app.form.noUpdates",
4471 "start": { 4536 "start": {
4472 "column": 13, 4537 "column": 13,
4473 "line": 145 4538 "line": 155
4474 } 4539 }
4475 }, 4540 },
4476 { 4541 {
4477 "defaultMessage": "!!!Enable Franz Todos", 4542 "defaultMessage": "!!!Enable Franz Todos",
4478 "end": { 4543 "end": {
4479 "column": 3, 4544 "column": 3,
4480 "line": 152 4545 "line": 162
4481 }, 4546 },
4482 "file": "src/containers/settings/EditSettingsScreen.js", 4547 "file": "src/containers/settings/EditSettingsScreen.js",
4483 "id": "settings.app.form.enableTodos", 4548 "id": "settings.app.form.enableTodos",
4484 "start": { 4549 "start": {
4485 "column": 15, 4550 "column": 15,
4486 "line": 149 4551 "line": 159
4487 } 4552 }
4488 }, 4553 },
4489 { 4554 {
4490 "defaultMessage": "!!!Keep all workspaces loaded", 4555 "defaultMessage": "!!!Keep all workspaces loaded",
4491 "end": { 4556 "end": {
4492 "column": 3, 4557 "column": 3,
4493 "line": 156 4558 "line": 166
4494 }, 4559 },
4495 "file": "src/containers/settings/EditSettingsScreen.js", 4560 "file": "src/containers/settings/EditSettingsScreen.js",
4496 "id": "settings.app.form.keepAllWorkspacesLoaded", 4561 "id": "settings.app.form.keepAllWorkspacesLoaded",
4497 "start": { 4562 "start": {
4498 "column": 27, 4563 "column": 27,
4499 "line": 153 4564 "line": 163
4500 } 4565 }
4501 } 4566 }
4502 ], 4567 ],
@@ -4645,6 +4710,24 @@
4645 { 4710 {
4646 "descriptors": [ 4711 "descriptors": [
4647 { 4712 {
4713 "defaultMessage": "!!!Publish debugging information",
4714 "end": {
4715 "column": 3,
4716 "line": 19
4717 },
4718 "file": "src/features/debugger/Component.js",
4719 "id": "feature.debugger.title",
4720 "start": {
4721 "column": 9,
4722 "line": 16
4723 }
4724 }
4725 ],
4726 "path": "src/features/debugger/Component.json"
4727 },
4728 {
4729 "descriptors": [
4730 {
4648 "defaultMessage": "!!!Please purchase license to skip waiting", 4731 "defaultMessage": "!!!Please purchase license to skip waiting",
4649 "end": { 4732 "end": {
4650 "column": 3, 4733 "column": 3,
@@ -5008,6 +5091,102 @@
5008 { 5091 {
5009 "descriptors": [ 5092 "descriptors": [
5010 { 5093 {
5094 "defaultMessage": "!!!Publish debug information",
5095 "end": {
5096 "column": 3,
5097 "line": 20
5098 },
5099 "file": "src/features/publishDebugInfo/Component.js",
5100 "id": "feature.publishDebugInfo.title",
5101 "start": {
5102 "column": 9,
5103 "line": 17
5104 }
5105 },
5106 {
5107 "defaultMessage": "!!!Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
5108 "end": {
5109 "column": 3,
5110 "line": 24
5111 },
5112 "file": "src/features/publishDebugInfo/Component.js",
5113 "id": "feature.publishDebugInfo.info",
5114 "start": {
5115 "column": 8,
5116 "line": 21
5117 }
5118 },
5119 {
5120 "defaultMessage": "!!!There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
5121 "end": {
5122 "column": 3,
5123 "line": 28
5124 },
5125 "file": "src/features/publishDebugInfo/Component.js",
5126 "id": "feature.publishDebugInfo.error",
5127 "start": {
5128 "column": 9,
5129 "line": 25
5130 }
5131 },
5132 {
5133 "defaultMessage": "!!!Privacy policy",
5134 "end": {
5135 "column": 3,
5136 "line": 32
5137 },
5138 "file": "src/features/publishDebugInfo/Component.js",
5139 "id": "feature.publishDebugInfo.privacy",
5140 "start": {
5141 "column": 11,
5142 "line": 29
5143 }
5144 },
5145 {
5146 "defaultMessage": "!!!Terms of service",
5147 "end": {
5148 "column": 3,
5149 "line": 36
5150 },
5151 "file": "src/features/publishDebugInfo/Component.js",
5152 "id": "feature.publishDebugInfo.terms",
5153 "start": {
5154 "column": 9,
5155 "line": 33
5156 }
5157 },
5158 {
5159 "defaultMessage": "!!!Accept and publish",
5160 "end": {
5161 "column": 3,
5162 "line": 40
5163 },
5164 "file": "src/features/publishDebugInfo/Component.js",
5165 "id": "feature.publishDebugInfo.publish",
5166 "start": {
5167 "column": 11,
5168 "line": 37
5169 }
5170 },
5171 {
5172 "defaultMessage": "!!!Your debug log was published and is now availible at",
5173 "end": {
5174 "column": 3,
5175 "line": 44
5176 },
5177 "file": "src/features/publishDebugInfo/Component.js",
5178 "id": "feature.publishDebugInfo.published",
5179 "start": {
5180 "column": 13,
5181 "line": 41
5182 }
5183 }
5184 ],
5185 "path": "src/features/publishDebugInfo/Component.json"
5186 },
5187 {
5188 "descriptors": [
5189 {
5011 "defaultMessage": "!!!QuickSwitch", 5190 "defaultMessage": "!!!QuickSwitch",
5012 "end": { 5191 "end": {
5013 "column": 3, 5192 "column": 3,
@@ -6593,432 +6772,445 @@
6593 } 6772 }
6594 }, 6773 },
6595 { 6774 {
6596 "defaultMessage": "!!!Ferdi Debug Information", 6775 "defaultMessage": "!!!Publish Debug Information",
6597 "end": { 6776 "end": {
6598 "column": 3, 6777 "column": 3,
6599 "line": 160 6778 "line": 160
6600 }, 6779 },
6601 "file": "src/lib/Menu.js", 6780 "file": "src/lib/Menu.js",
6781 "id": "menu.help.publishDebugInfo",
6782 "start": {
6783 "column": 20,
6784 "line": 157
6785 }
6786 },
6787 {
6788 "defaultMessage": "!!!Ferdi Debug Information",
6789 "end": {
6790 "column": 3,
6791 "line": 164
6792 },
6793 "file": "src/lib/Menu.js",
6602 "id": "menu.help.debugInfoCopiedHeadline", 6794 "id": "menu.help.debugInfoCopiedHeadline",
6603 "start": { 6795 "start": {
6604 "column": 27, 6796 "column": 27,
6605 "line": 157 6797 "line": 161
6606 } 6798 }
6607 }, 6799 },
6608 { 6800 {
6609 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 6801 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
6610 "end": { 6802 "end": {
6611 "column": 3, 6803 "column": 3,
6612 "line": 164 6804 "line": 168
6613 }, 6805 },
6614 "file": "src/lib/Menu.js", 6806 "file": "src/lib/Menu.js",
6615 "id": "menu.help.debugInfoCopiedBody", 6807 "id": "menu.help.debugInfoCopiedBody",
6616 "start": { 6808 "start": {
6617 "column": 23, 6809 "column": 23,
6618 "line": 161 6810 "line": 165
6619 } 6811 }
6620 }, 6812 },
6621 { 6813 {
6622 "defaultMessage": "!!!Terms of Service", 6814 "defaultMessage": "!!!Terms of Service",
6623 "end": { 6815 "end": {
6624 "column": 3, 6816 "column": 3,
6625 "line": 168 6817 "line": 172
6626 }, 6818 },
6627 "file": "src/lib/Menu.js", 6819 "file": "src/lib/Menu.js",
6628 "id": "menu.help.tos", 6820 "id": "menu.help.tos",
6629 "start": { 6821 "start": {
6630 "column": 7, 6822 "column": 7,
6631 "line": 165 6823 "line": 169
6632 } 6824 }
6633 }, 6825 },
6634 { 6826 {
6635 "defaultMessage": "!!!Privacy Statement", 6827 "defaultMessage": "!!!Privacy Statement",
6636 "end": { 6828 "end": {
6637 "column": 3, 6829 "column": 3,
6638 "line": 172 6830 "line": 176
6639 }, 6831 },
6640 "file": "src/lib/Menu.js", 6832 "file": "src/lib/Menu.js",
6641 "id": "menu.help.privacy", 6833 "id": "menu.help.privacy",
6642 "start": { 6834 "start": {
6643 "column": 11, 6835 "column": 11,
6644 "line": 169 6836 "line": 173
6645 } 6837 }
6646 }, 6838 },
6647 { 6839 {
6648 "defaultMessage": "!!!File", 6840 "defaultMessage": "!!!File",
6649 "end": { 6841 "end": {
6650 "column": 3, 6842 "column": 3,
6651 "line": 176 6843 "line": 180
6652 }, 6844 },
6653 "file": "src/lib/Menu.js", 6845 "file": "src/lib/Menu.js",
6654 "id": "menu.file", 6846 "id": "menu.file",
6655 "start": { 6847 "start": {
6656 "column": 8, 6848 "column": 8,
6657 "line": 173 6849 "line": 177
6658 } 6850 }
6659 }, 6851 },
6660 { 6852 {
6661 "defaultMessage": "!!!View", 6853 "defaultMessage": "!!!View",
6662 "end": { 6854 "end": {
6663 "column": 3, 6855 "column": 3,
6664 "line": 180 6856 "line": 184
6665 }, 6857 },
6666 "file": "src/lib/Menu.js", 6858 "file": "src/lib/Menu.js",
6667 "id": "menu.view", 6859 "id": "menu.view",
6668 "start": { 6860 "start": {
6669 "column": 8, 6861 "column": 8,
6670 "line": 177 6862 "line": 181
6671 } 6863 }
6672 }, 6864 },
6673 { 6865 {
6674 "defaultMessage": "!!!Services", 6866 "defaultMessage": "!!!Services",
6675 "end": { 6867 "end": {
6676 "column": 3, 6868 "column": 3,
6677 "line": 184 6869 "line": 188
6678 }, 6870 },
6679 "file": "src/lib/Menu.js", 6871 "file": "src/lib/Menu.js",
6680 "id": "menu.services", 6872 "id": "menu.services",
6681 "start": { 6873 "start": {
6682 "column": 12, 6874 "column": 12,
6683 "line": 181 6875 "line": 185
6684 } 6876 }
6685 }, 6877 },
6686 { 6878 {
6687 "defaultMessage": "!!!Window", 6879 "defaultMessage": "!!!Window",
6688 "end": { 6880 "end": {
6689 "column": 3, 6881 "column": 3,
6690 "line": 188 6882 "line": 192
6691 }, 6883 },
6692 "file": "src/lib/Menu.js", 6884 "file": "src/lib/Menu.js",
6693 "id": "menu.window", 6885 "id": "menu.window",
6694 "start": { 6886 "start": {
6695 "column": 10, 6887 "column": 10,
6696 "line": 185 6888 "line": 189
6697 } 6889 }
6698 }, 6890 },
6699 { 6891 {
6700 "defaultMessage": "!!!Help", 6892 "defaultMessage": "!!!Help",
6701 "end": { 6893 "end": {
6702 "column": 3, 6894 "column": 3,
6703 "line": 192 6895 "line": 196
6704 }, 6896 },
6705 "file": "src/lib/Menu.js", 6897 "file": "src/lib/Menu.js",
6706 "id": "menu.help", 6898 "id": "menu.help",
6707 "start": { 6899 "start": {
6708 "column": 8, 6900 "column": 8,
6709 "line": 189 6901 "line": 193
6710 } 6902 }
6711 }, 6903 },
6712 { 6904 {
6713 "defaultMessage": "!!!About Ferdi", 6905 "defaultMessage": "!!!About Ferdi",
6714 "end": { 6906 "end": {
6715 "column": 3, 6907 "column": 3,
6716 "line": 196 6908 "line": 200
6717 }, 6909 },
6718 "file": "src/lib/Menu.js", 6910 "file": "src/lib/Menu.js",
6719 "id": "menu.app.about", 6911 "id": "menu.app.about",
6720 "start": { 6912 "start": {
6721 "column": 9, 6913 "column": 9,
6722 "line": 193 6914 "line": 197
6723 } 6915 }
6724 }, 6916 },
6725 { 6917 {
6726 "defaultMessage": "!!!What's new?", 6918 "defaultMessage": "!!!What's new?",
6727 "end": { 6919 "end": {
6728 "column": 3, 6920 "column": 3,
6729 "line": 200 6921 "line": 204
6730 }, 6922 },
6731 "file": "src/lib/Menu.js", 6923 "file": "src/lib/Menu.js",
6732 "id": "menu.app.announcement", 6924 "id": "menu.app.announcement",
6733 "start": { 6925 "start": {
6734 "column": 16, 6926 "column": 16,
6735 "line": 197 6927 "line": 201
6736 } 6928 }
6737 }, 6929 },
6738 { 6930 {
6739 "defaultMessage": "!!!Settings", 6931 "defaultMessage": "!!!Settings",
6740 "end": { 6932 "end": {
6741 "column": 3, 6933 "column": 3,
6742 "line": 204 6934 "line": 208
6743 }, 6935 },
6744 "file": "src/lib/Menu.js", 6936 "file": "src/lib/Menu.js",
6745 "id": "menu.app.settings", 6937 "id": "menu.app.settings",
6746 "start": { 6938 "start": {
6747 "column": 12, 6939 "column": 12,
6748 "line": 201 6940 "line": 205
6749 } 6941 }
6750 }, 6942 },
6751 { 6943 {
6752 "defaultMessage": "!!!Check for updates", 6944 "defaultMessage": "!!!Check for updates",
6753 "end": { 6945 "end": {
6754 "column": 3, 6946 "column": 3,
6755 "line": 208 6947 "line": 212
6756 }, 6948 },
6757 "file": "src/lib/Menu.js", 6949 "file": "src/lib/Menu.js",
6758 "id": "menu.app.checkForUpdates", 6950 "id": "menu.app.checkForUpdates",
6759 "start": { 6951 "start": {
6760 "column": 19, 6952 "column": 19,
6761 "line": 205 6953 "line": 209
6762 } 6954 }
6763 }, 6955 },
6764 { 6956 {
6765 "defaultMessage": "!!!Hide", 6957 "defaultMessage": "!!!Hide",
6766 "end": { 6958 "end": {
6767 "column": 3, 6959 "column": 3,
6768 "line": 212 6960 "line": 216
6769 }, 6961 },
6770 "file": "src/lib/Menu.js", 6962 "file": "src/lib/Menu.js",
6771 "id": "menu.app.hide", 6963 "id": "menu.app.hide",
6772 "start": { 6964 "start": {
6773 "column": 8, 6965 "column": 8,
6774 "line": 209 6966 "line": 213
6775 } 6967 }
6776 }, 6968 },
6777 { 6969 {
6778 "defaultMessage": "!!!Hide Others", 6970 "defaultMessage": "!!!Hide Others",
6779 "end": { 6971 "end": {
6780 "column": 3, 6972 "column": 3,
6781 "line": 216 6973 "line": 220
6782 }, 6974 },
6783 "file": "src/lib/Menu.js", 6975 "file": "src/lib/Menu.js",
6784 "id": "menu.app.hideOthers", 6976 "id": "menu.app.hideOthers",
6785 "start": { 6977 "start": {
6786 "column": 14, 6978 "column": 14,
6787 "line": 213 6979 "line": 217
6788 } 6980 }
6789 }, 6981 },
6790 { 6982 {
6791 "defaultMessage": "!!!Unhide", 6983 "defaultMessage": "!!!Unhide",
6792 "end": { 6984 "end": {
6793 "column": 3, 6985 "column": 3,
6794 "line": 220 6986 "line": 224
6795 }, 6987 },
6796 "file": "src/lib/Menu.js", 6988 "file": "src/lib/Menu.js",
6797 "id": "menu.app.unhide", 6989 "id": "menu.app.unhide",
6798 "start": { 6990 "start": {
6799 "column": 10, 6991 "column": 10,
6800 "line": 217 6992 "line": 221
6801 } 6993 }
6802 }, 6994 },
6803 { 6995 {
6804 "defaultMessage": "!!!Auto-hide menu bar", 6996 "defaultMessage": "!!!Auto-hide menu bar",
6805 "end": { 6997 "end": {
6806 "column": 3, 6998 "column": 3,
6807 "line": 224 6999 "line": 228
6808 }, 7000 },
6809 "file": "src/lib/Menu.js", 7001 "file": "src/lib/Menu.js",
6810 "id": "menu.app.autohideMenuBar", 7002 "id": "menu.app.autohideMenuBar",
6811 "start": { 7003 "start": {
6812 "column": 19, 7004 "column": 19,
6813 "line": 221 7005 "line": 225
6814 } 7006 }
6815 }, 7007 },
6816 { 7008 {
6817 "defaultMessage": "!!!Quit", 7009 "defaultMessage": "!!!Quit",
6818 "end": { 7010 "end": {
6819 "column": 3, 7011 "column": 3,
6820 "line": 228 7012 "line": 232
6821 }, 7013 },
6822 "file": "src/lib/Menu.js", 7014 "file": "src/lib/Menu.js",
6823 "id": "menu.app.quit", 7015 "id": "menu.app.quit",
6824 "start": { 7016 "start": {
6825 "column": 8, 7017 "column": 8,
6826 "line": 225 7018 "line": 229
6827 } 7019 }
6828 }, 7020 },
6829 { 7021 {
6830 "defaultMessage": "!!!Add New Service...", 7022 "defaultMessage": "!!!Add New Service...",
6831 "end": { 7023 "end": {
6832 "column": 3, 7024 "column": 3,
6833 "line": 232 7025 "line": 236
6834 }, 7026 },
6835 "file": "src/lib/Menu.js", 7027 "file": "src/lib/Menu.js",
6836 "id": "menu.services.addNewService", 7028 "id": "menu.services.addNewService",
6837 "start": { 7029 "start": {
6838 "column": 17, 7030 "column": 17,
6839 "line": 229 7031 "line": 233
6840 } 7032 }
6841 }, 7033 },
6842 { 7034 {
6843 "defaultMessage": "!!!Add New Workspace...", 7035 "defaultMessage": "!!!Add New Workspace...",
6844 "end": { 7036 "end": {
6845 "column": 3, 7037 "column": 3,
6846 "line": 236 7038 "line": 240
6847 }, 7039 },
6848 "file": "src/lib/Menu.js", 7040 "file": "src/lib/Menu.js",
6849 "id": "menu.workspaces.addNewWorkspace", 7041 "id": "menu.workspaces.addNewWorkspace",
6850 "start": { 7042 "start": {
6851 "column": 19, 7043 "column": 19,
6852 "line": 233 7044 "line": 237
6853 } 7045 }
6854 }, 7046 },
6855 { 7047 {
6856 "defaultMessage": "!!!Open workspace drawer", 7048 "defaultMessage": "!!!Open workspace drawer",
6857 "end": { 7049 "end": {
6858 "column": 3, 7050 "column": 3,
6859 "line": 240 7051 "line": 244
6860 }, 7052 },
6861 "file": "src/lib/Menu.js", 7053 "file": "src/lib/Menu.js",
6862 "id": "menu.workspaces.openWorkspaceDrawer", 7054 "id": "menu.workspaces.openWorkspaceDrawer",
6863 "start": { 7055 "start": {
6864 "column": 23, 7056 "column": 23,
6865 "line": 237 7057 "line": 241
6866 } 7058 }
6867 }, 7059 },
6868 { 7060 {
6869 "defaultMessage": "!!!Close workspace drawer", 7061 "defaultMessage": "!!!Close workspace drawer",
6870 "end": { 7062 "end": {
6871 "column": 3, 7063 "column": 3,
6872 "line": 244 7064 "line": 248
6873 }, 7065 },
6874 "file": "src/lib/Menu.js", 7066 "file": "src/lib/Menu.js",
6875 "id": "menu.workspaces.closeWorkspaceDrawer", 7067 "id": "menu.workspaces.closeWorkspaceDrawer",
6876 "start": { 7068 "start": {
6877 "column": 24, 7069 "column": 24,
6878 "line": 241 7070 "line": 245
6879 } 7071 }
6880 }, 7072 },
6881 { 7073 {
6882 "defaultMessage": "!!!Activate next service...", 7074 "defaultMessage": "!!!Activate next service...",
6883 "end": { 7075 "end": {
6884 "column": 3, 7076 "column": 3,
6885 "line": 248 7077 "line": 252
6886 }, 7078 },
6887 "file": "src/lib/Menu.js", 7079 "file": "src/lib/Menu.js",
6888 "id": "menu.services.setNextServiceActive", 7080 "id": "menu.services.setNextServiceActive",
6889 "start": { 7081 "start": {
6890 "column": 23, 7082 "column": 23,
6891 "line": 245 7083 "line": 249
6892 } 7084 }
6893 }, 7085 },
6894 { 7086 {
6895 "defaultMessage": "!!!Activate previous service...", 7087 "defaultMessage": "!!!Activate previous service...",
6896 "end": { 7088 "end": {
6897 "column": 3, 7089 "column": 3,
6898 "line": 252 7090 "line": 256
6899 }, 7091 },
6900 "file": "src/lib/Menu.js", 7092 "file": "src/lib/Menu.js",
6901 "id": "menu.services.activatePreviousService", 7093 "id": "menu.services.activatePreviousService",
6902 "start": { 7094 "start": {
6903 "column": 27, 7095 "column": 27,
6904 "line": 249 7096 "line": 253
6905 } 7097 }
6906 }, 7098 },
6907 { 7099 {
6908 "defaultMessage": "!!!Disable notifications & audio", 7100 "defaultMessage": "!!!Disable notifications & audio",
6909 "end": { 7101 "end": {
6910 "column": 3, 7102 "column": 3,
6911 "line": 256 7103 "line": 260
6912 }, 7104 },
6913 "file": "src/lib/Menu.js", 7105 "file": "src/lib/Menu.js",
6914 "id": "sidebar.muteApp", 7106 "id": "sidebar.muteApp",
6915 "start": { 7107 "start": {
6916 "column": 11, 7108 "column": 11,
6917 "line": 253 7109 "line": 257
6918 } 7110 }
6919 }, 7111 },
6920 { 7112 {
6921 "defaultMessage": "!!!Enable notifications & audio", 7113 "defaultMessage": "!!!Enable notifications & audio",
6922 "end": { 7114 "end": {
6923 "column": 3, 7115 "column": 3,
6924 "line": 260 7116 "line": 264
6925 }, 7117 },
6926 "file": "src/lib/Menu.js", 7118 "file": "src/lib/Menu.js",
6927 "id": "sidebar.unmuteApp", 7119 "id": "sidebar.unmuteApp",
6928 "start": { 7120 "start": {
6929 "column": 13, 7121 "column": 13,
6930 "line": 257 7122 "line": 261
6931 } 7123 }
6932 }, 7124 },
6933 { 7125 {
6934 "defaultMessage": "!!!Workspaces", 7126 "defaultMessage": "!!!Workspaces",
6935 "end": { 7127 "end": {
6936 "column": 3, 7128 "column": 3,
6937 "line": 264 7129 "line": 268
6938 }, 7130 },
6939 "file": "src/lib/Menu.js", 7131 "file": "src/lib/Menu.js",
6940 "id": "menu.workspaces", 7132 "id": "menu.workspaces",
6941 "start": { 7133 "start": {
6942 "column": 14, 7134 "column": 14,
6943 "line": 261 7135 "line": 265
6944 } 7136 }
6945 }, 7137 },
6946 { 7138 {
6947 "defaultMessage": "!!!Default", 7139 "defaultMessage": "!!!Default",
6948 "end": { 7140 "end": {
6949 "column": 3, 7141 "column": 3,
6950 "line": 268 7142 "line": 272
6951 }, 7143 },
6952 "file": "src/lib/Menu.js", 7144 "file": "src/lib/Menu.js",
6953 "id": "menu.workspaces.defaultWorkspace", 7145 "id": "menu.workspaces.defaultWorkspace",
6954 "start": { 7146 "start": {
6955 "column": 20, 7147 "column": 20,
6956 "line": 265 7148 "line": 269
6957 } 7149 }
6958 }, 7150 },
6959 { 7151 {
6960 "defaultMessage": "!!!Todos", 7152 "defaultMessage": "!!!Todos",
6961 "end": { 7153 "end": {
6962 "column": 3, 7154 "column": 3,
6963 "line": 272 7155 "line": 276
6964 }, 7156 },
6965 "file": "src/lib/Menu.js", 7157 "file": "src/lib/Menu.js",
6966 "id": "menu.todos", 7158 "id": "menu.todos",
6967 "start": { 7159 "start": {
6968 "column": 9, 7160 "column": 9,
6969 "line": 269 7161 "line": 273
6970 } 7162 }
6971 }, 7163 },
6972 { 7164 {
6973 "defaultMessage": "!!!Open Todos drawer", 7165 "defaultMessage": "!!!Open Todos drawer",
6974 "end": { 7166 "end": {
6975 "column": 3, 7167 "column": 3,
6976 "line": 276 7168 "line": 280
6977 }, 7169 },
6978 "file": "src/lib/Menu.js", 7170 "file": "src/lib/Menu.js",
6979 "id": "menu.Todoss.openTodosDrawer", 7171 "id": "menu.Todoss.openTodosDrawer",
6980 "start": { 7172 "start": {
6981 "column": 19, 7173 "column": 19,
6982 "line": 273 7174 "line": 277
6983 } 7175 }
6984 }, 7176 },
6985 { 7177 {
6986 "defaultMessage": "!!!Close Todos drawer", 7178 "defaultMessage": "!!!Close Todos drawer",
6987 "end": { 7179 "end": {
6988 "column": 3, 7180 "column": 3,
6989 "line": 280 7181 "line": 284
6990 }, 7182 },
6991 "file": "src/lib/Menu.js", 7183 "file": "src/lib/Menu.js",
6992 "id": "menu.Todoss.closeTodosDrawer", 7184 "id": "menu.Todoss.closeTodosDrawer",
6993 "start": { 7185 "start": {
6994 "column": 20, 7186 "column": 20,
6995 "line": 277 7187 "line": 281
6996 } 7188 }
6997 }, 7189 },
6998 { 7190 {
6999 "defaultMessage": "!!!Enable Todos", 7191 "defaultMessage": "!!!Enable Todos",
7000 "end": { 7192 "end": {
7001 "column": 3, 7193 "column": 3,
7002 "line": 284 7194 "line": 288
7003 }, 7195 },
7004 "file": "src/lib/Menu.js", 7196 "file": "src/lib/Menu.js",
7005 "id": "menu.todos.enableTodos", 7197 "id": "menu.todos.enableTodos",
7006 "start": { 7198 "start": {
7007 "column": 15, 7199 "column": 15,
7008 "line": 281 7200 "line": 285
7009 } 7201 }
7010 }, 7202 },
7011 { 7203 {
7012 "defaultMessage": "!!!Home", 7204 "defaultMessage": "!!!Home",
7013 "end": { 7205 "end": {
7014 "column": 3, 7206 "column": 3,
7015 "line": 288 7207 "line": 292
7016 }, 7208 },
7017 "file": "src/lib/Menu.js", 7209 "file": "src/lib/Menu.js",
7018 "id": "menu.services.goHome", 7210 "id": "menu.services.goHome",
7019 "start": { 7211 "start": {
7020 "column": 17, 7212 "column": 17,
7021 "line": 285 7213 "line": 289
7022 } 7214 }
7023 } 7215 }
7024 ], 7216 ],
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json
index 7e67f6436..091740ca6 100644
--- a/src/i18n/locales/el.json
+++ b/src/i18n/locales/el.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Επαναφόρτωση", 2 "app.errorHandler.action": "Επαναφόρτωση",
3 "app.errorHandler.headline": "Κάτι δεν λειτουργεί", 3 "app.errorHandler.headline": "Κάτι δεν λειτουργεί",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi θα συνεχίσει σε {seconds} δευτερόλεπτα.", 7 "feature.delayApp.text": "Ferdi θα συνεχίσει σε {seconds} δευτερόλεπτα.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Όροι υπηρεσίας",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Μάθετε περισσότερα", 131 "menu.help.learnMore": "Μάθετε περισσότερα",
124 "menu.help.privacy": "Δήλωση απορρήτου", 132 "menu.help.privacy": "Δήλωση απορρήτου",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Υποστήριξη", 134 "menu.help.support": "Υποστήριξη",
126 "menu.help.tos": "Όροι Χρήσης", 135 "menu.help.tos": "Όροι Χρήσης",
127 "menu.services": "Υπηρεσίες", 136 "menu.services": "Υπηρεσίες",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Γλώσσα", 284 "settings.app.form.language": "Γλώσσα",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Ελαχιστοποίηση του Ferdi στη γραμμή ειδοποιήσεων", 286 "settings.app.form.minimizeToSystemTray": "Ελαχιστοποίηση του Ferdi στη γραμμή ειδοποιήσεων",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Κρατήστε το Ferdi στο παρασκήνιο κατά το κλείσιμο του παραθύρου", 290 "settings.app.form.runInBackground": "Κρατήστε το Ferdi στο παρασκήνιο κατά το κλείσιμο του παραθύρου",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Προβολή καρτελών των απενεργοποιημένων υπηρεσιών", 297 "settings.app.form.showDisabledServices": "Προβολή καρτελών των απενεργοποιημένων υπηρεσιών",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Προβολή του εικονιδίου μη αναγνωσμένου μηνύματος όταν οι ειδοποιήσεις είναι απενεργοποιημένες", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Προβολή του εικονιδίου μη αναγνωσμένου μηνύματος όταν οι ειδοποιήσεις είναι απενεργοποιημένες",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Όλοι οι ήχοι καθώς και η αναπαραγωγή ήχου θα απενεργοποιηθούν", 374 "settings.service.form.isMutedInfo": "Όλοι οι ήχοι καθώς και η αναπαραγωγή ήχου θα απενεργοποιηθούν",
364 "settings.service.form.name": "Όνομα", 375 "settings.service.form.name": "Όνομα",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Αποθήκευση υπηρεσίας", 388 "settings.service.form.saveButton": "Αποθήκευση υπηρεσίας",
375 "settings.service.form.tabHosted": "Φιλοξενείται", 389 "settings.service.form.tabHosted": "Φιλοξενείται",
376 "settings.service.form.tabOnPremise": "Αυτο-φιλοξενείται ⭐️", 390 "settings.service.form.tabOnPremise": "Αυτο-φιλοξενείται ⭐️",
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 1a8e9f743..36494724b 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 2385e27c8..21d3c8228 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Volver a cargar", 2 "app.errorHandler.action": "Volver a cargar",
3 "app.errorHandler.headline": "Algo salió mal.", 3 "app.errorHandler.headline": "Algo salió mal.",
4 "feature.announcements.changelog.headline": "Cambios en Ferdi {version}", 4 "feature.announcements.changelog.headline": "Cambios en Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Por favor compra una Licencia de Soporte de Ferdi para omitir la espera", 6 "feature.delayApp.headline": "Por favor compra una Licencia de Soporte de Ferdi para omitir la espera",
6 "feature.delayApp.text": "Ferdi continuará en {seconds} segundos.", 7 "feature.delayApp.text": "Ferdi continuará en {seconds} segundos.",
7 "feature.delayApp.trial.action": "Si! Quiero probar Ferdi Profesional por 14 días, gratis!", 8 "feature.delayApp.trial.action": "Si! Quiero probar Ferdi Profesional por 14 días, gratis!",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Términos de servicio",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Seleccionar servicio con TAB y ↑ ↓. Abrir servicio con ENTER.", 36 "feature.quickSwitch.info": "Seleccionar servicio con TAB y ↑ ↓. Abrir servicio con ENTER.",
29 "feature.quickSwitch.search": "Buscar...", 37 "feature.quickSwitch.search": "Buscar...",
30 "feature.quickSwitch.title": "Cambio rápido", 38 "feature.quickSwitch.title": "Cambio rápido",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Información de depurador de Ferdi", 130 "menu.help.debugInfoCopiedHeadline": "Información de depurador de Ferdi",
123 "menu.help.learnMore": "Conocer más", 131 "menu.help.learnMore": "Conocer más",
124 "menu.help.privacy": "Declaración de privacidad", 132 "menu.help.privacy": "Declaración de privacidad",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Soporte", 134 "menu.help.support": "Soporte",
126 "menu.help.tos": "Términos del Servicio", 135 "menu.help.tos": "Términos del Servicio",
127 "menu.services": "Servicios", 136 "menu.services": "Servicios",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Activar Ferdi Todos", 278 "settings.app.form.enableTodos": "Activar Ferdi Todos",
270 "settings.app.form.hibernate": "Habilitar hibernación del servicio", 279 "settings.app.form.hibernate": "Habilitar hibernación del servicio",
271 "settings.app.form.hibernationStrategy": "Estrategia de hibernación", 280 "settings.app.form.hibernationStrategy": "Estrategia de hibernación",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Áreas de trabajo cargadas", 283 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Áreas de trabajo cargadas",
274 "settings.app.form.language": "Idioma", 284 "settings.app.form.language": "Idioma",
275 "settings.app.form.lockPassword": "Contraseña", 285 "settings.app.form.lockPassword": "Contraseña",
276 "settings.app.form.minimizeToSystemTray": "Minimizar Ferdi a la bandeja del sistema", 286 "settings.app.form.minimizeToSystemTray": "Minimizar Ferdi a la bandeja del sistema",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Desactivar actualizaciones", 288 "settings.app.form.noUpdates": "Desactivar actualizaciones",
278 "settings.app.form.privateNotifications": "No mostrar contenido de mensajes en notificaciones", 289 "settings.app.form.privateNotifications": "No mostrar contenido de mensajes en notificaciones",
279 "settings.app.form.runInBackground": "Mantener Ferdi en segundo plano al cerrar la ventana", 290 "settings.app.form.runInBackground": "Mantener Ferdi en segundo plano al cerrar la ventana",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "De", 293 "settings.app.form.scheduledDNDStart": "De",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Servidor", 295 "settings.app.form.server": "Servidor",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Mostrar pestañas de servicios desactivados", 297 "settings.app.form.showDisabledServices": "Mostrar pestañas de servicios desactivados",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas",
287 "settings.app.form.showServiceNavigationBar": "Mostrar siempre barra de navegación",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Servidor de tareas", 300 "settings.app.form.todoServer": "Servidor de tareas",
290 "settings.app.form.universalDarkMode": "Activar modo oscuro universal", 301 "settings.app.form.universalDarkMode": "Activar modo oscuro universal",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Cuando estén desactivados, todos los sonidos de notificación y la reproducción de audio serán silenciados", 374 "settings.service.form.isMutedInfo": "Cuando estén desactivados, todos los sonidos de notificación y la reproducción de audio serán silenciados",
364 "settings.service.form.name": "Nombre", 375 "settings.service.form.name": "Nombre",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Ajustes Proxy HTTP/HTTPS", 379 "settings.service.form.proxy.headline": "Ajustes Proxy HTTP/HTTPS",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Las configuraciones de Proxy no se sincronizarán con los servidores de Ferdi.", 381 "settings.service.form.proxy.info": "Las configuraciones de Proxy no se sincronizarán con los servidores de Ferdi.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Puerto", 384 "settings.service.form.proxy.port": "Puerto",
372 "settings.service.form.proxy.restartInfo": "Por favor reinicie Ferdi despues de modificar los ajustes proxy.", 385 "settings.service.form.proxy.restartInfo": "Por favor reinicie Ferdi despues de modificar los ajustes proxy.",
373 "settings.service.form.proxy.user": "Usuario (opcional)", 386 "settings.service.form.proxy.user": "Usuario (opcional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Guardar servicio", 388 "settings.service.form.saveButton": "Guardar servicio",
375 "settings.service.form.tabHosted": "Alojado", 389 "settings.service.form.tabHosted": "Alojado",
376 "settings.service.form.tabOnPremise": "Auto alojado ⭐️", 390 "settings.service.form.tabOnPremise": "Auto alojado ⭐️",
diff --git a/src/i18n/locales/fi.json b/src/i18n/locales/fi.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/fi.json
+++ b/src/i18n/locales/fi.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index 4dfeac44d..0e767983d 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Actualiser", 2 "app.errorHandler.action": "Actualiser",
3 "app.errorHandler.headline": "On dirait que quelque chose ne va pas", 3 "app.errorHandler.headline": "On dirait que quelque chose ne va pas",
4 "feature.announcements.changelog.headline": "Les nouveaux changements dans Ferdi {version}", 4 "feature.announcements.changelog.headline": "Les nouveaux changements dans Ferdi {version}",
5 "feature.debugger.title": "Publier les informations de débogage",
5 "feature.delayApp.headline": "Achetez la licence Ferdi pour ne plus avoir de temps d'attente", 6 "feature.delayApp.headline": "Achetez la licence Ferdi pour ne plus avoir de temps d'attente",
6 "feature.delayApp.text": "Ferdi s'ouvrira dans {seconds} secondes.", 7 "feature.delayApp.text": "Ferdi s'ouvrira dans {seconds} secondes.",
7 "feature.delayApp.trial.action": "Oui, je veux les 14 jours d'essai gratuits de Ferdi Professionnel", 8 "feature.delayApp.trial.action": "Oui, je veux les 14 jours d'essai gratuits de Ferdi Professionnel",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "Plus de services, pas d'attente - idéal pour un usage personnel.", 26 "feature.planSelection.personal.text": "Plus de services, pas d'attente - idéal pour un usage personnel.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "Tous les prix basés sur un paiement annuel", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "Tous les prix basés sur un paiement annuel",
27 "feature.planSelection.pro.text": "Des services illimités et des fonctionnalités professionnelles pour vous - et votre équipe.", 28 "feature.planSelection.pro.text": "Des services illimités et des fonctionnalités professionnelles pour vous - et votre équipe.",
29 "feature.publishDebugInfo.error": "Il y a eu une erreur en essayant de publier les informations de débogage. Veuillez réessayer plus tard ou consulter la console pour plus d'informations.",
30 "feature.publishDebugInfo.info": "La publication de vos informations de débogage nous aide à trouver des problèmes et des erreurs dans Ferdi. En publiant vos informations de débogage, vous acceptez la politique de confidentialité et les conditions d'utilisation de Ferdi Debugger",
31 "feature.publishDebugInfo.privacy": "Politique de confidentialité",
32 "feature.publishDebugInfo.publish": "Accepter et publier",
33 "feature.publishDebugInfo.published": "Votre journal de débogage a été publié et est maintenant disponible à",
34 "feature.publishDebugInfo.terms": "Conditions d'utilisation",
35 "feature.publishDebugInfo.title": "Publier les informations de débogage",
28 "feature.quickSwitch.info": "Sélectionner un service avec TAB, ↑ et ↓. Ouvrir un service avec ENTER.", 36 "feature.quickSwitch.info": "Sélectionner un service avec TAB, ↑ et ↓. Ouvrir un service avec ENTER.",
29 "feature.quickSwitch.search": "Rechercher...", 37 "feature.quickSwitch.search": "Rechercher...",
30 "feature.quickSwitch.title": "Changement rapide", 38 "feature.quickSwitch.title": "Changement rapide",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Information de Debug de Ferdi", 130 "menu.help.debugInfoCopiedHeadline": "Information de Debug de Ferdi",
123 "menu.help.learnMore": "En savoir plus", 131 "menu.help.learnMore": "En savoir plus",
124 "menu.help.privacy": "Déclaration de confidentialité", 132 "menu.help.privacy": "Déclaration de confidentialité",
133 "menu.help.publishDebugInfo": "Publier les informations de débogage",
125 "menu.help.support": "Assistance", 134 "menu.help.support": "Assistance",
126 "menu.help.tos": "Conditions d'utilisation", 135 "menu.help.tos": "Conditions d'utilisation",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -257,11 +266,11 @@
257 "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.", 266 "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.",
258 "settings.app.currentVersion": "Version actuelle :", 267 "settings.app.currentVersion": "Version actuelle :",
259 "settings.app.form.accentColor": "Accent de couleur", 268 "settings.app.form.accentColor": "Accent de couleur",
260 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 269 "settings.app.form.adaptableDarkMode": "Synchroniser le mode sombre avec les paramètres du mode sombre de mon Mac",
261 "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan", 270 "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan",
262 "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage", 271 "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage",
263 "settings.app.form.beta": "Accepter les versions bêta", 272 "settings.app.form.beta": "Accepter les versions bêta",
264 "settings.app.form.darkMode": "Enable dark mode", 273 "settings.app.form.darkMode": "Activer le mode sombre",
265 "settings.app.form.enableGPUAcceleration": "Activer l'accélération GPU", 274 "settings.app.form.enableGPUAcceleration": "Activer l'accélération GPU",
266 "settings.app.form.enableLock": "Activer le verrouillage par mot de passe", 275 "settings.app.form.enableLock": "Activer le verrouillage par mot de passe",
267 "settings.app.form.enableSpellchecking": "Activer la vérification orthographique", 276 "settings.app.form.enableSpellchecking": "Activer la vérification orthographique",
@@ -269,23 +278,25 @@
269 "settings.app.form.enableTodos": "Activer Ferdi Todos", 278 "settings.app.form.enableTodos": "Activer Ferdi Todos",
270 "settings.app.form.hibernate": "Activer le service d'hibernation", 279 "settings.app.form.hibernate": "Activer le service d'hibernation",
271 "settings.app.form.hibernationStrategy": "Stratégie d'hibernation", 280 "settings.app.form.hibernationStrategy": "Stratégie d'hibernation",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 281 "settings.app.form.iconSize": "Taille de l'icône du service",
282 "settings.app.form.inactivityLock": "Verrouiller après inactivité",
273 "settings.app.form.keepAllWorkspacesLoaded": "Garder tous les espaces de travail charger", 283 "settings.app.form.keepAllWorkspacesLoaded": "Garder tous les espaces de travail charger",
274 "settings.app.form.language": "Langue", 284 "settings.app.form.language": "Langue",
275 "settings.app.form.lockPassword": "Mot de passe", 285 "settings.app.form.lockPassword": "Mot de passe",
276 "settings.app.form.minimizeToSystemTray": "Minimiser Ferdi dans la zone de notification", 286 "settings.app.form.minimizeToSystemTray": "Minimiser Ferdi dans la zone de notification",
287 "settings.app.form.navigationBarBehaviour": "Comportement de la barre de navigation",
277 "settings.app.form.noUpdates": "Désactiver les mises à jours", 288 "settings.app.form.noUpdates": "Désactiver les mises à jours",
278 "settings.app.form.privateNotifications": "Ne pas afficher le contenu des notifications", 289 "settings.app.form.privateNotifications": "Ne pas afficher le contenu des notifications",
279 "settings.app.form.runInBackground": "Garder Ferdi ouvert en arrière-plan à la fermeture de la fenêtre", 290 "settings.app.form.runInBackground": "Garder Ferdi ouvert en arrière-plan à la fermeture de la fenêtre",
280 "settings.app.form.scheduledDNDEnabled": "Activer Ne-pas-Déranger", 291 "settings.app.form.scheduledDNDEnabled": "Activer Ne-pas-Déranger",
281 "settings.app.form.scheduledDNDEnd": "À", 292 "settings.app.form.scheduledDNDEnd": "À",
282 "settings.app.form.scheduledDNDStart": "De", 293 "settings.app.form.scheduledDNDStart": "De",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Envoyer des données de télémétrie",
284 "settings.app.form.server": "Serveur", 295 "settings.app.form.server": "Serveur",
296 "settings.app.form.serviceRibbonWidth": "Largeur du menu",
285 "settings.app.form.showDisabledServices": "Afficher les onglets des services désactivés", 297 "settings.app.form.showDisabledServices": "Afficher les onglets des services désactivés",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Afficher les badges de messages non lus quand les notifications sont désactivées", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Afficher les badges de messages non lus quand les notifications sont désactivées",
287 "settings.app.form.showServiceNavigationBar": "Toujours afficher la barre de navigation du service", 299 "settings.app.form.startMinimized": "Démarrer en mode réduit",
288 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Serveur Todo", 300 "settings.app.form.todoServer": "Serveur Todo",
290 "settings.app.form.universalDarkMode": "Activer le mode sombre universel", 301 "settings.app.form.universalDarkMode": "Activer le mode sombre universel",
291 "settings.app.headline": "Paramètres", 302 "settings.app.headline": "Paramètres",
@@ -295,7 +306,7 @@
295 "settings.app.headlineLanguage": "Langue", 306 "settings.app.headlineLanguage": "Langue",
296 "settings.app.headlineUpdates": "Mises à jour", 307 "settings.app.headlineUpdates": "Mises à jour",
297 "settings.app.hibernateInfo": "Par défaut, Ferdi gardera tous vos services ouverts et chargés en arrière-plan afin qu'ils soient prêts lorsque vous voulez les utiliser. Le service d'hibernation déchargera vos services après un montant spécifié. Ceci est utile pour sauver de la RAM ou garder les services de ralentir votre ordinateur.", 308 "settings.app.hibernateInfo": "Par défaut, Ferdi gardera tous vos services ouverts et chargés en arrière-plan afin qu'ils soient prêts lorsque vous voulez les utiliser. Le service d'hibernation déchargera vos services après un montant spécifié. Ceci est utile pour sauver de la RAM ou garder les services de ralentir votre ordinateur.",
298 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 309 "settings.app.inactivityLockInfo": "Minutes d'inactivité, après lesquelles Ferdi devrait se verrouiller automatiquement. Utilisez 0 pour désactiver",
299 "settings.app.languageDisclaimer": "Les traductions officielles sont l'anglais et l'allemand. Toutes les autres langues sont des traductions faites par la communauté.", 310 "settings.app.languageDisclaimer": "Les traductions officielles sont l'anglais et l'allemand. Toutes les autres langues sont des traductions faites par la communauté.",
300 "settings.app.lockInfo": "Le mot de passe de verrouillage de Ferdi vous permet de garder vos messages protégés.\nEn utilisant le mot de passe de verrouillage de Ferdi, vous allez être demandé de rentrer un mot de passe à chaque fois que vous démarré Ferdi ou verrouillé Ferdi vous même avec le symbole de cadenas en bas à gauche dans le coins ou avec le raccourcie CMD/CTRL+Shift+L.", 311 "settings.app.lockInfo": "Le mot de passe de verrouillage de Ferdi vous permet de garder vos messages protégés.\nEn utilisant le mot de passe de verrouillage de Ferdi, vous allez être demandé de rentrer un mot de passe à chaque fois que vous démarré Ferdi ou verrouillé Ferdi vous même avec le symbole de cadenas en bas à gauche dans le coins ou avec le raccourcie CMD/CTRL+Shift+L.",
301 "settings.app.lockedPassword": "Mot de passe", 312 "settings.app.lockedPassword": "Mot de passe",
@@ -303,7 +314,7 @@
303 "settings.app.restartRequired": "Les modifications nécessitent un redémarrage", 314 "settings.app.restartRequired": "Les modifications nécessitent un redémarrage",
304 "settings.app.scheduledDNDInfo": "Planifier le Ne-pas-Déranger vous permet de définir une période de temps dans lequel vous ne voulez pas de notifications de Ferdi.", 315 "settings.app.scheduledDNDInfo": "Planifier le Ne-pas-Déranger vous permet de définir une période de temps dans lequel vous ne voulez pas de notifications de Ferdi.",
305 "settings.app.scheduledDNDTimeInfo": "Le temps est en format 24 heures. La fin du temps peut être avant le début du temps (ex: début 17:00, fin 09:00) pour activer le Ne-pas-Déranger durant la nuit.", 316 "settings.app.scheduledDNDTimeInfo": "Le temps est en format 24 heures. La fin du temps peut être avant le début du temps (ex: début 17:00, fin 09:00) pour activer le Ne-pas-Déranger durant la nuit.",
306 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 317 "settings.app.sentryInfo": "L'envoi de données de télémétrie nous permet de trouver des erreurs dans Ferdi - nous n'enverrons aucune information personnelle comme vos données de message! La modification de cette option nécessite le redémarrage de Ferdi.",
307 "settings.app.serverInfo": "On vous recommande de vous déconnecter après d'avoir changer votre serveur dans vos paramètres au risque que les paramètres ne sois pas sauvegarder.", 318 "settings.app.serverInfo": "On vous recommande de vous déconnecter après d'avoir changer votre serveur dans vos paramètres au risque que les paramètres ne sois pas sauvegarder.",
308 "settings.app.serverMoneyInfo": "Vous êtes entrain d'utilisé le serveur officiel de Franz pour Ferdi.\nNous savons que Ferdi vous permet d'utilisé toutes les fonctionnalités gratuitement mais vous êtes toujours entrain d'utilisé les resources des serveurs de Franz - dont les créateurs paient pour.\nS'il vous plaît [Link 1]payé pour un compte Franz[/Link] ou [Link 2]utilisé un ferdi-serveur hébergé par soi-même[/Link] (si vous avez la connaissance et les resources pour).\nEn utilisant Ferdi, vous profité beaucoup des recettes de Franz, resources serveurs et son développement.", 319 "settings.app.serverMoneyInfo": "Vous êtes entrain d'utilisé le serveur officiel de Franz pour Ferdi.\nNous savons que Ferdi vous permet d'utilisé toutes les fonctionnalités gratuitement mais vous êtes toujours entrain d'utilisé les resources des serveurs de Franz - dont les créateurs paient pour.\nS'il vous plaît [Link 1]payé pour un compte Franz[/Link] ou [Link 2]utilisé un ferdi-serveur hébergé par soi-même[/Link] (si vous avez la connaissance et les resources pour).\nEn utilisant Ferdi, vous profité beaucoup des recettes de Franz, resources serveurs et son développement.",
309 "settings.app.subheadlineCache": "Cache", 320 "settings.app.subheadlineCache": "Cache",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Lorsque désactivé, tous les sons de notifications ainsi que l'audio sont coupés", 374 "settings.service.form.isMutedInfo": "Lorsque désactivé, tous les sons de notifications ainsi que l'audio sont coupés",
364 "settings.service.form.name": "Nom", 375 "settings.service.form.name": "Nom",
365 "settings.service.form.openDarkmodeCss": "Ouvrir darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Ouvrir darkmode.css",
377 "settings.service.form.openUserCss": "Ouvrir user.css",
378 "settings.service.form.openUserJs": "Ouvrir user.js",
366 "settings.service.form.proxy.headline": "Paramètres proxy HTTP/HTTPS", 379 "settings.service.form.proxy.headline": "Paramètres proxy HTTP/HTTPS",
367 "settings.service.form.proxy.host": "Hôte/IP du proxy", 380 "settings.service.form.proxy.host": "Hôte/IP du proxy",
368 "settings.service.form.proxy.info": "Les paramètres de proxy ne seront pas synchronisés avec les serveurs de Ferdi.", 381 "settings.service.form.proxy.info": "Les paramètres de proxy ne seront pas synchronisés avec les serveurs de Ferdi.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Veuillez redémarrer Ferdi après avoir modifié les paramètres proxy.", 385 "settings.service.form.proxy.restartInfo": "Veuillez redémarrer Ferdi après avoir modifié les paramètres proxy.",
373 "settings.service.form.proxy.user": "Utilisateur (facultatif)", 386 "settings.service.form.proxy.user": "Utilisateur (facultatif)",
387 "settings.service.form.recipeFileInfo": "Vos fichiers utilisateur seront insérés dans la page Web afin que vous puissiez personnaliser les services comme vous le souhaitez. Les fichiers utilisateurs sont stockés localement et ne sont pas transférés à d'autres ordinateurs en utilisant le même compte.",
374 "settings.service.form.saveButton": "Enregistrer le service", 388 "settings.service.form.saveButton": "Enregistrer le service",
375 "settings.service.form.tabHosted": "Hébergé", 389 "settings.service.form.tabHosted": "Hébergé",
376 "settings.service.form.tabOnPremise": "Hébergé par soi-même ⭐️", 390 "settings.service.form.tabOnPremise": "Hébergé par soi-même ⭐️",
@@ -479,7 +493,7 @@
479 "webControls.reload": "Actualiser", 493 "webControls.reload": "Actualiser",
480 "welcome.loginButton": "Se connecter sur son compte", 494 "welcome.loginButton": "Se connecter sur son compte",
481 "welcome.signupButton": "Créer un compte gratuit", 495 "welcome.signupButton": "Créer un compte gratuit",
482 "workspaceDrawer.addNewWorkspaceLabel": "Ajouté un nouvel espace de travail", 496 "workspaceDrawer.addNewWorkspaceLabel": "Ajouter un nouvel espace de travail",
483 "workspaceDrawer.allServices": "Tous les services", 497 "workspaceDrawer.allServices": "Tous les services",
484 "workspaceDrawer.headline": "Espace de travail", 498 "workspaceDrawer.headline": "Espace de travail",
485 "workspaceDrawer.item.contextMenuEdit": "Modifier", 499 "workspaceDrawer.item.contextMenuEdit": "Modifier",
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json
index e808bde80..2462110fd 100644
--- a/src/i18n/locales/ga.json
+++ b/src/i18n/locales/ga.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Athlódáil", 2 "app.errorHandler.action": "Athlódáil",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Tearmaí seirbhíse",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Tuilleadh eolais", 131 "menu.help.learnMore": "Tuilleadh eolais",
124 "menu.help.privacy": "Ráiteas phríobháideachais", 132 "menu.help.privacy": "Ráiteas phríobháideachais",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Tacaíocht", 134 "menu.help.support": "Tacaíocht",
126 "menu.help.tos": "Téarmaí tagartha", 135 "menu.help.tos": "Téarmaí tagartha",
127 "menu.services": "Seirbhísí", 136 "menu.services": "Seirbhísí",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Teanga", 284 "settings.app.form.language": "Teanga",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Íoslaghdaigh Ferdi chuig tráidire an chórais", 286 "settings.app.form.minimizeToSystemTray": "Íoslaghdaigh Ferdi chuig tráidire an chórais",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Coimeád Ferdi sa chúlra nuair a dhúntar an fhuinneog", 290 "settings.app.form.runInBackground": "Coimeád Ferdi sa chúlra nuair a dhúntar an fhuinneog",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Taispeáin tabanna do sheirbhísí dhíchumasaithe", 297 "settings.app.form.showDisabledServices": "Taispeáin tabanna do sheirbhísí dhíchumasaithe",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Tachtar gach fuaim fógraí agus athchasadh fuaime", 374 "settings.service.form.isMutedInfo": "Tachtar gach fuaim fógraí agus athchasadh fuaime",
364 "settings.service.form.name": "Ainm", 375 "settings.service.form.name": "Ainm",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Sábháil seirbhís", 388 "settings.service.form.saveButton": "Sábháil seirbhís",
375 "settings.service.form.tabHosted": "Óstáilte", 389 "settings.service.form.tabHosted": "Óstáilte",
376 "settings.service.form.tabOnPremise": "Féinóstáilte ⭐️", 390 "settings.service.form.tabOnPremise": "Féinóstáilte ⭐️",
diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/he.json
+++ b/src/i18n/locales/he.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json
index 349e3987e..6b4e22f13 100644
--- a/src/i18n/locales/hr.json
+++ b/src/i18n/locales/hr.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Ponovno učitavanje", 2 "app.errorHandler.action": "Ponovno učitavanje",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Uvjeti korištenja",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Izjava o privatnosti ", 132 "menu.help.privacy": "Izjava o privatnosti ",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -200,13 +209,13 @@
200 "pricing.trial.terms.noCreditCard": "No credit card required", 209 "pricing.trial.terms.noCreditCard": "No credit card required",
201 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", 210 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
202 "service.crashHandler.action": "Osvježi okvir", 211 "service.crashHandler.action": "Osvježi okvir",
203 "service.crashHandler.autoReload": "Pokušati ću automatski povratiti {ime} u {sekundi} sekundi", 212 "service.crashHandler.autoReload": "Pokušati ću automatski povratiti {name} u {seconds} sekundi",
204 "service.crashHandler.headline": "O, ne! ", 213 "service.crashHandler.headline": "O, ne! ",
205 "service.crashHandler.text": "{name} je izazvalo grešku. ", 214 "service.crashHandler.text": "{name} je izazvalo grešku. ",
206 "service.disabledHandler.action": "Omogući {name}", 215 "service.disabledHandler.action": "Omogući {name}",
207 "service.disabledHandler.headline": "{name} je onemogućen/o", 216 "service.disabledHandler.headline": "{name} je onemogućen/o",
208 "service.errorHandler.action": "Osvježi okvir", 217 "service.errorHandler.action": "Osvježi okvir",
209 "service.errorHandler.editAction": "Uredite {ime}", 218 "service.errorHandler.editAction": "Uredite {name}",
210 "service.errorHandler.headline": "O, ne! ", 219 "service.errorHandler.headline": "O, ne! ",
211 "service.errorHandler.message": "Greška", 220 "service.errorHandler.message": "Greška",
212 "service.errorHandler.text": "{name} has failed to load.", 221 "service.errorHandler.text": "{name} has failed to load.",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Jezik", 284 "settings.app.form.language": "Jezik",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku", 286 "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren", 290 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Prikaži ploče s onemogućenim servisima", 297 "settings.app.form.showDisabledServices": "Prikaži ploče s onemogućenim servisima",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Pokaži nepročitane značke poruka kad se obavještenja onemoguće", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Pokaži nepročitane značke poruka kad se obavještenja onemoguće",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -339,14 +350,14 @@
339 "settings.service.error.goBack": "Nazad do servisa", 350 "settings.service.error.goBack": "Nazad do servisa",
340 "settings.service.error.headline": "Greška", 351 "settings.service.error.headline": "Greška",
341 "settings.service.error.message": "Nemoguće učitati sadržaj usluge. ", 352 "settings.service.error.message": "Nemoguće učitati sadržaj usluge. ",
342 "settings.service.form.addServiceHeadline": "Dodaj {ime}", 353 "settings.service.form.addServiceHeadline": "Dodaj {name}",
343 "settings.service.form.availableServices": "Dostupne usluge", 354 "settings.service.form.availableServices": "Dostupne usluge",
344 "settings.service.form.customUrl": "Prilagođen server", 355 "settings.service.form.customUrl": "Prilagođen server",
345 "settings.service.form.customUrlPremiumInfo": "Da bi ste dodali samo-hostovane usluge, potreban vam je Premium račun.", 356 "settings.service.form.customUrlPremiumInfo": "Da bi ste dodali samo-hostovane usluge, potreban vam je Premium račun.",
346 "settings.service.form.customUrlUpgradeAccount": "Nadogradite Vaš račun", 357 "settings.service.form.customUrlUpgradeAccount": "Nadogradite Vaš račun",
347 "settings.service.form.customUrlValidationError": "Nije moguće odobriti prilagođeno {ime} servera.", 358 "settings.service.form.customUrlValidationError": "Nije moguće odobriti prilagođeno {name} servera.",
348 "settings.service.form.deleteButton": "Izbriši uslugu", 359 "settings.service.form.deleteButton": "Izbriši uslugu",
349 "settings.service.form.editServiceHeadline": "Uredite {ime}", 360 "settings.service.form.editServiceHeadline": "Uredite {name}",
350 "settings.service.form.enableAudio": "Omogućite zvuk", 361 "settings.service.form.enableAudio": "Omogućite zvuk",
351 "settings.service.form.enableBadge": "Show unread message badges", 362 "settings.service.form.enableBadge": "Show unread message badges",
352 "settings.service.form.enableDarkMode": "Enable Dark Mode", 363 "settings.service.form.enableDarkMode": "Enable Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrška će biti nečujna. ", 374 "settings.service.form.isMutedInfo": "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrška će biti nečujna. ",
364 "settings.service.form.name": "Ime", 375 "settings.service.form.name": "Ime",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Sačuvaj uslugu/e", 388 "settings.service.form.saveButton": "Sačuvaj uslugu/e",
375 "settings.service.form.tabHosted": "Hostovano", 389 "settings.service.form.tabHosted": "Hostovano",
376 "settings.service.form.tabOnPremise": "Samo-hostovano ⭐️", 390 "settings.service.form.tabOnPremise": "Samo-hostovano ⭐️",
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json
index f1b16f550..f829e12c0 100644
--- a/src/i18n/locales/hu.json
+++ b/src/i18n/locales/hu.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Újratöltés", 2 "app.errorHandler.action": "Újratöltés",
3 "app.errorHandler.headline": "Valami nem jött össze", 3 "app.errorHandler.headline": "Valami nem jött össze",
4 "feature.announcements.changelog.headline": "Ferdi {version} változásai", 4 "feature.announcements.changelog.headline": "Ferdi {version} változásai",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához", 6 "feature.delayApp.headline": "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához",
6 "feature.delayApp.text": "A Ferdi továbblép {seconds} másodperc múlva.", 7 "feature.delayApp.text": "A Ferdi továbblép {seconds} másodperc múlva.",
7 "feature.delayApp.trial.action": "Igen, szeretném kipróbálni 14 napig a Ferdi Professional-t ingyen", 8 "feature.delayApp.trial.action": "Igen, szeretném kipróbálni 14 napig a Ferdi Professional-t ingyen",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Felhasználási Feltételeket",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Hibajelentés", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Hibajelentés",
123 "menu.help.learnMore": "Tudjon meg többet", 131 "menu.help.learnMore": "Tudjon meg többet",
124 "menu.help.privacy": "Adatvédelmi Nyilatkozatot", 132 "menu.help.privacy": "Adatvédelmi Nyilatkozatot",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Támogatás", 134 "menu.help.support": "Támogatás",
126 "menu.help.tos": "Felhasználói feltételek", 135 "menu.help.tos": "Felhasználói feltételek",
127 "menu.services": "Szolgáltatások", 136 "menu.services": "Szolgáltatások",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Ferdi Tennivalók bekapcsolása", 278 "settings.app.form.enableTodos": "Ferdi Tennivalók bekapcsolása",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Nyelv", 284 "settings.app.form.language": "Nyelv",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Ferdi kicsinyítése a tálcára", 286 "settings.app.form.minimizeToSystemTray": "Ferdi kicsinyítése a tálcára",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Ferdi fusson a háttérben az ablak bezárásakor", 290 "settings.app.form.runInBackground": "Ferdi fusson a háttérben az ablak bezárásakor",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Letiltott szolgáltatások megjelenítése", 297 "settings.app.form.showDisabledServices": "Letiltott szolgáltatások megjelenítése",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Ha kikapcsolod, minden értesítési és lejátszott hang némításra kerül", 374 "settings.service.form.isMutedInfo": "Ha kikapcsolod, minden értesítési és lejátszott hang némításra kerül",
364 "settings.service.form.name": "Név", 375 "settings.service.form.name": "Név",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy beállítások", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy beállítások",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy beállítások nem szinkronizálódnak a Ferdi kiszolgálókkal.", 381 "settings.service.form.proxy.info": "Proxy beállítások nem szinkronizálódnak a Ferdi kiszolgálókkal.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Kérjük indítsd újra a Ferdi-ot a proxy beállítások megváltoztatása után.", 385 "settings.service.form.proxy.restartInfo": "Kérjük indítsd újra a Ferdi-ot a proxy beállítások megváltoztatása után.",
373 "settings.service.form.proxy.user": "Felhasználó (opcionális)", 386 "settings.service.form.proxy.user": "Felhasználó (opcionális)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Szolgáltatás mentése", 388 "settings.service.form.saveButton": "Szolgáltatás mentése",
375 "settings.service.form.tabHosted": "Üzemeltetett", 389 "settings.service.form.tabHosted": "Üzemeltetett",
376 "settings.service.form.tabOnPremise": "Egyénileg üzemeltetett", 390 "settings.service.form.tabOnPremise": "Egyénileg üzemeltetett",
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json
index 023bd3014..bb8f54d10 100644
--- a/src/i18n/locales/id.json
+++ b/src/i18n/locales/id.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Muat Ulang", 2 "app.errorHandler.action": "Muat Ulang",
3 "app.errorHandler.headline": "Terjadi kesalahan", 3 "app.errorHandler.headline": "Terjadi kesalahan",
4 "feature.announcements.changelog.headline": "Perubahan dalam Ferdi {version}", 4 "feature.announcements.changelog.headline": "Perubahan dalam Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Beli Lisensi Pendukung Ferdi agar tidak perlu menunggu", 6 "feature.delayApp.headline": "Beli Lisensi Pendukung Ferdi agar tidak perlu menunggu",
6 "feature.delayApp.text": "Ferdi akan melanjutkan dalam {seconds} detik.", 7 "feature.delayApp.text": "Ferdi akan melanjutkan dalam {seconds} detik.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Ketentuan layanan",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Pelajari Lebih Lanjut", 131 "menu.help.learnMore": "Pelajari Lebih Lanjut",
124 "menu.help.privacy": "Pernyataan Privasi", 132 "menu.help.privacy": "Pernyataan Privasi",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Dukungan", 134 "menu.help.support": "Dukungan",
126 "menu.help.tos": "Ketentuan Layanan", 135 "menu.help.tos": "Ketentuan Layanan",
127 "menu.services": "Layanan", 136 "menu.services": "Layanan",
@@ -206,7 +215,7 @@
206 "service.disabledHandler.action": "Aktifkan {name}", 215 "service.disabledHandler.action": "Aktifkan {name}",
207 "service.disabledHandler.headline": "{name} dinonaktifkan", 216 "service.disabledHandler.headline": "{name} dinonaktifkan",
208 "service.errorHandler.action": "Muat Ulang {name}", 217 "service.errorHandler.action": "Muat Ulang {name}",
209 "service.errorHandler.editAction": "Edit {nama}", 218 "service.errorHandler.editAction": "Edit {name}",
210 "service.errorHandler.headline": "Ya Ampun!", 219 "service.errorHandler.headline": "Ya Ampun!",
211 "service.errorHandler.message": "Kesalahan", 220 "service.errorHandler.message": "Kesalahan",
212 "service.errorHandler.text": "{name} gagal dimuat", 221 "service.errorHandler.text": "{name} gagal dimuat",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Bahasa", 284 "settings.app.form.language": "Bahasa",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Perkecil Ferdi ke baki sistem", 286 "settings.app.form.minimizeToSystemTray": "Perkecil Ferdi ke baki sistem",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Tetap jalankan Ferdi di latar belakang saat menutup jendela", 290 "settings.app.form.runInBackground": "Tetap jalankan Ferdi di latar belakang saat menutup jendela",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Tampilkan tab layanan yang dinonaktifkan", 297 "settings.app.form.showDisabledServices": "Tampilkan tab layanan yang dinonaktifkan",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -344,9 +355,9 @@
344 "settings.service.form.customUrl": "Server khusus", 355 "settings.service.form.customUrl": "Server khusus",
345 "settings.service.form.customUrlPremiumInfo": "Untuk menambahkan layanan hosted yang dijalankan mandiri, Anda membutuhkan Ferdi Premium Supporter Account.", 356 "settings.service.form.customUrlPremiumInfo": "Untuk menambahkan layanan hosted yang dijalankan mandiri, Anda membutuhkan Ferdi Premium Supporter Account.",
346 "settings.service.form.customUrlUpgradeAccount": "Tingkatkan akun Anda", 357 "settings.service.form.customUrlUpgradeAccount": "Tingkatkan akun Anda",
347 "settings.service.form.customUrlValidationError": "Gagal memvalidasi server {nama} khusus.", 358 "settings.service.form.customUrlValidationError": "Gagal memvalidasi server {name} khusus.",
348 "settings.service.form.deleteButton": "Hapus layanan", 359 "settings.service.form.deleteButton": "Hapus layanan",
349 "settings.service.form.editServiceHeadline": "Edit {nama}", 360 "settings.service.form.editServiceHeadline": "Edit {name}",
350 "settings.service.form.enableAudio": "Aktifkan audio", 361 "settings.service.form.enableAudio": "Aktifkan audio",
351 "settings.service.form.enableBadge": "Tampilkan lencana pesan belum dibaca", 362 "settings.service.form.enableBadge": "Tampilkan lencana pesan belum dibaca",
352 "settings.service.form.enableDarkMode": "Aktifkan Mode Gelap", 363 "settings.service.form.enableDarkMode": "Aktifkan Mode Gelap",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Saat dinonaktifkan, semua suara pemberitahuan dan pemutaran audio akan dibisukan", 374 "settings.service.form.isMutedInfo": "Saat dinonaktifkan, semua suara pemberitahuan dan pemutaran audio akan dibisukan",
364 "settings.service.form.name": "Nama", 375 "settings.service.form.name": "Nama",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Pengaturan Proxy HTTP/HTTPS", 379 "settings.service.form.proxy.headline": "Pengaturan Proxy HTTP/HTTPS",
367 "settings.service.form.proxy.host": "Host/IP Proksi", 380 "settings.service.form.proxy.host": "Host/IP Proksi",
368 "settings.service.form.proxy.info": "Pengaturan proksi tidak akan disinkronkan dengan server Ferdi.", 381 "settings.service.form.proxy.info": "Pengaturan proksi tidak akan disinkronkan dengan server Ferdi.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Silahkan mulai ulang Ferdi setelah mengubah Setelan proxy", 385 "settings.service.form.proxy.restartInfo": "Silahkan mulai ulang Ferdi setelah mengubah Setelan proxy",
373 "settings.service.form.proxy.user": "Pengguna (opsional)", 386 "settings.service.form.proxy.user": "Pengguna (opsional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Simpan layanan", 388 "settings.service.form.saveButton": "Simpan layanan",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Hosted mandiri", 390 "settings.service.form.tabOnPremise": "Hosted mandiri",
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index 4c5033020..3929b039c 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Ricarica", 2 "app.errorHandler.action": "Ricarica",
3 "app.errorHandler.headline": "Qualcosa è andato storto", 3 "app.errorHandler.headline": "Qualcosa è andato storto",
4 "feature.announcements.changelog.headline": "Modifiche in Ferdi {Version}", 4 "feature.announcements.changelog.headline": "Modifiche in Ferdi {Version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Per favore, compra una Licenza Supporter di Ferdi per saltare l'attesa", 6 "feature.delayApp.headline": "Per favore, compra una Licenza Supporter di Ferdi per saltare l'attesa",
6 "feature.delayApp.text": "Ferdi continuerà tra {seconds} secondi.", 7 "feature.delayApp.text": "Ferdi continuerà tra {seconds} secondi.",
7 "feature.delayApp.trial.action": "Sì, voglio la prova gratuita di 14 giorni di Ferdi Professional", 8 "feature.delayApp.trial.action": "Sì, voglio la prova gratuita di 14 giorni di Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Termini di Servizio",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Informazioni di debug di Ferdi", 130 "menu.help.debugInfoCopiedHeadline": "Informazioni di debug di Ferdi",
123 "menu.help.learnMore": "Maggiori Informazioni", 131 "menu.help.learnMore": "Maggiori Informazioni",
124 "menu.help.privacy": "Dichiarazione della Privacy", 132 "menu.help.privacy": "Dichiarazione della Privacy",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Supporto", 134 "menu.help.support": "Supporto",
126 "menu.help.tos": "Termini di Servizio", 135 "menu.help.tos": "Termini di Servizio",
127 "menu.services": "Servizi", 136 "menu.services": "Servizi",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Abilità le Attività Ferdi", 278 "settings.app.form.enableTodos": "Abilità le Attività Ferdi",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Mantieni tutti i workspace caricati", 283 "settings.app.form.keepAllWorkspacesLoaded": "Mantieni tutti i workspace caricati",
274 "settings.app.form.language": "Lingua", 284 "settings.app.form.language": "Lingua",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimizza Ferdi nell'area di notifica", 286 "settings.app.form.minimizeToSystemTray": "Minimizza Ferdi nell'area di notifica",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra", 290 "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Mostra schede servizi disattivati", 297 "settings.app.form.showDisabledServices": "Mostra schede servizi disattivati",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Se disattivato, tutte le notifiche sonore e le riproduzioni audio saranno mutate", 374 "settings.service.form.isMutedInfo": "Se disattivato, tutte le notifiche sonore e le riproduzioni audio saranno mutate",
364 "settings.service.form.name": "Nome", 375 "settings.service.form.name": "Nome",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Impostazioni Proxy HTTP/HTTPS", 379 "settings.service.form.proxy.headline": "Impostazioni Proxy HTTP/HTTPS",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Le impostazioni proxy non verranno sincronizzate con i server Ferdi.", 381 "settings.service.form.proxy.info": "Le impostazioni proxy non verranno sincronizzate con i server Ferdi.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Porta", 384 "settings.service.form.proxy.port": "Porta",
372 "settings.service.form.proxy.restartInfo": "Riavvia Ferdi dopo aver cambiato le impostazioni del proxy.", 385 "settings.service.form.proxy.restartInfo": "Riavvia Ferdi dopo aver cambiato le impostazioni del proxy.",
373 "settings.service.form.proxy.user": "Utente (opzionale)", 386 "settings.service.form.proxy.user": "Utente (opzionale)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Salva servizio", 388 "settings.service.form.saveButton": "Salva servizio",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index 7a2e2c6a0..bb9c8cbbe 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "再読み込み", 2 "app.errorHandler.action": "再読み込み",
3 "app.errorHandler.headline": "間違えている部分があります", 3 "app.errorHandler.headline": "間違えている部分があります",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Ferdiをすぐに起動するには、Ferdi サポーターライセンスを購入してください。", 6 "feature.delayApp.headline": "Ferdiをすぐに起動するには、Ferdi サポーターライセンスを購入してください。",
6 "feature.delayApp.text": "Ferdiはあと{seconds}秒後に起動します。", 7 "feature.delayApp.text": "Ferdiはあと{seconds}秒後に起動します。",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "利用規約",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Ferdiについて", 131 "menu.help.learnMore": "Ferdiについて",
124 "menu.help.privacy": "プライバシーについて", 132 "menu.help.privacy": "プライバシーについて",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "サポート", 134 "menu.help.support": "サポート",
126 "menu.help.tos": "サービス利用規約", 135 "menu.help.tos": "サービス利用規約",
127 "menu.services": "サービス", 136 "menu.services": "サービス",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "言語", 284 "settings.app.form.language": "言語",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Ferdiをシステムトレイに最小化する", 286 "settings.app.form.minimizeToSystemTray": "Ferdiをシステムトレイに最小化する",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "ウインドウを閉じた際にFerdiをバックグラウンドで実行させておく", 290 "settings.app.form.runInBackground": "ウインドウを閉じた際にFerdiをバックグラウンドで実行させておく",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "無効化されたサービスのタブを表示する", 297 "settings.app.form.showDisabledServices": "無効化されたサービスのタブを表示する",
286 "settings.app.form.showMessagesBadgesWhenMuted": "通知の無効時に未読メッセージ件数を表示する", 298 "settings.app.form.showMessagesBadgesWhenMuted": "通知の無効時に未読メッセージ件数を表示する",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "無効化されている場合、全ての通知音やオーディオ再生は無音になります", 374 "settings.service.form.isMutedInfo": "無効化されている場合、全ての通知音やオーディオ再生は無音になります",
364 "settings.service.form.name": "氏名", 375 "settings.service.form.name": "氏名",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPSのプロキシ設定", 379 "settings.service.form.proxy.headline": "HTTP/HTTPSのプロキシ設定",
367 "settings.service.form.proxy.host": "プロキシサーバー/IP", 380 "settings.service.form.proxy.host": "プロキシサーバー/IP",
368 "settings.service.form.proxy.info": "プロキシ設定はFerdi アカウントで同期されません。", 381 "settings.service.form.proxy.info": "プロキシ設定はFerdi アカウントで同期されません。",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "ポート", 384 "settings.service.form.proxy.port": "ポート",
372 "settings.service.form.proxy.restartInfo": "プロキシ設定を変更してから、Ferdiを再起動してください", 385 "settings.service.form.proxy.restartInfo": "プロキシ設定を変更してから、Ferdiを再起動してください",
373 "settings.service.form.proxy.user": "ユーザー名(任意)", 386 "settings.service.form.proxy.user": "ユーザー名(任意)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "サービスの保存", 388 "settings.service.form.saveButton": "サービスの保存",
375 "settings.service.form.tabHosted": "ホスト", 389 "settings.service.form.tabHosted": "ホスト",
376 "settings.service.form.tabOnPremise": "セルフホスト ⭐️", 390 "settings.service.form.tabOnPremise": "セルフホスト ⭐️",
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json
index b88cc02ce..17eec6540 100644
--- a/src/i18n/locales/ka.json
+++ b/src/i18n/locales/ka.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "ჩატვირთვა", 2 "app.errorHandler.action": "ჩატვირთვა",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "მომსახურების პირობები",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "კონფიდენციალურობის შესახებ", 132 "menu.help.privacy": "კონფიდენციალურობის შესახებ",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "ენა", 284 "settings.app.form.language": "ენა",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "ჩაკეცეთ Ferdi სისტემის უჯრაში", 286 "settings.app.form.minimizeToSystemTray": "ჩაკეცეთ Ferdi სისტემის უჯრაში",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "დატოვეთ Ferdi გაშვებული როდესაც ფანჯარა დაიხურება", 290 "settings.app.form.runInBackground": "დატოვეთ Ferdi გაშვებული როდესაც ფანჯარა დაიხურება",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "სახელი ", 375 "settings.service.form.name": "სახელი ",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "სერვისის შენახვა", 388 "settings.service.form.saveButton": "სერვისის შენახვა",
375 "settings.service.form.tabHosted": "დაჰოსტილი", 389 "settings.service.form.tabHosted": "დაჰოსტილი",
376 "settings.service.form.tabOnPremise": "თვით დაჰოსტილი ⭐️", 390 "settings.service.form.tabOnPremise": "თვით დაჰოსტილი ⭐️",
diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json
index 29a3ac246..7a1e21490 100644
--- a/src/i18n/locales/ko.json
+++ b/src/i18n/locales/ko.json
@@ -1,14 +1,15 @@
1{ 1{
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "새로고침",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "문제가 발생했습니다.",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Ferdi {version} 변경점",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 5 "feature.debugger.title": "디버깅 정보 공개",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 6 "feature.delayApp.headline": "Ferdi Supporter License를 구매하여 대기시간을 스킵하세요.",
7 "feature.delayApp.text": "Ferdi가 {seconds} 초 안에 재개합니다.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
8 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", 9 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial",
9 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", 10 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line",
10 "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License", 11 "feature.delayApp.upgrade.action": "Ferdi Supporter License 얻기",
11 "feature.delayApp.upgrade.actionShort": "Upgrade account", 12 "feature.delayApp.upgrade.actionShort": "계정 업그레이드",
12 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", 13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
13 "feature.planSelection.cta.stayOnFree": "Stay on Free", 14 "feature.planSelection.cta.stayOnFree": "Stay on Free",
14 "feature.planSelection.cta.trial": "Start my free 14-days Trial", 15 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
@@ -25,9 +26,16 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 29 "feature.publishDebugInfo.error": "디버그 정보를 공개하는데 오류가 발생했습니다. 조금 뒤에 다시 시도하거나 콘솔을 통해 정보를 확인하십시오.",
29 "feature.quickSwitch.search": "Search...", 30 "feature.publishDebugInfo.info": "디버그 정보를 공개하는 것은 Ferdi의 오류를 찾는데 도움이 됩니다. 디버그 정보를 공개함으로 Ferdi Debugger의 개인정보보호정책과 이용 약관을 동의하는 것으로 간주합니다.",
30 "feature.quickSwitch.title": "QuickSwitch", 31 "feature.publishDebugInfo.privacy": "개인정보보호정책",
32 "feature.publishDebugInfo.publish": "동의 및 공개",
33 "feature.publishDebugInfo.published": "디버그 로그가 공개되었고 다음에서 확인 가능합니다.",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "디버깅 정보 공개",
36 "feature.quickSwitch.info": "서비스를 TAB, ↑, ↓을 이용해 선택할 수 있습니다. ENTER를 이용하여 서비스를 열 수 있습니다.",
37 "feature.quickSwitch.search": "검색...",
38 "feature.quickSwitch.title": "빠른 검색",
31 "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", 39 "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.",
32 "feature.shareFranz.action.email": "Send as email", 40 "feature.shareFranz.action.email": "Send as email",
33 "feature.shareFranz.action.facebook": "Share on Facebook", 41 "feature.shareFranz.action.facebook": "Share on Facebook",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -162,7 +171,7 @@
162 "password.noUser": "No user with that email address was found", 171 "password.noUser": "No user with that email address was found",
163 "password.submit.label": "Submit", 172 "password.submit.label": "Submit",
164 "password.successInfo": "Please check your email", 173 "password.successInfo": "Please check your email",
165 "premiumFeature.button.upgradeAccount": "Upgrade account", 174 "premiumFeature.button.upgradeAccount": "계정 업그레이드",
166 "pricing.features.accountSync": "Account Synchronisation", 175 "pricing.features.accountSync": "Account Synchronisation",
167 "pricing.features.adFree": "Forever ad-free", 176 "pricing.features.adFree": "Forever ad-free",
168 "pricing.features.appDelays": "No Waiting Screens", 177 "pricing.features.appDelays": "No Waiting Screens",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
@@ -466,7 +480,7 @@
466 "tabs.item.enableAudio": "Enable audio", 480 "tabs.item.enableAudio": "Enable audio",
467 "tabs.item.enableNotification": "Enable notifications", 481 "tabs.item.enableNotification": "Enable notifications",
468 "tabs.item.enableService": "Enable service", 482 "tabs.item.enableService": "Enable service",
469 "tabs.item.reload": "Reload", 483 "tabs.item.reload": "새로고침",
470 "validation.email": "{field} is not valid", 484 "validation.email": "{field} is not valid",
471 "validation.minLength": "{field} should be at least {length} characters long", 485 "validation.minLength": "{field} should be at least {length} characters long",
472 "validation.oneRequired": "At least one is required", 486 "validation.oneRequired": "At least one is required",
@@ -476,7 +490,7 @@
476 "webControls.forward": "Forward", 490 "webControls.forward": "Forward",
477 "webControls.goHome": "Home", 491 "webControls.goHome": "Home",
478 "webControls.openInBrowser": "Open in Browser", 492 "webControls.openInBrowser": "Open in Browser",
479 "webControls.reload": "Reload", 493 "webControls.reload": "새로고침",
480 "welcome.loginButton": "Login to your account", 494 "welcome.loginButton": "Login to your account",
481 "welcome.signupButton": "Create a free account", 495 "welcome.signupButton": "Create a free account",
482 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 496 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace",
diff --git a/src/i18n/locales/nb-NO.json b/src/i18n/locales/nb.json
index 97f340d59..97f340d59 100644
--- a/src/i18n/locales/nb-NO.json
+++ b/src/i18n/locales/nb.json
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index 70be14fbf..c1cbf070d 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Herladen", 2 "app.errorHandler.action": "Herladen",
3 "app.errorHandler.headline": "Er ging iets mis", 3 "app.errorHandler.headline": "Er ging iets mis",
4 "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {versie}", 4 "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {versie}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Neem een Ferdi Supporter Licentie om niet meer te hoeven wachten", 6 "feature.delayApp.headline": "Neem een Ferdi Supporter Licentie om niet meer te hoeven wachten",
6 "feature.delayApp.text": "Ferdi gaat over {seconds} seconden verder.", 7 "feature.delayApp.text": "Ferdi gaat over {seconds} seconden verder.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Servicevoorwaarden",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Meer Weten", 131 "menu.help.learnMore": "Meer Weten",
124 "menu.help.privacy": "Privacyverklaring", 132 "menu.help.privacy": "Privacyverklaring",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Ondersteuning", 134 "menu.help.support": "Ondersteuning",
126 "menu.help.tos": "Servicevoorwaarden", 135 "menu.help.tos": "Servicevoorwaarden",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Taal", 284 "settings.app.form.language": "Taal",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar de systeembalk", 286 "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar de systeembalk",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Houd Ferdi op de achtergrond wanneer het venster gesloten wordt", 290 "settings.app.form.runInBackground": "Houd Ferdi op de achtergrond wanneer het venster gesloten wordt",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Toon uitgeschakelde services", 297 "settings.app.form.showDisabledServices": "Toon uitgeschakelde services",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Indien uitgeschakeld zullen alle meldingsgeluiden en afgespeelde audio uitgeschakeld zijn", 374 "settings.service.form.isMutedInfo": "Indien uitgeschakeld zullen alle meldingsgeluiden en afgespeelde audio uitgeschakeld zijn",
364 "settings.service.form.name": "Naam", 375 "settings.service.form.name": "Naam",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Instellingen", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Instellingen",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy instellingen worden niet gesynchroniseerd met de Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy instellingen worden niet gesynchroniseerd met de Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Poort", 384 "settings.service.form.proxy.port": "Poort",
372 "settings.service.form.proxy.restartInfo": "Start Ferdi opnieuw op na het aanpassen van proxy Instellingen.", 385 "settings.service.form.proxy.restartInfo": "Start Ferdi opnieuw op na het aanpassen van proxy Instellingen.",
373 "settings.service.form.proxy.user": "Gebruiker (optioneel)", 386 "settings.service.form.proxy.user": "Gebruiker (optioneel)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Service opslaan", 388 "settings.service.form.saveButton": "Service opslaan",
375 "settings.service.form.tabHosted": "Gehost", 389 "settings.service.form.tabHosted": "Gehost",
376 "settings.service.form.tabOnPremise": "Intern gehost ⭐️", 390 "settings.service.form.tabOnPremise": "Intern gehost ⭐️",
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index 199712529..adf587408 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Herladen", 2 "app.errorHandler.action": "Herladen",
3 "app.errorHandler.headline": "Er is iets mis gegaan", 3 "app.errorHandler.headline": "Er is iets mis gegaan",
4 "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Sponsor Ferdi om wachten over te slaan", 6 "feature.delayApp.headline": "Sponsor Ferdi om wachten over te slaan",
6 "feature.delayApp.text": "Ferdi gaat over {seconds} seconden verder.", 7 "feature.delayApp.text": "Ferdi gaat over {seconds} seconden verder.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Gebruiksvoorwaarden",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Meer informatie", 131 "menu.help.learnMore": "Meer informatie",
124 "menu.help.privacy": "Privacyvoorwaarden", 132 "menu.help.privacy": "Privacyvoorwaarden",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Ondersteuning", 134 "menu.help.support": "Ondersteuning",
126 "menu.help.tos": "Servicevoorwaarden", 135 "menu.help.tos": "Servicevoorwaarden",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Taal", 284 "settings.app.form.language": "Taal",
275 "settings.app.form.lockPassword": "Wachtwoord", 285 "settings.app.form.lockPassword": "Wachtwoord",
276 "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar systeemvak", 286 "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar systeemvak",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Toon geen bericht-inhoud in meldingen", 289 "settings.app.form.privateNotifications": "Toon geen bericht-inhoud in meldingen",
279 "settings.app.form.runInBackground": "Houd Ferdi open op de achtergrond wanneer het venster gesloten wordt", 290 "settings.app.form.runInBackground": "Houd Ferdi open op de achtergrond wanneer het venster gesloten wordt",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Toon uitgeschakelde services", 297 "settings.app.form.showDisabledServices": "Toon uitgeschakelde services",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Indien uitgeschakeld, worden meldingen en audio niet afgespeeld", 374 "settings.service.form.isMutedInfo": "Indien uitgeschakeld, worden meldingen en audio niet afgespeeld",
364 "settings.service.form.name": "Naam", 375 "settings.service.form.name": "Naam",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy instellingen", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy instellingen",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy instellingen worden niet gesynchroniseerd met de Ferdi servers", 381 "settings.service.form.proxy.info": "Proxy instellingen worden niet gesynchroniseerd met de Ferdi servers",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Poort", 384 "settings.service.form.proxy.port": "Poort",
372 "settings.service.form.proxy.restartInfo": "Start Ferdi opnieuw na het aanpassen van proxy instellingen.", 385 "settings.service.form.proxy.restartInfo": "Start Ferdi opnieuw na het aanpassen van proxy instellingen.",
373 "settings.service.form.proxy.user": "Gebruiker (optioneel)", 386 "settings.service.form.proxy.user": "Gebruiker (optioneel)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Service opslaan", 388 "settings.service.form.saveButton": "Service opslaan",
375 "settings.service.form.tabHosted": "Gehost", 389 "settings.service.form.tabHosted": "Gehost",
376 "settings.service.form.tabOnPremise": "Zelf-gehost ⭐️", 390 "settings.service.form.tabOnPremise": "Zelf-gehost ⭐️",
diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/no.json
+++ b/src/i18n/locales/no.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index 130bd36f8..70cbb41f9 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Odśwież", 2 "app.errorHandler.action": "Odśwież",
3 "app.errorHandler.headline": "Coś poszło nie tak.", 3 "app.errorHandler.headline": "Coś poszło nie tak.",
4 "feature.announcements.changelog.headline": "Zmiany we Ferdiie {version}", 4 "feature.announcements.changelog.headline": "Zmiany we Ferdiie {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Aby nie czekać, kup licencję Ferdi Supporter", 6 "feature.delayApp.headline": "Aby nie czekać, kup licencję Ferdi Supporter",
6 "feature.delayApp.text": "Ferdi będzie kontynuował za {seconds} sekund.", 7 "feature.delayApp.text": "Ferdi będzie kontynuował za {seconds} sekund.",
7 "feature.delayApp.trial.action": "Tak, chcę darmową 14-dniową wersję próbną Ferdi Professional", 8 "feature.delayApp.trial.action": "Tak, chcę darmową 14-dniową wersję próbną Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Warunki świadczenia usług",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Informacje debugowania Ferdi", 130 "menu.help.debugInfoCopiedHeadline": "Informacje debugowania Ferdi",
123 "menu.help.learnMore": "Dowiedz się więcej", 131 "menu.help.learnMore": "Dowiedz się więcej",
124 "menu.help.privacy": "Polityka prywatności", 132 "menu.help.privacy": "Polityka prywatności",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Wsparcie", 134 "menu.help.support": "Wsparcie",
126 "menu.help.tos": "Warunki świadczenia usług", 135 "menu.help.tos": "Warunki świadczenia usług",
127 "menu.services": "Usługi", 136 "menu.services": "Usługi",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Język", 284 "settings.app.form.language": "Język",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Zminimalizuj aplikację Ferdi", 286 "settings.app.form.minimizeToSystemTray": "Zminimalizuj aplikację Ferdi",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Zachowaj aplikację Ferdi w tle po zamknięciu okna", 290 "settings.app.form.runInBackground": "Zachowaj aplikację Ferdi w tle po zamknięciu okna",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Wyłącz wyświetlanie zakładek z usługami", 297 "settings.app.form.showDisabledServices": "Wyłącz wyświetlanie zakładek z usługami",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone", 374 "settings.service.form.isMutedInfo": "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone",
364 "settings.service.form.name": "Imię", 375 "settings.service.form.name": "Imię",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Ustawienia Proxy HTTP/HTTPS", 379 "settings.service.form.proxy.headline": "Ustawienia Proxy HTTP/HTTPS",
367 "settings.service.form.proxy.host": "Host Proxy/IP", 380 "settings.service.form.proxy.host": "Host Proxy/IP",
368 "settings.service.form.proxy.info": "Ustawienia proxy nie będą zsynchronizowane z serwerami Ferdia.", 381 "settings.service.form.proxy.info": "Ustawienia proxy nie będą zsynchronizowane z serwerami Ferdia.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Uruchom ponownie Ferdi po zmianie ustawień proxy.", 385 "settings.service.form.proxy.restartInfo": "Uruchom ponownie Ferdi po zmianie ustawień proxy.",
373 "settings.service.form.proxy.user": "Użytkownik (opcjonalnie)", 386 "settings.service.form.proxy.user": "Użytkownik (opcjonalnie)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Zapisz usługę", 388 "settings.service.form.saveButton": "Zapisz usługę",
375 "settings.service.form.tabHosted": "Hostowane", 389 "settings.service.form.tabHosted": "Hostowane",
376 "settings.service.form.tabOnPremise": "Hostowane lokalnie ⭐️", 390 "settings.service.form.tabOnPremise": "Hostowane lokalnie ⭐️",
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index e8081b125..b6e4fbe83 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Actualizar", 2 "app.errorHandler.action": "Actualizar",
3 "app.errorHandler.headline": "Uoops! Algo correu mal", 3 "app.errorHandler.headline": "Uoops! Algo correu mal",
4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", 4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Por favor, adquira uma licença Ferdi para não ter tempo de espera", 6 "feature.delayApp.headline": "Por favor, adquira uma licença Ferdi para não ter tempo de espera",
6 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.", 7 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.",
7 "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional", 8 "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "Mais serviços, sem espera - ideal para uso pessoal.", 26 "feature.planSelection.personal.text": "Mais serviços, sem espera - ideal para uso pessoal.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "Todos os preços são baseados no pagamento anual", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "Todos os preços são baseados no pagamento anual",
27 "feature.planSelection.pro.text": "Serviços ilimitados e recursos profissionais para si - e para a sua equipa.", 28 "feature.planSelection.pro.text": "Serviços ilimitados e recursos profissionais para si - e para a sua equipa.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Termos de serviço",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.", 36 "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.",
29 "feature.quickSwitch.search": "A procurar...", 37 "feature.quickSwitch.search": "A procurar...",
30 "feature.quickSwitch.title": "Troca Rápida", 38 "feature.quickSwitch.title": "Troca Rápida",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi", 130 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi",
123 "menu.help.learnMore": "Saiba Mais ", 131 "menu.help.learnMore": "Saiba Mais ",
124 "menu.help.privacy": "Declaração de Privacidade ", 132 "menu.help.privacy": "Declaração de Privacidade ",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Suporte", 134 "menu.help.support": "Suporte",
126 "menu.help.tos": "Termos de Serviço", 135 "menu.help.tos": "Termos de Serviço",
127 "menu.services": "Serviços", 136 "menu.services": "Serviços",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Activar Ferdi Todos", 278 "settings.app.form.enableTodos": "Activar Ferdi Todos",
270 "settings.app.form.hibernate": "Activar hibernação do serviço", 279 "settings.app.form.hibernate": "Activar hibernação do serviço",
271 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação", 280 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Áreas de trabajo cargadas", 283 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Áreas de trabajo cargadas",
274 "settings.app.form.language": "Idioma", 284 "settings.app.form.language": "Idioma",
275 "settings.app.form.lockPassword": "Senha", 285 "settings.app.form.lockPassword": "Senha",
276 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a área de sistema", 286 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a área de sistema",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Desactivar actualizações", 288 "settings.app.form.noUpdates": "Desactivar actualizações",
278 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações", 289 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações",
279 "settings.app.form.runInBackground": "Manter o Ferdi no fundo quando fechar a janela", 290 "settings.app.form.runInBackground": "Manter o Ferdi no fundo quando fechar a janela",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "Desde", 293 "settings.app.form.scheduledDNDStart": "Desde",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Servidor", 295 "settings.app.form.server": "Servidor",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Mostrar abas de serviços desativados", 297 "settings.app.form.showDisabledServices": "Mostrar abas de serviços desativados",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas",
287 "settings.app.form.showServiceNavigationBar": "Sempre mostrar a barra de navegação do serviço",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Tarefa do Servidor", 300 "settings.app.form.todoServer": "Tarefa do Servidor",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Quando desativado, as notificações sonoras e áudios ficarão em silêncio", 374 "settings.service.form.isMutedInfo": "Quando desativado, as notificações sonoras e áudios ficarão em silêncio",
364 "settings.service.form.name": "Nome", 375 "settings.service.form.name": "Nome",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Configurações de HTTP/HTTPS Proxy", 379 "settings.service.form.proxy.headline": "Configurações de HTTP/HTTPS Proxy",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "As configurações de proxy não serão sincronizadas com os servidores do Ferdi.", 381 "settings.service.form.proxy.info": "As configurações de proxy não serão sincronizadas com os servidores do Ferdi.",
@@ -371,11 +384,12 @@
371 "settings.service.form.proxy.port": "Porta", 384 "settings.service.form.proxy.port": "Porta",
372 "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdi após alterar as configurações de proxy.", 385 "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdi após alterar as configurações de proxy.",
373 "settings.service.form.proxy.user": "Usuário (opcional)", 386 "settings.service.form.proxy.user": "Usuário (opcional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Salvar serviço", 388 "settings.service.form.saveButton": "Salvar serviço",
375 "settings.service.form.tabHosted": "Hospedado", 389 "settings.service.form.tabHosted": "Hospedado",
376 "settings.service.form.tabOnPremise": "Auto-hospedado ⭐️", 390 "settings.service.form.tabOnPremise": "Auto-hospedado ⭐️",
377 "settings.service.form.team": "Equipe", 391 "settings.service.form.team": "Equipe",
378 "settings.service.form.useHostedService": "Use o serviço {nome} hospedado.", 392 "settings.service.form.useHostedService": "Use o serviço {name} hospedado.",
379 "settings.service.form.yourServices": "Seus serviços", 393 "settings.service.form.yourServices": "Seus serviços",
380 "settings.services.deletedInfo": "Serviço excluído", 394 "settings.services.deletedInfo": "Serviço excluído",
381 "settings.services.discoverServices": "Descobrir serviços", 395 "settings.services.discoverServices": "Descobrir serviços",
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index 2a45b7dbb..a00052a58 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Recarregar", 2 "app.errorHandler.action": "Recarregar",
3 "app.errorHandler.headline": "Alguma coisa correu mal", 3 "app.errorHandler.headline": "Alguma coisa correu mal",
4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", 4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}",
5 "feature.debugger.title": "Publicar informações de depuração",
5 "feature.delayApp.headline": "Por favor compre uma licença Ferdi Supporter para saltar a fila de espera", 6 "feature.delayApp.headline": "Por favor compre uma licença Ferdi Supporter para saltar a fila de espera",
6 "feature.delayApp.text": "Ferdi irá continuar em {seconds} segundos.", 7 "feature.delayApp.text": "Ferdi irá continuar em {seconds} segundos.",
7 "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias", 8 "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias",
@@ -25,20 +26,27 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 29 "feature.publishDebugInfo.error": "Ocorreu um erro ao tentar publicar as informações de depuração. Por favor tente novamente mais tarde ou verifique o console para mais informações.",
29 "feature.quickSwitch.search": "Search...", 30 "feature.publishDebugInfo.info": "Publicar suas informações de depuração nos permite encontrar erros no Ferdi. Para publicar essas informações é necessário aceitar os termos privacidade e serviço do Ferdi Debugger",
30 "feature.quickSwitch.title": "QuickSwitch", 31 "feature.publishDebugInfo.privacy": "Política de privacidade",
31 "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", 32 "feature.publishDebugInfo.publish": "Aceitar e publicar",
33 "feature.publishDebugInfo.published": "Seu log de depuração foi publicado e agora está disponível em",
34 "feature.publishDebugInfo.terms": "Termos do Serviço",
35 "feature.publishDebugInfo.title": "Publicar informações de depuração",
36 "feature.quickSwitch.info": "Selecione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.",
37 "feature.quickSwitch.search": "Localizar...",
38 "feature.quickSwitch.title": "Troca Rápida",
39 "feature.serviceLimit.limitReached": "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.",
32 "feature.shareFranz.action.email": "Enviar por e-mail", 40 "feature.shareFranz.action.email": "Enviar por e-mail",
33 "feature.shareFranz.action.facebook": "Compartilahr no Facebook", 41 "feature.shareFranz.action.facebook": "Compartilahr no Facebook",
34 "feature.shareFranz.action.twitter": "Compartilhar no Twitter", 42 "feature.shareFranz.action.twitter": "Compartilhar no Twitter",
35 "feature.shareFranz.headline": "Ferdi is better together!", 43 "feature.shareFranz.headline": "Ferdi é melhor em grupo!",
36 "feature.shareFranz.shareText.email": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com", 44 "feature.shareFranz.shareText.email": "Eu adicionei {count} serviços ao Ferdi! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.getferdi.com",
37 "feature.shareFranz.shareText.twitter": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com /cc @FerdiMessenger", 45 "feature.shareFranz.shareText.twitter": "Eu adicionei uma contagem de serviços para o Ferdi! Baixe gratuitamente o aplicativo para WhatsApp, Messenger, Slack, Skype e outros em www.getferdi.com /cc @FerdiMessenger",
38 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.", 46 "feature.shareFranz.text": "Conte aos seus amigos e colegas o quanto incrível o Ferdi é e nos ajude a espalhar a mensagem.",
39 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!", 47 "feature.todos.premium.info": "As Tarefas do Ferdi estão disponíveis para usuários premium!",
40 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", 48 "feature.todos.premium.rollout": "As outras pessoas terão que esperar um pouquinho mais.",
41 "feature.todos.premium.upgrade": "Upgrade Account", 49 "feature.todos.premium.upgrade": "Atualizar conta",
42 "feature.trialStatusBar.cta": "Upgrade now", 50 "feature.trialStatusBar.cta": "Upgrade now",
43 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", 51 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
44 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
@@ -47,18 +55,18 @@
47 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan", 55 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
48 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", 56 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.",
49 "global.api.unhealthy": "Não foi possível estabelecer ligação aos serviços do Ferdi", 57 "global.api.unhealthy": "Não foi possível estabelecer ligação aos serviços do Ferdi",
50 "global.franzProRequired": "Ferdi Professional Required", 58 "global.franzProRequired": "Ferdi Plano Profissional é necessário",
51 "global.notConnectedToTheInternet": "Não estás ligado à Internet", 59 "global.notConnectedToTheInternet": "Não estás ligado à Internet",
52 "global.spellchecker.useDefault": "Utilizar o Sistema por Omissão ({default})", 60 "global.spellchecker.useDefault": "Utilizar o Sistema por Omissão ({default})",
53 "global.spellchecking.autodetect": "Detectar a lingua automaticamente", 61 "global.spellchecking.autodetect": "Detectar a lingua automaticamente",
54 "global.spellchecking.autodetect.short": "Automático", 62 "global.spellchecking.autodetect.short": "Automático",
55 "global.spellchecking.language": "Linguagem para correção ortográfica", 63 "global.spellchecking.language": "Linguagem para correção ortográfica",
56 "global.upgradeButton.upgradeToPro": "Upgrade to Ferdi Professional", 64 "global.upgradeButton.upgradeToPro": "Atualizar para o Ferdi Profissional",
57 "import.headline": "Importa os teus serviços do Ferdi", 65 "import.headline": "Importa os teus serviços do Ferdi",
58 "import.notSupportedHeadline": "Estes serviços ainda não são suportados pelo Ferdi 5", 66 "import.notSupportedHeadline": "Estes serviços ainda não são suportados pelo Ferdi 5",
59 "import.skip.label": "Eu quero adicionar serviços manualmente", 67 "import.skip.label": "Eu quero adicionar serviços manualmente",
60 "import.submit.label": "Importar serviços", 68 "import.submit.label": "Importar serviços",
61 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 69 "infobar.authRequestFailed": "Ocorreram erros ao tentar autenticar. Por favor, tente desconectar e autenticar novamente se o erro persistir.",
62 "infobar.buttonChangelog": "O que há de novo?", 70 "infobar.buttonChangelog": "O que há de novo?",
63 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações", 71 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações",
64 "infobar.buttonReloadServices": "Recarregar serviços", 72 "infobar.buttonReloadServices": "Recarregar serviços",
@@ -72,12 +80,12 @@
72 "invite.skip.label": "Pretendo fazer isto mais tarde", 80 "invite.skip.label": "Pretendo fazer isto mais tarde",
73 "invite.submit.label": "Enviar convites", 81 "invite.submit.label": "Enviar convites",
74 "invite.successInfo": "Convites enviados com sucesso", 82 "invite.successInfo": "Convites enviados com sucesso",
75 "locked.headline": "Locked", 83 "locked.headline": "Bloqueado",
76 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 84 "locked.info": "Ferdi es bloqueado no momento. Por favor, desbloqueie Ferdi com sua senha para ver suas mensagens.",
77 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Senha inválida",
78 "locked.password.label": "Password", 86 "locked.password.label": "Senha",
79 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Desbloquear",
80 "login.changeServer": "Change server", 88 "login.changeServer": "Alterar servidor",
81 "login.customServerQuestion": "Using a custom Ferdi server?", 89 "login.customServerQuestion": "Using a custom Ferdi server?",
82 "login.customServerSuggestion": "Try importing your Franz account", 90 "login.customServerSuggestion": "Try importing your Franz account",
83 "login.email.label": "Endereço de e-mail", 91 "login.email.label": "Endereço de e-mail",
@@ -85,7 +93,7 @@
85 "login.invalidCredentials": "O email ou a palavra-passe estão incorrectos", 93 "login.invalidCredentials": "O email ou a palavra-passe estão incorrectos",
86 "login.link.password": "Repor a minha palavra-passe", 94 "login.link.password": "Repor a minha palavra-passe",
87 "login.link.signup": "Criar uma conta gratuita", 95 "login.link.signup": "Criar uma conta gratuita",
88 "login.password.label": "Password", 96 "login.password.label": "Senha",
89 "login.serverLogout": "A sua sessão expirou, inicie sessão novamente.", 97 "login.serverLogout": "A sua sessão expirou, inicie sessão novamente.",
90 "login.submit.label": "Iniciar Sessão", 98 "login.submit.label": "Iniciar Sessão",
91 "login.tokenExpired": "A sua sessão expirou, inicie sessão novamente.", 99 "login.tokenExpired": "A sua sessão expirou, inicie sessão novamente.",
@@ -93,7 +101,7 @@
93 "menu.Todoss.openTodosDrawer": "Abrir a gaveta Todos", 101 "menu.Todoss.openTodosDrawer": "Abrir a gaveta Todos",
94 "menu.app.about": "Sobre o Ferdi", 102 "menu.app.about": "Sobre o Ferdi",
95 "menu.app.announcement": "O que há de novo?", 103 "menu.app.announcement": "O que há de novo?",
96 "menu.app.autohideMenuBar": "Auto-hide menu bar", 104 "menu.app.autohideMenuBar": "Auto-ocultar barra de menu",
97 "menu.app.checkForUpdates": "Procurar atualizações", 105 "menu.app.checkForUpdates": "Procurar atualizações",
98 "menu.app.hide": "Ocultar", 106 "menu.app.hide": "Ocultar",
99 "menu.app.hideOthers": "Ocultar Outros", 107 "menu.app.hideOthers": "Ocultar Outros",
@@ -118,33 +126,34 @@
118 "menu.help": "Ajuda", 126 "menu.help": "Ajuda",
119 "menu.help.changelog": "Registo de alterações", 127 "menu.help.changelog": "Registo de alterações",
120 "menu.help.debugInfo": "Copiar a informação Debug", 128 "menu.help.debugInfo": "Copiar a informação Debug",
121 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 129 "menu.help.debugInfoCopiedBody": "As Informações de Depuração foram copiadas para a área de transferência.",
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi",
123 "menu.help.learnMore": "Saber mais", 131 "menu.help.learnMore": "Saber mais",
124 "menu.help.privacy": "Declaração de privacidade", 132 "menu.help.privacy": "Declaração de privacidade",
133 "menu.help.publishDebugInfo": "Publicar Informações de Depuração",
125 "menu.help.support": "Suporte", 134 "menu.help.support": "Suporte",
126 "menu.help.tos": "Termos do Serviço", 135 "menu.help.tos": "Termos do Serviço",
127 "menu.services": "Serviços", 136 "menu.services": "Serviços",
128 "menu.services.activatePreviousService": "Activar o serviço anterior", 137 "menu.services.activatePreviousService": "Activar o serviço anterior",
129 "menu.services.addNewService": "Adicionar Novo Serviço...", 138 "menu.services.addNewService": "Adicionar Novo Serviço...",
130 "menu.services.goHome": "Home", 139 "menu.services.goHome": "Início",
131 "menu.services.setNextServiceActive": "Activar o próximo serviço", 140 "menu.services.setNextServiceActive": "Activar o próximo serviço",
132 "menu.todos": "Todos", 141 "menu.todos": "Tarefas",
133 "menu.todos.enableTodos": "Activar Todos", 142 "menu.todos.enableTodos": "Activar Todos",
134 "menu.view": "Ver", 143 "menu.view": "Ver",
135 "menu.view.back": "Back", 144 "menu.view.back": "Anterior",
136 "menu.view.enterFullScreen": "Ativar Modo de Ecrã Completo", 145 "menu.view.enterFullScreen": "Ativar Modo de Ecrã Completo",
137 "menu.view.exitFullScreen": "Sair do Modo de Ecrã Completo", 146 "menu.view.exitFullScreen": "Sair do Modo de Ecrã Completo",
138 "menu.view.forward": "Forward", 147 "menu.view.forward": "Próximo",
139 "menu.view.lockFerdi": "Lock Ferdi", 148 "menu.view.lockFerdi": "Bloquear Ferdi",
140 "menu.view.openQuickSwitch": "Open Quick Switch", 149 "menu.view.openQuickSwitch": "Abrir Troca Rápida",
141 "menu.view.reloadFranz": "Recarregar Ferdi", 150 "menu.view.reloadFranz": "Recarregar Ferdi",
142 "menu.view.reloadService": "Recarregar serviço", 151 "menu.view.reloadService": "Recarregar serviço",
143 "menu.view.resetZoom": "Tamanho Real", 152 "menu.view.resetZoom": "Tamanho Real",
144 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento", 153 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento",
145 "menu.view.toggleFullScreen": "Ativar/Desativar Ecrã Completo", 154 "menu.view.toggleFullScreen": "Ativar/Desativar Ecrã Completo",
146 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços", 155 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços",
147 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", 156 "menu.view.toggleTodosDevTools": "Ativar Ferramentas de Desenvolvedor das Tarefas",
148 "menu.view.zoomIn": "Aumentar", 157 "menu.view.zoomIn": "Aumentar",
149 "menu.view.zoomOut": "Reduzir", 158 "menu.view.zoomOut": "Reduzir",
150 "menu.window": "Janela", 159 "menu.window": "Janela",
@@ -163,29 +172,29 @@
163 "password.submit.label": "Submeter", 172 "password.submit.label": "Submeter",
164 "password.successInfo": "Por favor verifique o seu endereço de e-mail", 173 "password.successInfo": "Por favor verifique o seu endereço de e-mail",
165 "premiumFeature.button.upgradeAccount": "Atualiza a tua conta", 174 "premiumFeature.button.upgradeAccount": "Atualiza a tua conta",
166 "pricing.features.accountSync": "Account Synchronisation", 175 "pricing.features.accountSync": "Sincronização Automática",
167 "pricing.features.adFree": "Sem publicidade para sempre", 176 "pricing.features.adFree": "Sem publicidade para sempre",
168 "pricing.features.appDelays": "No Waiting Screens", 177 "pricing.features.appDelays": "Sem Telas de Espera",
169 "pricing.features.customWebsites": "Add Custom Websites", 178 "pricing.features.customWebsites": "Adicionar Websites Personalizados",
170 "pricing.features.desktopNotifications": "Desktop Notifications", 179 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho",
171 "pricing.features.onPremise": "On-premise & other Hosted Services", 180 "pricing.features.onPremise": "On-premise & other Hosted Services",
172 "pricing.features.recipes": "Choose from more than 70 Services", 181 "pricing.features.recipes": "Escolha entre mais de 70 serviços",
173 "pricing.features.serviceProxies": "Service Proxies", 182 "pricing.features.serviceProxies": "Serviços de proxy",
174 "pricing.features.spellchecker": "Spellchecker support", 183 "pricing.features.spellchecker": "Suporte ao corretor ortográfico",
175 "pricing.features.teamManagement": "Team Management", 184 "pricing.features.teamManagement": "Gestão de Equipes",
176 "pricing.features.thirdPartyServices": "Install 3rd party services", 185 "pricing.features.thirdPartyServices": "Instalar serviços de terceiros",
177 "pricing.features.unlimitedServices": "Add unlimited services", 186 "pricing.features.unlimitedServices": "Instalar serviços ilimitados",
178 "pricing.features.upToSixServices": "Add up to 6 services", 187 "pricing.features.upToSixServices": "Adicionar até 6 serviços",
179 "pricing.features.upToThreeServices": "Add up to 3 services", 188 "pricing.features.upToThreeServices": "Adicionar até 3 serviços",
180 "pricing.features.workspaces": "Espaços de trabalho", 189 "pricing.features.workspaces": "Espaços de trabalho",
181 "pricing.plan.free": "Ferdi Free", 190 "pricing.plan.free": "Ferdi Gratuito",
182 "pricing.plan.legacy": "Ferdi Premium", 191 "pricing.plan.legacy": "Ferdi Premium",
183 "pricing.plan.personal": "Ferdi Personal", 192 "pricing.plan.personal": "Ferdi Pessoal",
184 "pricing.plan.personal-monthly": "Ferdi Personal Monthly", 193 "pricing.plan.personal-monthly": "Ferdi Pessoal Mensal",
185 "pricing.plan.personal-yearly": "Ferdi Personal Yearly", 194 "pricing.plan.personal-yearly": "Ferdi Pessoal Anual",
186 "pricing.plan.pro": "Ferdi Professional", 195 "pricing.plan.pro": "Ferdi Profissional",
187 "pricing.plan.pro-monthly": "Ferdi Professional Monthly", 196 "pricing.plan.pro-monthly": "Ferdi Profissional Mensal",
188 "pricing.plan.pro-yearly": "Ferdi Professional Yearly", 197 "pricing.plan.pro-yearly": "Ferdi Profissional Anual",
189 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional", 198 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional",
190 "pricing.trial.cta.skip": "Continue to Ferdi", 199 "pricing.trial.cta.skip": "Continue to Ferdi",
191 "pricing.trial.cta.start": "Start using Ferdi", 200 "pricing.trial.cta.start": "Start using Ferdi",
@@ -210,22 +219,22 @@
210 "service.errorHandler.headline": "Oh não!", 219 "service.errorHandler.headline": "Oh não!",
211 "service.errorHandler.message": "Erro", 220 "service.errorHandler.message": "Erro",
212 "service.errorHandler.text": "{name} falhou o carregamento", 221 "service.errorHandler.text": "{name} falhou o carregamento",
213 "service.restrictedHandler.action": "Upgrade Account", 222 "service.restrictedHandler.action": "Atualizar conta",
214 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required", 223 "service.restrictedHandler.customUrl.headline": "É necessário um plano Ferdi Profissional",
215 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", 224 "service.restrictedHandler.customUrl.text": "Por favor adquira um plano Ferdi Profesional para utilizar url's personalizadas e serviços próprios.",
216 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", 225 "service.restrictedHandler.serviceLimit.headline": "Você atingiu seu limite de serviço.",
217 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", 226 "service.restrictedHandler.serviceLimit.text": "Por favor, atualize sua conta para usar mais do que {count} serviços.",
218 "service.webviewLoader.loading": "Loading {service}", 227 "service.webviewLoader.loading": "Carregando {service}",
219 "services.getStarted": "Vamos começar", 228 "services.getStarted": "Vamos começar",
220 "services.login": "Please login to use Ferdi.", 229 "services.login": "Por favor, inicie sua sessão para usar Ferdi.",
221 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", 230 "services.serverInfo": "Opcionalmente, você pode mudar seu servidor Ferdi clicando no ícone de engrenagem localizada no canto inferior esquerdo.",
222 "services.serverless": "Use Ferdi without an Account", 231 "services.serverless": "Use Ferdi sem uma conta",
223 "services.welcome": "Bem-vindo ao Ferdi", 232 "services.welcome": "Bem-vindo ao Ferdi",
224 "settings.account.account.editButton": "Editar conta", 233 "settings.account.account.editButton": "Editar conta",
225 "settings.account.accountType.basic": "Conta Básica", 234 "settings.account.accountType.basic": "Conta Básica",
226 "settings.account.accountType.premium": "Conta Premium", 235 "settings.account.accountType.premium": "Conta Premium",
227 "settings.account.accountUnavailable": "Account is unavailable", 236 "settings.account.accountUnavailable": "Conta indisponível",
228 "settings.account.accountUnavailableInfo": "You are using Ferdi without an account. If you want to use Ferdi with an account and keep your services synchronized across installations, please select a server in the Settings tab then login.", 237 "settings.account.accountUnavailableInfo": "Você está utilizando Ferdis sem uma conta. Se você deseja usar o Ferdi com uma conta e manter seus serviços atualizados, Por favor selecione um servidor em Configurações seção Servidor.",
229 "settings.account.buttonSave": "Atualizar o perfil", 238 "settings.account.buttonSave": "Atualizar o perfil",
230 "settings.account.deleteAccount": "Apagar conta", 239 "settings.account.deleteAccount": "Apagar conta",
231 "settings.account.deleteEmailSent": "Recebeu um email com um endereço para confirmar a remoção da sua conta. A sua conta e dados não poderão ser restaurados!", 240 "settings.account.deleteEmailSent": "Recebeu um email com um endereço para confirmar a remoção da sua conta. A sua conta e dados não poderão ser restaurados!",
@@ -238,7 +247,7 @@
238 "settings.account.headlineProfile": "Atualizar o perfil", 247 "settings.account.headlineProfile": "Atualizar o perfil",
239 "settings.account.headlineSubscription": "A sua subscrição", 248 "settings.account.headlineSubscription": "A sua subscrição",
240 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", 249 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial",
241 "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience", 250 "settings.account.headlineUpgradeAccount": "Dê um upgrade na sua conta e tenha uma completa experiência do Ferdi",
242 "settings.account.invoiceDownload": "Transferir", 251 "settings.account.invoiceDownload": "Transferir",
243 "settings.account.manageSubscription.label": "Gerir as minhas subscrições", 252 "settings.account.manageSubscription.label": "Gerir as minhas subscrições",
244 "settings.account.successInfo": "As suas alterações foram efetuadas com sucesso", 253 "settings.account.successInfo": "As suas alterações foram efetuadas com sucesso",
@@ -247,69 +256,71 @@
247 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.", 256 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.",
248 "settings.account.tryReloadServices": "Tentar novamente", 257 "settings.account.tryReloadServices": "Tentar novamente",
249 "settings.account.tryReloadUserInfoRequest": "Tentar novamente", 258 "settings.account.tryReloadUserInfoRequest": "Tentar novamente",
250 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional", 259 "settings.account.upgradeToPro.label": "Atualizar para o Ferdi Profissional",
251 "settings.account.userInfoRequestFailed": "Não é possível carregar a informação do utilizador", 260 "settings.account.userInfoRequestFailed": "Não é possível carregar a informação do utilizador",
252 "settings.account.yourLicense": "Your Ferdi License", 261 "settings.account.yourLicense": "Sua lincença Ferdi",
253 "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)", 262 "settings.app.accentColorInfo": "Informe sua cor de destaque em um formato compatível com CSS. (Padrão: #7367f0)",
254 "settings.app.buttonClearAllCache": "Limpar cache", 263 "settings.app.buttonClearAllCache": "Limpar cache",
255 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações", 264 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações",
256 "settings.app.buttonSearchForUpdate": "Procurar atualizações", 265 "settings.app.buttonSearchForUpdate": "Procurar atualizações",
257 "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.", 266 "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.",
258 "settings.app.currentVersion": "Versão atual", 267 "settings.app.currentVersion": "Versão atual",
259 "settings.app.form.accentColor": "Accent color", 268 "settings.app.form.accentColor": "Cor de destaque",
260 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 269 "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com as configurações do Mac",
261 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", 270 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano",
262 "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador", 271 "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador",
263 "settings.app.form.beta": "Incluir versões instáveis (beta)", 272 "settings.app.form.beta": "Incluir versões instáveis (beta)",
264 "settings.app.form.darkMode": "Enable dark mode", 273 "settings.app.form.darkMode": "Habilitar modo noturno",
265 "settings.app.form.enableGPUAcceleration": "Activar Aceleração de GPU", 274 "settings.app.form.enableGPUAcceleration": "Activar Aceleração de GPU",
266 "settings.app.form.enableLock": "Enable Password Lock", 275 "settings.app.form.enableLock": "Habilitar bloqueio por senha",
267 "settings.app.form.enableSpellchecking": "Ativar verificação ortográfica", 276 "settings.app.form.enableSpellchecking": "Ativar verificação ortográfica",
268 "settings.app.form.enableSystemTray": "Mostrar o Ferdi na barra do sistema", 277 "settings.app.form.enableSystemTray": "Mostrar o Ferdi na barra do sistema",
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Ativar Tarefas",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Ativar hibernação de serviço",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 281 "settings.app.form.iconSize": "Tamanho do ícone",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 282 "settings.app.form.inactivityLock": "Bloquear após",
283 "settings.app.form.keepAllWorkspacesLoaded": "Mater todos os workspaces carregados",
274 "settings.app.form.language": "Idioma", 284 "settings.app.form.language": "Idioma",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Senha",
276 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema", 286 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema",
277 "settings.app.form.noUpdates": "Disable updates", 287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 288 "settings.app.form.noUpdates": "Desativar atualizações",
289 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações",
279 "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela", 290 "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela",
280 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 291 "settings.app.form.scheduledDNDEnabled": "Ativar modo Não-Perturbar agendado",
281 "settings.app.form.scheduledDNDEnd": "To", 292 "settings.app.form.scheduledDNDEnd": "Até",
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "Desde",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Enviar dados de telemetria",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Servidor",
296 "settings.app.form.serviceRibbonWidth": "Largura da barra lateral",
285 "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados", 297 "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar", 299 "settings.app.form.startMinimized": "Iniciar minimizado na bandeja",
288 "settings.app.form.startMinimized": "Start minimized in tray", 300 "settings.app.form.todoServer": "Servidor das Tarefas",
289 "settings.app.form.todoServer": "Todo Server", 301 "settings.app.form.universalDarkMode": "Habilitar modo noturno universal",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
291 "settings.app.headline": "Definições", 302 "settings.app.headline": "Definições",
292 "settings.app.headlineAdvanced": "Avançado", 303 "settings.app.headlineAdvanced": "Avançado",
293 "settings.app.headlineAppearance": "Aparência", 304 "settings.app.headlineAppearance": "Aparência",
294 "settings.app.headlineGeneral": "Geral", 305 "settings.app.headlineGeneral": "Geral",
295 "settings.app.headlineLanguage": "Idioma", 306 "settings.app.headlineLanguage": "Idioma",
296 "settings.app.headlineUpdates": "Atualizações", 307 "settings.app.headlineUpdates": "Atualizações",
297 "settings.app.hibernateInfo": "By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", 308 "settings.app.hibernateInfo": "Por padrão, Ferdi irá manter todos seus serviços abertos e carregados, assim eles estarão disponíveis quando você for utilizar. O Serviço de Hibernação irá descarregar seus serviços após determinado tempo. Isso é útil para evitar consumo excessivo de memória RAM evitando também que seu computador fique lento.",
298 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 309 "settings.app.inactivityLockInfo": "Minutos de inatividade, após este tempo Ferdi irá automaticamente bloquear. Utilize 0 para desabilitar",
299 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 310 "settings.app.languageDisclaimer": "As traduções oficiais são em inglês e alemão. As demais traduções são baseadas na ajuda da comunidade.",
300 "settings.app.lockInfo": "Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", 311 "settings.app.lockInfo": "O bloqueio por senha permite a você proteger suas mensagens.\\nUsando o bloqueio por senha, será necessário informar sua senha toda veze que o Ferdi for iniciado ou você solicite o bloqueio.",
301 "settings.app.lockedPassword": "Password", 312 "settings.app.lockedPassword": "Senha",
302 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 313 "settings.app.lockedPasswordInfo": "Tenha certeza que a senha definida será lembrada.\\nCaso você esqueça a senha, será necessário reinstalar o Ferdi.",
303 "settings.app.restartRequired": "Alterações requerem reinício", 314 "settings.app.restartRequired": "Alterações requerem reinício",
304 "settings.app.scheduledDNDInfo": "Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", 315 "settings.app.scheduledDNDInfo": "O modo Não perturbe agendado permite definir um período de tempo em que você não deseja receber notificações do Ferdi.",
305 "settings.app.scheduledDNDTimeInfo": "Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", 316 "settings.app.scheduledDNDTimeInfo": "Horários no formato de 24 horas. O horário de término pode ser anterior ao horário de início (por exemplo, início às 17:00 e término às 09:00) para ativar a opção Não perturbe da noite para o dia.",
306 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 317 "settings.app.sentryInfo": "O envio de dados de telemetria nos permite encontrar erros no Ferdi. Não enviaremos nenhuma informação pessoal como seus dados de mensagem! Alterar esta opção requer que você reinicie o Ferdi.",
307 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", 318 "settings.app.serverInfo": "Aconselhamos que você efetue logout após alterar o servidor, pois suas configurações podem não serem salvas.",
308 "settings.app.serverMoneyInfo": "You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.", 319 "settings.app.serverMoneyInfo": "Você está usando o Franz Server oficial para Ferd.\\nSabemos que o Ferdi permite que você use todos os seus recursos de graça, mas você ainda está usando os recursos de servidor de Franz, pelos quais o criador de Franz precisa ser pago.\\nPor favor consider [Link 1]adquirir uma licença Franz[/Link] ou [Link 2]utilize hospede o seu próprio servidor ferdi-server[/Link] (se você tiver conhecimento e recursos). \\nUsando o Ferdi, você continua podendo utilizar os serviços da loja Franz, além dos recursos de servidor e desenvolvimento.",
309 "settings.app.subheadlineCache": "Cache", 320 "settings.app.subheadlineCache": "Memória Cache",
310 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 321 "settings.app.todoServerInfo": "Servidor utilizado para as Tarefas. (Padrão: https://app.franztodos.com)",
311 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.", 322 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.",
312 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 323 "settings.app.universalDarkModeInfo": "O Modo Noturno Universal tenta gerar dinamicamente estilos para serviços que, de outra forma, não são suportados no momento.",
313 "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...", 324 "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...",
314 "settings.app.updateStatusSearching": "A procurar atualizações", 325 "settings.app.updateStatusSearching": "A procurar atualizações",
315 "settings.app.updateStatusUpToDate": "Está a usar a versão mais recente do Ferdi", 326 "settings.app.updateStatusUpToDate": "Está a usar a versão mais recente do Ferdi",
@@ -318,18 +329,18 @@
318 "settings.navigation.availableServices": "Serviços disponíveis", 329 "settings.navigation.availableServices": "Serviços disponíveis",
319 "settings.navigation.logout": "Terminar sessão", 330 "settings.navigation.logout": "Terminar sessão",
320 "settings.navigation.settings": "Definições", 331 "settings.navigation.settings": "Definições",
321 "settings.navigation.supportFerdi": "Support Ferdi", 332 "settings.navigation.supportFerdi": "Apoie o Ferdi",
322 "settings.navigation.team": "Gerir a equipa", 333 "settings.navigation.team": "Gerir a equipa",
323 "settings.navigation.yourServices": "Os seus serviços", 334 "settings.navigation.yourServices": "Os seus serviços",
324 "settings.navigation.yourWorkspaces": "Os teus Espaços de trabalho", 335 "settings.navigation.yourWorkspaces": "Os teus Espaços de trabalho",
325 "settings.recipes.all": "Todos os serviços", 336 "settings.recipes.all": "Todos os serviços",
326 "settings.recipes.custom": "Custom Services", 337 "settings.recipes.custom": "Servicios Personalizados",
327 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", 338 "settings.recipes.customService.headline.communityRecipes": "Serviços da comunidade",
328 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 339 "settings.recipes.customService.headline.customRecipes": "Serviços personalizados",
329 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 340 "settings.recipes.customService.headline.devRecipes": "Seus Serviços em Desenvolvimento",
330 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 341 "settings.recipes.customService.intro": "Para adicionar um serviço personalizado, copie o serviço para:",
331 "settings.recipes.customService.openDevDocs": "Developer Documentation", 342 "settings.recipes.customService.openDevDocs": "Documentação do Desenvolvedor",
332 "settings.recipes.customService.openFolder": "Open folder", 343 "settings.recipes.customService.openFolder": "Abrir pasta",
333 "settings.recipes.headline": "Serviços disponíveis", 344 "settings.recipes.headline": "Serviços disponíveis",
334 "settings.recipes.missingService": "Falta um serviço?", 345 "settings.recipes.missingService": "Falta um serviço?",
335 "settings.recipes.mostPopular": "Os mais populares", 346 "settings.recipes.mostPopular": "Os mais populares",
@@ -344,7 +355,7 @@
344 "settings.service.form.customUrl": "Servidor personalizado", 355 "settings.service.form.customUrl": "Servidor personalizado",
345 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços com domínio próprio, é necessário uma Conta Premium no Ferdi.", 356 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços com domínio próprio, é necessário uma Conta Premium no Ferdi.",
346 "settings.service.form.customUrlUpgradeAccount": "Atualizar a conta", 357 "settings.service.form.customUrlUpgradeAccount": "Atualizar a conta",
347 "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor {nome}.", 358 "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor {name}.",
348 "settings.service.form.deleteButton": "Apagar serviço", 359 "settings.service.form.deleteButton": "Apagar serviço",
349 "settings.service.form.editServiceHeadline": "Editar {name}", 360 "settings.service.form.editServiceHeadline": "Editar {name}",
350 "settings.service.form.enableAudio": "Ativar áudio", 361 "settings.service.form.enableAudio": "Ativar áudio",
@@ -362,7 +373,9 @@
362 "settings.service.form.indirectMessages": "Mostrar o emblema da mensagem para todas as novas mensagens", 373 "settings.service.form.indirectMessages": "Mostrar o emblema da mensagem para todas as novas mensagens",
363 "settings.service.form.isMutedInfo": "Quando desativado, todos sons e reproduções de áudio serão silenciados", 374 "settings.service.form.isMutedInfo": "Quando desativado, todos sons e reproduções de áudio serão silenciados",
364 "settings.service.form.name": "Nome", 375 "settings.service.form.name": "Nome",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Abrir darkmode.css",
377 "settings.service.form.openUserCss": "Abrir user.css",
378 "settings.service.form.openUserJs": "Abrir user.js",
366 "settings.service.form.proxy.headline": "Definições HTTP/HTTPS Proxy", 379 "settings.service.form.proxy.headline": "Definições HTTP/HTTPS Proxy",
367 "settings.service.form.proxy.host": "Host/IP proxy", 380 "settings.service.form.proxy.host": "Host/IP proxy",
368 "settings.service.form.proxy.info": "As definições do proxy não serão guardadas nos servidores do Ferdi.", 381 "settings.service.form.proxy.info": "As definições do proxy não serão guardadas nos servidores do Ferdi.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Porta", 384 "settings.service.form.proxy.port": "Porta",
372 "settings.service.form.proxy.restartInfo": "Reinicie, por favor, após atualizar as definições do Ferdi", 385 "settings.service.form.proxy.restartInfo": "Reinicie, por favor, após atualizar as definições do Ferdi",
373 "settings.service.form.proxy.user": "Utilizador (opcional)", 386 "settings.service.form.proxy.user": "Utilizador (opcional)",
387 "settings.service.form.recipeFileInfo": "Seus arquivos de usuário serão inseridos na página web para que você possa personalizar os serviços da forma que preferir. Os arquivos de usuário são armazenados localmente e não são transferidos para outros computadores utilizando a mesma conta.",
374 "settings.service.form.saveButton": "Guardar serviço", 388 "settings.service.form.saveButton": "Guardar serviço",
375 "settings.service.form.tabHosted": "Com domínio", 389 "settings.service.form.tabHosted": "Com domínio",
376 "settings.service.form.tabOnPremise": "Com domínio próprio ⭐️", 390 "settings.service.form.tabOnPremise": "Com domínio próprio ⭐️",
@@ -386,25 +400,25 @@
386 "settings.services.tooltip.isMuted": "Todos os sons estão silenciados", 400 "settings.services.tooltip.isMuted": "Todos os sons estão silenciados",
387 "settings.services.tooltip.notificationsDisabled": "As notificações estão desativadas", 401 "settings.services.tooltip.notificationsDisabled": "As notificações estão desativadas",
388 "settings.services.updatedInfo": "As suas alterações foram efetuadas com sucesso", 402 "settings.services.updatedInfo": "As suas alterações foram efetuadas com sucesso",
389 "settings.supportFerdi.github": "Star on GitHub", 403 "settings.supportFerdi.github": "Siga on GitHub",
390 "settings.supportFerdi.headline": "Support Ferdi", 404 "settings.supportFerdi.headline": "Apoie o Ferdi",
391 "settings.supportFerdi.openCollective": "Support our Open Collective", 405 "settings.supportFerdi.openCollective": "Apoie o desenvolvimento no Open Collective",
392 "settings.supportFerdi.share": "Tell your Friends", 406 "settings.supportFerdi.share": "Compartilhe com seus amigos",
393 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 407 "settings.supportFerdi.title": "Gostou do Ferdi? Compartilhe!",
394 "settings.team.contentHeadline": "Ferdi para equipas", 408 "settings.team.contentHeadline": "Ferdi para equipas",
395 "settings.team.copy": "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 409 "settings.team.copy": "\"Ferdi para Equipes\" possui a opção de convidar ajudantes para a sua equipe através de mensagens por e-mail e gerenciar as inscrições deles em suas preferências de conta. Não perca tempo configurando as inscrições para membro da equipe individualmente, esqueça as múltiplas faturas e tempos de pagamento. Uma regra universal para todos os membros da equipe.",
396 "settings.team.headline": "Equipa", 410 "settings.team.headline": "Equipa",
397 "settings.team.intro": "You and your team use Ferdi? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 411 "settings.team.intro": "Você e sua equipe usam Ferdi? Você pode agora administrar as inscrições pagas de todos os seus colegas, amigos e membros da família que você quiser, tudo isso em uma única conta.",
398 "settings.team.manageAction": "Gerir a tua Equipa em getferdi.com", 412 "settings.team.manageAction": "Gerir a tua Equipa em getferdi.com",
399 "settings.team.teamsUnavailable": "Teams are unavailable", 413 "settings.team.teamsUnavailable": "A funcionalidade de Equipes está indisponível",
400 "settings.team.teamsUnavailableInfo": "Teams are currently only available when using the Franz Server and after paying for Franz Professional. Please change your server to https://api.franzinfra.com to use teams.", 414 "settings.team.teamsUnavailableInfo": "Atualmente a funcionalidade de Equipes está disponível apenas utilizando o servidor Franz após adquirir um plano Franz Profissional. Por favor altere o seridor par https://api.franzinfra.com para utilizar esta funcionalidade.",
401 "settings.team.upgradeAction": "Actualiza a tua conta", 415 "settings.team.upgradeAction": "Atualizar sua conta",
402 "settings.user.form.accountType.company": "Empresa", 416 "settings.user.form.accountType.company": "Empresa",
403 "settings.user.form.accountType.individual": "Indivíduo", 417 "settings.user.form.accountType.individual": "Indivíduo",
404 "settings.user.form.accountType.label": "Tipo de conta", 418 "settings.user.form.accountType.label": "Tipo de conta",
405 "settings.user.form.accountType.non-profit": "Sem fins lucrativos", 419 "settings.user.form.accountType.non-profit": "Sem fins lucrativos",
406 "settings.user.form.currentPassword": "Palavra-passe atual", 420 "settings.user.form.currentPassword": "Palavra-passe atual",
407 "settings.user.form.email": "Email", 421 "settings.user.form.email": "E-mail",
408 "settings.user.form.firstname": "Primeiro Nome", 422 "settings.user.form.firstname": "Primeiro Nome",
409 "settings.user.form.lastname": "Último Nome", 423 "settings.user.form.lastname": "Último Nome",
410 "settings.user.form.newPassword": "Nova palavra-passe", 424 "settings.user.form.newPassword": "Nova palavra-passe",
@@ -412,10 +426,10 @@
412 "settings.workspace.add.form.submitButton": "Criar um Espaço de trabalho", 426 "settings.workspace.add.form.submitButton": "Criar um Espaço de trabalho",
413 "settings.workspace.form.buttonDelete": "Apagar um Espaço de trabalho", 427 "settings.workspace.form.buttonDelete": "Apagar um Espaço de trabalho",
414 "settings.workspace.form.buttonSave": "Gravar um Espaço de trabalho", 428 "settings.workspace.form.buttonSave": "Gravar um Espaço de trabalho",
415 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 429 "settings.workspace.form.keepLoaded": "Maner todas a áreas de trabalhos carregadas*",
416 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 430 "settings.workspace.form.keepLoadedInfo": "*Esta opção será substituída pela configuração global \"Manter todas a áreas de trabalho carregada\".",
417 "settings.workspace.form.name": "Nome", 431 "settings.workspace.form.name": "Nome",
418 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", 432 "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços neste Workspace",
419 "settings.workspace.form.yourWorkspaces": "Os teus Espaços de trabalho", 433 "settings.workspace.form.yourWorkspaces": "Os teus Espaços de trabalho",
420 "settings.workspaces.deletedInfo": "O Espaço de trabalho foi apagado", 434 "settings.workspaces.deletedInfo": "O Espaço de trabalho foi apagado",
421 "settings.workspaces.headline": "Os teus Espaços de trabalho", 435 "settings.workspaces.headline": "Os teus Espaços de trabalho",
@@ -423,14 +437,14 @@
423 "settings.workspaces.tryReloadWorkspaces": "Tentar novamente", 437 "settings.workspaces.tryReloadWorkspaces": "Tentar novamente",
424 "settings.workspaces.updatedInfo": "As suas alterações foram efetuadas com sucesso", 438 "settings.workspaces.updatedInfo": "As suas alterações foram efetuadas com sucesso",
425 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo os Espaço de trabalho Ferdi", 439 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo os Espaço de trabalho Ferdi",
426 "settings.workspaces.workspaceFeatureInfo": "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 440 "settings.workspaces.workspaceFeatureInfo": "As áreas de trabalho do Ferdi permite você focar no que realmente é importante agora. Configure diferentes conjuntos de serviços e alterne entre eles facilmente em qualquer momento. Você decide quais serviços você precisa e onde deseja colocá-los, então nós podemos te ajudar a aumentar a produtividade de suas tarefas. Ou facilmente deletar os aplicativos que você nunca irá precisar.",
427 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", 441 "settings.workspaces.workspacesRequestFailed": "o foi possível carregar suas áreas de trabalho",
428 "sidebar.addNewService": "Adicionar um novo serviço", 442 "sidebar.addNewService": "Adicionar um novo serviço",
429 "sidebar.closeTodosDrawer": "Close Ferdi Todos", 443 "sidebar.closeTodosDrawer": "Fechar as Tarefas",
430 "sidebar.closeWorkspaceDrawer": "Fechar a janela do Espaço de trabalho", 444 "sidebar.closeWorkspaceDrawer": "Fechar a janela do Espaço de trabalho",
431 "sidebar.lockFerdi": "Lock Ferdi", 445 "sidebar.lockFerdi": "Bloquear Ferdi",
432 "sidebar.muteApp": "Desativar notificações e áudio", 446 "sidebar.muteApp": "Desativar notificações e áudio",
433 "sidebar.openTodosDrawer": "Open Ferdi Todos", 447 "sidebar.openTodosDrawer": "Abrir as Tarefas",
434 "sidebar.openWorkspaceDrawer": "Abrir a janela do Espaço de trabalho", 448 "sidebar.openWorkspaceDrawer": "Abrir a janela do Espaço de trabalho",
435 "sidebar.settings": "Definições", 449 "sidebar.settings": "Definições",
436 "sidebar.unmuteApp": "Ativar notificações e áudio", 450 "sidebar.unmuteApp": "Ativar notificações e áudio",
@@ -443,19 +457,19 @@
443 "signup.legal.privacy": "Declaração de privacidade", 457 "signup.legal.privacy": "Declaração de privacidade",
444 "signup.legal.terms": "Termos do Serviço", 458 "signup.legal.terms": "Termos do Serviço",
445 "signup.link.login": "Já tem uma conta, iniciar sessão?", 459 "signup.link.login": "Já tem uma conta, iniciar sessão?",
446 "signup.password.label": "Password", 460 "signup.password.label": "Senha",
447 "signup.submit.label": "Criar uma conta", 461 "signup.submit.label": "Criar uma conta",
448 "subscription.bestValue": "Best value", 462 "subscription.bestValue": "Best value",
449 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 463 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
450 "subscription.cta.allOptions": "See all options", 464 "subscription.cta.allOptions": "Ver todas as opções",
451 "subscription.cta.choosePlan": "Choose your plan", 465 "subscription.cta.choosePlan": "Escolha seu plano",
452 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", 466 "subscription.includedProFeatures": "O Ferdi Profissional incluí:",
453 "subscription.interval.per": "per {interval}", 467 "subscription.interval.per": "por {interval}",
454 "subscription.interval.perMonth": "per month", 468 "subscription.interval.perMonth": "por mês",
455 "subscription.interval.perMonthPerUser": "per month & user", 469 "subscription.interval.perMonthPerUser": "por mês e por utilizador",
456 "subscription.planItem.upgradeAccount": "Upgrade Account", 470 "subscription.planItem.upgradeAccount": "Atualizar conta",
457 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", 471 "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:",
458 "subscription.teaser.intro": "Ferdi 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", 472 "subscription.teaser.intro": "O Ferdi 5 vem com uma variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas inclusas. Confira os nossos novos planos e encontre aquele que melhor serve para você!",
459 "subscriptionPopup.buttonCancel": "Cancelar", 473 "subscriptionPopup.buttonCancel": "Cancelar",
460 "subscriptionPopup.buttonDone": "Concluído", 474 "subscriptionPopup.buttonDone": "Concluído",
461 "tabs.item.deleteService": "Apagar serviço", 475 "tabs.item.deleteService": "Apagar serviço",
@@ -469,25 +483,25 @@
469 "tabs.item.reload": "Recarregar", 483 "tabs.item.reload": "Recarregar",
470 "validation.email": "{field} não é válido", 484 "validation.email": "{field} não é válido",
471 "validation.minLength": "{field} deveria ter pelo menos {length} caracteres", 485 "validation.minLength": "{field} deveria ter pelo menos {length} caracteres",
472 "validation.oneRequired": "At least one is required", 486 "validation.oneRequired": "É necessário pelo menos um",
473 "validation.required": "{field} é obrigatório", 487 "validation.required": "{field} é obrigatório",
474 "validation.url": "{field} não é uma hiperligação válida", 488 "validation.url": "{field} não é uma hiperligação válida",
475 "webControls.back": "Back", 489 "webControls.back": "Anterior",
476 "webControls.forward": "Forward", 490 "webControls.forward": "Próximo",
477 "webControls.goHome": "Home", 491 "webControls.goHome": "Início",
478 "webControls.openInBrowser": "Open in Browser", 492 "webControls.openInBrowser": "Abrir no navegador",
479 "webControls.reload": "Recarregar", 493 "webControls.reload": "Recarregar",
480 "welcome.loginButton": "Iniciar sessão", 494 "welcome.loginButton": "Iniciar sessão",
481 "welcome.signupButton": "Criar uma conta gratuita", 495 "welcome.signupButton": "Criar uma conta gratuita",
482 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 496 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar uma nova área de trabalho",
483 "workspaceDrawer.allServices": "Todos os serviços", 497 "workspaceDrawer.allServices": "Todos os serviços",
484 "workspaceDrawer.headline": "Espaços de trabalho", 498 "workspaceDrawer.headline": "Espaços de trabalho",
485 "workspaceDrawer.item.contextMenuEdit": "edit", 499 "workspaceDrawer.item.contextMenuEdit": "editar",
486 "workspaceDrawer.item.noServicesAddedYet": "No services added yet", 500 "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço foi adicionado",
487 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", 501 "workspaceDrawer.premiumCtaButtonLabel": "Crie sua primeira área de trabalho",
488 "workspaceDrawer.proFeatureBadge": "Premium feature", 502 "workspaceDrawer.proFeatureBadge": "Vantagem paga oferecida aos assinantes",
489 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", 503 "workspaceDrawer.reactivatePremiumAccountLabel": "Reative sua conta paga",
490 "workspaceDrawer.workspaceFeatureInfo": "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.</p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.</p>", 504 "workspaceDrawer.workspaceFeatureInfo": "<p>As áreas de trabalho do Ferdi te ajuda a focar no que realmente é importante agora. Configure diferente cenários para serviços e mude entre eles facilmente em qualquer momento. </p><p>Você decide quais serviços precisa e onde deseja posicioná-los, e então nós iremos te ajudar em aumentar a sua produtividade. Você pode desligar os serviços que não são úteis para você.</p>",
491 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", 505 "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho",
492 "workspaces.switchingIndicator.switchingTo": "Switching to" 506 "workspaces.switchingIndicator.switchingTo": "Trocando para"
493} 507}
diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/ro.json
+++ b/src/i18n/locales/ro.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 41964399b..58228c1ab 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Перезагрузить", 2 "app.errorHandler.action": "Перезагрузить",
3 "app.errorHandler.headline": "Что-то пошло не так", 3 "app.errorHandler.headline": "Что-то пошло не так",
4 "feature.announcements.changelog.headline": "Изменения в версии Ferdi {version}", 4 "feature.announcements.changelog.headline": "Изменения в версии Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Пожалуйста приобретите лицензию Ferdi Supporter чтобы убрать ожидание", 6 "feature.delayApp.headline": "Пожалуйста приобретите лицензию Ferdi Supporter чтобы убрать ожидание",
6 "feature.delayApp.text": "Ferdi продолжит работу через {seconds} секунд.", 7 "feature.delayApp.text": "Ferdi продолжит работу через {seconds} секунд.",
7 "feature.delayApp.trial.action": "Да, я хочу бесплатную 14-дневную триальную версию Ferdi Professional", 8 "feature.delayApp.trial.action": "Да, я хочу бесплатную 14-дневную триальную версию Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Условия обслуживания",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Выберите сервис с Tab, вверх и вниз. Откройте сервис нажав на ENTER.", 36 "feature.quickSwitch.info": "Выберите сервис с Tab, вверх и вниз. Откройте сервис нажав на ENTER.",
29 "feature.quickSwitch.search": "Поиск...", 37 "feature.quickSwitch.search": "Поиск...",
30 "feature.quickSwitch.title": "Быстрое переключение", 38 "feature.quickSwitch.title": "Быстрое переключение",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Отладочная информация Ferdi", 130 "menu.help.debugInfoCopiedHeadline": "Отладочная информация Ferdi",
123 "menu.help.learnMore": "Подробнее", 131 "menu.help.learnMore": "Подробнее",
124 "menu.help.privacy": "Политика конфиденциальности", 132 "menu.help.privacy": "Политика конфиденциальности",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Поддержка", 134 "menu.help.support": "Поддержка",
126 "menu.help.tos": "Условия использования", 135 "menu.help.tos": "Условия использования",
127 "menu.services": "Сервис", 136 "menu.services": "Сервис",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Язык", 284 "settings.app.form.language": "Язык",
275 "settings.app.form.lockPassword": "Пароль", 285 "settings.app.form.lockPassword": "Пароль",
276 "settings.app.form.minimizeToSystemTray": "Сворачивать Ferdi в системный трей", 286 "settings.app.form.minimizeToSystemTray": "Сворачивать Ferdi в системный трей",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Оставлять Ferdi в фоне при закрытии окна", 290 "settings.app.form.runInBackground": "Оставлять Ferdi в фоне при закрытии окна",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Показывать вкладки отключённых служб", 297 "settings.app.form.showDisabledServices": "Показывать вкладки отключённых служб",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Показывать значок непрочитанного сообщения при отключённых уведомлениях", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Показывать значок непрочитанного сообщения при отключённых уведомлениях",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Когда выключено, все звуковые уведомления будут отключены", 374 "settings.service.form.isMutedInfo": "Когда выключено, все звуковые уведомления будут отключены",
364 "settings.service.form.name": "Имя", 375 "settings.service.form.name": "Имя",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Настройки Прокси HTTP/HTTPS", 379 "settings.service.form.proxy.headline": "Настройки Прокси HTTP/HTTPS",
367 "settings.service.form.proxy.host": "Прокси Host/IP", 380 "settings.service.form.proxy.host": "Прокси Host/IP",
368 "settings.service.form.proxy.info": "Настройки прокси не будут синхронизированны с серверами Ferdi", 381 "settings.service.form.proxy.info": "Настройки прокси не будут синхронизированны с серверами Ferdi",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Порт", 384 "settings.service.form.proxy.port": "Порт",
372 "settings.service.form.proxy.restartInfo": "Пожалуйста перезапустите Ferdi после изменения настроек прокси.", 385 "settings.service.form.proxy.restartInfo": "Пожалуйста перезапустите Ferdi после изменения настроек прокси.",
373 "settings.service.form.proxy.user": "Пользователь (опционально)", 386 "settings.service.form.proxy.user": "Пользователь (опционально)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Сохранить сервис", 388 "settings.service.form.saveButton": "Сохранить сервис",
375 "settings.service.form.tabHosted": "Размещено", 389 "settings.service.form.tabHosted": "Размещено",
376 "settings.service.form.tabOnPremise": "Свой хостинг ⭐️", 390 "settings.service.form.tabOnPremise": "Свой хостинг ⭐️",
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json
index 0146c0f03..177ead66a 100644
--- a/src/i18n/locales/sk.json
+++ b/src/i18n/locales/sk.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Obnoviť", 2 "app.errorHandler.action": "Obnoviť",
3 "app.errorHandler.headline": "Niečo sa pokazilo", 3 "app.errorHandler.headline": "Niečo sa pokazilo",
4 "feature.announcements.changelog.headline": "Zmeny vo Ferdi {version}", 4 "feature.announcements.changelog.headline": "Zmeny vo Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Prosím, kúp si licenciu Ferdi Supporter a nebudeš musieť čakať", 6 "feature.delayApp.headline": "Prosím, kúp si licenciu Ferdi Supporter a nebudeš musieť čakať",
6 "feature.delayApp.text": "Ferdi bude pokračovať v {seconds} sekundách.", 7 "feature.delayApp.text": "Ferdi bude pokračovať v {seconds} sekundách.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Podmienky služby",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Zistiť viac", 131 "menu.help.learnMore": "Zistiť viac",
124 "menu.help.privacy": "Vyhlásenie o ochrane súkromia", 132 "menu.help.privacy": "Vyhlásenie o ochrane súkromia",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Podpora", 134 "menu.help.support": "Podpora",
126 "menu.help.tos": "Podmienky použitia", 135 "menu.help.tos": "Podmienky použitia",
127 "menu.services": "Služby", 136 "menu.services": "Služby",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Jazyk", 284 "settings.app.form.language": "Jazyk",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimalizovať Ferdi do systémovej lišty", 286 "settings.app.form.minimizeToSystemTray": "Minimalizovať Ferdi do systémovej lišty",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Po zatvorení okna ponechať Ferdi spustený na pozadí", 290 "settings.app.form.runInBackground": "Po zatvorení okna ponechať Ferdi spustený na pozadí",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Zobraziť záložky vypnutých služieb", 297 "settings.app.form.showDisabledServices": "Zobraziť záložky vypnutých služieb",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Zobraziť symbol pre neprečítané správy, keď sú vypnuté upozornenia", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Zobraziť symbol pre neprečítané správy, keď sú vypnuté upozornenia",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Ak je vypnuté, všetky zvuky oznámení a iné prehrávania budú stíšené", 374 "settings.service.form.isMutedInfo": "Ak je vypnuté, všetky zvuky oznámení a iné prehrávania budú stíšené",
364 "settings.service.form.name": "Meno", 375 "settings.service.form.name": "Meno",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Nastavenia servera proxy sa nebudú synchronizovať so servermi Ferdi.", 381 "settings.service.form.proxy.info": "Nastavenia servera proxy sa nebudú synchronizovať so servermi Ferdi.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Po zmene nastavení servera proxy reštartujte Ferdi.", 385 "settings.service.form.proxy.restartInfo": "Po zmene nastavení servera proxy reštartujte Ferdi.",
373 "settings.service.form.proxy.user": "Používateľ (voliteľné)", 386 "settings.service.form.proxy.user": "Používateľ (voliteľné)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Uložiť službu", 388 "settings.service.form.saveButton": "Uložiť službu",
375 "settings.service.form.tabHosted": "Hostované", 389 "settings.service.form.tabHosted": "Hostované",
376 "settings.service.form.tabOnPremise": "Vlastné hostovanie ⭐️", 390 "settings.service.form.tabOnPremise": "Vlastné hostovanie ⭐️",
diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/sl.json
+++ b/src/i18n/locales/sl.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json
index 990763428..25432a219 100644
--- a/src/i18n/locales/sr.json
+++ b/src/i18n/locales/sr.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Ponovno učitavanje", 2 "app.errorHandler.action": "Ponovno učitavanje",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Uvjeti korištenja",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Сазнајте више", 131 "menu.help.learnMore": "Сазнајте више",
124 "menu.help.privacy": "Izjava o privatnosti", 132 "menu.help.privacy": "Izjava o privatnosti",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Подршка", 134 "menu.help.support": "Подршка",
126 "menu.help.tos": "Услови коришћења услуге", 135 "menu.help.tos": "Услови коришћења услуге",
127 "menu.services": "Usluge", 136 "menu.services": "Usluge",
@@ -199,14 +208,14 @@
199 "pricing.trial.terms.headline": "No strings attached", 208 "pricing.trial.terms.headline": "No strings attached",
200 "pricing.trial.terms.noCreditCard": "No credit card required", 209 "pricing.trial.terms.noCreditCard": "No credit card required",
201 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", 210 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
202 "service.crashHandler.action": "Osvježi {ime}", 211 "service.crashHandler.action": "Osvježi {name}",
203 "service.crashHandler.autoReload": "Pokušaću automatski povratiti {ime} u {sekundi} sekundi", 212 "service.crashHandler.autoReload": "Pokušaću automatski povratiti {name} u {seconds} sekundi",
204 "service.crashHandler.headline": "O, ne! ", 213 "service.crashHandler.headline": "O, ne! ",
205 "service.crashHandler.text": "{ime} je izazvalo grešku. ", 214 "service.crashHandler.text": "{name} je izazvalo grešku.",
206 "service.disabledHandler.action": "Omogući {ime} ", 215 "service.disabledHandler.action": "Omogući {name}",
207 "service.disabledHandler.headline": "{ime} je onemogućen/o", 216 "service.disabledHandler.headline": "{name} je onemogućen/o",
208 "service.errorHandler.action": "Osvježi {ime}", 217 "service.errorHandler.action": "Osvježi {name}",
209 "service.errorHandler.editAction": "Uredite {ime}", 218 "service.errorHandler.editAction": "Uredite {name}",
210 "service.errorHandler.headline": "O, ne! ", 219 "service.errorHandler.headline": "O, ne! ",
211 "service.errorHandler.message": "Greška ", 220 "service.errorHandler.message": "Greška ",
212 "service.errorHandler.text": "{name} has failed to load.", 221 "service.errorHandler.text": "{name} has failed to load.",
@@ -254,7 +263,7 @@
254 "settings.app.buttonClearAllCache": "Очисти кеш", 263 "settings.app.buttonClearAllCache": "Очисти кеш",
255 "settings.app.buttonInstallUpdate": "Ponovo pokreni i instaliraj ažuriranje ", 264 "settings.app.buttonInstallUpdate": "Ponovo pokreni i instaliraj ažuriranje ",
256 "settings.app.buttonSearchForUpdate": "Potraži ažuriranja", 265 "settings.app.buttonSearchForUpdate": "Potraži ažuriranja",
257 "settings.app.cacheInfo": "Франз кеш тренутно користи {величина} простора на диску.", 266 "settings.app.cacheInfo": "Франз кеш тренутно користи {size} простора на диску.",
258 "settings.app.currentVersion": "Trenutna verzija:", 267 "settings.app.currentVersion": "Trenutna verzija:",
259 "settings.app.form.accentColor": "Accent color", 268 "settings.app.form.accentColor": "Accent color",
260 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 269 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Jezik", 284 "settings.app.form.language": "Jezik",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku", 286 "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren", 290 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Prikaži ploče s onemogućenim servisima", 297 "settings.app.form.showDisabledServices": "Prikaži ploče s onemogućenim servisima",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Покажи беџ за непрочитане поруке када су обавештења онемогућена", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Покажи беџ за непрочитане поруке када су обавештења онемогућена",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -339,14 +350,14 @@
339 "settings.service.error.goBack": "Nazad do servisa", 350 "settings.service.error.goBack": "Nazad do servisa",
340 "settings.service.error.headline": "Greška ", 351 "settings.service.error.headline": "Greška ",
341 "settings.service.error.message": "Nemoguće učitati sadržaj usluge", 352 "settings.service.error.message": "Nemoguće učitati sadržaj usluge",
342 "settings.service.form.addServiceHeadline": "Dodaj {ime} ", 353 "settings.service.form.addServiceHeadline": "Dodaj {name}",
343 "settings.service.form.availableServices": "Dostupne usluge", 354 "settings.service.form.availableServices": "Dostupne usluge",
344 "settings.service.form.customUrl": "Prilagođen server", 355 "settings.service.form.customUrl": "Prilagođen server",
345 "settings.service.form.customUrlPremiumInfo": "Da bi ste dodali samo-hostovane usluge, potreban vam je Premium račun.", 356 "settings.service.form.customUrlPremiumInfo": "Da bi ste dodali samo-hostovane usluge, potreban vam je Premium račun.",
346 "settings.service.form.customUrlUpgradeAccount": "Nadogradite Vaš račun", 357 "settings.service.form.customUrlUpgradeAccount": "Nadogradite Vaš račun",
347 "settings.service.form.customUrlValidationError": "Nije moguće odobriti prilagođeno {ime} servera.", 358 "settings.service.form.customUrlValidationError": "Nije moguće odobriti prilagođeno {name} servera.",
348 "settings.service.form.deleteButton": "Izbriši uslugu", 359 "settings.service.form.deleteButton": "Izbriši uslugu",
349 "settings.service.form.editServiceHeadline": "Uredite {ime}", 360 "settings.service.form.editServiceHeadline": "Uredite {name}",
350 "settings.service.form.enableAudio": "Omogućite zvuk", 361 "settings.service.form.enableAudio": "Omogućite zvuk",
351 "settings.service.form.enableBadge": "Покажи беџеве за непрочитане поруке", 362 "settings.service.form.enableBadge": "Покажи беџеве за непрочитане поруке",
352 "settings.service.form.enableDarkMode": "Enable Dark Mode", 363 "settings.service.form.enableDarkMode": "Enable Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrška će biti nečujna.", 374 "settings.service.form.isMutedInfo": "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrška će biti nečujna.",
364 "settings.service.form.name": "Ime", 375 "settings.service.form.name": "Ime",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,11 +384,12 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Sačuvaj uslugu/e", 388 "settings.service.form.saveButton": "Sačuvaj uslugu/e",
375 "settings.service.form.tabHosted": "Hostovano", 389 "settings.service.form.tabHosted": "Hostovano",
376 "settings.service.form.tabOnPremise": "Samo-hostovano ⭐️", 390 "settings.service.form.tabOnPremise": "Samo-hostovano ⭐️",
377 "settings.service.form.team": "Tim", 391 "settings.service.form.team": "Tim",
378 "settings.service.form.useHostedService": "Користи хостовану {име} услугу.", 392 "settings.service.form.useHostedService": "Користи хостовану {name} услугу.",
379 "settings.service.form.yourServices": "Vaše usluge", 393 "settings.service.form.yourServices": "Vaše usluge",
380 "settings.services.deletedInfo": "Usluga je onemogućena", 394 "settings.services.deletedInfo": "Usluga je onemogućena",
381 "settings.services.discoverServices": "Pronađite usluge", 395 "settings.services.discoverServices": "Pronađite usluge",
@@ -467,10 +481,10 @@
467 "tabs.item.enableNotification": "Omogućite obavijesti", 481 "tabs.item.enableNotification": "Omogućite obavijesti",
468 "tabs.item.enableService": "Omogućite usluge", 482 "tabs.item.enableService": "Omogućite usluge",
469 "tabs.item.reload": "Ponovno učitavanje", 483 "tabs.item.reload": "Ponovno učitavanje",
470 "validation.email": "{поље} није валидно", 484 "validation.email": "{field} није валидно",
471 "validation.minLength": "{поље} треба да буде најмање {дужина} карактера дугачко", 485 "validation.minLength": "{field} треба да буде најмање {length} карактера дугачко",
472 "validation.oneRequired": "At least one is required", 486 "validation.oneRequired": "At least one is required",
473 "validation.required": "{поље} је неопходно", 487 "validation.required": "{field} је неопходно",
474 "validation.url": "{field} није валидан УРЛ", 488 "validation.url": "{field} није валидан УРЛ",
475 "webControls.back": "Back", 489 "webControls.back": "Back",
476 "webControls.forward": "Forward", 490 "webControls.forward": "Forward",
diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/sv.json
+++ b/src/i18n/locales/sv.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json
index 148b0e332..446753135 100644
--- a/src/i18n/locales/tr.json
+++ b/src/i18n/locales/tr.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Yenile", 2 "app.errorHandler.action": "Yenile",
3 "app.errorHandler.headline": "Bir terslik çıktı", 3 "app.errorHandler.headline": "Bir terslik çıktı",
4 "feature.announcements.changelog.headline": "Ferdi {version} Sürümündeki Değişiklikler", 4 "feature.announcements.changelog.headline": "Ferdi {version} Sürümündeki Değişiklikler",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Beklememek için Ferdi Destek Lisansı'nı satın alın", 6 "feature.delayApp.headline": "Beklememek için Ferdi Destek Lisansı'nı satın alın",
6 "feature.delayApp.text": "Ferdi {seconds} saniye sonra devam edecek.", 7 "feature.delayApp.text": "Ferdi {seconds} saniye sonra devam edecek.",
7 "feature.delayApp.trial.action": "Evet, Ferdi Professional'ın 14 günlük ücretsiz denemesini istiyorum", 8 "feature.delayApp.trial.action": "Evet, Ferdi Professional'ın 14 günlük ücretsiz denemesini istiyorum",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Kullanım Koşulları",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "TAB, ↑ ve ↓ ile bir servis seç. ENTER ile bir servisi aç.", 36 "feature.quickSwitch.info": "TAB, ↑ ve ↓ ile bir servis seç. ENTER ile bir servisi aç.",
29 "feature.quickSwitch.search": "Ara...", 37 "feature.quickSwitch.search": "Ara...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Hata Ayıklama Bilgisi", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Hata Ayıklama Bilgisi",
123 "menu.help.learnMore": "Daha Fazlasını Öğrenin", 131 "menu.help.learnMore": "Daha Fazlasını Öğrenin",
124 "menu.help.privacy": "Gizlilik Sözleşmesi", 132 "menu.help.privacy": "Gizlilik Sözleşmesi",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Destek", 134 "menu.help.support": "Destek",
126 "menu.help.tos": "Kullanım Şartları", 135 "menu.help.tos": "Kullanım Şartları",
127 "menu.services": "Hizmetler", 136 "menu.services": "Hizmetler",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Dil", 284 "settings.app.form.language": "Dil",
275 "settings.app.form.lockPassword": "Şifre", 285 "settings.app.form.lockPassword": "Şifre",
276 "settings.app.form.minimizeToSystemTray": "Ferdi'ı sistem tepsisine küçült", 286 "settings.app.form.minimizeToSystemTray": "Ferdi'ı sistem tepsisine küçült",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Pencereyi kapatırken Ferdi'ı arka planda tut", 290 "settings.app.form.runInBackground": "Pencereyi kapatırken Ferdi'ı arka planda tut",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "Kimden:", 293 "settings.app.form.scheduledDNDStart": "Kimden:",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Sunucu", 295 "settings.app.form.server": "Sunucu",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Devre dışı bırakılan servis sekmelerini göster", 297 "settings.app.form.showDisabledServices": "Devre dışı bırakılan servis sekmelerini göster",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Bildirimler kapalı iken okunmamış mesaj sayısını göster", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Bildirimler kapalı iken okunmamış mesaj sayısını göster",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Devre dışı bırakıldığında, tüm bildirim sesleri sessize alınır", 374 "settings.service.form.isMutedInfo": "Devre dışı bırakıldığında, tüm bildirim sesleri sessize alınır",
364 "settings.service.form.name": "Ad", 375 "settings.service.form.name": "Ad",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Ayarları", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Ayarları",
367 "settings.service.form.proxy.host": "Proxy Sunucusu/IP", 380 "settings.service.form.proxy.host": "Proxy Sunucusu/IP",
368 "settings.service.form.proxy.info": "Proxy ayarları Ferdi serverlarına yüklenmeyecektir.", 381 "settings.service.form.proxy.info": "Proxy ayarları Ferdi serverlarına yüklenmeyecektir.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Proxy ayarlarını değiştirdikten sonra Ferdi'ı yeniden başlatınız.", 385 "settings.service.form.proxy.restartInfo": "Proxy ayarlarını değiştirdikten sonra Ferdi'ı yeniden başlatınız.",
373 "settings.service.form.proxy.user": "Kullanıcı (opsiyonel)", 386 "settings.service.form.proxy.user": "Kullanıcı (opsiyonel)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Servisi kaydet", 388 "settings.service.form.saveButton": "Servisi kaydet",
375 "settings.service.form.tabHosted": "Barındırılan", 389 "settings.service.form.tabHosted": "Barındırılan",
376 "settings.service.form.tabOnPremise": "Kendi barındırılan", 390 "settings.service.form.tabOnPremise": "Kendi barındırılan",
@@ -467,7 +481,7 @@
467 "tabs.item.enableNotification": "Bildirimleri etkinleştir", 481 "tabs.item.enableNotification": "Bildirimleri etkinleştir",
468 "tabs.item.enableService": "Servisi etkinleştir", 482 "tabs.item.enableService": "Servisi etkinleştir",
469 "tabs.item.reload": "Yenile", 483 "tabs.item.reload": "Yenile",
470 "validation.email": "{alan} geçerli değil", 484 "validation.email": "{field} geçerli değil",
471 "validation.minLength": "{field} en az {length} karakter uzunluğunda olmalı", 485 "validation.minLength": "{field} en az {length} karakter uzunluğunda olmalı",
472 "validation.oneRequired": "At least one is required", 486 "validation.oneRequired": "At least one is required",
473 "validation.required": "{field} gereklidir", 487 "validation.required": "{field} gereklidir",
diff --git a/src/i18n/locales/ua.json b/src/i18n/locales/ua.json
deleted file mode 100644
index dfd9b6fa4..000000000
--- a/src/i18n/locales/ua.json
+++ /dev/null
@@ -1,168 +0,0 @@
1{
2 "global.api.unhealthy": "Не можна підключитись до онлайн сервісів Ferdi",
3 "global.notConnectedToTheInternet": "Ви не підключені до Інтернету.",
4 "welcome.signupButton": "Створити безплатний акаунт",
5 "welcome.loginButton": "Увійдіть до свого акаунту",
6 "welcome.slogan": "Обмін повідомленнями, який працює для вас",
7 "login.headline": "Увійти",
8 "login.email.label": "Email адреса",
9 "login.password.label": "Пароль",
10 "login.submit.label": "Увійти",
11 "login.invalidCredentials": "Email або пароль некоректні",
12 "login.tokenExpired": "Ваша сесія закінчилась, будь ласка, зайдіть знову.",
13 "login.serverLogout": "Ваша сесія закінчилась, будь ласка, зайдіть знову.",
14 "login.link.signup": "Створити безплатний акаунт",
15 "login.link.password": "Скинути пароль",
16 "password.headline": "Скинути пароль",
17 "password.email.label": "Email адреса",
18 "password.submit.label": "Подати",
19 "password.noUser": "Не знайдено жодного користувача з цією email адресою",
20 "password.successInfo": "Будь ласка, перевірте ваш email",
21 "password.link.signup": "Створити безплатний акаунт",
22 "password.link.login": "Увійти до вашого акаунту",
23 "signup.headline": "Увійти",
24 "signup.firstname.label": "Ім'я",
25 "signup.lastname.label": "Прізвище",
26 "signup.email.label": "Email адреса",
27 "signup.company.label": "Компанія",
28 "signup.password.label": "Пароль",
29 "signup.submit.label": "Створити акаунт",
30 "signup.link.login": "У вас вже є обліковий запис, увійти?",
31 "signup.emailDuplicate": "Користувач із цією email адресою вже існує",
32 "signup.legal.info": "Створенням акаунту Ferdi ви приймаєте",
33 "signup.legal.terms": "Умови використання",
34 "signup.legal.privacy": "Заява про конфіденційність",
35 "pricing.headline": "Підтримайте Ferdi",
36 "pricing.support.label": "Виберіть свій план підтримки",
37 "pricing.submit.label": "Я хочу підтримати розробку Ferdi",
38 "pricing.link.skipPayment": "Я не хочу підтримувати розробку Ferdi.",
39 "import.headline": "Імпортувати ваші сервіси з Ferdi 4",
40 "import.notSupportedHeadline": "Сервіси ще не підтримуються в Ferdi 5",
41 "import.submit.label": "Імпортувати сервіси",
42 "import.skip.label": "Я хочу додати сервіси вручну",
43 "invite.submit.label": "Відправити запрошення",
44 "invite.headline.friends": "Запросіть 3 ваших друзів або колег",
45 "invite.name.label": "Ім'я",
46 "invite.email.label": "Email адреса",
47 "invite.skip.label": "Я хочу зробити це пізніше",
48 "subscription.submit.label": "Я хочу підтримати розробку Ferdi",
49 "subscription.paymentSessionError": "Не вдалося ініціалізувати форму платежу",
50 "subscription.includedFeatures": "Платний Преміальний Акаунт Прихильника Ferdi включає",
51 "subscription.features.onpremise": "Додайте on-premise / hosted сервіси, такі як Hipchat",
52 "subscription.features.customServices": "Приватні сервіси для вас і вашої команди",
53 "subscription.features.encryptedSync": "Шифрована синхронізація сеансу",
54 "subscription.features.vpn": "Підтримка проксі та VPN",
55 "subscription.features.ads": "Жодної реклами!",
56 "subscription.features.comingSoon": "очікуйте незабаром",
57 "infobar.servicesUpdated": "Ваші сервіси було оновлено.",
58 "infobar.updateAvailable": "Нове оновлення для Ferdi доступне.",
59 "infobar.buttonReloadServices": "Перезавантажити сервіси",
60 "infobar.buttonInstallUpdate": "Перезавантажити і встановити оновлення",
61 "infobar.requiredRequestsFailed": "Не вдалося завантажити сервіси та інформацію користувача",
62 "sidebar.settings": "Налаштування",
63 "sidebar.addNewService": "Add new service",
64 "services.welcome": "Ласкаво просимо в Ferdi",
65 "services.getStarted": "Почати",
66 "settings.account.headline": "Акаунт",
67 "settings.account.headlineSubscription": "Ваша підписка",
68 "settings.account.headlineUpgrade": "Оновити ваш акаунт і підтримати Ferdi",
69 "settings.account.headlineInvoices": "Інвойси",
70 "settings.account.manageSubscription.label": "Керування вашою підпискою",
71 "settings.account.accountType.basic": "Базовий акаунт",
72 "settings.account.accountType.premium": "Преміум Акаунт Прихильника",
73 "settings.account.account.editButton": "Редагувати акаунт",
74 "settings.account.invoiceDownload": "Завантажити",
75 "settings.account.userInfoRequestFailed": "Не вдалося завантажити інформацію користувача",
76 "settings.account.tryReloadUserInfoRequest": "Спробуйте ще раз",
77 "settings.account.headlineProfile": "Оновити профіль",
78 "settings.account.headlineAccount": "Інформація про акаунт",
79 "settings.account.headlinePassword": "Змінити пароль",
80 "settings.account.successInfo": "Ваші зміни були збережені",
81 "settings.account.buttonSave": "Оновити профіль",
82 "settings.account.mining.thankyou": "Дякую, що підтримуєте Ferdi своєю обчислювальною потужністю.",
83 "settings.account.mining.active": "Ви зараз здійснюєте {hashes} розрахунків за секунду.",
84 "settings.account.mining.moreInformation": "Отримати більше інформації",
85 "settings.account.mining.cancel": "Скасувати видобуток",
86 "settings.navigation.availableServices": "Доступні сервіси",
87 "settings.navigation.yourServices": "Ваші сервіси",
88 "settings.navigation.account": "Акаунт",
89 "settings.navigation.settings": "Налаштування",
90 "settings.navigation.logout": "Вийти",
91 "settings.recipes.headline": "Доступні сервіси",
92 "settings.recipes.mostPopular": "Найбільш популярні",
93 "settings.recipes.all": "Всі сервіси",
94 "settings.recipes.dev": "Розробка",
95 "settings.recipes.nothingFound": "Вибачте, але жоден сервіс не відповідає пошуковому терміну.",
96 "settings.recipes.servicesSuccessfulAddedInfo": "Сервіс успішно додано",
97 "settings.service.form.saveButton": "Зберегти сервіс",
98 "settings.service.form.deleteButton": "Видалити сервіс",
99 "settings.service.form.availableServices": "Доступні сервіси",
100 "settings.service.form.yourServices": "Ваші сервіси",
101 "settings.service.form.addServiceHeadline": "Додати {name}",
102 "settings.service.form.editServiceHeadline": "Редагувати {name}",
103 "settings.service.form.tabHosted": "Розміщений",
104 "settings.service.form.tabOnPremise": "Самостійно розміщений ⭐️",
105 "settings.service.form.customUrlValidationError": "Не вдалось підтвердити власний {name} сервер.",
106 "settings.service.form.customUrlPremiumInfo": "Щоб додати самостійно розміщені сервіси, вам потріьно мати Преміумним Акаунт Прихильника Ferdi.",
107 "settings.service.form.customUrlUpgradeAccount": "Оновити ваш обліковий запис",
108 "settings.service.form.indirectMessageInfo": "Ви отримаєте сповіщення про всі нові повідомлення в каналі, а не лише про @username, @channel, @here, ...",
109 "settings.service.error.headline": "Помилка",
110 "settings.service.error.goBack": "Повернутись до сервісів",
111 "settings.service.error.message": "Не вдалось завантажити серверний протокол.",
112 "settings.services.tooltip.isDisabled": "Сервіс відключений",
113 "settings.services.tooltip.notificationsDisabled": "Сповіщення відключені",
114 "settings.services.headline": "Ваші сервіси",
115 "settings.services.noServicesAdded": "Ви ще не додавали жодних сервісів.",
116 "settings.services.discoverServices": "Відкрийте для себе сервіси",
117 "settings.services.updatedInfo": "Ваші зміни були збережені",
118 "settings.services.deletedInfo": "Сервіс було видалено",
119 "settings.app.headline": "Налаштування",
120 "settings.app.headlineGeneral": "Загальні",
121 "settings.app.headlineLanguage": "Мова",
122 "settings.app.headlineUpdates": "Оновлення",
123 "settings.app.buttonSearchForUpdate": "Перевірити наявність оновлень",
124 "settings.app.buttonInstallUpdate": "Перезавантажити і встановити оновлення",
125 "settings.app.updateStatusSearching": "Шукає оновлення",
126 "settings.app.updateStatusAvailable": "Оновлення доступне, завантаження...",
127 "settings.app.updateStatusUpToDate": "Ви використовуєте останню версію Ferdi",
128 "settings.app.form.autoLaunchOnStart": "Запускати Ferdi на початку",
129 "settings.app.form.autoLaunchInBackground": "Відкрити у фоновому режимі",
130 "settings.app.form.minimizeToSystemTray": "Мінімізувати Ferdi до системного лотка",
131 "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна",
132 "settings.app.form.language": "Мова",
133 "settings.app.form.beta": "Включити бета-версії",
134 "settings.app.currentVersion": "Поточна версія:",
135 "settings.service.form.name": "Ім'я",
136 "settings.service.form.enableService": "Увімкнути сервіс",
137 "settings.service.form.enableNotification": "Увімкнути сповіщення",
138 "settings.service.form.team": "Команда",
139 "settings.service.form.customUrl": "Користувацький сервер",
140 "settings.service.form.indirectMessages": "Показувати значок повідомлення для всіх нових повідомлень",
141 "settings.user.form.firstname": "Ім'я",
142 "settings.user.form.lastname": "Прізвище",
143 "settings.user.form.email": "Email",
144 "settings.user.form.currentPassword": "Поточний пароль",
145 "settings.user.form.newPassword": "Новий пароль",
146 "settings.user.form.accountType.label": "Тип акаунту",
147 "settings.user.form.accountType.individual": "Індивідуальний",
148 "settings.user.form.accountType.non-profit": "Некомерційний",
149 "settings.user.form.accountType.company": "Компанія",
150 "subscription.type.free": "безплатно",
151 "subscription.type.month": "місяць",
152 "subscription.type.year": "рік",
153 "subscription.type.mining": "Підтримати Ferdi обчислювальною потужністю",
154 "subscription.mining.headline": "Як це працює?",
155 "subscription.mining.experimental": "експериментальний",
156 "subscription.mining.line1": "Вмикаючи \"Підтримати обчислювальною потужністю\", Ferdi буде використовувати приблизно 20-50% вашого процесора щоб майнити криптовалюту Monero, що приблизно рівне $ 5/рік.",
157 "subscription.mining.line2": "Ми адаптуємо використання процесора відповідно до вашої поведінки, щоб не виснажувати акумулятор, не сповільнити вашу роботу і роботу вашої машини.",
158 "subscription.mining.line3": "Поки майнер активний, ви матимете необмежений доступ до всіх особливостей підтримки Ferdi Premium.",
159 "subscription.mining.moreInformation": "Отримати більше інформації про цей план.",
160 "subscriptionPopup.buttonCancel": "Відмінити",
161 "subscriptionPopup.buttonDone": "Готово",
162 "tabs.item.reload": "Перезавантажити",
163 "tabs.item.edit": "Редагувати",
164 "tabs.item.disableNotifications": "Вимкнути сповіщення",
165 "tabs.item.enableNotification": "Увімкнути сповіщення",
166 "tabs.item.disableService": "Вимкнути сервіс",
167 "tabs.item.deleteService": "Видалити сервіс"
168}
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json
index fa7408ef8..b2bbf598f 100644
--- a/src/i18n/locales/uk.json
+++ b/src/i18n/locales/uk.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Перезавантажити", 2 "app.errorHandler.action": "Перезавантажити",
3 "app.errorHandler.headline": "Щось пішло не так", 3 "app.errorHandler.headline": "Щось пішло не так",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Будь ласка, придбайте ліцензію Ferdi Supporter аби пропустити очікування", 6 "feature.delayApp.headline": "Будь ласка, придбайте ліцензію Ferdi Supporter аби пропустити очікування",
6 "feature.delayApp.text": "Ferdi відновить роботу за {seconds} секунд", 7 "feature.delayApp.text": "Ferdi відновить роботу за {seconds} секунд",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Умови використання",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Докладніше", 131 "menu.help.learnMore": "Докладніше",
124 "menu.help.privacy": "Заява про конфіденційність", 132 "menu.help.privacy": "Заява про конфіденційність",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Підтримка", 134 "menu.help.support": "Підтримка",
126 "menu.help.tos": "Умови використання", 135 "menu.help.tos": "Умови використання",
127 "menu.services": "Служби", 136 "menu.services": "Служби",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Мова", 284 "settings.app.form.language": "Мова",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Мінімізувати Ferdi до системного лотка", 286 "settings.app.form.minimizeToSystemTray": "Мінімізувати Ferdi до системного лотка",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна", 290 "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Показати вкладку вимкнених сервісів", 297 "settings.app.form.showDisabledServices": "Показати вкладку вимкнених сервісів",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "Коли вимкнено, всі сповищення та відтворення ігноруються", 374 "settings.service.form.isMutedInfo": "Коли вимкнено, всі сповищення та відтворення ігноруються",
364 "settings.service.form.name": "Ім'я", 375 "settings.service.form.name": "Ім'я",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "Налаштування HTTP/HTTPS проксі ", 379 "settings.service.form.proxy.headline": "Налаштування HTTP/HTTPS проксі ",
367 "settings.service.form.proxy.host": "Проксі Host/IP", 380 "settings.service.form.proxy.host": "Проксі Host/IP",
368 "settings.service.form.proxy.info": "Налаштування проксі не будуть синхронізовані із серверами Ferdi", 381 "settings.service.form.proxy.info": "Налаштування проксі не будуть синхронізовані із серверами Ferdi",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Порт", 384 "settings.service.form.proxy.port": "Порт",
372 "settings.service.form.proxy.restartInfo": "Будь ласка, перезапустіть Ferdi після зміни налуштувань проксі", 385 "settings.service.form.proxy.restartInfo": "Будь ласка, перезапустіть Ferdi після зміни налуштувань проксі",
373 "settings.service.form.proxy.user": "Користувач (опційно)", 386 "settings.service.form.proxy.user": "Користувач (опційно)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Зберегти сервіс", 388 "settings.service.form.saveButton": "Зберегти сервіс",
375 "settings.service.form.tabHosted": "Розміщений", 389 "settings.service.form.tabHosted": "Розміщений",
376 "settings.service.form.tabOnPremise": "Самостійно розміщений ⭐️", 390 "settings.service.form.tabOnPremise": "Самостійно розміщений ⭐️",
diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/vi.json
+++ b/src/i18n/locales/vi.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json
new file mode 100644
index 000000000..c852ebe60
--- /dev/null
+++ b/src/i18n/locales/zh-CN.json
@@ -0,0 +1,504 @@
1{
2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
9 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial",
10 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line",
11 "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License",
12 "feature.delayApp.upgrade.actionShort": "Upgrade account",
13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
14 "feature.planSelection.cta.stayOnFree": "Stay on Free",
15 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
16 "feature.planSelection.cta.upgradePersonal": "Choose Personal",
17 "feature.planSelection.cta.upgradePro": "Choose Professional",
18 "feature.planSelection.free.text": "Basic functionality",
19 "feature.planSelection.fullFeatureList": "Complete comparison of all plans",
20 "feature.planSelection.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
21 "feature.planSelection.fullscreen.dialog.cta.upgrade": "Choose Personal",
22 "feature.planSelection.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.",
23 "feature.planSelection.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
24 "feature.planSelection.fullscreen.subheadline": "It's time to make a choice. Ferdi works best on our Personal and Professional plans. Please have a look and choose the best one for you.",
25 "feature.planSelection.fullscreen.welcome": "Are you ready to choose, {name}",
26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
37 "feature.quickSwitch.search": "Search...",
38 "feature.quickSwitch.title": "QuickSwitch",
39 "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.",
40 "feature.shareFranz.action.email": "Send as email",
41 "feature.shareFranz.action.facebook": "Share on Facebook",
42 "feature.shareFranz.action.twitter": "Share on Twitter",
43 "feature.shareFranz.headline": "Ferdi is better together!",
44 "feature.shareFranz.shareText.email": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com",
45 "feature.shareFranz.shareText.twitter": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com /cc @FerdiMessenger",
46 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.",
47 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!",
48 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.",
49 "feature.todos.premium.upgrade": "Upgrade Account",
50 "feature.trialStatusBar.cta": "Upgrade now",
51 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
53 "feature.trialStatusBar.fullscreen.dialog.cta.upgrade": "Choose Personal",
54 "feature.trialStatusBar.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.",
55 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
56 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.",
57 "global.api.unhealthy": "Can't connect to Ferdi online services",
58 "global.franzProRequired": "Ferdi Professional Required",
59 "global.notConnectedToTheInternet": "You are not connected to the internet.",
60 "global.spellchecker.useDefault": "Use System Default ({default})",
61 "global.spellchecking.autodetect": "Detect language automatically",
62 "global.spellchecking.autodetect.short": "Automatic",
63 "global.spellchecking.language": "Spell checking language",
64 "global.upgradeButton.upgradeToPro": "Upgrade to Ferdi Professional",
65 "import.headline": "Import your Ferdi 4 services",
66 "import.notSupportedHeadline": "Services not yet supported in Ferdi 5",
67 "import.skip.label": "I want to add services manually",
68 "import.submit.label": "Import services",
69 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
70 "infobar.buttonChangelog": "What is new?",
71 "infobar.buttonInstallUpdate": "Restart & install update",
72 "infobar.buttonReloadServices": "Reload services",
73 "infobar.requiredRequestsFailed": "Could not load services and user information",
74 "infobar.servicesUpdated": "Your services have been updated.",
75 "infobar.trialActivated": "Your trial was successfully activated. Happy messaging!",
76 "infobar.updateAvailable": "A new update for Ferdi is available.",
77 "invite.email.label": "Email address",
78 "invite.headline.friends": "Invite 3 of your friends or colleagues",
79 "invite.name.label": "Name",
80 "invite.skip.label": "I want to do this later",
81 "invite.submit.label": "Send invites",
82 "invite.successInfo": "Invitations sent successfully",
83 "locked.headline": "Locked",
84 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock",
88 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account",
91 "login.email.label": "Email address",
92 "login.headline": "Sign in",
93 "login.invalidCredentials": "Email or password not valid",
94 "login.link.password": "Reset password",
95 "login.link.signup": "Create a free account",
96 "login.password.label": "Password",
97 "login.serverLogout": "Your session expired, please login again.",
98 "login.submit.label": "Sign in",
99 "login.tokenExpired": "Your session expired, please login again.",
100 "menu.Todoss.closeTodosDrawer": "Close Todos drawer",
101 "menu.Todoss.openTodosDrawer": "Open Todos drawer",
102 "menu.app.about": "About Ferdi",
103 "menu.app.announcement": "What's new?",
104 "menu.app.autohideMenuBar": "Auto-hide menu bar",
105 "menu.app.checkForUpdates": "Check for updates",
106 "menu.app.hide": "Hide",
107 "menu.app.hideOthers": "Hide Others",
108 "menu.app.quit": "Quit",
109 "menu.app.settings": "Settings",
110 "menu.app.unhide": "Unhide",
111 "menu.edit": "Edit",
112 "menu.edit.copy": "Copy",
113 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols",
116 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo",
119 "menu.edit.selectAll": "Select All",
120 "menu.edit.speech": "Speech",
121 "menu.edit.startDictation": "Start Dictation",
122 "menu.edit.startSpeaking": "Start Speaking",
123 "menu.edit.stopSpeaking": "Stop Speaking",
124 "menu.edit.undo": "Undo",
125 "menu.file": "File",
126 "menu.help": "Help",
127 "menu.help.changelog": "Changelog",
128 "menu.help.debugInfo": "Copy Debug Information",
129 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.",
130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
131 "menu.help.learnMore": "Learn More",
132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
134 "menu.help.support": "Support",
135 "menu.help.tos": "Terms of Service",
136 "menu.services": "Services",
137 "menu.services.activatePreviousService": "Activate previous service",
138 "menu.services.addNewService": "Add New Service...",
139 "menu.services.goHome": "Home",
140 "menu.services.setNextServiceActive": "Activate next service",
141 "menu.todos": "Todos",
142 "menu.todos.enableTodos": "Enable Todos",
143 "menu.view": "View",
144 "menu.view.back": "Back",
145 "menu.view.enterFullScreen": "Enter Full Screen",
146 "menu.view.exitFullScreen": "Exit Full Screen",
147 "menu.view.forward": "Forward",
148 "menu.view.lockFerdi": "Lock Ferdi",
149 "menu.view.openQuickSwitch": "Open Quick Switch",
150 "menu.view.reloadFranz": "Reload Ferdi",
151 "menu.view.reloadService": "Reload Service",
152 "menu.view.resetZoom": "Actual Size",
153 "menu.view.toggleDevTools": "Toggle Developer Tools",
154 "menu.view.toggleFullScreen": "Toggle Full Screen",
155 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
156 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools",
157 "menu.view.zoomIn": "Zoom In",
158 "menu.view.zoomOut": "Zoom Out",
159 "menu.window": "Window",
160 "menu.window.close": "Close",
161 "menu.window.minimize": "Minimize",
162 "menu.workspaces": "Workspaces",
163 "menu.workspaces.addNewWorkspace": "Add New Workspace...",
164 "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer",
165 "menu.workspaces.defaultWorkspace": "All services",
166 "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer",
167 "password.email.label": "Email address",
168 "password.headline": "Reset password",
169 "password.link.login": "Sign in to your account",
170 "password.link.signup": "Create a free account",
171 "password.noUser": "No user with that email address was found",
172 "password.submit.label": "Submit",
173 "password.successInfo": "Please check your email",
174 "premiumFeature.button.upgradeAccount": "Upgrade account",
175 "pricing.features.accountSync": "Account Synchronisation",
176 "pricing.features.adFree": "Forever ad-free",
177 "pricing.features.appDelays": "No Waiting Screens",
178 "pricing.features.customWebsites": "Add Custom Websites",
179 "pricing.features.desktopNotifications": "Desktop Notifications",
180 "pricing.features.onPremise": "On-premise & other Hosted Services",
181 "pricing.features.recipes": "Choose from more than 70 Services",
182 "pricing.features.serviceProxies": "Service Proxies",
183 "pricing.features.spellchecker": "Spellchecker support",
184 "pricing.features.teamManagement": "Team Management",
185 "pricing.features.thirdPartyServices": "Install 3rd party services",
186 "pricing.features.unlimitedServices": "Add unlimited services",
187 "pricing.features.upToSixServices": "Add up to 6 services",
188 "pricing.features.upToThreeServices": "Add up to 3 services",
189 "pricing.features.workspaces": "Workspaces",
190 "pricing.plan.free": "Ferdi Free",
191 "pricing.plan.legacy": "Ferdi Premium",
192 "pricing.plan.personal": "Ferdi Personal",
193 "pricing.plan.personal-monthly": "Ferdi Personal Monthly",
194 "pricing.plan.personal-yearly": "Ferdi Personal Yearly",
195 "pricing.plan.pro": "Ferdi Professional",
196 "pricing.plan.pro-monthly": "Ferdi Professional Monthly",
197 "pricing.plan.pro-yearly": "Ferdi Professional Yearly",
198 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional",
199 "pricing.trial.cta.skip": "Continue to Ferdi",
200 "pricing.trial.cta.start": "Start using Ferdi",
201 "pricing.trial.error": "Sorry, we could not activate your trial!",
202 "pricing.trial.features.headline": "Ferdi Professional includes:",
203 "pricing.trial.headline.pro": "Hi {name}, welcome to Ferdi",
204 "pricing.trial.intro.happyMessaging": "Happy messaging,",
205 "pricing.trial.intro.specialTreat": "We have a special treat for you.",
206 "pricing.trial.intro.tryPro": "Enjoy the full Ferdi Professional experience completely free for 14 days.",
207 "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days",
208 "pricing.trial.terms.headline": "No strings attached",
209 "pricing.trial.terms.noCreditCard": "No credit card required",
210 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
211 "service.crashHandler.action": "Reload {name}",
212 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds",
213 "service.crashHandler.headline": "Oh no!",
214 "service.crashHandler.text": "{name} has caused an error.",
215 "service.disabledHandler.action": "Enable {name}",
216 "service.disabledHandler.headline": "{name} is disabled",
217 "service.errorHandler.action": "Reload {name}",
218 "service.errorHandler.editAction": "Edit {name}",
219 "service.errorHandler.headline": "Oh no!",
220 "service.errorHandler.message": "Error",
221 "service.errorHandler.text": "{name} has failed to load.",
222 "service.restrictedHandler.action": "Upgrade Account",
223 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required",
224 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.",
225 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.",
226 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.",
227 "service.webviewLoader.loading": "Loading {service}",
228 "services.getStarted": "Get started",
229 "services.login": "Please login to use Ferdi.",
230 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.",
231 "services.serverless": "Use Ferdi without an Account",
232 "services.welcome": "Welcome to Ferdi",
233 "settings.account.account.editButton": "Edit account",
234 "settings.account.accountType.basic": "Basic Account",
235 "settings.account.accountType.premium": "Premium Supporter Account",
236 "settings.account.accountUnavailable": "Account is unavailable",
237 "settings.account.accountUnavailableInfo": "You are using Ferdi without an account. If you want to use Ferdi with an account and keep your services synchronized across installations, please select a server in the Settings tab then login.",
238 "settings.account.buttonSave": "Update profile",
239 "settings.account.deleteAccount": "Delete account",
240 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!",
241 "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.",
242 "settings.account.headline": "Account",
243 "settings.account.headlineAccount": "Account information",
244 "settings.account.headlineDangerZone": "Danger Zone",
245 "settings.account.headlineInvoices": "Invoices",
246 "settings.account.headlinePassword": "Change password",
247 "settings.account.headlineProfile": "Update profile",
248 "settings.account.headlineSubscription": "Your subscription",
249 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial",
250 "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience",
251 "settings.account.invoiceDownload": "Download",
252 "settings.account.manageSubscription.label": "Manage your subscription",
253 "settings.account.successInfo": "Your changes have been saved",
254 "settings.account.trial": "Free Trial",
255 "settings.account.trialEndsIn": "Your free trial ends in {duration}.",
256 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.",
257 "settings.account.tryReloadServices": "Try again",
258 "settings.account.tryReloadUserInfoRequest": "Try again",
259 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional",
260 "settings.account.userInfoRequestFailed": "Could not load user information",
261 "settings.account.yourLicense": "Your Ferdi License",
262 "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)",
263 "settings.app.buttonClearAllCache": "Clear cache",
264 "settings.app.buttonInstallUpdate": "Restart & install update",
265 "settings.app.buttonSearchForUpdate": "Check for updates",
266 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
267 "settings.app.currentVersion": "Current version:",
268 "settings.app.form.accentColor": "Accent color",
269 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting",
270 "settings.app.form.autoLaunchInBackground": "Open in background",
271 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
272 "settings.app.form.beta": "Include beta versions",
273 "settings.app.form.darkMode": "Enable dark mode",
274 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
275 "settings.app.form.enableLock": "Enable Password Lock",
276 "settings.app.form.enableSpellchecking": "Enable spell checking",
277 "settings.app.form.enableSystemTray": "Show Ferdi in system tray",
278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
279 "settings.app.form.hibernate": "Enable service hibernation",
280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
282 "settings.app.form.inactivityLock": "Lock after inactivity",
283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
284 "settings.app.form.language": "Language",
285 "settings.app.form.lockPassword": "Password",
286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.noUpdates": "Disable updates",
288 "settings.app.form.privateNotifications": "Don't show message content in notifications",
289 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
290 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
291 "settings.app.form.scheduledDNDEnd": "To",
292 "settings.app.form.scheduledDNDStart": "From",
293 "settings.app.form.sentry": "Send telemetry data",
294 "settings.app.form.server": "Server",
295 "settings.app.form.serviceRibbonWidth": "Sidebar width",
296 "settings.app.form.showDisabledServices": "Display disabled services tabs",
297 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
298 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
299 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
302 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance",
305 "settings.app.headlineGeneral": "General",
306 "settings.app.headlineLanguage": "Language",
307 "settings.app.headlineUpdates": "Updates",
308 "settings.app.hibernateInfo": "By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.",
309 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
310 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.",
311 "settings.app.lockInfo": "Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.",
312 "settings.app.lockedPassword": "Password",
313 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
314 "settings.app.restartRequired": "Changes require restart",
315 "settings.app.scheduledDNDInfo": "Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.",
316 "settings.app.scheduledDNDTimeInfo": "Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.",
317 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.",
318 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
319 "settings.app.serverMoneyInfo": "You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.",
320 "settings.app.subheadlineCache": "Cache",
321 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)",
322 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
323 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
324 "settings.app.updateStatusAvailable": "Update available, downloading...",
325 "settings.app.updateStatusSearching": "Is searching for update",
326 "settings.app.updateStatusUpToDate": "You are using the latest version of Ferdi",
327 "settings.invite.headline": "Invite Friends",
328 "settings.navigation.account": "Account",
329 "settings.navigation.availableServices": "Available services",
330 "settings.navigation.logout": "Logout",
331 "settings.navigation.settings": "Settings",
332 "settings.navigation.supportFerdi": "Support Ferdi",
333 "settings.navigation.team": "Manage Team",
334 "settings.navigation.yourServices": "Your services",
335 "settings.navigation.yourWorkspaces": "Your workspaces",
336 "settings.recipes.all": "All services",
337 "settings.recipes.custom": "Custom Services",
338 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes",
339 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes",
340 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes",
341 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:",
342 "settings.recipes.customService.openDevDocs": "Developer Documentation",
343 "settings.recipes.customService.openFolder": "Open folder",
344 "settings.recipes.headline": "Available services",
345 "settings.recipes.missingService": "Missing a service?",
346 "settings.recipes.mostPopular": "Most popular",
347 "settings.recipes.nothingFound": "Sorry, but no service matched your search term.",
348 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added",
349 "settings.searchService": "Search service",
350 "settings.service.error.goBack": "Back to services",
351 "settings.service.error.headline": "Error",
352 "settings.service.error.message": "Could not load service recipe.",
353 "settings.service.form.addServiceHeadline": "Add {name}",
354 "settings.service.form.availableServices": "Available services",
355 "settings.service.form.customUrl": "Custom server",
356 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.",
357 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account",
358 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
359 "settings.service.form.deleteButton": "Delete service",
360 "settings.service.form.editServiceHeadline": "Edit {name}",
361 "settings.service.form.enableAudio": "Enable audio",
362 "settings.service.form.enableBadge": "Show unread message badges",
363 "settings.service.form.enableDarkMode": "Enable Dark Mode",
364 "settings.service.form.enableNotification": "Enable notifications",
365 "settings.service.form.enableService": "Enable service",
366 "settings.service.form.headlineBadges": "Unread message badges",
367 "settings.service.form.headlineGeneral": "General",
368 "settings.service.form.headlineNotifications": "Notifications",
369 "settings.service.form.icon": "Custom icon",
370 "settings.service.form.iconDelete": "Delete",
371 "settings.service.form.iconUpload": "Drop your image, or click here",
372 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
373 "settings.service.form.indirectMessages": "Show message badge for all new messages",
374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
375 "settings.service.form.name": "Name",
376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
378 "settings.service.form.proxy.host": "Proxy Host/IP",
379 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
380 "settings.service.form.proxy.isEnabled": "Use Proxy",
381 "settings.service.form.proxy.password": "Password (optional)",
382 "settings.service.form.proxy.port": "Port",
383 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
384 "settings.service.form.proxy.user": "User (optional)",
385 "settings.service.form.saveButton": "Save service",
386 "settings.service.form.tabHosted": "Hosted",
387 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
388 "settings.service.form.team": "Team",
389 "settings.service.form.useHostedService": "Use the hosted {name} service.",
390 "settings.service.form.yourServices": "Your services",
391 "settings.services.deletedInfo": "Service has been deleted",
392 "settings.services.discoverServices": "Discover services",
393 "settings.services.headline": "Your services",
394 "settings.services.noServicesAdded": "You haven't added any services yet.",
395 "settings.services.servicesRequestFailed": "Could not load your services",
396 "settings.services.tooltip.isDisabled": "Service is disabled",
397 "settings.services.tooltip.isMuted": "All sounds are muted",
398 "settings.services.tooltip.notificationsDisabled": "Notifications are disabled",
399 "settings.services.updatedInfo": "Your changes have been saved",
400 "settings.supportFerdi.github": "Star on GitHub",
401 "settings.supportFerdi.headline": "Support Ferdi",
402 "settings.supportFerdi.openCollective": "Support our Open Collective",
403 "settings.supportFerdi.share": "Tell your Friends",
404 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
405 "settings.team.contentHeadline": "Ferdi for Teams",
406 "settings.team.copy": "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
407 "settings.team.headline": "Team",
408 "settings.team.intro": "You and your team use Ferdi? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
409 "settings.team.manageAction": "Manage your Team on getferdi.com",
410 "settings.team.teamsUnavailable": "Teams are unavailable",
411 "settings.team.teamsUnavailableInfo": "Teams are currently only available when using the Franz Server and after paying for Franz Professional. Please change your server to https://api.franzinfra.com to use teams.",
412 "settings.team.upgradeAction": "Upgrade your Account",
413 "settings.user.form.accountType.company": "Company",
414 "settings.user.form.accountType.individual": "Individual",
415 "settings.user.form.accountType.label": "Account type",
416 "settings.user.form.accountType.non-profit": "Non-Profit",
417 "settings.user.form.currentPassword": "Current password",
418 "settings.user.form.email": "Email",
419 "settings.user.form.firstname": "First Name",
420 "settings.user.form.lastname": "Last Name",
421 "settings.user.form.newPassword": "New password",
422 "settings.workspace.add.form.name": "Name",
423 "settings.workspace.add.form.submitButton": "Create workspace",
424 "settings.workspace.form.buttonDelete": "Delete workspace",
425 "settings.workspace.form.buttonSave": "Save workspace",
426 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*",
427 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.",
428 "settings.workspace.form.name": "Name",
429 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace",
430 "settings.workspace.form.yourWorkspaces": "Your workspaces",
431 "settings.workspaces.deletedInfo": "Workspace has been deleted",
432 "settings.workspaces.headline": "Your workspaces",
433 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.",
434 "settings.workspaces.tryReloadWorkspaces": "Try again",
435 "settings.workspaces.updatedInfo": "Your changes have been saved",
436 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces",
437 "settings.workspaces.workspaceFeatureInfo": "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
438 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces",
439 "sidebar.addNewService": "Add new service",
440 "sidebar.closeTodosDrawer": "Close Ferdi Todos",
441 "sidebar.closeWorkspaceDrawer": "Close workspace drawer",
442 "sidebar.lockFerdi": "Lock Ferdi",
443 "sidebar.muteApp": "Disable notifications & audio",
444 "sidebar.openTodosDrawer": "Open Ferdi Todos",
445 "sidebar.openWorkspaceDrawer": "Open workspace drawer",
446 "sidebar.settings": "Settings",
447 "sidebar.unmuteApp": "Enable notifications & audio",
448 "signup.email.label": "Email address",
449 "signup.emailDuplicate": "A user with that email address already exists",
450 "signup.firstname.label": "First Name",
451 "signup.headline": "Sign up",
452 "signup.lastname.label": "Last Name",
453 "signup.legal.info": "By creating a Ferdi account you accept the",
454 "signup.legal.privacy": "Privacy Statement",
455 "signup.legal.terms": "Terms of service",
456 "signup.link.login": "Already have an account, sign in?",
457 "signup.password.label": "Password",
458 "signup.submit.label": "Create account",
459 "subscription.bestValue": "Best value",
460 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
461 "subscription.cta.allOptions": "See all options",
462 "subscription.cta.choosePlan": "Choose your plan",
463 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:",
464 "subscription.interval.per": "per {interval}",
465 "subscription.interval.perMonth": "per month",
466 "subscription.interval.perMonthPerUser": "per month & user",
467 "subscription.planItem.upgradeAccount": "Upgrade Account",
468 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:",
469 "subscription.teaser.intro": "Ferdi 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!",
470 "subscriptionPopup.buttonCancel": "Cancel",
471 "subscriptionPopup.buttonDone": "Done",
472 "tabs.item.deleteService": "Delete service",
473 "tabs.item.disableAudio": "Disable audio",
474 "tabs.item.disableNotifications": "Disable notifications",
475 "tabs.item.disableService": "Disable service",
476 "tabs.item.edit": "Edit",
477 "tabs.item.enableAudio": "Enable audio",
478 "tabs.item.enableNotification": "Enable notifications",
479 "tabs.item.enableService": "Enable service",
480 "tabs.item.reload": "Reload",
481 "validation.email": "{field} is not valid",
482 "validation.minLength": "{field} should be at least {length} characters long",
483 "validation.oneRequired": "At least one is required",
484 "validation.required": "{field} is required",
485 "validation.url": "{field} is not a valid URL",
486 "webControls.back": "Back",
487 "webControls.forward": "Forward",
488 "webControls.goHome": "Home",
489 "webControls.openInBrowser": "Open in Browser",
490 "webControls.reload": "Reload",
491 "welcome.loginButton": "Login to your account",
492 "welcome.signupButton": "Create a free account",
493 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace",
494 "workspaceDrawer.allServices": "All services",
495 "workspaceDrawer.headline": "Workspaces",
496 "workspaceDrawer.item.contextMenuEdit": "edit",
497 "workspaceDrawer.item.noServicesAddedYet": "No services added yet",
498 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace",
499 "workspaceDrawer.proFeatureBadge": "Premium feature",
500 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account",
501 "workspaceDrawer.workspaceFeatureInfo": "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.</p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.</p>",
502 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings",
503 "workspaces.switchingIndicator.switchingTo": "Switching to"
504}
diff --git a/src/i18n/locales/zh-HANT.json b/src/i18n/locales/zh-HANT.json
index 49b0349d0..5d07476fd 100644
--- a/src/i18n/locales/zh-HANT.json
+++ b/src/i18n/locales/zh-HANT.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "服務條款",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "語言", 284 "settings.app.form.language": "語言",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "最小化至系統匣", 286 "settings.app.form.minimizeToSystemTray": "最小化至系統匣",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "關閉時保持在背景運作", 290 "settings.app.form.runInBackground": "關閉時保持在背景運作",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "名子", 375 "settings.service.form.name": "名子",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "儲存", 388 "settings.service.form.saveButton": "儲存",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json
index 6aea92a62..d04b1a326 100644
--- a/src/i18n/locales/zh-TW.json
+++ b/src/i18n/locales/zh-TW.json
@@ -156,7 +156,7 @@
156 "service.disabledHandler.action": "啟用{name}", 156 "service.disabledHandler.action": "啟用{name}",
157 "service.disabledHandler.headline": "{name}已停用", 157 "service.disabledHandler.headline": "{name}已停用",
158 "service.errorHandler.action": "重新載入 {name}", 158 "service.errorHandler.action": "重新載入 {name}",
159 "service.errorHandler.editAction": "編輯{名稱}", 159 "service.errorHandler.editAction": "編輯{name}",
160 "service.errorHandler.headline": "噢不!", 160 "service.errorHandler.headline": "噢不!",
161 "service.errorHandler.message": "錯誤", 161 "service.errorHandler.message": "錯誤",
162 "service.errorHandler.text": "{name} 載入失敗。", 162 "service.errorHandler.text": "{name} 載入失敗。",
@@ -260,7 +260,7 @@
260 "settings.service.form.customUrlUpgradeAccount": "升級您的帳戶", 260 "settings.service.form.customUrlUpgradeAccount": "升級您的帳戶",
261 "settings.service.form.customUrlValidationError": "無法驗證自定義{name}服務器。", 261 "settings.service.form.customUrlValidationError": "無法驗證自定義{name}服務器。",
262 "settings.service.form.deleteButton": "刪除服務", 262 "settings.service.form.deleteButton": "刪除服務",
263 "settings.service.form.editServiceHeadline": "編輯 {名稱}", 263 "settings.service.form.editServiceHeadline": "編輯 {name}",
264 "settings.service.form.enableAudio": "啟用音訊", 264 "settings.service.form.enableAudio": "啟用音訊",
265 "settings.service.form.enableBadge": "顯示未讀訊息圖示", 265 "settings.service.form.enableBadge": "顯示未讀訊息圖示",
266 "settings.service.form.enableDarkMode": "開啟深色模式", 266 "settings.service.form.enableDarkMode": "開啟深色模式",
diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json
index 29a3ac246..ec5bd1a04 100644
--- a/src/i18n/locales/zh.json
+++ b/src/i18n/locales/zh.json
@@ -2,6 +2,7 @@
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information",
5 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
6 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
7 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
@@ -25,6 +26,13 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
29 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "Search...",
30 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
@@ -122,6 +130,7 @@
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
123 "menu.help.learnMore": "Learn More", 131 "menu.help.learnMore": "Learn More",
124 "menu.help.privacy": "Privacy Statement", 132 "menu.help.privacy": "Privacy Statement",
133 "menu.help.publishDebugInfo": "Publish Debug Information",
125 "menu.help.support": "Support", 134 "menu.help.support": "Support",
126 "menu.help.tos": "Terms of Service", 135 "menu.help.tos": "Terms of Service",
127 "menu.services": "Services", 136 "menu.services": "Services",
@@ -269,11 +278,13 @@
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 278 "settings.app.form.enableTodos": "Enable Ferdi Todos",
270 "settings.app.form.hibernate": "Enable service hibernation", 279 "settings.app.form.hibernate": "Enable service hibernation",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 280 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 282 "settings.app.form.inactivityLock": "Lock after inactivity",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
274 "settings.app.form.language": "Language", 284 "settings.app.form.language": "Language",
275 "settings.app.form.lockPassword": "Password", 285 "settings.app.form.lockPassword": "Password",
276 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 286 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
277 "settings.app.form.noUpdates": "Disable updates", 288 "settings.app.form.noUpdates": "Disable updates",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 289 "settings.app.form.privateNotifications": "Don't show message content in notifications",
279 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -282,9 +293,9 @@
282 "settings.app.form.scheduledDNDStart": "From", 293 "settings.app.form.scheduledDNDStart": "From",
283 "settings.app.form.sentry": "Send telemetry data", 294 "settings.app.form.sentry": "Send telemetry data",
284 "settings.app.form.server": "Server", 295 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width",
285 "settings.app.form.showDisabledServices": "Display disabled services tabs", 297 "settings.app.form.showDisabledServices": "Display disabled services tabs",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar",
288 "settings.app.form.startMinimized": "Start minimized in tray", 299 "settings.app.form.startMinimized": "Start minimized in tray",
289 "settings.app.form.todoServer": "Todo Server", 300 "settings.app.form.todoServer": "Todo Server",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
@@ -363,6 +374,8 @@
363 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 374 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
364 "settings.service.form.name": "Name", 375 "settings.service.form.name": "Name",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 376 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Open user.js",
366 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
367 "settings.service.form.proxy.host": "Proxy Host/IP", 380 "settings.service.form.proxy.host": "Proxy Host/IP",
368 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
@@ -371,6 +384,7 @@
371 "settings.service.form.proxy.port": "Port", 384 "settings.service.form.proxy.port": "Port",
372 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
373 "settings.service.form.proxy.user": "User (optional)", 386 "settings.service.form.proxy.user": "User (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
374 "settings.service.form.saveButton": "Save service", 388 "settings.service.form.saveButton": "Save service",
375 "settings.service.form.tabHosted": "Hosted", 389 "settings.service.form.tabHosted": "Hosted",
376 "settings.service.form.tabOnPremise": "Self hosted ⭐️", 390 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json
index bca181d0f..5a8e082f2 100644
--- a/src/i18n/messages/src/components/layout/AppLayout.json
+++ b/src/i18n/messages/src/components/layout/AppLayout.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Your services have been updated.", 4 "defaultMessage": "!!!Your services have been updated.",
5 "file": "src/components/layout/AppLayout.js", 5 "file": "src/components/layout/AppLayout.js",
6 "start": { 6 "start": {
7 "line": 30, 7 "line": 31,
8 "column": 19 8 "column": 19
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 33, 11 "line": 34,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Reload services", 17 "defaultMessage": "!!!Reload services",
18 "file": "src/components/layout/AppLayout.js", 18 "file": "src/components/layout/AppLayout.js",
19 "start": { 19 "start": {
20 "line": 34, 20 "line": 35,
21 "column": 24 21 "column": 24
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 37, 24 "line": 38,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Could not load services and user information", 30 "defaultMessage": "!!!Could not load services and user information",
31 "file": "src/components/layout/AppLayout.js", 31 "file": "src/components/layout/AppLayout.js",
32 "start": { 32 "start": {
33 "line": 38, 33 "line": 39,
34 "column": 26 34 "column": 26
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 41, 37 "line": 42,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 43 "defaultMessage": "!!!There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
44 "file": "src/components/layout/AppLayout.js", 44 "file": "src/components/layout/AppLayout.js",
45 "start": { 45 "start": {
46 "line": 42, 46 "line": 43,
47 "column": 21 47 "column": 21
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 45, 50 "line": 46,
51 "column": 3 51 "column": 3
52 } 52 }
53 } 53 }
diff --git a/src/i18n/messages/src/components/settings/services/EditServiceForm.json b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
index f4692ed29..df64c8a5f 100644
--- a/src/i18n/messages/src/components/settings/services/EditServiceForm.json
+++ b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
@@ -39,15 +39,54 @@
39 } 39 }
40 }, 40 },
41 { 41 {
42 "id": "settings.service.form.openUserCss",
43 "defaultMessage": "!!!Open user.css",
44 "file": "src/components/settings/services/EditServiceForm.js",
45 "start": {
46 "line": 36,
47 "column": 15
48 },
49 "end": {
50 "line": 39,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.service.form.openUserJs",
56 "defaultMessage": "!!!Open user.js",
57 "file": "src/components/settings/services/EditServiceForm.js",
58 "start": {
59 "line": 40,
60 "column": 14
61 },
62 "end": {
63 "line": 43,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.service.form.recipeFileInfo",
69 "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
70 "file": "src/components/settings/services/EditServiceForm.js",
71 "start": {
72 "line": 44,
73 "column": 18
74 },
75 "end": {
76 "line": 47,
77 "column": 3
78 }
79 },
80 {
42 "id": "settings.service.form.availableServices", 81 "id": "settings.service.form.availableServices",
43 "defaultMessage": "!!!Available services", 82 "defaultMessage": "!!!Available services",
44 "file": "src/components/settings/services/EditServiceForm.js", 83 "file": "src/components/settings/services/EditServiceForm.js",
45 "start": { 84 "start": {
46 "line": 36, 85 "line": 48,
47 "column": 21 86 "column": 21
48 }, 87 },
49 "end": { 88 "end": {
50 "line": 39, 89 "line": 51,
51 "column": 3 90 "column": 3
52 } 91 }
53 }, 92 },
@@ -56,11 +95,11 @@
56 "defaultMessage": "!!!Your services", 95 "defaultMessage": "!!!Your services",
57 "file": "src/components/settings/services/EditServiceForm.js", 96 "file": "src/components/settings/services/EditServiceForm.js",
58 "start": { 97 "start": {
59 "line": 40, 98 "line": 52,
60 "column": 16 99 "column": 16
61 }, 100 },
62 "end": { 101 "end": {
63 "line": 43, 102 "line": 55,
64 "column": 3 103 "column": 3
65 } 104 }
66 }, 105 },
@@ -69,11 +108,11 @@
69 "defaultMessage": "!!!Add {name}", 108 "defaultMessage": "!!!Add {name}",
70 "file": "src/components/settings/services/EditServiceForm.js", 109 "file": "src/components/settings/services/EditServiceForm.js",
71 "start": { 110 "start": {
72 "line": 44, 111 "line": 56,
73 "column": 22 112 "column": 22
74 }, 113 },
75 "end": { 114 "end": {
76 "line": 47, 115 "line": 59,
77 "column": 3 116 "column": 3
78 } 117 }
79 }, 118 },
@@ -82,11 +121,11 @@
82 "defaultMessage": "!!!Edit {name}", 121 "defaultMessage": "!!!Edit {name}",
83 "file": "src/components/settings/services/EditServiceForm.js", 122 "file": "src/components/settings/services/EditServiceForm.js",
84 "start": { 123 "start": {
85 "line": 48, 124 "line": 60,
86 "column": 23 125 "column": 23
87 }, 126 },
88 "end": { 127 "end": {
89 "line": 51, 128 "line": 63,
90 "column": 3 129 "column": 3
91 } 130 }
92 }, 131 },
@@ -95,11 +134,11 @@
95 "defaultMessage": "!!!Hosted", 134 "defaultMessage": "!!!Hosted",
96 "file": "src/components/settings/services/EditServiceForm.js", 135 "file": "src/components/settings/services/EditServiceForm.js",
97 "start": { 136 "start": {
98 "line": 52, 137 "line": 64,
99 "column": 13 138 "column": 13
100 }, 139 },
101 "end": { 140 "end": {
102 "line": 55, 141 "line": 67,
103 "column": 3 142 "column": 3
104 } 143 }
105 }, 144 },
@@ -108,11 +147,11 @@
108 "defaultMessage": "!!!Self hosted ⭐️", 147 "defaultMessage": "!!!Self hosted ⭐️",
109 "file": "src/components/settings/services/EditServiceForm.js", 148 "file": "src/components/settings/services/EditServiceForm.js",
110 "start": { 149 "start": {
111 "line": 56, 150 "line": 68,
112 "column": 16 151 "column": 16
113 }, 152 },
114 "end": { 153 "end": {
115 "line": 59, 154 "line": 71,
116 "column": 3 155 "column": 3
117 } 156 }
118 }, 157 },
@@ -121,11 +160,11 @@
121 "defaultMessage": "!!!Use the hosted {name} service.", 160 "defaultMessage": "!!!Use the hosted {name} service.",
122 "file": "src/components/settings/services/EditServiceForm.js", 161 "file": "src/components/settings/services/EditServiceForm.js",
123 "start": { 162 "start": {
124 "line": 60, 163 "line": 72,
125 "column": 20 164 "column": 20
126 }, 165 },
127 "end": { 166 "end": {
128 "line": 63, 167 "line": 75,
129 "column": 3 168 "column": 3
130 } 169 }
131 }, 170 },
@@ -134,11 +173,11 @@
134 "defaultMessage": "!!!Could not validate custom {name} server.", 173 "defaultMessage": "!!!Could not validate custom {name} server.",
135 "file": "src/components/settings/services/EditServiceForm.js", 174 "file": "src/components/settings/services/EditServiceForm.js",
136 "start": { 175 "start": {
137 "line": 64, 176 "line": 76,
138 "column": 28 177 "column": 28
139 }, 178 },
140 "end": { 179 "end": {
141 "line": 67, 180 "line": 79,
142 "column": 3 181 "column": 3
143 } 182 }
144 }, 183 },
@@ -147,11 +186,11 @@
147 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.", 186 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.",
148 "file": "src/components/settings/services/EditServiceForm.js", 187 "file": "src/components/settings/services/EditServiceForm.js",
149 "start": { 188 "start": {
150 "line": 68, 189 "line": 80,
151 "column": 24 190 "column": 24
152 }, 191 },
153 "end": { 192 "end": {
154 "line": 71, 193 "line": 83,
155 "column": 3 194 "column": 3
156 } 195 }
157 }, 196 },
@@ -160,11 +199,11 @@
160 "defaultMessage": "!!!Upgrade your account", 199 "defaultMessage": "!!!Upgrade your account",
161 "file": "src/components/settings/services/EditServiceForm.js", 200 "file": "src/components/settings/services/EditServiceForm.js",
162 "start": { 201 "start": {
163 "line": 72, 202 "line": 84,
164 "column": 27 203 "column": 27
165 }, 204 },
166 "end": { 205 "end": {
167 "line": 75, 206 "line": 87,
168 "column": 3 207 "column": 3
169 } 208 }
170 }, 209 },
@@ -173,11 +212,11 @@
173 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 212 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
174 "file": "src/components/settings/services/EditServiceForm.js", 213 "file": "src/components/settings/services/EditServiceForm.js",
175 "start": { 214 "start": {
176 "line": 76, 215 "line": 88,
177 "column": 23 216 "column": 23
178 }, 217 },
179 "end": { 218 "end": {
180 "line": 79, 219 "line": 91,
181 "column": 3 220 "column": 3
182 } 221 }
183 }, 222 },
@@ -186,11 +225,11 @@
186 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", 225 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted",
187 "file": "src/components/settings/services/EditServiceForm.js", 226 "file": "src/components/settings/services/EditServiceForm.js",
188 "start": { 227 "start": {
189 "line": 80, 228 "line": 92,
190 "column": 15 229 "column": 15
191 }, 230 },
192 "end": { 231 "end": {
193 "line": 83, 232 "line": 95,
194 "column": 3 233 "column": 3
195 } 234 }
196 }, 235 },
@@ -199,11 +238,11 @@
199 "defaultMessage": "!!!Notifications", 238 "defaultMessage": "!!!Notifications",
200 "file": "src/components/settings/services/EditServiceForm.js", 239 "file": "src/components/settings/services/EditServiceForm.js",
201 "start": { 240 "start": {
202 "line": 84, 241 "line": 96,
203 "column": 25 242 "column": 25
204 }, 243 },
205 "end": { 244 "end": {
206 "line": 87, 245 "line": 99,
207 "column": 3 246 "column": 3
208 } 247 }
209 }, 248 },
@@ -212,11 +251,11 @@
212 "defaultMessage": "!!!Unread message badges", 251 "defaultMessage": "!!!Unread message badges",
213 "file": "src/components/settings/services/EditServiceForm.js", 252 "file": "src/components/settings/services/EditServiceForm.js",
214 "start": { 253 "start": {
215 "line": 88, 254 "line": 100,
216 "column": 18 255 "column": 18
217 }, 256 },
218 "end": { 257 "end": {
219 "line": 91, 258 "line": 103,
220 "column": 3 259 "column": 3
221 } 260 }
222 }, 261 },
@@ -225,11 +264,11 @@
225 "defaultMessage": "!!!General", 264 "defaultMessage": "!!!General",
226 "file": "src/components/settings/services/EditServiceForm.js", 265 "file": "src/components/settings/services/EditServiceForm.js",
227 "start": { 266 "start": {
228 "line": 92, 267 "line": 104,
229 "column": 19 268 "column": 19
230 }, 269 },
231 "end": { 270 "end": {
232 "line": 95, 271 "line": 107,
233 "column": 3 272 "column": 3
234 } 273 }
235 }, 274 },
@@ -238,11 +277,11 @@
238 "defaultMessage": "!!!Delete", 277 "defaultMessage": "!!!Delete",
239 "file": "src/components/settings/services/EditServiceForm.js", 278 "file": "src/components/settings/services/EditServiceForm.js",
240 "start": { 279 "start": {
241 "line": 96, 280 "line": 108,
242 "column": 14 281 "column": 14
243 }, 282 },
244 "end": { 283 "end": {
245 "line": 99, 284 "line": 111,
246 "column": 3 285 "column": 3
247 } 286 }
248 }, 287 },
@@ -251,11 +290,11 @@
251 "defaultMessage": "!!!Drop your image, or click here", 290 "defaultMessage": "!!!Drop your image, or click here",
252 "file": "src/components/settings/services/EditServiceForm.js", 291 "file": "src/components/settings/services/EditServiceForm.js",
253 "start": { 292 "start": {
254 "line": 100, 293 "line": 112,
255 "column": 14 294 "column": 14
256 }, 295 },
257 "end": { 296 "end": {
258 "line": 103, 297 "line": 115,
259 "column": 3 298 "column": 3
260 } 299 }
261 }, 300 },
@@ -264,11 +303,11 @@
264 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", 303 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings",
265 "file": "src/components/settings/services/EditServiceForm.js", 304 "file": "src/components/settings/services/EditServiceForm.js",
266 "start": { 305 "start": {
267 "line": 104, 306 "line": 116,
268 "column": 17 307 "column": 17
269 }, 308 },
270 "end": { 309 "end": {
271 "line": 107, 310 "line": 119,
272 "column": 3 311 "column": 3
273 } 312 }
274 }, 313 },
@@ -277,11 +316,11 @@
277 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", 316 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.",
278 "file": "src/components/settings/services/EditServiceForm.js", 317 "file": "src/components/settings/services/EditServiceForm.js",
279 "start": { 318 "start": {
280 "line": 108, 319 "line": 120,
281 "column": 20 320 "column": 20
282 }, 321 },
283 "end": { 322 "end": {
284 "line": 111, 323 "line": 123,
285 "column": 3 324 "column": 3
286 } 325 }
287 }, 326 },
@@ -290,11 +329,11 @@
290 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", 329 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.",
291 "file": "src/components/settings/services/EditServiceForm.js", 330 "file": "src/components/settings/services/EditServiceForm.js",
292 "start": { 331 "start": {
293 "line": 112, 332 "line": 124,
294 "column": 13 333 "column": 13
295 }, 334 },
296 "end": { 335 "end": {
297 "line": 115, 336 "line": 127,
298 "column": 3 337 "column": 3
299 } 338 }
300 } 339 }
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
index 22417f340..fdf49bbb6 100644
--- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
+++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Launch Ferdi on start", 4 "defaultMessage": "!!!Launch Ferdi on start",
5 "file": "src/containers/settings/EditSettingsScreen.js", 5 "file": "src/containers/settings/EditSettingsScreen.js",
6 "start": { 6 "start": {
7 "line": 29, 7 "line": 31,
8 "column": 21 8 "column": 21
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 32, 11 "line": 34,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Open in background", 17 "defaultMessage": "!!!Open in background",
18 "file": "src/containers/settings/EditSettingsScreen.js", 18 "file": "src/containers/settings/EditSettingsScreen.js",
19 "start": { 19 "start": {
20 "line": 33, 20 "line": 35,
21 "column": 26 21 "column": 26
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 36, 24 "line": 38,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Keep Ferdi in background when closing the window", 30 "defaultMessage": "!!!Keep Ferdi in background when closing the window",
31 "file": "src/containers/settings/EditSettingsScreen.js", 31 "file": "src/containers/settings/EditSettingsScreen.js",
32 "start": { 32 "start": {
33 "line": 37, 33 "line": 39,
34 "column": 19 34 "column": 19
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 40, 37 "line": 42,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,24 +43,24 @@
43 "defaultMessage": "!!!Start minimized in tray", 43 "defaultMessage": "!!!Start minimized in tray",
44 "file": "src/containers/settings/EditSettingsScreen.js", 44 "file": "src/containers/settings/EditSettingsScreen.js",
45 "start": { 45 "start": {
46 "line": 41, 46 "line": 43,
47 "column": 18 47 "column": 18
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 44, 50 "line": 46,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
54 { 54 {
55 "id": "settings.app.form.enableSystemTray", 55 "id": "settings.app.form.enableSystemTray",
56 "defaultMessage": "!!!Show Ferdi in system tray", 56 "defaultMessage": "!!!Always show Ferdi in system tray",
57 "file": "src/containers/settings/EditSettingsScreen.js", 57 "file": "src/containers/settings/EditSettingsScreen.js",
58 "start": { 58 "start": {
59 "line": 45, 59 "line": 47,
60 "column": 20 60 "column": 20
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 48, 63 "line": 50,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Minimize Ferdi to system tray", 69 "defaultMessage": "!!!Minimize Ferdi to system tray",
70 "file": "src/containers/settings/EditSettingsScreen.js", 70 "file": "src/containers/settings/EditSettingsScreen.js",
71 "start": { 71 "start": {
72 "line": 49, 72 "line": 51,
73 "column": 24 73 "column": 24
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 52, 76 "line": 54,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,24 +82,24 @@
82 "defaultMessage": "!!!Don't show message content in notifications", 82 "defaultMessage": "!!!Don't show message content in notifications",
83 "file": "src/containers/settings/EditSettingsScreen.js", 83 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": { 84 "start": {
85 "line": 53, 85 "line": 55,
86 "column": 24 86 "column": 24
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 56, 89 "line": 58,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
93 { 93 {
94 "id": "settings.app.form.showServiceNavigationBar", 94 "id": "settings.app.form.navigationBarBehaviour",
95 "defaultMessage": "!!!Always show service navigation bar", 95 "defaultMessage": "!!!Navigation bar behaviour",
96 "file": "src/containers/settings/EditSettingsScreen.js", 96 "file": "src/containers/settings/EditSettingsScreen.js",
97 "start": { 97 "start": {
98 "line": 57, 98 "line": 59,
99 "column": 28 99 "column": 26
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 60, 102 "line": 62,
103 "column": 3 103 "column": 3
104 } 104 }
105 }, 105 },
@@ -108,11 +108,11 @@
108 "defaultMessage": "!!!Send telemetry data", 108 "defaultMessage": "!!!Send telemetry data",
109 "file": "src/containers/settings/EditSettingsScreen.js", 109 "file": "src/containers/settings/EditSettingsScreen.js",
110 "start": { 110 "start": {
111 "line": 61, 111 "line": 63,
112 "column": 10 112 "column": 10
113 }, 113 },
114 "end": { 114 "end": {
115 "line": 64, 115 "line": 66,
116 "column": 3 116 "column": 3
117 } 117 }
118 }, 118 },
@@ -121,11 +121,11 @@
121 "defaultMessage": "!!!Enable service hibernation", 121 "defaultMessage": "!!!Enable service hibernation",
122 "file": "src/containers/settings/EditSettingsScreen.js", 122 "file": "src/containers/settings/EditSettingsScreen.js",
123 "start": { 123 "start": {
124 "line": 65, 124 "line": 67,
125 "column": 13 125 "column": 13
126 }, 126 },
127 "end": { 127 "end": {
128 "line": 68, 128 "line": 70,
129 "column": 3 129 "column": 3
130 } 130 }
131 }, 131 },
@@ -134,11 +134,11 @@
134 "defaultMessage": "!!!Hibernation strategy", 134 "defaultMessage": "!!!Hibernation strategy",
135 "file": "src/containers/settings/EditSettingsScreen.js", 135 "file": "src/containers/settings/EditSettingsScreen.js",
136 "start": { 136 "start": {
137 "line": 69, 137 "line": 71,
138 "column": 23 138 "column": 23
139 }, 139 },
140 "end": { 140 "end": {
141 "line": 72, 141 "line": 74,
142 "column": 3 142 "column": 3
143 } 143 }
144 }, 144 },
@@ -147,11 +147,11 @@
147 "defaultMessage": "!!!Server", 147 "defaultMessage": "!!!Server",
148 "file": "src/containers/settings/EditSettingsScreen.js", 148 "file": "src/containers/settings/EditSettingsScreen.js",
149 "start": { 149 "start": {
150 "line": 73, 150 "line": 75,
151 "column": 10 151 "column": 10
152 }, 152 },
153 "end": { 153 "end": {
154 "line": 76, 154 "line": 78,
155 "column": 3 155 "column": 3
156 } 156 }
157 }, 157 },
@@ -160,11 +160,11 @@
160 "defaultMessage": "!!!Todo Server", 160 "defaultMessage": "!!!Todo Server",
161 "file": "src/containers/settings/EditSettingsScreen.js", 161 "file": "src/containers/settings/EditSettingsScreen.js",
162 "start": { 162 "start": {
163 "line": 77, 163 "line": 79,
164 "column": 14 164 "column": 14
165 }, 165 },
166 "end": { 166 "end": {
167 "line": 80, 167 "line": 82,
168 "column": 3 168 "column": 3
169 } 169 }
170 }, 170 },
@@ -173,11 +173,11 @@
173 "defaultMessage": "!!!Enable Password Lock", 173 "defaultMessage": "!!!Enable Password Lock",
174 "file": "src/containers/settings/EditSettingsScreen.js", 174 "file": "src/containers/settings/EditSettingsScreen.js",
175 "start": { 175 "start": {
176 "line": 81, 176 "line": 83,
177 "column": 14 177 "column": 14
178 }, 178 },
179 "end": { 179 "end": {
180 "line": 84, 180 "line": 86,
181 "column": 3 181 "column": 3
182 } 182 }
183 }, 183 },
@@ -186,11 +186,11 @@
186 "defaultMessage": "!!!Password", 186 "defaultMessage": "!!!Password",
187 "file": "src/containers/settings/EditSettingsScreen.js", 187 "file": "src/containers/settings/EditSettingsScreen.js",
188 "start": { 188 "start": {
189 "line": 85, 189 "line": 87,
190 "column": 16 190 "column": 16
191 }, 191 },
192 "end": { 192 "end": {
193 "line": 88, 193 "line": 90,
194 "column": 3 194 "column": 3
195 } 195 }
196 }, 196 },
@@ -199,11 +199,11 @@
199 "defaultMessage": "!!!Lock after inactivity", 199 "defaultMessage": "!!!Lock after inactivity",
200 "file": "src/containers/settings/EditSettingsScreen.js", 200 "file": "src/containers/settings/EditSettingsScreen.js",
201 "start": { 201 "start": {
202 "line": 89, 202 "line": 91,
203 "column": 18 203 "column": 18
204 }, 204 },
205 "end": { 205 "end": {
206 "line": 92, 206 "line": 94,
207 "column": 3 207 "column": 3
208 } 208 }
209 }, 209 },
@@ -212,11 +212,11 @@
212 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 212 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
213 "file": "src/containers/settings/EditSettingsScreen.js", 213 "file": "src/containers/settings/EditSettingsScreen.js",
214 "start": { 214 "start": {
215 "line": 93, 215 "line": 95,
216 "column": 23 216 "column": 23
217 }, 217 },
218 "end": { 218 "end": {
219 "line": 96, 219 "line": 98,
220 "column": 3 220 "column": 3
221 } 221 }
222 }, 222 },
@@ -225,11 +225,11 @@
225 "defaultMessage": "!!!From", 225 "defaultMessage": "!!!From",
226 "file": "src/containers/settings/EditSettingsScreen.js", 226 "file": "src/containers/settings/EditSettingsScreen.js",
227 "start": { 227 "start": {
228 "line": 97, 228 "line": 99,
229 "column": 21 229 "column": 21
230 }, 230 },
231 "end": { 231 "end": {
232 "line": 100, 232 "line": 102,
233 "column": 3 233 "column": 3
234 } 234 }
235 }, 235 },
@@ -238,11 +238,11 @@
238 "defaultMessage": "!!!To", 238 "defaultMessage": "!!!To",
239 "file": "src/containers/settings/EditSettingsScreen.js", 239 "file": "src/containers/settings/EditSettingsScreen.js",
240 "start": { 240 "start": {
241 "line": 101, 241 "line": 103,
242 "column": 19 242 "column": 19
243 }, 243 },
244 "end": { 244 "end": {
245 "line": 104, 245 "line": 106,
246 "column": 3 246 "column": 3
247 } 247 }
248 }, 248 },
@@ -251,11 +251,11 @@
251 "defaultMessage": "!!!Language", 251 "defaultMessage": "!!!Language",
252 "file": "src/containers/settings/EditSettingsScreen.js", 252 "file": "src/containers/settings/EditSettingsScreen.js",
253 "start": { 253 "start": {
254 "line": 105, 254 "line": 107,
255 "column": 12 255 "column": 12
256 }, 256 },
257 "end": { 257 "end": {
258 "line": 108, 258 "line": 110,
259 "column": 3 259 "column": 3
260 } 260 }
261 }, 261 },
@@ -264,11 +264,11 @@
264 "defaultMessage": "!!!Dark Mode", 264 "defaultMessage": "!!!Dark Mode",
265 "file": "src/containers/settings/EditSettingsScreen.js", 265 "file": "src/containers/settings/EditSettingsScreen.js",
266 "start": { 266 "start": {
267 "line": 109, 267 "line": 111,
268 "column": 12 268 "column": 12
269 }, 269 },
270 "end": { 270 "end": {
271 "line": 112, 271 "line": 114,
272 "column": 3 272 "column": 3
273 } 273 }
274 }, 274 },
@@ -277,11 +277,11 @@
277 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", 277 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting",
278 "file": "src/containers/settings/EditSettingsScreen.js", 278 "file": "src/containers/settings/EditSettingsScreen.js",
279 "start": { 279 "start": {
280 "line": 113, 280 "line": 115,
281 "column": 21 281 "column": 21
282 }, 282 },
283 "end": { 283 "end": {
284 "line": 116, 284 "line": 118,
285 "column": 3 285 "column": 3
286 } 286 }
287 }, 287 },
@@ -290,11 +290,37 @@
290 "defaultMessage": "!!!Enable universal Dark Mode", 290 "defaultMessage": "!!!Enable universal Dark Mode",
291 "file": "src/containers/settings/EditSettingsScreen.js", 291 "file": "src/containers/settings/EditSettingsScreen.js",
292 "start": { 292 "start": {
293 "line": 117, 293 "line": 119,
294 "column": 21 294 "column": 21
295 }, 295 },
296 "end": { 296 "end": {
297 "line": 120, 297 "line": 122,
298 "column": 3
299 }
300 },
301 {
302 "id": "settings.app.form.serviceRibbonWidth",
303 "defaultMessage": "!!!Sidebar width",
304 "file": "src/containers/settings/EditSettingsScreen.js",
305 "start": {
306 "line": 123,
307 "column": 22
308 },
309 "end": {
310 "line": 126,
311 "column": 3
312 }
313 },
314 {
315 "id": "settings.app.form.iconSize",
316 "defaultMessage": "!!!Service icon size",
317 "file": "src/containers/settings/EditSettingsScreen.js",
318 "start": {
319 "line": 127,
320 "column": 12
321 },
322 "end": {
323 "line": 130,
298 "column": 3 324 "column": 3
299 } 325 }
300 }, 326 },
@@ -303,11 +329,11 @@
303 "defaultMessage": "!!!Accent color", 329 "defaultMessage": "!!!Accent color",
304 "file": "src/containers/settings/EditSettingsScreen.js", 330 "file": "src/containers/settings/EditSettingsScreen.js",
305 "start": { 331 "start": {
306 "line": 121, 332 "line": 131,
307 "column": 15 333 "column": 15
308 }, 334 },
309 "end": { 335 "end": {
310 "line": 124, 336 "line": 134,
311 "column": 3 337 "column": 3
312 } 338 }
313 }, 339 },
@@ -316,11 +342,11 @@
316 "defaultMessage": "!!!Display disabled services tabs", 342 "defaultMessage": "!!!Display disabled services tabs",
317 "file": "src/containers/settings/EditSettingsScreen.js", 343 "file": "src/containers/settings/EditSettingsScreen.js",
318 "start": { 344 "start": {
319 "line": 125, 345 "line": 135,
320 "column": 24 346 "column": 24
321 }, 347 },
322 "end": { 348 "end": {
323 "line": 128, 349 "line": 138,
324 "column": 3 350 "column": 3
325 } 351 }
326 }, 352 },
@@ -329,11 +355,11 @@
329 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 355 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
330 "file": "src/containers/settings/EditSettingsScreen.js", 356 "file": "src/containers/settings/EditSettingsScreen.js",
331 "start": { 357 "start": {
332 "line": 129, 358 "line": 139,
333 "column": 29 359 "column": 29
334 }, 360 },
335 "end": { 361 "end": {
336 "line": 132, 362 "line": 142,
337 "column": 3 363 "column": 3
338 } 364 }
339 }, 365 },
@@ -342,11 +368,11 @@
342 "defaultMessage": "!!!Enable spell checking", 368 "defaultMessage": "!!!Enable spell checking",
343 "file": "src/containers/settings/EditSettingsScreen.js", 369 "file": "src/containers/settings/EditSettingsScreen.js",
344 "start": { 370 "start": {
345 "line": 133, 371 "line": 143,
346 "column": 23 372 "column": 23
347 }, 373 },
348 "end": { 374 "end": {
349 "line": 136, 375 "line": 146,
350 "column": 3 376 "column": 3
351 } 377 }
352 }, 378 },
@@ -355,11 +381,11 @@
355 "defaultMessage": "!!!Enable GPU Acceleration", 381 "defaultMessage": "!!!Enable GPU Acceleration",
356 "file": "src/containers/settings/EditSettingsScreen.js", 382 "file": "src/containers/settings/EditSettingsScreen.js",
357 "start": { 383 "start": {
358 "line": 137, 384 "line": 147,
359 "column": 25 385 "column": 25
360 }, 386 },
361 "end": { 387 "end": {
362 "line": 140, 388 "line": 150,
363 "column": 3 389 "column": 3
364 } 390 }
365 }, 391 },
@@ -368,11 +394,11 @@
368 "defaultMessage": "!!!Include beta versions", 394 "defaultMessage": "!!!Include beta versions",
369 "file": "src/containers/settings/EditSettingsScreen.js", 395 "file": "src/containers/settings/EditSettingsScreen.js",
370 "start": { 396 "start": {
371 "line": 141, 397 "line": 151,
372 "column": 8 398 "column": 8
373 }, 399 },
374 "end": { 400 "end": {
375 "line": 144, 401 "line": 154,
376 "column": 3 402 "column": 3
377 } 403 }
378 }, 404 },
@@ -381,11 +407,11 @@
381 "defaultMessage": "!!!Disable updates", 407 "defaultMessage": "!!!Disable updates",
382 "file": "src/containers/settings/EditSettingsScreen.js", 408 "file": "src/containers/settings/EditSettingsScreen.js",
383 "start": { 409 "start": {
384 "line": 145, 410 "line": 155,
385 "column": 13 411 "column": 13
386 }, 412 },
387 "end": { 413 "end": {
388 "line": 148, 414 "line": 158,
389 "column": 3 415 "column": 3
390 } 416 }
391 }, 417 },
@@ -394,11 +420,11 @@
394 "defaultMessage": "!!!Enable Franz Todos", 420 "defaultMessage": "!!!Enable Franz Todos",
395 "file": "src/containers/settings/EditSettingsScreen.js", 421 "file": "src/containers/settings/EditSettingsScreen.js",
396 "start": { 422 "start": {
397 "line": 149, 423 "line": 159,
398 "column": 15 424 "column": 15
399 }, 425 },
400 "end": { 426 "end": {
401 "line": 152, 427 "line": 162,
402 "column": 3 428 "column": 3
403 } 429 }
404 }, 430 },
@@ -407,11 +433,11 @@
407 "defaultMessage": "!!!Keep all workspaces loaded", 433 "defaultMessage": "!!!Keep all workspaces loaded",
408 "file": "src/containers/settings/EditSettingsScreen.js", 434 "file": "src/containers/settings/EditSettingsScreen.js",
409 "start": { 435 "start": {
410 "line": 153, 436 "line": 163,
411 "column": 27 437 "column": 27
412 }, 438 },
413 "end": { 439 "end": {
414 "line": 156, 440 "line": 166,
415 "column": 3 441 "column": 3
416 } 442 }
417 } 443 }
diff --git a/src/i18n/messages/src/features/debugger/Component.json b/src/i18n/messages/src/features/debugger/Component.json
new file mode 100644
index 000000000..86a5a05f4
--- /dev/null
+++ b/src/i18n/messages/src/features/debugger/Component.json
@@ -0,0 +1,15 @@
1[
2 {
3 "id": "feature.debugger.title",
4 "defaultMessage": "!!!Publish debugging information",
5 "file": "src/features/debugger/Component.js",
6 "start": {
7 "line": 16,
8 "column": 9
9 },
10 "end": {
11 "line": 19,
12 "column": 3
13 }
14 }
15] \ No newline at end of file
diff --git a/src/i18n/messages/src/features/publishDebugInfo/Component.json b/src/i18n/messages/src/features/publishDebugInfo/Component.json
new file mode 100644
index 000000000..25048ace6
--- /dev/null
+++ b/src/i18n/messages/src/features/publishDebugInfo/Component.json
@@ -0,0 +1,93 @@
1[
2 {
3 "id": "feature.publishDebugInfo.title",
4 "defaultMessage": "!!!Publish debug information",
5 "file": "src/features/publishDebugInfo/Component.js",
6 "start": {
7 "line": 17,
8 "column": 9
9 },
10 "end": {
11 "line": 20,
12 "column": 3
13 }
14 },
15 {
16 "id": "feature.publishDebugInfo.info",
17 "defaultMessage": "!!!Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
18 "file": "src/features/publishDebugInfo/Component.js",
19 "start": {
20 "line": 21,
21 "column": 8
22 },
23 "end": {
24 "line": 24,
25 "column": 3
26 }
27 },
28 {
29 "id": "feature.publishDebugInfo.error",
30 "defaultMessage": "!!!There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
31 "file": "src/features/publishDebugInfo/Component.js",
32 "start": {
33 "line": 25,
34 "column": 9
35 },
36 "end": {
37 "line": 28,
38 "column": 3
39 }
40 },
41 {
42 "id": "feature.publishDebugInfo.privacy",
43 "defaultMessage": "!!!Privacy policy",
44 "file": "src/features/publishDebugInfo/Component.js",
45 "start": {
46 "line": 29,
47 "column": 11
48 },
49 "end": {
50 "line": 32,
51 "column": 3
52 }
53 },
54 {
55 "id": "feature.publishDebugInfo.terms",
56 "defaultMessage": "!!!Terms of service",
57 "file": "src/features/publishDebugInfo/Component.js",
58 "start": {
59 "line": 33,
60 "column": 9
61 },
62 "end": {
63 "line": 36,
64 "column": 3
65 }
66 },
67 {
68 "id": "feature.publishDebugInfo.publish",
69 "defaultMessage": "!!!Accept and publish",
70 "file": "src/features/publishDebugInfo/Component.js",
71 "start": {
72 "line": 37,
73 "column": 11
74 },
75 "end": {
76 "line": 40,
77 "column": 3
78 }
79 },
80 {
81 "id": "feature.publishDebugInfo.published",
82 "defaultMessage": "!!!Your debug log was published and is now availible at",
83 "file": "src/features/publishDebugInfo/Component.js",
84 "start": {
85 "line": 41,
86 "column": 13
87 },
88 "end": {
89 "line": 44,
90 "column": 3
91 }
92 }
93] \ No newline at end of file
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json
index f69d951fd..e323d6174 100644
--- a/src/i18n/messages/src/lib/Menu.json
+++ b/src/i18n/messages/src/lib/Menu.json
@@ -455,15 +455,28 @@
455 } 455 }
456 }, 456 },
457 { 457 {
458 "id": "menu.help.publishDebugInfo",
459 "defaultMessage": "!!!Publish Debug Information",
460 "file": "src/lib/Menu.js",
461 "start": {
462 "line": 157,
463 "column": 20
464 },
465 "end": {
466 "line": 160,
467 "column": 3
468 }
469 },
470 {
458 "id": "menu.help.debugInfoCopiedHeadline", 471 "id": "menu.help.debugInfoCopiedHeadline",
459 "defaultMessage": "!!!Ferdi Debug Information", 472 "defaultMessage": "!!!Ferdi Debug Information",
460 "file": "src/lib/Menu.js", 473 "file": "src/lib/Menu.js",
461 "start": { 474 "start": {
462 "line": 157, 475 "line": 161,
463 "column": 27 476 "column": 27
464 }, 477 },
465 "end": { 478 "end": {
466 "line": 160, 479 "line": 164,
467 "column": 3 480 "column": 3
468 } 481 }
469 }, 482 },
@@ -472,11 +485,11 @@
472 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 485 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
473 "file": "src/lib/Menu.js", 486 "file": "src/lib/Menu.js",
474 "start": { 487 "start": {
475 "line": 161, 488 "line": 165,
476 "column": 23 489 "column": 23
477 }, 490 },
478 "end": { 491 "end": {
479 "line": 164, 492 "line": 168,
480 "column": 3 493 "column": 3
481 } 494 }
482 }, 495 },
@@ -485,11 +498,11 @@
485 "defaultMessage": "!!!Terms of Service", 498 "defaultMessage": "!!!Terms of Service",
486 "file": "src/lib/Menu.js", 499 "file": "src/lib/Menu.js",
487 "start": { 500 "start": {
488 "line": 165, 501 "line": 169,
489 "column": 7 502 "column": 7
490 }, 503 },
491 "end": { 504 "end": {
492 "line": 168, 505 "line": 172,
493 "column": 3 506 "column": 3
494 } 507 }
495 }, 508 },
@@ -498,11 +511,11 @@
498 "defaultMessage": "!!!Privacy Statement", 511 "defaultMessage": "!!!Privacy Statement",
499 "file": "src/lib/Menu.js", 512 "file": "src/lib/Menu.js",
500 "start": { 513 "start": {
501 "line": 169, 514 "line": 173,
502 "column": 11 515 "column": 11
503 }, 516 },
504 "end": { 517 "end": {
505 "line": 172, 518 "line": 176,
506 "column": 3 519 "column": 3
507 } 520 }
508 }, 521 },
@@ -511,11 +524,11 @@
511 "defaultMessage": "!!!File", 524 "defaultMessage": "!!!File",
512 "file": "src/lib/Menu.js", 525 "file": "src/lib/Menu.js",
513 "start": { 526 "start": {
514 "line": 173, 527 "line": 177,
515 "column": 8 528 "column": 8
516 }, 529 },
517 "end": { 530 "end": {
518 "line": 176, 531 "line": 180,
519 "column": 3 532 "column": 3
520 } 533 }
521 }, 534 },
@@ -524,11 +537,11 @@
524 "defaultMessage": "!!!View", 537 "defaultMessage": "!!!View",
525 "file": "src/lib/Menu.js", 538 "file": "src/lib/Menu.js",
526 "start": { 539 "start": {
527 "line": 177, 540 "line": 181,
528 "column": 8 541 "column": 8
529 }, 542 },
530 "end": { 543 "end": {
531 "line": 180, 544 "line": 184,
532 "column": 3 545 "column": 3
533 } 546 }
534 }, 547 },
@@ -537,11 +550,11 @@
537 "defaultMessage": "!!!Services", 550 "defaultMessage": "!!!Services",
538 "file": "src/lib/Menu.js", 551 "file": "src/lib/Menu.js",
539 "start": { 552 "start": {
540 "line": 181, 553 "line": 185,
541 "column": 12 554 "column": 12
542 }, 555 },
543 "end": { 556 "end": {
544 "line": 184, 557 "line": 188,
545 "column": 3 558 "column": 3
546 } 559 }
547 }, 560 },
@@ -550,11 +563,11 @@
550 "defaultMessage": "!!!Window", 563 "defaultMessage": "!!!Window",
551 "file": "src/lib/Menu.js", 564 "file": "src/lib/Menu.js",
552 "start": { 565 "start": {
553 "line": 185, 566 "line": 189,
554 "column": 10 567 "column": 10
555 }, 568 },
556 "end": { 569 "end": {
557 "line": 188, 570 "line": 192,
558 "column": 3 571 "column": 3
559 } 572 }
560 }, 573 },
@@ -563,11 +576,11 @@
563 "defaultMessage": "!!!Help", 576 "defaultMessage": "!!!Help",
564 "file": "src/lib/Menu.js", 577 "file": "src/lib/Menu.js",
565 "start": { 578 "start": {
566 "line": 189, 579 "line": 193,
567 "column": 8 580 "column": 8
568 }, 581 },
569 "end": { 582 "end": {
570 "line": 192, 583 "line": 196,
571 "column": 3 584 "column": 3
572 } 585 }
573 }, 586 },
@@ -576,11 +589,11 @@
576 "defaultMessage": "!!!About Ferdi", 589 "defaultMessage": "!!!About Ferdi",
577 "file": "src/lib/Menu.js", 590 "file": "src/lib/Menu.js",
578 "start": { 591 "start": {
579 "line": 193, 592 "line": 197,
580 "column": 9 593 "column": 9
581 }, 594 },
582 "end": { 595 "end": {
583 "line": 196, 596 "line": 200,
584 "column": 3 597 "column": 3
585 } 598 }
586 }, 599 },
@@ -589,11 +602,11 @@
589 "defaultMessage": "!!!What's new?", 602 "defaultMessage": "!!!What's new?",
590 "file": "src/lib/Menu.js", 603 "file": "src/lib/Menu.js",
591 "start": { 604 "start": {
592 "line": 197, 605 "line": 201,
593 "column": 16 606 "column": 16
594 }, 607 },
595 "end": { 608 "end": {
596 "line": 200, 609 "line": 204,
597 "column": 3 610 "column": 3
598 } 611 }
599 }, 612 },
@@ -602,11 +615,11 @@
602 "defaultMessage": "!!!Settings", 615 "defaultMessage": "!!!Settings",
603 "file": "src/lib/Menu.js", 616 "file": "src/lib/Menu.js",
604 "start": { 617 "start": {
605 "line": 201, 618 "line": 205,
606 "column": 12 619 "column": 12
607 }, 620 },
608 "end": { 621 "end": {
609 "line": 204, 622 "line": 208,
610 "column": 3 623 "column": 3
611 } 624 }
612 }, 625 },
@@ -615,11 +628,11 @@
615 "defaultMessage": "!!!Check for updates", 628 "defaultMessage": "!!!Check for updates",
616 "file": "src/lib/Menu.js", 629 "file": "src/lib/Menu.js",
617 "start": { 630 "start": {
618 "line": 205, 631 "line": 209,
619 "column": 19 632 "column": 19
620 }, 633 },
621 "end": { 634 "end": {
622 "line": 208, 635 "line": 212,
623 "column": 3 636 "column": 3
624 } 637 }
625 }, 638 },
@@ -628,11 +641,11 @@
628 "defaultMessage": "!!!Hide", 641 "defaultMessage": "!!!Hide",
629 "file": "src/lib/Menu.js", 642 "file": "src/lib/Menu.js",
630 "start": { 643 "start": {
631 "line": 209, 644 "line": 213,
632 "column": 8 645 "column": 8
633 }, 646 },
634 "end": { 647 "end": {
635 "line": 212, 648 "line": 216,
636 "column": 3 649 "column": 3
637 } 650 }
638 }, 651 },
@@ -641,11 +654,11 @@
641 "defaultMessage": "!!!Hide Others", 654 "defaultMessage": "!!!Hide Others",
642 "file": "src/lib/Menu.js", 655 "file": "src/lib/Menu.js",
643 "start": { 656 "start": {
644 "line": 213, 657 "line": 217,
645 "column": 14 658 "column": 14
646 }, 659 },
647 "end": { 660 "end": {
648 "line": 216, 661 "line": 220,
649 "column": 3 662 "column": 3
650 } 663 }
651 }, 664 },
@@ -654,11 +667,11 @@
654 "defaultMessage": "!!!Unhide", 667 "defaultMessage": "!!!Unhide",
655 "file": "src/lib/Menu.js", 668 "file": "src/lib/Menu.js",
656 "start": { 669 "start": {
657 "line": 217, 670 "line": 221,
658 "column": 10 671 "column": 10
659 }, 672 },
660 "end": { 673 "end": {
661 "line": 220, 674 "line": 224,
662 "column": 3 675 "column": 3
663 } 676 }
664 }, 677 },
@@ -667,11 +680,11 @@
667 "defaultMessage": "!!!Auto-hide menu bar", 680 "defaultMessage": "!!!Auto-hide menu bar",
668 "file": "src/lib/Menu.js", 681 "file": "src/lib/Menu.js",
669 "start": { 682 "start": {
670 "line": 221, 683 "line": 225,
671 "column": 19 684 "column": 19
672 }, 685 },
673 "end": { 686 "end": {
674 "line": 224, 687 "line": 228,
675 "column": 3 688 "column": 3
676 } 689 }
677 }, 690 },
@@ -680,11 +693,11 @@
680 "defaultMessage": "!!!Quit", 693 "defaultMessage": "!!!Quit",
681 "file": "src/lib/Menu.js", 694 "file": "src/lib/Menu.js",
682 "start": { 695 "start": {
683 "line": 225, 696 "line": 229,
684 "column": 8 697 "column": 8
685 }, 698 },
686 "end": { 699 "end": {
687 "line": 228, 700 "line": 232,
688 "column": 3 701 "column": 3
689 } 702 }
690 }, 703 },
@@ -693,11 +706,11 @@
693 "defaultMessage": "!!!Add New Service...", 706 "defaultMessage": "!!!Add New Service...",
694 "file": "src/lib/Menu.js", 707 "file": "src/lib/Menu.js",
695 "start": { 708 "start": {
696 "line": 229, 709 "line": 233,
697 "column": 17 710 "column": 17
698 }, 711 },
699 "end": { 712 "end": {
700 "line": 232, 713 "line": 236,
701 "column": 3 714 "column": 3
702 } 715 }
703 }, 716 },
@@ -706,11 +719,11 @@
706 "defaultMessage": "!!!Add New Workspace...", 719 "defaultMessage": "!!!Add New Workspace...",
707 "file": "src/lib/Menu.js", 720 "file": "src/lib/Menu.js",
708 "start": { 721 "start": {
709 "line": 233, 722 "line": 237,
710 "column": 19 723 "column": 19
711 }, 724 },
712 "end": { 725 "end": {
713 "line": 236, 726 "line": 240,
714 "column": 3 727 "column": 3
715 } 728 }
716 }, 729 },
@@ -719,11 +732,11 @@
719 "defaultMessage": "!!!Open workspace drawer", 732 "defaultMessage": "!!!Open workspace drawer",
720 "file": "src/lib/Menu.js", 733 "file": "src/lib/Menu.js",
721 "start": { 734 "start": {
722 "line": 237, 735 "line": 241,
723 "column": 23 736 "column": 23
724 }, 737 },
725 "end": { 738 "end": {
726 "line": 240, 739 "line": 244,
727 "column": 3 740 "column": 3
728 } 741 }
729 }, 742 },
@@ -732,11 +745,11 @@
732 "defaultMessage": "!!!Close workspace drawer", 745 "defaultMessage": "!!!Close workspace drawer",
733 "file": "src/lib/Menu.js", 746 "file": "src/lib/Menu.js",
734 "start": { 747 "start": {
735 "line": 241, 748 "line": 245,
736 "column": 24 749 "column": 24
737 }, 750 },
738 "end": { 751 "end": {
739 "line": 244, 752 "line": 248,
740 "column": 3 753 "column": 3
741 } 754 }
742 }, 755 },
@@ -745,11 +758,11 @@
745 "defaultMessage": "!!!Activate next service...", 758 "defaultMessage": "!!!Activate next service...",
746 "file": "src/lib/Menu.js", 759 "file": "src/lib/Menu.js",
747 "start": { 760 "start": {
748 "line": 245, 761 "line": 249,
749 "column": 23 762 "column": 23
750 }, 763 },
751 "end": { 764 "end": {
752 "line": 248, 765 "line": 252,
753 "column": 3 766 "column": 3
754 } 767 }
755 }, 768 },
@@ -758,11 +771,11 @@
758 "defaultMessage": "!!!Activate previous service...", 771 "defaultMessage": "!!!Activate previous service...",
759 "file": "src/lib/Menu.js", 772 "file": "src/lib/Menu.js",
760 "start": { 773 "start": {
761 "line": 249, 774 "line": 253,
762 "column": 27 775 "column": 27
763 }, 776 },
764 "end": { 777 "end": {
765 "line": 252, 778 "line": 256,
766 "column": 3 779 "column": 3
767 } 780 }
768 }, 781 },
@@ -771,11 +784,11 @@
771 "defaultMessage": "!!!Disable notifications & audio", 784 "defaultMessage": "!!!Disable notifications & audio",
772 "file": "src/lib/Menu.js", 785 "file": "src/lib/Menu.js",
773 "start": { 786 "start": {
774 "line": 253, 787 "line": 257,
775 "column": 11 788 "column": 11
776 }, 789 },
777 "end": { 790 "end": {
778 "line": 256, 791 "line": 260,
779 "column": 3 792 "column": 3
780 } 793 }
781 }, 794 },
@@ -784,11 +797,11 @@
784 "defaultMessage": "!!!Enable notifications & audio", 797 "defaultMessage": "!!!Enable notifications & audio",
785 "file": "src/lib/Menu.js", 798 "file": "src/lib/Menu.js",
786 "start": { 799 "start": {
787 "line": 257, 800 "line": 261,
788 "column": 13 801 "column": 13
789 }, 802 },
790 "end": { 803 "end": {
791 "line": 260, 804 "line": 264,
792 "column": 3 805 "column": 3
793 } 806 }
794 }, 807 },
@@ -797,11 +810,11 @@
797 "defaultMessage": "!!!Workspaces", 810 "defaultMessage": "!!!Workspaces",
798 "file": "src/lib/Menu.js", 811 "file": "src/lib/Menu.js",
799 "start": { 812 "start": {
800 "line": 261, 813 "line": 265,
801 "column": 14 814 "column": 14
802 }, 815 },
803 "end": { 816 "end": {
804 "line": 264, 817 "line": 268,
805 "column": 3 818 "column": 3
806 } 819 }
807 }, 820 },
@@ -810,11 +823,11 @@
810 "defaultMessage": "!!!Default", 823 "defaultMessage": "!!!Default",
811 "file": "src/lib/Menu.js", 824 "file": "src/lib/Menu.js",
812 "start": { 825 "start": {
813 "line": 265, 826 "line": 269,
814 "column": 20 827 "column": 20
815 }, 828 },
816 "end": { 829 "end": {
817 "line": 268, 830 "line": 272,
818 "column": 3 831 "column": 3
819 } 832 }
820 }, 833 },
@@ -823,11 +836,11 @@
823 "defaultMessage": "!!!Todos", 836 "defaultMessage": "!!!Todos",
824 "file": "src/lib/Menu.js", 837 "file": "src/lib/Menu.js",
825 "start": { 838 "start": {
826 "line": 269, 839 "line": 273,
827 "column": 9 840 "column": 9
828 }, 841 },
829 "end": { 842 "end": {
830 "line": 272, 843 "line": 276,
831 "column": 3 844 "column": 3
832 } 845 }
833 }, 846 },
@@ -836,11 +849,11 @@
836 "defaultMessage": "!!!Open Todos drawer", 849 "defaultMessage": "!!!Open Todos drawer",
837 "file": "src/lib/Menu.js", 850 "file": "src/lib/Menu.js",
838 "start": { 851 "start": {
839 "line": 273, 852 "line": 277,
840 "column": 19 853 "column": 19
841 }, 854 },
842 "end": { 855 "end": {
843 "line": 276, 856 "line": 280,
844 "column": 3 857 "column": 3
845 } 858 }
846 }, 859 },
@@ -849,11 +862,11 @@
849 "defaultMessage": "!!!Close Todos drawer", 862 "defaultMessage": "!!!Close Todos drawer",
850 "file": "src/lib/Menu.js", 863 "file": "src/lib/Menu.js",
851 "start": { 864 "start": {
852 "line": 277, 865 "line": 281,
853 "column": 20 866 "column": 20
854 }, 867 },
855 "end": { 868 "end": {
856 "line": 280, 869 "line": 284,
857 "column": 3 870 "column": 3
858 } 871 }
859 }, 872 },
@@ -862,11 +875,11 @@
862 "defaultMessage": "!!!Enable Todos", 875 "defaultMessage": "!!!Enable Todos",
863 "file": "src/lib/Menu.js", 876 "file": "src/lib/Menu.js",
864 "start": { 877 "start": {
865 "line": 281, 878 "line": 285,
866 "column": 15 879 "column": 15
867 }, 880 },
868 "end": { 881 "end": {
869 "line": 284, 882 "line": 288,
870 "column": 3 883 "column": 3
871 } 884 }
872 }, 885 },
@@ -875,11 +888,11 @@
875 "defaultMessage": "!!!Home", 888 "defaultMessage": "!!!Home",
876 "file": "src/lib/Menu.js", 889 "file": "src/lib/Menu.js",
877 "start": { 890 "start": {
878 "line": 285, 891 "line": 289,
879 "column": 17 892 "column": 17
880 }, 893 },
881 "end": { 894 "end": {
882 "line": 288, 895 "line": 292,
883 "column": 3 896 "column": 3
884 } 897 }
885 } 898 }
diff --git a/src/index.js b/src/index.js
index 46230abd6..167d3897a 100644
--- a/src/index.js
+++ b/src/index.js
@@ -14,15 +14,15 @@ if (process.env.FERDI_APPDATA_DIR != null) {
14 app.setPath('appData', process.env.FERDI_APPDATA_DIR); 14 app.setPath('appData', process.env.FERDI_APPDATA_DIR);
15 app.setPath('userData', path.join(app.getPath('appData'))); 15 app.setPath('userData', path.join(app.getPath('appData')));
16} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) { 16} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) {
17 app.setPath('appData', process.env.PORTABLE_EXECUTABLE_DIR, `${app.getName()}AppData`); 17 app.setPath('appData', process.env.PORTABLE_EXECUTABLE_DIR, `${app.name}AppData`);
18 app.setPath('userData', path.join(app.getPath('appData'), `${app.getName()}AppData`)); 18 app.setPath('userData', path.join(app.getPath('appData'), `${app.name}AppData`));
19} else if (process.platform === 'win32') { 19} else if (process.platform === 'win32') {
20 app.setPath('appData', process.env.APPDATA); 20 app.setPath('appData', process.env.APPDATA);
21 app.setPath('userData', path.join(app.getPath('appData'), app.getName())); 21 app.setPath('userData', path.join(app.getPath('appData'), app.name));
22} 22}
23 23
24if (isDevMode) { 24if (isDevMode) {
25 app.setPath('userData', path.join(app.getPath('appData'), `${app.getName()}Dev`)); 25 app.setPath('userData', path.join(app.getPath('appData'), `${app.name}Dev`));
26} 26}
27 27
28/* eslint-disable import/first */ 28/* eslint-disable import/first */
diff --git a/src/internal-server b/src/internal-server
Subproject 65d1468901b7394c95e510c5aed1a23c22f0f71 Subproject 3ad266e1371075612ce866332472595bfd89a5d
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index 303845e55..91e7c981a 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -1,15 +1,15 @@
1import { remote, shell, clipboard } from 'electron'; 1import { clipboard, remote, shell } from 'electron';
2import { observable, autorun } from 'mobx'; 2import { autorun, observable } from 'mobx';
3import { defineMessages } from 'react-intl'; 3import { defineMessages } from 'react-intl';
4 4import { cmdKey, ctrlKey, isMac } from '../environment';
5import { isMac, ctrlKey, cmdKey } from '../environment';
6import { workspaceStore } from '../features/workspaces/index';
7import { workspaceActions } from '../features/workspaces/actions';
8import { announcementActions } from '../features/announcements/actions';
9import { announcementsStore } from '../features/announcements'; 5import { announcementsStore } from '../features/announcements';
6import { announcementActions } from '../features/announcements/actions';
10import { todosStore } from '../features/todos'; 7import { todosStore } from '../features/todos';
11import { todoActions } from '../features/todos/actions'; 8import { todoActions } from '../features/todos/actions';
12import { CUSTOM_WEBSITE_ID } from '../features/webControls/constants'; 9import { CUSTOM_WEBSITE_ID } from '../features/webControls/constants';
10import { workspaceActions } from '../features/workspaces/actions';
11import { workspaceStore } from '../features/workspaces/index';
12
13 13
14const { app, Menu, dialog } = remote; 14const { app, Menu, dialog } = remote;
15 15
@@ -154,6 +154,10 @@ const menuItems = defineMessages({
154 id: 'menu.help.debugInfo', 154 id: 'menu.help.debugInfo',
155 defaultMessage: '!!!Copy Debug Information', 155 defaultMessage: '!!!Copy Debug Information',
156 }, 156 },
157 publishDebugInfo: {
158 id: 'menu.help.publishDebugInfo',
159 defaultMessage: '!!!Publish Debug Information',
160 },
157 debugInfoCopiedHeadline: { 161 debugInfoCopiedHeadline: {
158 id: 'menu.help.debugInfoCopiedHeadline', 162 id: 'menu.help.debugInfoCopiedHeadline',
159 defaultMessage: '!!!Ferdi Debug Information', 163 defaultMessage: '!!!Ferdi Debug Information',
@@ -296,7 +300,7 @@ function termsBase() {
296 return window.ferdi.stores.settings.all.app.server !== 'https://api.franzinfra.com' ? window.ferdi.stores.settings.all.app.server : 'https://meetfranz.com'; 300 return window.ferdi.stores.settings.all.app.server !== 'https://api.franzinfra.com' ? window.ferdi.stores.settings.all.app.server : 'https://meetfranz.com';
297} 301}
298 302
299const _templateFactory = intl => [ 303const _templateFactory = (intl, locked) => [
300 { 304 {
301 label: intl.formatMessage(menuItems.edit), 305 label: intl.formatMessage(menuItems.edit),
302 submenu: [ 306 submenu: [
@@ -347,6 +351,7 @@ const _templateFactory = intl => [
347 }, 351 },
348 { 352 {
349 label: intl.formatMessage(menuItems.view), 353 label: intl.formatMessage(menuItems.view),
354 visible: !locked,
350 submenu: [ 355 submenu: [
351 { 356 {
352 type: 'separator', 357 type: 'separator',
@@ -422,17 +427,18 @@ const _templateFactory = intl => [
422 }, 427 },
423 { 428 {
424 label: intl.formatMessage(menuItems.services), 429 label: intl.formatMessage(menuItems.services),
430 visible: !locked,
425 submenu: [], 431 submenu: [],
426 }, 432 },
427 { 433 {
428 label: intl.formatMessage(menuItems.workspaces), 434 label: intl.formatMessage(menuItems.workspaces),
429 submenu: [], 435 submenu: [],
430 visible: workspaceStore.isFeatureEnabled, 436 visible: !locked && workspaceStore.isFeatureEnabled,
431 }, 437 },
432 { 438 {
433 label: intl.formatMessage(menuItems.todos), 439 label: intl.formatMessage(menuItems.todos),
434 submenu: [], 440 submenu: [],
435 visible: todosStore.isFeatureEnabled, 441 visible: !locked && todosStore.isFeatureEnabled,
436 }, 442 },
437 { 443 {
438 label: intl.formatMessage(menuItems.window), 444 label: intl.formatMessage(menuItems.window),
@@ -461,7 +467,7 @@ const _templateFactory = intl => [
461 click: () => { 467 click: () => {
462 announcementActions.show(); 468 announcementActions.show();
463 }, 469 },
464 visible: window.ferdi.stores.user.isLoggedIn && announcementsStore.areNewsAvailable, 470 visible: !locked && window.ferdi.stores.user.isLoggedIn && announcementsStore.areNewsAvailable,
465 }, 471 },
466 { 472 {
467 type: 'separator', 473 type: 'separator',
@@ -485,7 +491,7 @@ const _templateFactory = intl => [
485 }, 491 },
486]; 492];
487 493
488const _titleBarTemplateFactory = intl => [ 494const _titleBarTemplateFactory = (intl, locked) => [
489 { 495 {
490 label: intl.formatMessage(menuItems.edit), 496 label: intl.formatMessage(menuItems.edit),
491 accelerator: 'Alt+E', 497 accelerator: 'Alt+E',
@@ -553,6 +559,7 @@ const _titleBarTemplateFactory = intl => [
553 { 559 {
554 label: intl.formatMessage(menuItems.view), 560 label: intl.formatMessage(menuItems.view),
555 accelerator: 'Alt+V', 561 accelerator: 'Alt+V',
562 visible: !locked,
556 submenu: [ 563 submenu: [
557 { 564 {
558 type: 'separator', 565 type: 'separator',
@@ -645,18 +652,19 @@ const _titleBarTemplateFactory = intl => [
645 { 652 {
646 label: intl.formatMessage(menuItems.services), 653 label: intl.formatMessage(menuItems.services),
647 accelerator: 'Alt+S', 654 accelerator: 'Alt+S',
655 visible: !locked,
648 submenu: [], 656 submenu: [],
649 }, 657 },
650 { 658 {
651 label: intl.formatMessage(menuItems.workspaces), 659 label: intl.formatMessage(menuItems.workspaces),
652 accelerator: 'Alt+W', 660 accelerator: 'Alt+W',
653 submenu: [], 661 submenu: [],
654 visible: workspaceStore.isFeatureEnabled, 662 visible: !locked && workspaceStore.isFeatureEnabled,
655 }, 663 },
656 { 664 {
657 label: intl.formatMessage(menuItems.todos), 665 label: intl.formatMessage(menuItems.todos),
658 submenu: [], 666 submenu: [],
659 visible: todosStore.isFeatureEnabled, 667 visible: !locked && todosStore.isFeatureEnabled,
660 }, 668 },
661 { 669 {
662 label: intl.formatMessage(menuItems.window), 670 label: intl.formatMessage(menuItems.window),
@@ -742,86 +750,93 @@ export default class FranzMenu {
742 } 750 }
743 751
744 const { intl } = window.ferdi; 752 const { intl } = window.ferdi;
745 const tpl = isMac ? _templateFactory(intl) : _titleBarTemplateFactory(intl); 753 const tpl = isMac
754 ? _templateFactory(intl, this.stores.settings.app.locked)
755 : _titleBarTemplateFactory(intl, this.stores.settings.app.locked);
746 const { actions } = this; 756 const { actions } = this;
747 757
748 tpl[1].submenu.push({ 758 if (this.stores.settings.app.locked) {
749 type: 'separator',
750 }, {
751 label: intl.formatMessage(menuItems.toggleDevTools),
752 accelerator: `${cmdKey}+Alt+I`,
753 click: (menuItem, browserWindow) => {
754 browserWindow.webContents.toggleDevTools();
755 },
756 }, {
757 label: intl.formatMessage(menuItems.toggleServiceDevTools),
758 accelerator: `${cmdKey}+Shift+Alt+I`,
759 click: () => {
760 this.actions.service.openDevToolsForActiveService();
761 },
762 enabled: this.stores.user.isLoggedIn && this.stores.services.enabled.length > 0,
763 });
764
765 if (this.stores.features.features.isTodosEnabled) {
766 tpl[1].submenu.push({ 759 tpl[1].submenu.push({
767 label: intl.formatMessage(menuItems.toggleTodosDevTools), 760 type: 'separator',
768 accelerator: `${cmdKey}+Shift+Alt+O`, 761 }, {
762 label: intl.formatMessage(menuItems.toggleDevTools),
763 accelerator: `${cmdKey}+Alt+I`,
764 click: (menuItem, browserWindow) => {
765 browserWindow.webContents.toggleDevTools();
766 },
767 }, {
768 label: intl.formatMessage(menuItems.toggleServiceDevTools),
769 accelerator: `${cmdKey}+Shift+Alt+I`,
769 click: () => { 770 click: () => {
770 const webview = document.querySelector('webview[partition="persist:todos"]'); 771 this.actions.service.openDevToolsForActiveService();
771 if (webview) webview.openDevTools();
772 }, 772 },
773 enabled: this.stores.user.isLoggedIn && this.stores.services.enabled.length > 0,
773 }); 774 });
774 }
775 775
776 tpl[1].submenu.unshift({ 776 if (this.stores.features.features.isTodosEnabled) {
777 label: intl.formatMessage(menuItems.reloadService), 777 tpl[1].submenu.push({
778 id: 'reloadService', // TODO: needed? 778 label: intl.formatMessage(menuItems.toggleTodosDevTools),
779 accelerator: `${cmdKey}+R`, 779 accelerator: `${cmdKey}+Shift+Alt+O`,
780 click: () => { 780 click: () => {
781 if (this.stores.user.isLoggedIn 781 const webview = document.querySelector('webview[partition="persist:todos"]');
782 && this.stores.services.enabled.length > 0) { 782 if (webview) webview.openDevTools();
783 if (this.stores.services.active.recipe.id === CUSTOM_WEBSITE_ID) { 783 },
784 this.stores.services.active.webview.reload(); 784 });
785 }
786
787 tpl[1].submenu.unshift({
788 label: intl.formatMessage(menuItems.reloadService),
789 id: 'reloadService', // TODO: needed?
790 accelerator: `${cmdKey}+R`,
791 click: () => {
792 if (this.stores.user.isLoggedIn
793 && this.stores.services.enabled.length > 0) {
794 if (this.stores.services.active.recipe.id === CUSTOM_WEBSITE_ID) {
795 this.stores.services.active.webview.reload();
796 } else {
797 this.actions.service.reloadActive();
798 }
785 } else { 799 } else {
786 this.actions.service.reloadActive(); 800 window.location.reload();
787 } 801 }
788 } else { 802 },
803 }, {
804 label: intl.formatMessage(menuItems.reloadFranz),
805 accelerator: `${cmdKey}+Shift+R`,
806 click: () => {
789 window.location.reload(); 807 window.location.reload();
790 } 808 },
791 }, 809 }, {
792 }, { 810 type: 'separator',
793 label: intl.formatMessage(menuItems.reloadFranz), 811 }, {
794 accelerator: `${cmdKey}+Shift+R`, 812 label: intl.formatMessage(menuItems.lockFerdi),
795 click: () => { 813 accelerator: 'CmdOrCtrl+Shift+L',
796 window.location.reload(); 814 enabled: this.stores.user.isLoggedIn && this.stores.settings.app.lockingFeatureEnabled,
797 }, 815 click() {
798 }, {
799 type: 'separator',
800 }, {
801 label: intl.formatMessage(menuItems.lockFerdi),
802 accelerator: 'CmdOrCtrl+Shift+L',
803 enabled: this.stores.user.isLoggedIn && this.stores.settings.app.lockingFeatureEnabled,
804 click() {
805 // Disable lock first - otherwise the application might not update correctly
806 actions.settings.update({
807 type: 'app',
808 data: {
809 locked: false,
810 },
811 });
812 setTimeout(() => {
813 actions.settings.update({ 816 actions.settings.update({
814 type: 'app', 817 type: 'app',
815 data: { 818 data: {
816 locked: true, 819 locked: true,
817 }, 820 },
818 }); 821 });
819 }, 0); 822 }
820 }, 823 });
821 }); 824
825 if (serviceTpl.length > 0) {
826 tpl[3].submenu = serviceTpl;
827 }
828
829 if (workspaceStore.isFeatureEnabled) {
830 tpl[4].submenu = this.workspacesMenu();
831 }
832
833 if (todosStore.isFeatureEnabled) {
834 tpl[5].submenu = this.todosMenu();
835 }
836 }
822 837
823 tpl.unshift({ 838 tpl.unshift({
824 label: isMac ? app.getName() : intl.formatMessage(menuItems.file), 839 label: isMac ? app.name : intl.formatMessage(menuItems.file),
825 accelerator: 'Alt+F', 840 accelerator: 'Alt+F',
826 submenu: [ 841 submenu: [
827 { 842 {
@@ -838,15 +853,18 @@ export default class FranzMenu {
838 this.actions.ui.openSettings({ path: 'app' }); 853 this.actions.ui.openSettings({ path: 'app' });
839 }, 854 },
840 enabled: this.stores.user.isLoggedIn, 855 enabled: this.stores.user.isLoggedIn,
856 visible: !this.stores.settings.app.locked,
841 }, 857 },
842 { 858 {
843 label: intl.formatMessage(menuItems.checkForUpdates), 859 label: intl.formatMessage(menuItems.checkForUpdates),
860 visible: !this.stores.settings.app.locked,
844 click: () => { 861 click: () => {
845 this.actions.app.checkForUpdates(); 862 this.actions.app.checkForUpdates();
846 }, 863 },
847 }, 864 },
848 { 865 {
849 type: 'separator', 866 type: 'separator',
867 visible: !this.stores.settings.app.locked,
850 }, 868 },
851 { 869 {
852 label: intl.formatMessage(menuItems.services), 870 label: intl.formatMessage(menuItems.services),
@@ -926,6 +944,7 @@ export default class FranzMenu {
926 this.actions.ui.openSettings({ path: 'app' }); 944 this.actions.ui.openSettings({ path: 'app' });
927 }, 945 },
928 enabled: this.stores.user.isLoggedIn, 946 enabled: this.stores.user.isLoggedIn,
947 visible: !this.stores.settings.locked,
929 }, 948 },
930 { 949 {
931 type: 'separator', 950 type: 'separator',
@@ -957,14 +976,14 @@ export default class FranzMenu {
957 tpl[5].submenu = this.todosMenu(); 976 tpl[5].submenu = this.todosMenu();
958 } 977 }
959 978
960 tpl[tpl.length - 1].submenu.push({ 979 if (!this.stores.settings.app.locked) {
961 type: 'separator', 980 tpl[tpl.length - 1].submenu.push({
962 }, this.debugMenu()); 981 type: 'separator',
963 982 }, ...this.debugMenu());
983 }
964 this.currentTemplate = tpl; 984 this.currentTemplate = tpl;
965 const menu = Menu.buildFromTemplate(tpl); 985 const menu = Menu.buildFromTemplate(tpl);
966 const lockedMenu = Menu.buildFromTemplate([]); 986 Menu.setApplicationMenu(menu);
967 Menu.setApplicationMenu(this.stores.user.isLoggedIn && this.stores.settings.app.locked ? lockedMenu : menu);
968 } 987 }
969 988
970 serviceTpl() { 989 serviceTpl() {
@@ -1117,7 +1136,7 @@ export default class FranzMenu {
1117 debugMenu() { 1136 debugMenu() {
1118 const { intl } = window.ferdi; 1137 const { intl } = window.ferdi;
1119 1138
1120 return { 1139 return [{
1121 label: intl.formatMessage(menuItems.debugInfo), 1140 label: intl.formatMessage(menuItems.debugInfo),
1122 click: () => { 1141 click: () => {
1123 const { debugInfo } = this.stores.app; 1142 const { debugInfo } = this.stores.app;
@@ -1133,7 +1152,12 @@ export default class FranzMenu {
1133 }, 1152 },
1134 }); 1153 });
1135 }, 1154 },
1136 }; 1155 }, {
1156 label: intl.formatMessage(menuItems.publishDebugInfo),
1157 click: () => {
1158 window.ferdi.features.publishDebugInfo.state.isModalVisible = true;
1159 },
1160 }];
1137 } 1161 }
1138 1162
1139 _getServiceName(service) { 1163 _getServiceName(service) {
diff --git a/src/lib/Tray.js b/src/lib/Tray.js
index c0d936599..84ee8e3bb 100644
--- a/src/lib/Tray.js
+++ b/src/lib/Tray.js
@@ -1,5 +1,5 @@
1import { 1import {
2 app, Tray, Menu, systemPreferences, nativeTheme, nativeImage, 2 app, Menu, nativeImage, nativeTheme, systemPreferences, Tray,
3} from 'electron'; 3} from 'electron';
4import path from 'path'; 4import path from 'path';
5 5
@@ -37,14 +37,20 @@ export default class TrayIcon {
37 ]; 37 ];
38 38
39 const trayMenu = Menu.buildFromTemplate(trayMenuTemplate); 39 const trayMenu = Menu.buildFromTemplate(trayMenuTemplate);
40 this.trayIcon.setContextMenu(trayMenu);
41 40
42 this.trayIcon.on('click', () => { 41 this.trayIcon.on('click', () => {
43 if (app.mainWindow.isMinimized()) { 42 if (app.mainWindow.isMinimized()) {
44 app.mainWindow.restore(); 43 app.mainWindow.restore();
44 } else if (app.mainWindow.isVisible()) {
45 app.mainWindow.hide();
46 } else {
47 app.mainWindow.show();
48 app.mainWindow.focus();
45 } 49 }
46 app.mainWindow.show(); 50 });
47 app.mainWindow.focus(); 51
52 this.trayIcon.on('right-click', () => {
53 this.trayIcon.popUpContextMenu(trayMenu);
48 }); 54 });
49 55
50 if (process.platform === 'darwin') { 56 if (process.platform === 'darwin') {
diff --git a/src/models/Service.js b/src/models/Service.js
index 10b54602f..12a2d4af9 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -1,6 +1,6 @@
1import { computed, observable, autorun } from 'mobx'; 1import { autorun, computed, observable } from 'mobx';
2import path from 'path';
3import normalizeUrl from 'normalize-url'; 2import normalizeUrl from 'normalize-url';
3import path from 'path';
4 4
5const debug = require('debug')('Ferdi:Service'); 5const debug = require('debug')('Ferdi:Service');
6 6
@@ -146,7 +146,7 @@ export default class Service {
146 if (this.recipe.hasCustomUrl && this.customUrl) { 146 if (this.recipe.hasCustomUrl && this.customUrl) {
147 let url; 147 let url;
148 try { 148 try {
149 url = normalizeUrl(this.customUrl, { stripWWW: false }); 149 url = normalizeUrl(this.customUrl, { stripWWW: false, removeTrailingSlash: false });
150 } catch (err) { 150 } catch (err) {
151 console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`); 151 console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`);
152 } 152 }
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js
index eec4678b9..8a279bc8a 100644
--- a/src/stores/FeaturesStore.js
+++ b/src/stores/FeaturesStore.js
@@ -14,6 +14,7 @@ import serviceProxy from '../features/serviceProxy';
14import basicAuth from '../features/basicAuth'; 14import basicAuth from '../features/basicAuth';
15import workspaces from '../features/workspaces'; 15import workspaces from '../features/workspaces';
16import quickSwitch from '../features/quickSwitch'; 16import quickSwitch from '../features/quickSwitch';
17import publishDebugInfo from '../features/publishDebugInfo';
17import shareFranz from '../features/shareFranz'; 18import shareFranz from '../features/shareFranz';
18import announcements from '../features/announcements'; 19import announcements from '../features/announcements';
19import settingsWS from '../features/settingsWS'; 20import settingsWS from '../features/settingsWS';
@@ -84,6 +85,7 @@ export default class FeaturesStore extends Store {
84 basicAuth(this.stores, this.actions); 85 basicAuth(this.stores, this.actions);
85 workspaces(this.stores, this.actions); 86 workspaces(this.stores, this.actions);
86 quickSwitch(this.stores, this.actions); 87 quickSwitch(this.stores, this.actions);
88 publishDebugInfo(this.stores, this.actions);
87 shareFranz(this.stores, this.actions); 89 shareFranz(this.stores, this.actions);
88 announcements(this.stores, this.actions); 90 announcements(this.stores, this.actions);
89 settingsWS(this.stores, this.actions); 91 settingsWS(this.stores, this.actions);
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index fda18b514..ae6ba11c5 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -58,7 +58,7 @@ export default class ServicesStore extends Store {
58 this.actions.service.createFromLegacyService.listen(this._createFromLegacyService.bind(this)); 58 this.actions.service.createFromLegacyService.listen(this._createFromLegacyService.bind(this));
59 this.actions.service.updateService.listen(this._updateService.bind(this)); 59 this.actions.service.updateService.listen(this._updateService.bind(this));
60 this.actions.service.deleteService.listen(this._deleteService.bind(this)); 60 this.actions.service.deleteService.listen(this._deleteService.bind(this));
61 this.actions.service.openDarkmodeCss.listen(this._openDarkmodeCss.bind(this)); 61 this.actions.service.openRecipeFile.listen(this._openRecipeFile.bind(this));
62 this.actions.service.clearCache.listen(this._clearCache.bind(this)); 62 this.actions.service.clearCache.listen(this._clearCache.bind(this));
63 this.actions.service.setWebviewReference.listen(this._setWebviewReference.bind(this)); 63 this.actions.service.setWebviewReference.listen(this._setWebviewReference.bind(this));
64 this.actions.service.detachService.listen(this._detachService.bind(this)); 64 this.actions.service.detachService.listen(this._detachService.bind(this));
@@ -334,7 +334,7 @@ export default class ServicesStore extends Store {
334 this.actionStatus = request.result.status; 334 this.actionStatus = request.result.status;
335 } 335 }
336 336
337 @action async _openDarkmodeCss({ recipe }) { 337 @action async _openRecipeFile({ recipe, file }) {
338 // Get directory for recipe 338 // Get directory for recipe
339 const normalDirectory = getRecipeDirectory(recipe); 339 const normalDirectory = getRecipeDirectory(recipe);
340 const devDirectory = getDevRecipeDirectory(recipe); 340 const devDirectory = getDevRecipeDirectory(recipe);
@@ -349,10 +349,10 @@ export default class ServicesStore extends Store {
349 return; 349 return;
350 } 350 }
351 351
352 // Create and open darkmode.css 352 // Create and open file
353 const file = path.join(directory, 'darkmode.css'); 353 const filePath = path.join(directory, file);
354 await fs.ensureFile(file); 354 await fs.ensureFile(filePath);
355 shell.showItemInFolder(file); 355 shell.showItemInFolder(filePath);
356 } 356 }
357 357
358 @action async _clearCache({ serviceId }) { 358 @action async _clearCache({ serviceId }) {
@@ -766,7 +766,7 @@ export default class ServicesStore extends Store {
766 const isMuted = isAppMuted || service.isMuted; 766 const isMuted = isAppMuted || service.isMuted;
767 767
768 if (isAttached) { 768 if (isAttached) {
769 service.webview.setAudioMuted(isMuted); 769 service.webview.audioMuted = isMuted;
770 } 770 }
771 }); 771 });
772 } 772 }
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js
index 8a5ee7204..26e83b725 100644
--- a/src/stores/SettingsStore.js
+++ b/src/stores/SettingsStore.js
@@ -1,21 +1,18 @@
1import { ipcRenderer, remote } from 'electron'; 1import { ipcRenderer, remote } from 'electron';
2import { 2import { action, computed, observable, reaction } from 'mobx';
3 action, computed, observable, reaction,
4} from 'mobx';
5import localStorage from 'mobx-localstorage'; 3import localStorage from 'mobx-localstorage';
6
7import Store from './lib/Store';
8import Request from './lib/Request';
9import { getLocale } from '../helpers/i18n-helpers';
10import { API } from '../environment';
11
12import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES, LOCAL_SERVER } from '../config'; 4import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES, LOCAL_SERVER } from '../config';
5import { API } from '../environment';
6import { getLocale } from '../helpers/i18n-helpers';
13import { SPELLCHECKER_LOCALES } from '../i18n/languages'; 7import { SPELLCHECKER_LOCALES } from '../i18n/languages';
8import Request from './lib/Request';
9import Store from './lib/Store';
14 10
15const debug = require('debug')('Ferdi:SettingsStore'); 11const debug = require('debug')('Ferdi:SettingsStore');
16 12
17export default class SettingsStore extends Store { 13export default class SettingsStore extends Store {
18 @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings'); 14 @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings');
15 startup = true;
19 16
20 fileSystemSettingsTypes = FILE_SYSTEM_SETTINGS_TYPES; 17 fileSystemSettingsTypes = FILE_SYSTEM_SETTINGS_TYPES;
21 18
@@ -30,16 +27,6 @@ export default class SettingsStore extends Store {
30 // Register action handlers 27 // Register action handlers
31 this.actions.settings.update.listen(this._update.bind(this)); 28 this.actions.settings.update.listen(this._update.bind(this));
32 this.actions.settings.remove.listen(this._remove.bind(this)); 29 this.actions.settings.remove.listen(this._remove.bind(this));
33
34 ipcRenderer.on('appSettings', (event, resp) => {
35 debug('Get appSettings resolves', resp.type, resp.data);
36
37 Object.assign(this._fileSystemSettingsCache[resp.type], resp.data);
38 });
39
40 this.fileSystemSettingsTypes.forEach((type) => {
41 ipcRenderer.send('getAppSettings', type);
42 });
43 } 30 }
44 31
45 async setup() { 32 async setup() {
@@ -47,9 +34,11 @@ export default class SettingsStore extends Store {
47 34
48 reaction( 35 reaction(
49 () => this.all.app.autohideMenuBar, 36 () => this.all.app.autohideMenuBar,
50 () => remote.getCurrentWindow().setAutoHideMenuBar( 37 () => {
51 this.all.app.autohideMenuBar, 38 const currentWindow = remote.getCurrentWindow();
52 ), 39 currentWindow.setMenuBarVisibility(!this.all.app.autohideMenuBar);
40 currentWindow.autoHideMenuBar = this.all.app.autohideMenuBar;
41 },
53 ); 42 );
54 43
55 reaction( 44 reaction(
@@ -99,27 +88,30 @@ export default class SettingsStore extends Store {
99 } 88 }
100 }); 89 });
101 90
102 // Make sure to lock app on launch if locking feature is enabled 91 ipcRenderer.on('appSettings', (event, resp) => {
103 setTimeout(() => { 92 // Lock on startup if enabled in settings
104 const isLoggedIn = Boolean(localStorage.getItem('authToken')); 93 if (this.startup && resp.type === 'app' && resp.data.lockingFeatureEnabled) {
105 if (isLoggedIn && this.all.app.lockingFeatureEnabled) { 94 this.startup = false;
106 // Disable lock first - otherwise the lock might not get activated corrently 95 process.nextTick(() => {
107 this.actions.settings.update({ 96 // If the app was previously closed unlocked
108 type: 'app', 97 // we can update the `locked` setting and rely on the reaction to lock at startup
109 data: { 98 if (!this.all.app.locked) {
110 locked: false, 99 this.all.app.locked = true;
111 }, 100 } else {
112 }); 101 // Otherwise the app previously closed in a locked state
113 setTimeout(() => { 102 // We can't rely on updating the locked setting for the reaction to be triggered
114 this.actions.settings.update({ 103 // So we lock manually
115 type: 'app', 104 window.ferdi.stores.router.push('/auth/locked');
116 data: { 105 }
117 locked: true, 106 })
118 },
119 });
120 }, 0);
121 } 107 }
122 }, 1000); 108 debug('Get appSettings resolves', resp.type, resp.data);
109 Object.assign(this._fileSystemSettingsCache[resp.type], resp.data);
110 });
111
112 this.fileSystemSettingsTypes.forEach((type) => {
113 ipcRenderer.send('getAppSettings', type);
114 });
123 } 115 }
124 116
125 @computed get app() { 117 @computed get app() {
@@ -248,5 +240,25 @@ export default class SettingsStore extends Store {
248 }, 240 },
249 }); 241 });
250 } 242 }
243
244 if (!this.all.migration['5.4.4-beta.2-settings']) {
245 const {
246 showServiceNavigationBar,
247 } = this.all.app;
248
249 this.actions.settings.update({
250 type: 'app',
251 data: {
252 navigationBarBehaviour: showServiceNavigationBar ? 'custom' : 'never',
253 },
254 });
255
256 this.actions.settings.update({
257 type: 'migration',
258 data: {
259 '5.4.4-beta.2-settings': true,
260 },
261 });
262 }
251 } 263 }
252} 264}
diff --git a/src/styles/settings.scss b/src/styles/settings.scss
index 305450fd2..14cc91f87 100644
--- a/src/styles/settings.scss
+++ b/src/styles/settings.scss
@@ -306,7 +306,15 @@
306 } 306 }
307 307
308 .settings__delete-button { right: 0; } 308 .settings__delete-button { right: 0; }
309 .settings__open-dark-mode-button { right: 0; cursor:pointer; } 309 .settings__open-recipe-file-button {
310 cursor:pointer;
311 margin-right: 10px;
312 }
313 .settings__open-recipe-file-container {
314 margin-top: 20px;
315 display: flex;
316 height: auto !important;
317 }
310 318
311 .settings__empty-state { 319 .settings__empty-state {
312 align-items: center; 320 align-items: center;
diff --git a/src/webview/recipe.js b/src/webview/recipe.js
index e95cae18b..1a22542d8 100644
--- a/src/webview/recipe.js
+++ b/src/webview/recipe.js
@@ -99,6 +99,39 @@ class RecipeController {
99 } catch (err) { 99 } catch (err) {
100 console.error('Recipe initialization failed', err); 100 console.error('Recipe initialization failed', err);
101 } 101 }
102
103 this.loadUserFiles(recipe, config);
104 }
105
106 async loadUserFiles(recipe, config) {
107 const userCss = path.join(recipe.path, 'user.css');
108 if (await fs.exists(userCss)) {
109 const data = await fs.readFile(userCss);
110 const styles = document.createElement('style');
111 styles.innerHTML = data.toString();
112
113 document.querySelector('head').appendChild(styles);
114 }
115
116 const userJs = path.join(recipe.path, 'user.js');
117 if (await fs.exists(userJs)) {
118 const loadUserJs = () => {
119 // eslint-disable-next-line
120 const userJsModule = require(userJs);
121
122 if (typeof userJsModule === 'function') {
123 userJsModule(config);
124 }
125 };
126
127 if (document.readyState !== 'loading') {
128 loadUserJs();
129 } else {
130 document.addEventListener('DOMContentLoaded', () => {
131 loadUserJs();
132 });
133 }
134 }
102 } 135 }
103 136
104 update() { 137 update() {