aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar vantezzen <hello@vantezzen.io>2020-04-17 18:07:20 +0200
committerLibravatar vantezzen <hello@vantezzen.io>2020-04-17 18:07:20 +0200
commitd3bea9800073f864cf407bf0c42ef7c299a91852 (patch)
treec0781876d677f51293333c18cbb637dafab203c2
parentMerge branch 'develop' (diff)
parentPrepare code (diff)
downloadferdium-app-5.5.0-gm.tar.gz
ferdium-app-5.5.0-gm.tar.zst
ferdium-app-5.5.0-gm.zip
Merge branch 'develop'v5.5.0-gm
-rw-r--r--.all-contributorsrc94
-rw-r--r--.github/FUNDING.yml1
-rw-r--r--.github/stale.yml11
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml7
-rw-r--r--README.md150
-rw-r--r--appveyor.yml6
-rw-r--r--electron-builder.yml1
-rw-r--r--gulpfile.babel.js2
-rw-r--r--package-lock.json1139
-rw-r--r--package.json19
-rw-r--r--packages/theme/package-lock.json2
-rw-r--r--packages/theme/src/themes/dark/index.ts2
-rw-r--r--packages/theme/src/themes/default/index.ts3
m---------recipes0
-rw-r--r--src/api/LocalApi.js4
-rw-r--r--src/api/server/LocalApi.js17
-rw-r--r--src/app.js2
-rw-r--r--src/components/AppUpdateInfoBar.js4
-rw-r--r--src/components/auth/AuthLayout.js9
-rw-r--r--src/components/auth/ChangeServer.js80
-rw-r--r--src/components/auth/Login.js4
-rw-r--r--src/components/auth/Signup.js7
-rw-r--r--src/components/auth/Welcome.js4
-rw-r--r--src/components/layout/AppLayout.js9
-rw-r--r--src/components/services/content/ConnectionLostBanner.js119
-rw-r--r--src/components/services/content/ServiceView.js8
-rw-r--r--src/components/services/tabs/TabItem.js2
-rw-r--r--src/components/settings/account/AccountDashboard.js43
-rw-r--r--src/components/settings/navigation/SettingsNavigation.js25
-rw-r--r--src/components/settings/services/EditServiceForm.js31
-rw-r--r--src/components/settings/settings/EditSettingsForm.js168
-rw-r--r--src/components/settings/team/TeamDashboard.js6
-rw-r--r--src/components/ui/FeatureList.js5
-rw-r--r--src/components/ui/Slider.js65
-rw-r--r--src/config.js27
-rw-r--r--src/containers/auth/ChangeServerScreen.js50
-rw-r--r--src/containers/auth/LoginScreen.js1
-rw-r--r--src/containers/auth/SignupScreen.js1
-rw-r--r--src/containers/auth/WelcomeScreen.js1
-rw-r--r--src/containers/settings/EditServiceScreen.js52
-rw-r--r--src/containers/settings/EditSettingsScreen.js80
-rw-r--r--src/containers/settings/TeamScreen.js3
-rw-r--r--src/electron/ipc-api/autoUpdate.js7
-rw-r--r--src/electron/macOSPermissions.js14
-rw-r--r--src/features/announcements/components/AnnouncementScreen.js41
-rw-r--r--src/features/appearance/index.js29
-rw-r--r--src/features/planSelection/components/PlanItem.js19
-rw-r--r--src/features/planSelection/components/PlanSelection.js76
-rw-r--r--src/features/planSelection/containers/PlanSelectionScreen.js4
-rw-r--r--src/features/todos/components/TodosWebview.js27
-rw-r--r--src/features/webControls/containers/WebControlsScreen.js5
-rw-r--r--src/helpers/plan-helpers.js12
-rw-r--r--src/helpers/userAgent-helpers.js45
-rw-r--r--src/i18n/apply-branding.js4
-rw-r--r--src/i18n/locales/af.json31
-rw-r--r--src/i18n/locales/ar.json31
-rw-r--r--src/i18n/locales/bs.json31
-rw-r--r--src/i18n/locales/ca.json31
-rw-r--r--src/i18n/locales/cs.json31
-rw-r--r--src/i18n/locales/da.json31
-rw-r--r--src/i18n/locales/de.json33
-rw-r--r--src/i18n/locales/defaultMessages.json1035
-rw-r--r--src/i18n/locales/el.json31
-rw-r--r--src/i18n/locales/en-US.json33
-rw-r--r--src/i18n/locales/en.json6
-rw-r--r--src/i18n/locales/es.json51
-rw-r--r--src/i18n/locales/fi.json31
-rw-r--r--src/i18n/locales/fr.json33
-rw-r--r--src/i18n/locales/ga.json31
-rw-r--r--src/i18n/locales/he.json31
-rw-r--r--src/i18n/locales/hr.json31
-rw-r--r--src/i18n/locales/hu.json31
-rw-r--r--src/i18n/locales/id.json31
-rw-r--r--src/i18n/locales/it.json35
-rw-r--r--src/i18n/locales/ja.json31
-rw-r--r--src/i18n/locales/ka.json31
-rw-r--r--src/i18n/locales/ko.json31
-rw-r--r--src/i18n/locales/nl-BE.json31
-rw-r--r--src/i18n/locales/nl.json51
-rw-r--r--src/i18n/locales/no.json31
-rw-r--r--src/i18n/locales/pl.json31
-rw-r--r--src/i18n/locales/pt-BR.json57
-rw-r--r--src/i18n/locales/pt.json563
-rw-r--r--src/i18n/locales/ro.json31
-rw-r--r--src/i18n/locales/ru.json31
-rw-r--r--src/i18n/locales/sk.json31
-rw-r--r--src/i18n/locales/sl.json31
-rw-r--r--src/i18n/locales/sr.json31
-rw-r--r--src/i18n/locales/sv.json915
-rw-r--r--src/i18n/locales/tr.json31
-rw-r--r--src/i18n/locales/uk.json55
-rw-r--r--src/i18n/locales/vi.json31
-rw-r--r--src/i18n/locales/zh-CN.json2
-rw-r--r--src/i18n/locales/zh-HANT.json31
-rw-r--r--src/i18n/locales/zh.json169
-rw-r--r--src/i18n/messages/src/components/auth/ChangeServer.json41
-rw-r--r--src/i18n/messages/src/components/services/content/ConnectionBanner.json67
-rw-r--r--src/i18n/messages/src/components/services/content/ConnectionLost.json67
-rw-r--r--src/i18n/messages/src/components/services/content/ConnectionLostBanner.json41
-rw-r--r--src/i18n/messages/src/components/services/content/WebControls.json67
-rw-r--r--src/i18n/messages/src/components/settings/services/EditServiceForm.json45
-rw-r--r--src/i18n/messages/src/components/settings/settings/EditSettingsForm.json142
-rw-r--r--src/i18n/messages/src/components/settings/team/TeamDashboard.json6
-rw-r--r--src/i18n/messages/src/components/ui/FeatureList.json13
-rw-r--r--src/i18n/messages/src/containers/settings/EditServiceScreen.json65
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json179
-rw-r--r--src/i18n/messages/src/features/recipeConnectionLost/components/WebControls.json67
-rw-r--r--src/i18n/messages/src/features/todos/components/TodosWebview.json12
-rw-r--r--src/i18n/messages/src/lib/Menu.json205
-rw-r--r--src/index.js19
m---------src/internal-server0
-rw-r--r--src/lib/Menu.js32
-rw-r--r--src/lib/Tray.js66
-rw-r--r--src/models/Recipe.js4
-rw-r--r--src/models/Service.js59
-rw-r--r--src/scripts/add-crowdin-contributors.js2
-rw-r--r--src/stores/AppStore.js28
-rw-r--r--src/stores/ServicesStore.js80
-rw-r--r--src/stores/SettingsStore.js38
-rw-r--r--src/stores/UIStore.js23
-rw-r--r--src/stores/UserStore.js8
-rw-r--r--src/styles/layout.scss2
-rw-r--r--src/styles/main.scss1
-rw-r--r--src/styles/slider.scss54
-rw-r--r--src/webview/lib/RecipeWebview.js4
-rw-r--r--src/webview/lib/Userscript.js132
-rw-r--r--src/webview/recipe.js15
128 files changed, 5413 insertions, 2594 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 8ec44a2b9..def591b62 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -52,7 +52,8 @@
52 "maintenance", 52 "maintenance",
53 "platform", 53 "platform",
54 "fundingFinding", 54 "fundingFinding",
55 "blog" 55 "blog",
56 "translation"
56 ] 57 ]
57 }, 58 },
58 { 59 {
@@ -407,8 +408,99 @@
407 "avatar_url": "https://avatars3.githubusercontent.com/u/22817873?v=4", 408 "avatar_url": "https://avatars3.githubusercontent.com/u/22817873?v=4",
408 "profile": "http://twitter.com/noemis_exec", 409 "profile": "http://twitter.com/noemis_exec",
409 "contributions": [ 410 "contributions": [
411 "code",
412 "translation"
413 ]
414 },
415 {
416 "login": "gmarec",
417 "name": "gmarec",
418 "avatar_url": "https://avatars2.githubusercontent.com/u/3405028?v=4",
419 "profile": "https://www.monke-agency.com/equipe.html",
420 "contributions": [
410 "code" 421 "code"
411 ] 422 ]
423 },
424 {
425 "login": "127oo1",
426 "name": "127oo1",
427 "avatar_url": "https://www.gravatar.com/avatar/060c722be11da16ae31902e9c98326b2",
428 "profile": "https://crowdin.com/profile/127oo1",
429 "contributions": [
430 "translation"
431 ]
432 },
433 {
434 "login": "ChTBoner",
435 "name": "ChTBoner",
436 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/13273153/small/a810886febf5199cfa1c98644444dea7.jpeg",
437 "profile": "https://crowdin.com/profile/ChTBoner",
438 "contributions": [
439 "translation"
440 ]
441 },
442 {
443 "login": "johanengstrand",
444 "name": "Johan Engstrand",
445 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/14152801/small/fd395f120efca971ca9b34c57fd02cca.png",
446 "profile": "https://crowdin.com/profile/johanengstrand",
447 "contributions": [
448 "translation"
449 ]
450 },
451 {
452 "login": "mrassili",
453 "name": "Marouane R",
454 "avatar_url": "https://avatars0.githubusercontent.com/u/25288435?v=4",
455 "profile": "https://mrassili.com",
456 "contributions": [
457 "code"
458 ]
459 },
460 {
461 "login": "yourcontact",
462 "name": "Roman",
463 "avatar_url": "https://avatars2.githubusercontent.com/u/46404814?v=4",
464 "profile": "https://github.com/yourcontact",
465 "contributions": [
466 "code"
467 ]
468 },
469 {
470 "login": "mahadevans87",
471 "name": "Mahadevan Sreenivasan",
472 "avatar_url": "https://avatars1.githubusercontent.com/u/1255523?v=4",
473 "profile": "https://github.com/mahadevans87",
474 "contributions": [
475 "code"
476 ]
477 },
478 {
479 "login": "JakeSteam",
480 "name": "Jake Lee",
481 "avatar_url": "https://avatars2.githubusercontent.com/u/12380876?v=4",
482 "profile": "https://jakelee.co.uk",
483 "contributions": [
484 "content"
485 ]
486 },
487 {
488 "login": "sampathBlam",
489 "name": "Sampath Kumar Krishnan",
490 "avatar_url": "https://avatars1.githubusercontent.com/u/17728976?v=4",
491 "profile": "https://github.com/sampathBlam",
492 "contributions": [
493 "code"
494 ]
495 },
496 {
497 "login": "saruwman",
498 "name": "saruwman",
499 "avatar_url": "https://avatars2.githubusercontent.com/u/41330038?v=4",
500 "profile": "https://github.com/saruwman",
501 "contributions": [
502 "doc"
503 ]
412 } 504 }
413 ], 505 ],
414 "contributorsPerLine": 6, 506 "contributorsPerLine": 6,
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 5200e7101..879864ac3 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1 +1,2 @@
1github: getferdi
1open_collective: getferdi 2open_collective: getferdi
diff --git a/.github/stale.yml b/.github/stale.yml
index 88f863d74..c6026240d 100644
--- a/.github/stale.yml
+++ b/.github/stale.yml
@@ -1,18 +1,16 @@
1# Configuration for probot-stale - https://github.com/probot/stale 1# Configuration for probot-stale - https://github.com/probot/stale
2 2
3# Number of days of inactivity before an Issue or Pull Request becomes stale 3# Number of days of inactivity before an Issue or Pull Request becomes stale
4daysUntilStale: 365 # 1 year 4daysUntilStale: 60
5 5
6# Number of days of inactivity before an Issue or Pull Request with the stale label is closed. 6# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
7# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. 7# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
8daysUntilClose: -1 # Close the issue almost immediately. See: https://github.com/probot/stale/issues/131 8daysUntilClose: 999999
9 9
10# Issues with these labels will never be considered stale 10# Issues with these labels will never be considered stale
11exemptLabels: 11exemptLabels:
12 - blocker 12 - blocker
13 - security 13 - security
14 - feature request
15 - bug
16 14
17# Label to use when marking an issue as stale 15# Label to use when marking an issue as stale
18staleLabel: "[Status] Stale" 16staleLabel: "[Status] Stale"
@@ -20,8 +18,9 @@ staleLabel: "[Status] Stale"
20# Comment to post when marking an issue as stale. Set to `false` to disable 18# Comment to post when marking an issue as stale. Set to `false` to disable
21markComment: > 19markComment: >
22 This issue has been automatically marked as stale because it has not had 20 This issue has been automatically marked as stale because it has not had
23 recent activity. It will be closed if no further activity occurs. Thank you 21 recent activity. Please check if this issue is still relevant and please close it if it's not.
24 for your contributions. 22 This will make sure that our open issues are actually of use and reduce the list of obsolete issues.
23 Thank you for your contributions.
25 24
26# Comment to post when closing a stale issue. Set to `false` to disable 25# Comment to post when closing a stale issue. Set to `false` to disable
27closeComment: false 26closeComment: false
diff --git a/.gitignore b/.gitignore
index d38c475bf..626cd7ea2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@ yarn-error.log
12npm-debug.log* 12npm-debug.log*
13lerna-debug.log 13lerna-debug.log
14uidev/lib 14uidev/lib
15*.tsbuildinfo \ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 81d250c3c..e0fd7b8ae 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,10 +23,11 @@ before_install:
23install: 23install:
24 - echo do nothing 24 - echo do nothing
25before_script: 25before_script:
26 - npx lerna bootstrap 26 - travis_retry npx lerna bootstrap
27 - npm install node-sass -g 27 - travis_retry npm install node-sass -g
28script: 28script:
29 - travis_wait 100 npm run build 29 - travis_retry travis_wait 100 npm run build
30
30cache: npm 31cache: npm
31 32
32branches: 33branches:
diff --git a/README.md b/README.md
index dcee800a9..ad9c85799 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@
14<p align="center"> 14<p align="center">
15<img alt="GitHub Releases" src="https://img.shields.io/github/downloads/getferdi/ferdi/latest/total?label=Downloads&logo=iCloud&logoColor=%23FFFFFF"> 15<img alt="GitHub Releases" src="https://img.shields.io/github/downloads/getferdi/ferdi/latest/total?label=Downloads&logo=iCloud&logoColor=%23FFFFFF">
16<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> 16<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
17<a href='#contributors-'><img src='https://img.shields.io/badge/contributors-39-default.svg?logo=github' alt='Contributors'/></a> 17<a href='#contributors-'><img src='https://img.shields.io/badge/contributors-49-default.svg?logo=github' alt='Contributors'/></a>
18<!-- ALL-CONTRIBUTORS-BADGE:END --> 18<!-- ALL-CONTRIBUTORS-BADGE:END -->
19<a href="#backers-via-opencollective"><img alt="Open Collective backers" src="https://img.shields.io/opencollective/backers/getferdi?logo=open-collective"></a> 19<a href="#backers-via-opencollective"><img alt="Open Collective backers" src="https://img.shields.io/opencollective/backers/getferdi?logo=open-collective"></a>
20<a href="#sponsors-via-opencollective"><img alt="Open Collective sponsors" src="https://img.shields.io/opencollective/sponsors/getferdi?logo=open-collective"></a> 20<a href="#sponsors-via-opencollective"><img alt="Open Collective sponsors" src="https://img.shields.io/opencollective/sponsors/getferdi?logo=open-collective"></a>
@@ -32,18 +32,14 @@
32- [Ferdi](#ferdi) 32- [Ferdi](#ferdi)
33 - [Table of contents](#table-of-contents) 33 - [Table of contents](#table-of-contents)
34 - [What is Ferdi?](#what-is-ferdi) 34 - [What is Ferdi?](#what-is-ferdi)
35 - [Features](#features)
35 - [What does Ferdi look like?](#what-does-ferdi-look-like) 36 - [What does Ferdi look like?](#what-does-ferdi-look-like)
36 - [Download Ferdi](#download-ferdi) 37 - [Download Ferdi](#download-ferdi)
37 - [Or use homebrew (macOS only)](#or-use-homebrew-macos-only) 38 - [Or use homebrew (macOS only)](#or-use-homebrew-macos-only)
38 - [Or use AUR (Arch Linux)](#or-use-aur-arch-linux) 39 - [Or use AUR (Arch Linux)](#or-use-aur-arch-linux)
39 - [Ferdi-specific Features](#ferdi-specific-features) 40 - [What makes Ferdi different from Franz?](#what-makes-ferdi-different-from-franz)
40 - [Development](#development) 41 - [Development](#development)
41 - [Install OS dependencies](#install-os-dependencies) 42 - [Install OS dependencies](#install-os-dependencies)
42 - [Node.js](#nodejs)
43 - [Git](#git)
44 - [Debian/Ubuntu](#debianubuntu)
45 - [Fedora](#fedora)
46 - [Windows](#windows)
47 - [Clone repository with submodule](#clone-repository-with-submodule) 43 - [Clone repository with submodule](#clone-repository-with-submodule)
48 - [Install dependencies](#install-dependencies) 44 - [Install dependencies](#install-dependencies)
49 - [Fix native modules to match current electron node version](#fix-native-modules-to-match-current-electron-node-version) 45 - [Fix native modules to match current electron node version](#fix-native-modules-to-match-current-electron-node-version)
@@ -57,7 +53,22 @@
57 53
58### What is Ferdi? 54### What is Ferdi?
59 55
60Ferdi is a messaging browser that allows you to combine your favorite messaging services into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additonal features and doesn't restrict its usage! Ferdi is compatible with your existing Franz account so you can continue right where you left off. Find out more about Ferdi and its features on [getferdi.com](https://getferdi.com). 56Ferdi is a messaging browser that allows you to combine your favorite messaging services into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additional features and doesn't restrict its usage! Ferdi is compatible with your existing Franz account so you can continue right where you left off. Find out more about Ferdi and its features on [getferdi.com](https://getferdi.com).
57
58## Features
59- [x] Ferdi puts all your messaging services into one place
60- [x] Native support for 100+ services
61- [x] Workspaces to keep your personal and work life separated
62- [x] Support for multiple accounts on any service
63- [x] Dark Mode support for all of your services
64- [x] Optional cloud sync to keep your services synchronized between devices
65- [x] Better control over when you get which notifications
66- [x] Cross-platform so you can view your services on all your computers
67- [x] Full proxy support to work in every network environment
68- [x] Ferdi speaks your language: Support for 20+ languages
69
70...and best of all:
71- [x] Its completely free! There are no restrictions on features, no paywalls
61 72
62### What does Ferdi look like? 73### What does Ferdi look like?
63 74
@@ -87,51 +98,86 @@ You can download Ferdi for Windows, Mac and Linux on [Ferdi's download page](htt
87 98
88### Or use AUR (Arch Linux) 99### Or use AUR (Arch Linux)
89 100
90Ferdi has three seperate AUR packages you can use: 101Ferdi has three separate AUR packages you can use:
91- **[ferdi](https://aur.archlinux.org/packages/ferdi/)**: Uses your system electron version to run the latest release - this version will work best on most systems. 102- **[ferdi](https://aur.archlinux.org/packages/ferdi/)**: Uses your system electron version to run the latest release - this version will work best on most systems.
92- **[ferdi-bin](https://aur.archlinux.org/packages/ferdi-bin/)**: Uses the latest Fedora release and extracts it to Arch. Use this version if you are having trouble with the `ferdi` package. 103- **[ferdi-bin](https://aur.archlinux.org/packages/ferdi-bin/)**: Uses the latest Fedora release and extracts it to Arch. Use this version if you are having trouble with the `ferdi` package.
93- **[ferdi-git](https://aur.archlinux.org/packages/ferdi-git/)**: Uses your system electron version to run the latest commit from the develop branch and may be unstable but may also give you features that are not yet available in other versions. Please only use `ferdi-git` if you accept these risks. 104- **[ferdi-git](https://aur.archlinux.org/packages/ferdi-git/)**: Uses your system electron version to run the latest commit from the develop branch and may be unstable but may also give you features that are not yet available in other versions. Please only use `ferdi-git` if you accept these risks.
94 105
95If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`. 106If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
96 107
97## Ferdi-specific Features 108## What makes Ferdi different from Franz?
98 109
110### Removes unproductive paywalls and other other interruptions
99- [x] Removes the counter-productive fullscreen app delay inviting users to upgrade 111- [x] Removes the counter-productive fullscreen app delay inviting users to upgrade
100- [x] Removes pages begging you to donate after registration 112- [x] Removes pages begging you to donate after registration
101- [x] Remove "Franz is better together" popup 113- [x] Removes "Franz is better together" popup
102- [x] Remove bug that would incorrectly display unread messages count on some services (more info in [7566ccd](https://github.com/getferdi/ferdi/commit/7566ccd))
103- [x] Makes all users Premium by default ([#15](https://github.com/getferdi/ferdi/issues/15)) 114- [x] Makes all users Premium by default ([#15](https://github.com/getferdi/ferdi/issues/15))
104- [x] Using the Ferdi API instead of Franz's servers 115
105- [x] Upgrading to Electron 7 116### Adds features to increase your productivity
106- [x] Add several new services 117- [x] Adds 30+ new services
107- [x] [Add option to change server to a custom](https://github.com/getferdi/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/getferdi/server) 118- [x] Adds "Find in Page" feature ([#67](https://github.com/getferdi/ferdi/issues/67))
108- [x] Add option to use Ferdi without an account ([#5](https://github.com/getferdi/ferdi/issues/5)) 119- [x] Adds an option to keep individual workspaces always loaded ([#37](https://github.com/getferdi/ferdi/issues/37))
109- [x] Add "Private Notification"-Mode, that hides message content from notifications ([franz#879](https://github.com/meetfranz/franz/issues/879)) 120- [x] Adds "Quick Switch" feature to help you navigate a long list of services (similar to Rambox's [Quick Switcher](https://rambox.pro/#feature-details/quick_switcher))
110- [x] Add Password Lock feature to keep your messages protected ([#41](https://github.com/getferdi/ferdi/issues/41), [franz#810](https://github.com/meetfranz/franz/issues/810), [franz#950](https://github.com/meetfranz/franz/issues/950), [franz#1430](https://github.com/meetfranz/franz/issues/1430)) 121- [x] Adds "Service Hibernation" that will automatically unload services when they are unused to keep your computer running fast
111- [x] Add an option to keep individual workspaces always loaded ([#37](https://github.com/getferdi/ferdi/issues/37))
112- [x] Add Universal Dark Mode via the [DarkReader extension](https://github.com/darkreader/darkreader) ([#71](https://github.com/getferdi/ferdi/issues/71))
113- [x] Add adaptable Dark Mode that will respect the system's Dark Mode setting ([#173](https://github.com/getferdi/ferdi/issues/173))
114- [x] Add an option to auto-hide the menubar ([#7](https://github.com/getferdi/ferdi/issues/7), [franz#833](https://github.com/meetfranz/franz/issues/833))
115- [x] Add "Quick Switch" feature to help you navigate a long list of services (similar to Rambox's [Quick Switcher](https://rambox.pro/#feature-details/quick_switcher))
116- [x] Add "Service Hibernation" that will automatically unload services when they are unused
117- [x] Add "Scheduled Do-not-Disturb" feature in which you won't get notifications (similar to Rambox's [Work Hours](https://rambox.pro/#feature-details/work_hours))
118- [x] Add CTRL+↠and CTRL+→ shortcuts and menu options to go back and forward in the service browsing history([#39](https://github.com/getferdi/ferdi/issues/39))
119- [x] Add option to show a browser-like navigation bar on all services
120- [x] Add option to change accent color
121- [x] Add local [recipe repository](https://github.com/getferdi/recipes) that removes the need of downloading recipes from a remote server
122- [x] Add portable version for Windows
123- [x] Add Process Manager to find services using a lot of resources
124- [x] Add "npm run prepare-code" command for development to lint and beautify code
125- [x] Add button to open darkmode.css for a service
126- [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)) 122- [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))
127- [x] Allow SVGs for service custom icon 123- [x] Adds Process Manager to find services using a lot of resources
128- [x] Switch to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) to improve application size 124- [x] Adds CTRL+↠and CTRL+→ shortcuts and menu options to go back and forward in the service browsing history([#39](https://github.com/getferdi/ferdi/issues/39))
129- [x] Improve "About Ferdi" screen to better display versions 125- [x] Adds "Scheduled Do-not-Disturb" feature in which you won't get notifications (similar to Rambox's [Work Hours](https://rambox.pro/#feature-details/work_hours))
130- [x] Minifying build files to improve app size 126- [x] Allows you to [use any Todo service inside "Franz Todo" panel](https://github.com/getferdi/ferdi/wiki/Custom-Todo) (e.g. Todoist via https://todoist.com/app) instead of being limited to using Franz Todo
131- [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) 127
132- [x] Makes RocketChat self-hosted generally available ([#6](https://github.com/getferdi/ferdi/issues/6)) 128### Adds features to improve your privacy
129- [x] [Adds option to change server to a custom](https://github.com/getferdi/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/getferdi/server)
130- [x] Adds option to use Ferdi without an account ([#5](https://github.com/getferdi/ferdi/issues/5))
131- [x] Uses the Ferdi API instead of Franz's servers
132- [x] Adds "Private Notification"-Mode, that hides message content from notifications ([franz#879](https://github.com/meetfranz/franz/issues/879))
133- [x] Adds Password Lock feature to keep your messages protected ([#41](https://github.com/getferdi/ferdi/issues/41), [franz#810](https://github.com/meetfranz/franz/issues/810), [franz#950](https://github.com/meetfranz/franz/issues/950), [franz#1430](https://github.com/meetfranz/franz/issues/1430))
134- [x] Adds support for unlocking with Touch ID ([#367](https://github.com/getferdi/ferdi/issues/367))
135- [x] Adds inactivity lock that automatically locks Ferdi after a specified amount of time ([#179](https://github.com/getferdi/ferdi/issues/179))
136- [x] Adds local [recipe repository](https://github.com/getferdi/recipes) that removes the need of downloading recipes from a remote server
137
138### Adds features to improve your experience using Ferdi
139- [x] Adds Universal Dark Mode via the [DarkReader extension](https://github.com/darkreader/darkreader) ([#71](https://github.com/getferdi/ferdi/issues/71))
140- [x] Adds adaptable Dark Mode that will respect the system's Dark Mode setting ([#173](https://github.com/getferdi/ferdi/issues/173))
141- [x] Adds ability to change the services icons size and sidebar width ([#153](https://github.com/getferdi/ferdi/issues/153))
142- [x] Adds an option to auto-hide the menubar ([#7](https://github.com/getferdi/ferdi/issues/7), [franz#833](https://github.com/meetfranz/franz/issues/833))
143- [x] Enhances system tray icon behaviour ([#307](https://github.com/getferdi/ferdi/issues/307))
144- [x] Adds option to show a browser-like navigation bar on all services
145- [x] Adds option to change accent color
146- [x] Reflects your currently opened service name to the window title to improve support for Password Managers ([#213](https://github.com/getferdi/ferdi/issues/213))
147- [x] Allows using SVGs for service custom icon
148- [x] Adds button to open darkmode.css for a service
149- [x] Improves "About Ferdi" screen to better display versions
150- [x] Adds option to start Ferdi in system tray ([#331](https://github.com/getferdi/ferdi/issues/331))
151- [x] Fixes and enhances context menu (#357 #413 #452 #354 #227)
152- [x] Adds better support for macOS dark mode
153- [x] Adds option to disable reload of services after resuming Ferdi ([#442](https://github.com/getferdi/ferdi/issues/442))
133- [x] Comes with a custom branding proper to Ferdi 154- [x] Comes with a custom branding proper to Ferdi
134- [x] UI improvements 155- [x] Adds better separation in settings
156- [x] Adds various other UI improvements
157- [x] Improves documentation of development so more developers can help making Ferdi even better
158
159### Removed bugs
160- [x] Fixes bug that would incorrectly display unread messages count on some services (more info in [7566ccd](https://github.com/getferdi/ferdi/commit/7566ccd))
161- [x] Fixes zooming
162- [x] Fixes login problems in Google services
163- [x] Fixes missing Slack services custom icons ([#290](https://github.com/getferdi/ferdi/issues/290))
164- [x] Fixes bug that marked valid domains as invalid ([#276](https://github.com/getferdi/ferdi/issues/276))
165- [x] Fixes microphone/camera access on some versions of macOS ([#193](https://github.com/getferdi/ferdi/issues/193))
166
167### Adds new platforms
168- [x] Adds portable version for Windows so you can use Ferdi without even installing it
169- [x] Adds Arch Linux AUR packages
170- [x] Adds Ferdi as a Flatpak on Flathub ([#323](https://github.com/getferdi/ferdi/issues/323))
171
172### Adds internal changes
173- [x] Upgrades to Electron 8
174- [x] Switches to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) to improve application size
175- [x] Minifies build files to improve app size
176- [x] Adds "npm run prepare-code" command for development to lint and beautify code
177- [x] Fixes incorrect body closing tag ([#330](https://github.com/getferdi/ferdi/issues/330))
178- [x] Uses CrowdIn to improve i18n
179
180> Thanks to all our [contributors](#contributors-) who helped realize all these amazing features! 💖
135 181
136## Development 182## Development
137 183
@@ -139,7 +185,7 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
139 185
140#### Node.js 186#### Node.js
141 187
142Please make sure you are running NodeJS v10 ([v10.16.3](https://nodejs.org/dist/v10.16.3/) suggested). Versions above will throw an errow when trying to install due to an [old fsevent dependency](https://github.com/fsevents/fsevents/issues/278). 188Please make sure you are running NodeJS v10 or above.
143 189
144#### Git 190#### Git
145 191
@@ -181,7 +227,7 @@ Run the following command to install all dependencies, and link sibling modules
181$ npx lerna bootstrap 227$ npx lerna bootstrap
182``` 228```
183 229
184If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. 230If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. If you encounter the `gyp: No Xcode or CLT version` error on macOS at this step, please have a look [here](https://medium.com/flawless-app-stories/gyp-no-xcode-or-clt-version-detected-macos-catalina-anansewaa-38b536389e8d).
185 231
186### Fix native modules to match current electron node version 232### Fix native modules to match current electron node version
187 233
@@ -239,7 +285,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
239<table> 285<table>
240 <tr> 286 <tr>
241 <td align="center"><a href="https://vantezzen.io"><img src="https://avatars2.githubusercontent.com/u/10333196?v=4" width="40px;" alt=""/><br /><sub><b>Bennett</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=vantezzen" title="Code">💻</a> <a href="#design-vantezzen" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=vantezzen" title="Documentation">📖</a> <a href="#ideas-vantezzen" title="Ideas, Planning, & Feedback">🤔</a> <a href="#translation-vantezzen" title="Translation">ðŸŒ</a> <a href="#example-vantezzen" title="Examples">💡</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Avantezzen" title="Bug reports">ðŸ›</a> <a href="#content-vantezzen" title="Content">🖋</a> <a href="#infra-vantezzen" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#userTesting-vantezzen" title="User Testing">📓</a> <a href="#question-vantezzen" title="Answering Questions">💬</a> <a href="#projectManagement-vantezzen" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/pulls?q=is%3Apr+reviewed-by%3Avantezzen" title="Reviewed Pull Requests">👀</a></td> 287 <td align="center"><a href="https://vantezzen.io"><img src="https://avatars2.githubusercontent.com/u/10333196?v=4" width="40px;" alt=""/><br /><sub><b>Bennett</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=vantezzen" title="Code">💻</a> <a href="#design-vantezzen" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=vantezzen" title="Documentation">📖</a> <a href="#ideas-vantezzen" title="Ideas, Planning, & Feedback">🤔</a> <a href="#translation-vantezzen" title="Translation">ðŸŒ</a> <a href="#example-vantezzen" title="Examples">💡</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Avantezzen" title="Bug reports">ðŸ›</a> <a href="#content-vantezzen" title="Content">🖋</a> <a href="#infra-vantezzen" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#userTesting-vantezzen" title="User Testing">📓</a> <a href="#question-vantezzen" title="Answering Questions">💬</a> <a href="#projectManagement-vantezzen" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/pulls?q=is%3Apr+reviewed-by%3Avantezzen" title="Reviewed Pull Requests">👀</a></td>
242 <td align="center"><a href="https://twitter.com/kytwb"><img src="https://avatars0.githubusercontent.com/u/412895?v=4" width="40px;" alt=""/><br /><sub><b>Amine Mouafik</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=kytwb" title="Code">💻</a> <a href="#design-kytwb" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=kytwb" title="Documentation">📖</a> <a href="#ideas-kytwb" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Akytwb" title="Bug reports">ðŸ›</a> <a href="#content-kytwb" title="Content">🖋</a> <a href="#infra-kytwb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#userTesting-kytwb" title="User Testing">📓</a> <a href="#question-kytwb" title="Answering Questions">💬</a> <a href="#projectManagement-kytwb" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/pulls?q=is%3Apr+reviewed-by%3Akytwb" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-kytwb" title="Maintenance">🚧</a> <a href="#platform-kytwb" title="Packaging/porting to new platform">📦</a> <a href="#fundingFinding-kytwb" title="Funding Finding">ðŸ”</a> <a href="#blog-kytwb" title="Blogposts">ðŸ“</a></td> 288 <td align="center"><a href="https://twitter.com/kytwb"><img src="https://avatars0.githubusercontent.com/u/412895?v=4" width="40px;" alt=""/><br /><sub><b>Amine Mouafik</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=kytwb" title="Code">💻</a> <a href="#design-kytwb" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=kytwb" title="Documentation">📖</a> <a href="#ideas-kytwb" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Akytwb" title="Bug reports">ðŸ›</a> <a href="#content-kytwb" title="Content">🖋</a> <a href="#infra-kytwb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#userTesting-kytwb" title="User Testing">📓</a> <a href="#question-kytwb" title="Answering Questions">💬</a> <a href="#projectManagement-kytwb" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/pulls?q=is%3Apr+reviewed-by%3Akytwb" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-kytwb" title="Maintenance">🚧</a> <a href="#platform-kytwb" title="Packaging/porting to new platform">📦</a> <a href="#fundingFinding-kytwb" title="Funding Finding">ðŸ”</a> <a href="#blog-kytwb" title="Blogposts">ðŸ“</a> <a href="#translation-kytwb" title="Translation">ðŸŒ</a></td>
243 <td align="center"><a href="http://www.adlk.io"><img src="https://avatars1.githubusercontent.com/u/3265004?v=4" width="40px;" alt=""/><br /><sub><b>Stefan Malzner</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Code">💻</a> <a href="#content-adlk" title="Content">🖋</a> <a href="#design-adlk" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Documentation">📖</a> <a href="#ideas-adlk" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-adlk" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#projectManagement-adlk" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Tests">âš ï¸</a> <a href="#translation-adlk" title="Translation">ðŸŒ</a></td> 289 <td align="center"><a href="http://www.adlk.io"><img src="https://avatars1.githubusercontent.com/u/3265004?v=4" width="40px;" alt=""/><br /><sub><b>Stefan Malzner</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Code">💻</a> <a href="#content-adlk" title="Content">🖋</a> <a href="#design-adlk" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Documentation">📖</a> <a href="#ideas-adlk" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-adlk" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#projectManagement-adlk" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Tests">âš ï¸</a> <a href="#translation-adlk" title="Translation">ðŸŒ</a></td>
244 <td align="center"><a href="https://github.com/Makazzz"><img src="https://avatars2.githubusercontent.com/u/49844464?v=4" width="40px;" alt=""/><br /><sub><b>Makazzz</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3AMakazzz" title="Bug reports">ðŸ›</a> <a href="https://github.com/getferdi/ferdi/commits?author=Makazzz" title="Code">💻</a> <a href="#translation-Makazzz" title="Translation">ðŸŒ</a> <a href="#content-Makazzz" title="Content">🖋</a> <a href="https://github.com/getferdi/ferdi/commits?author=Makazzz" title="Documentation">📖</a> <a href="#platform-Makazzz" title="Packaging/porting to new platform">📦</a></td> 290 <td align="center"><a href="https://github.com/Makazzz"><img src="https://avatars2.githubusercontent.com/u/49844464?v=4" width="40px;" alt=""/><br /><sub><b>Makazzz</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3AMakazzz" title="Bug reports">ðŸ›</a> <a href="https://github.com/getferdi/ferdi/commits?author=Makazzz" title="Code">💻</a> <a href="#translation-Makazzz" title="Translation">ðŸŒ</a> <a href="#content-Makazzz" title="Content">🖋</a> <a href="https://github.com/getferdi/ferdi/commits?author=Makazzz" title="Documentation">📖</a> <a href="#platform-Makazzz" title="Packaging/porting to new platform">📦</a></td>
245 <td align="center"><a href="http://seriesgt.com"><img src="https://avatars3.githubusercontent.com/u/5977640?v=4" width="40px;" alt=""/><br /><sub><b>ZeroCool</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=ZeroCool940711" title="Code">💻</a> <a href="#ideas-ZeroCool940711" title="Ideas, Planning, & Feedback">🤔</a></td> 291 <td align="center"><a href="http://seriesgt.com"><img src="https://avatars3.githubusercontent.com/u/5977640?v=4" width="40px;" alt=""/><br /><sub><b>ZeroCool</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=ZeroCool940711" title="Code">💻</a> <a href="#ideas-ZeroCool940711" title="Ideas, Planning, & Feedback">🤔</a></td>
@@ -288,7 +334,21 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
288 <tr> 334 <tr>
289 <td align="center"><a href="https://crowdin.com/profile/Pusnow"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13514833/small/65f0b45587cc7e34f2827830cd324b16.jpeg" width="40px;" alt=""/><br /><sub><b>Wonsup Yoon</b></sub></a><br /><a href="#translation-Pusnow" title="Translation">ðŸŒ</a></td> 335 <td align="center"><a href="https://crowdin.com/profile/Pusnow"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13514833/small/65f0b45587cc7e34f2827830cd324b16.jpeg" width="40px;" alt=""/><br /><sub><b>Wonsup Yoon</b></sub></a><br /><a href="#translation-Pusnow" title="Translation">ðŸŒ</a></td>
290 <td align="center"><a href="https://crowdin.com/profile/zutt"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13320003/small/50fdf9f8c7e54a446925bd79696ea625.JPG" width="40px;" alt=""/><br /><sub><b>zutt</b></sub></a><br /><a href="#translation-zutt" title="Translation">ðŸŒ</a></td> 336 <td align="center"><a href="https://crowdin.com/profile/zutt"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13320003/small/50fdf9f8c7e54a446925bd79696ea625.JPG" width="40px;" alt=""/><br /><sub><b>zutt</b></sub></a><br /><a href="#translation-zutt" title="Translation">ðŸŒ</a></td>
291 <td align="center"><a href="http://twitter.com/noemis_exec"><img src="https://avatars3.githubusercontent.com/u/22817873?v=4" width="40px;" alt=""/><br /><sub><b>n0emis</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=n0emis" title="Code">💻</a></td> 337 <td align="center"><a href="http://twitter.com/noemis_exec"><img src="https://avatars3.githubusercontent.com/u/22817873?v=4" width="40px;" alt=""/><br /><sub><b>n0emis</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=n0emis" title="Code">💻</a> <a href="#translation-n0emis" title="Translation">ðŸŒ</a></td>
338 <td align="center"><a href="https://www.monke-agency.com/equipe.html"><img src="https://avatars2.githubusercontent.com/u/3405028?v=4" width="40px;" alt=""/><br /><sub><b>gmarec</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=gmarec" title="Code">💻</a></td>
339 <td align="center"><a href="https://crowdin.com/profile/127oo1"><img src="https://www.gravatar.com/avatar/060c722be11da16ae31902e9c98326b2" width="40px;" alt=""/><br /><sub><b>127oo1</b></sub></a><br /><a href="#translation-127oo1" title="Translation">ðŸŒ</a></td>
340 <td align="center"><a href="https://crowdin.com/profile/ChTBoner"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13273153/small/a810886febf5199cfa1c98644444dea7.jpeg" width="40px;" alt=""/><br /><sub><b>ChTBoner</b></sub></a><br /><a href="#translation-ChTBoner" title="Translation">ðŸŒ</a></td>
341 </tr>
342 <tr>
343 <td align="center"><a href="https://crowdin.com/profile/johanengstrand"><img src="https://crowdin-static.downloads.crowdin.com/avatar/14152801/small/fd395f120efca971ca9b34c57fd02cca.png" width="40px;" alt=""/><br /><sub><b>Johan Engstrand</b></sub></a><br /><a href="#translation-johanengstrand" title="Translation">ðŸŒ</a></td>
344 <td align="center"><a href="https://mrassili.com"><img src="https://avatars0.githubusercontent.com/u/25288435?v=4" width="40px;" alt=""/><br /><sub><b>Marouane R</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=mrassili" title="Code">💻</a></td>
345 <td align="center"><a href="https://github.com/yourcontact"><img src="https://avatars2.githubusercontent.com/u/46404814?v=4" width="40px;" alt=""/><br /><sub><b>Roman</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=yourcontact" title="Code">💻</a></td>
346 <td align="center"><a href="https://github.com/mahadevans87"><img src="https://avatars1.githubusercontent.com/u/1255523?v=4" width="40px;" alt=""/><br /><sub><b>Mahadevan Sreenivasan</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=mahadevans87" title="Code">💻</a></td>
347 <td align="center"><a href="https://jakelee.co.uk"><img src="https://avatars2.githubusercontent.com/u/12380876?v=4" width="40px;" alt=""/><br /><sub><b>Jake Lee</b></sub></a><br /><a href="#content-JakeSteam" title="Content">🖋</a></td>
348 <td align="center"><a href="https://github.com/sampathBlam"><img src="https://avatars1.githubusercontent.com/u/17728976?v=4" width="40px;" alt=""/><br /><sub><b>Sampath Kumar Krishnan</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=sampathBlam" title="Code">💻</a></td>
349 </tr>
350 <tr>
351 <td align="center"><a href="https://github.com/saruwman"><img src="https://avatars2.githubusercontent.com/u/41330038?v=4" width="40px;" alt=""/><br /><sub><b>saruwman</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=saruwman" title="Documentation">📖</a></td>
292 </tr> 352 </tr>
293</table> 353</table>
294 354
diff --git a/appveyor.yml b/appveyor.yml
index 2499b324b..1985835ef 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -4,9 +4,9 @@ environment:
4version: 5.4.1-beta.4.{build} 4version: 5.4.1-beta.4.{build}
5 5
6install: 6install:
7 - git submodule update --init --recursive 7 - appveyor-retry git submodule update --init --recursive
8 - ps: Install-Product node 10 8 - ps: Install-Product node 10
9 - npx lerna bootstrap 9 - appveyor-retry npx lerna bootstrap
10 10
11cache: 11cache:
12 - '%APPDATA%\npm-cache' 12 - '%APPDATA%\npm-cache'
@@ -16,7 +16,7 @@ before_build:
16 - cmd: set NODE_ENV=production 16 - cmd: set NODE_ENV=production
17 17
18build_script: 18build_script:
19 - npm run build 19 - appveyor-retry npm run build
20 20
21branches: 21branches:
22 except: 22 except:
diff --git a/electron-builder.yml b/electron-builder.yml
index 23625c825..330fc64e1 100644
--- a/electron-builder.yml
+++ b/electron-builder.yml
@@ -60,4 +60,5 @@ protocols:
60 60
61asarUnpack: 61asarUnpack:
62 - ./recipes 62 - ./recipes
63 - ./node_modules/mac-screen-capture-permissions
63 - ./assets/images/taskbar 64 - ./assets/images/taskbar
diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index dda198c18..bf3b85083 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -41,7 +41,7 @@ const paths = {
41 tmp: '.tmp', 41 tmp: '.tmp',
42 package: `out/${config.version}`, 42 package: `out/${config.version}`,
43 recipes: { 43 recipes: {
44 src: 'recipes/*.tar.gz', 44 src: 'recipes/archives/*.tar.gz',
45 dest: 'build/recipes/', 45 dest: 'build/recipes/',
46 }, 46 },
47 recipeInfo: { 47 recipeInfo: {
diff --git a/package-lock.json b/package-lock.json
index fd434bb90..b1aa4e88d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2592,9 +2592,9 @@
2592 } 2592 }
2593 }, 2593 },
2594 "@electron/get": { 2594 "@electron/get": {
2595 "version": "1.7.6", 2595 "version": "1.9.0",
2596 "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.6.tgz", 2596 "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.9.0.tgz",
2597 "integrity": "sha512-zlNikt6ziVLNcm4lly1L4y62fJd/eYpEBjF5DiV/VAQq2vdPjH4sbUphXt9upmHz86lAhAj8g9lTnWrxJ/KBZw==", 2597 "integrity": "sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw==",
2598 "dev": true, 2598 "dev": true,
2599 "requires": { 2599 "requires": {
2600 "debug": "^4.1.1", 2600 "debug": "^4.1.1",
@@ -2603,6 +2603,7 @@
2603 "global-agent": "^2.0.2", 2603 "global-agent": "^2.0.2",
2604 "global-tunnel-ng": "^2.7.1", 2604 "global-tunnel-ng": "^2.7.1",
2605 "got": "^9.6.0", 2605 "got": "^9.6.0",
2606 "progress": "^2.0.3",
2606 "sanitize-filename": "^1.6.2", 2607 "sanitize-filename": "^1.6.2",
2607 "sumchecker": "^3.0.1" 2608 "sumchecker": "^3.0.1"
2608 }, 2609 },
@@ -4763,6 +4764,15 @@
4763 "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", 4764 "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
4764 "dev": true 4765 "dev": true
4765 }, 4766 },
4767 "@types/fs-extra": {
4768 "version": "8.1.0",
4769 "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.0.tgz",
4770 "integrity": "sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==",
4771 "dev": true,
4772 "requires": {
4773 "@types/node": "*"
4774 }
4775 },
4766 "@types/glob": { 4776 "@types/glob": {
4767 "version": "7.1.1", 4777 "version": "7.1.1",
4768 "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", 4778 "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
@@ -4824,8 +4834,7 @@
4824 "@types/node": { 4834 "@types/node": {
4825 "version": "12.7.5", 4835 "version": "12.7.5",
4826 "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.5.tgz", 4836 "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.5.tgz",
4827 "integrity": "sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w==", 4837 "integrity": "sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w=="
4828 "dev": true
4829 }, 4838 },
4830 "@types/prop-types": { 4839 "@types/prop-types": {
4831 "version": "15.7.3", 4840 "version": "15.7.3",
@@ -4865,9 +4874,12 @@
4865 } 4874 }
4866 }, 4875 },
4867 "@types/semver": { 4876 "@types/semver": {
4868 "version": "6.2.0", 4877 "version": "7.1.0",
4869 "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.0.tgz", 4878 "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.1.0.tgz",
4870 "integrity": "sha512-1OzrNb4RuAzIT7wHSsgZRlMBlNsJl+do6UblR7JMW4oB7bbR+uBEYtUh7gEc/jM84GGilh68lSOokyM/zNUlBA==" 4879 "integrity": "sha512-pOKLaubrAEMUItGNpgwl0HMFPrSAFic8oSVIvfu1UwcgGNmNyK9gyhBHKmBnUTwwVvpZfkzUC0GaMgnL6P86uA==",
4880 "requires": {
4881 "@types/node": "*"
4882 }
4871 }, 4883 },
4872 "@types/stack-utils": { 4884 "@types/stack-utils": {
4873 "version": "1.0.1", 4885 "version": "1.0.1",
@@ -5759,39 +5771,39 @@
5759 } 5771 }
5760 }, 5772 },
5761 "app-builder-bin": { 5773 "app-builder-bin": {
5762 "version": "3.4.3", 5774 "version": "3.5.5",
5763 "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.4.3.tgz", 5775 "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.5.tgz",
5764 "integrity": "sha512-qMhayIwi3juerQEVJMQ76trObEbfQT0nhUdxZz9a26/3NLT3pE6awmQ8S1cEnrGugaaM5gYqR8OElcDezfmEsg==", 5776 "integrity": "sha512-ZcHzJ9Xl+azPqdKzXZKdRZmkNmbxHHZyl4cbobNf8qMQpoPChpcov8riVrZSbu/0cT/JqJ8LOwJjy1OAwbChaQ==",
5765 "dev": true 5777 "dev": true
5766 }, 5778 },
5767 "app-builder-lib": { 5779 "app-builder-lib": {
5768 "version": "21.2.0", 5780 "version": "22.4.1",
5769 "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-21.2.0.tgz", 5781 "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.4.1.tgz",
5770 "integrity": "sha512-aOX/nv77/Bti6NymJDg7p9T067xD8m1ipIEJR7B4Mm1GsJWpMm9PZdXtCRiMNRjHtQS5KIljT0g17781y6qn5A==", 5782 "integrity": "sha512-epwUzIM+2pcdy/If9koTP74CKx4v7xGPj75a2Z5cM4rrGN9yVZ3eDUBbfF0e0qE4Qmcv5pd0BAZJ26bGm8NWsQ==",
5771 "dev": true, 5783 "dev": true,
5772 "requires": { 5784 "requires": {
5773 "7zip-bin": "~5.0.3", 5785 "7zip-bin": "~5.0.3",
5774 "@develar/schema-utils": "~2.1.0", 5786 "@develar/schema-utils": "~2.1.0",
5775 "async-exit-hook": "^2.0.1", 5787 "async-exit-hook": "^2.0.1",
5776 "bluebird-lst": "^1.0.9", 5788 "bluebird-lst": "^1.0.9",
5777 "builder-util": "21.2.0", 5789 "builder-util": "22.4.1",
5778 "builder-util-runtime": "8.3.0", 5790 "builder-util-runtime": "8.6.2",
5779 "chromium-pickle-js": "^0.2.0", 5791 "chromium-pickle-js": "^0.2.0",
5780 "debug": "^4.1.1", 5792 "debug": "^4.1.1",
5781 "ejs": "^2.6.2", 5793 "ejs": "^3.0.1",
5782 "electron-publish": "21.2.0", 5794 "electron-publish": "22.4.1",
5783 "fs-extra": "^8.1.0", 5795 "fs-extra": "^8.1.0",
5784 "hosted-git-info": "^2.7.1", 5796 "hosted-git-info": "^3.0.4",
5785 "is-ci": "^2.0.0", 5797 "is-ci": "^2.0.0",
5786 "isbinaryfile": "^4.0.2", 5798 "isbinaryfile": "^4.0.4",
5787 "js-yaml": "^3.13.1", 5799 "js-yaml": "^3.13.1",
5788 "lazy-val": "^1.0.4", 5800 "lazy-val": "^1.0.4",
5789 "minimatch": "^3.0.4", 5801 "minimatch": "^3.0.4",
5790 "normalize-package-data": "^2.5.0", 5802 "normalize-package-data": "^2.5.0",
5791 "read-config-file": "5.0.0", 5803 "read-config-file": "5.0.2",
5792 "sanitize-filename": "^1.6.2", 5804 "sanitize-filename": "^1.6.3",
5793 "semver": "^6.3.0", 5805 "semver": "^7.1.3",
5794 "temp-file": "^3.3.4" 5806 "temp-file": "^3.3.7"
5795 }, 5807 },
5796 "dependencies": { 5808 "dependencies": {
5797 "fs-extra": { 5809 "fs-extra": {
@@ -5805,10 +5817,28 @@
5805 "universalify": "^0.1.0" 5817 "universalify": "^0.1.0"
5806 } 5818 }
5807 }, 5819 },
5820 "hosted-git-info": {
5821 "version": "3.0.4",
5822 "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz",
5823 "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==",
5824 "dev": true,
5825 "requires": {
5826 "lru-cache": "^5.1.1"
5827 }
5828 },
5829 "lru-cache": {
5830 "version": "5.1.1",
5831 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
5832 "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
5833 "dev": true,
5834 "requires": {
5835 "yallist": "^3.0.2"
5836 }
5837 },
5808 "semver": { 5838 "semver": {
5809 "version": "6.3.0", 5839 "version": "7.1.3",
5810 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 5840 "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
5811 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 5841 "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
5812 "dev": true 5842 "dev": true
5813 } 5843 }
5814 } 5844 }
@@ -6757,46 +6787,114 @@
6757 } 6787 }
6758 }, 6788 },
6759 "boxen": { 6789 "boxen": {
6760 "version": "3.2.0", 6790 "version": "4.2.0",
6761 "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", 6791 "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
6762 "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", 6792 "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
6763 "dev": true, 6793 "dev": true,
6764 "requires": { 6794 "requires": {
6765 "ansi-align": "^3.0.0", 6795 "ansi-align": "^3.0.0",
6766 "camelcase": "^5.3.1", 6796 "camelcase": "^5.3.1",
6767 "chalk": "^2.4.2", 6797 "chalk": "^3.0.0",
6768 "cli-boxes": "^2.2.0", 6798 "cli-boxes": "^2.2.0",
6769 "string-width": "^3.0.0", 6799 "string-width": "^4.1.0",
6770 "term-size": "^1.2.0", 6800 "term-size": "^2.1.0",
6771 "type-fest": "^0.3.0", 6801 "type-fest": "^0.8.1",
6772 "widest-line": "^2.0.0" 6802 "widest-line": "^3.1.0"
6773 }, 6803 },
6774 "dependencies": { 6804 "dependencies": {
6775 "ansi-regex": { 6805 "ansi-regex": {
6776 "version": "4.1.0", 6806 "version": "5.0.0",
6777 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 6807 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
6778 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 6808 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
6809 "dev": true
6810 },
6811 "ansi-styles": {
6812 "version": "4.2.1",
6813 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
6814 "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
6815 "dev": true,
6816 "requires": {
6817 "@types/color-name": "^1.1.1",
6818 "color-convert": "^2.0.1"
6819 }
6820 },
6821 "chalk": {
6822 "version": "3.0.0",
6823 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
6824 "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
6825 "dev": true,
6826 "requires": {
6827 "ansi-styles": "^4.1.0",
6828 "supports-color": "^7.1.0"
6829 }
6830 },
6831 "color-convert": {
6832 "version": "2.0.1",
6833 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
6834 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
6835 "dev": true,
6836 "requires": {
6837 "color-name": "~1.1.4"
6838 }
6839 },
6840 "color-name": {
6841 "version": "1.1.4",
6842 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
6843 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
6844 "dev": true
6845 },
6846 "emoji-regex": {
6847 "version": "8.0.0",
6848 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
6849 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
6850 "dev": true
6851 },
6852 "has-flag": {
6853 "version": "4.0.0",
6854 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
6855 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
6856 "dev": true
6857 },
6858 "is-fullwidth-code-point": {
6859 "version": "3.0.0",
6860 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
6861 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
6779 "dev": true 6862 "dev": true
6780 }, 6863 },
6781 "string-width": { 6864 "string-width": {
6782 "version": "3.1.0", 6865 "version": "4.2.0",
6783 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 6866 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
6784 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 6867 "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
6785 "dev": true, 6868 "dev": true,
6786 "requires": { 6869 "requires": {
6787 "emoji-regex": "^7.0.1", 6870 "emoji-regex": "^8.0.0",
6788 "is-fullwidth-code-point": "^2.0.0", 6871 "is-fullwidth-code-point": "^3.0.0",
6789 "strip-ansi": "^5.1.0" 6872 "strip-ansi": "^6.0.0"
6790 } 6873 }
6791 }, 6874 },
6792 "strip-ansi": { 6875 "strip-ansi": {
6793 "version": "5.2.0", 6876 "version": "6.0.0",
6794 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 6877 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
6795 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 6878 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
6796 "dev": true, 6879 "dev": true,
6797 "requires": { 6880 "requires": {
6798 "ansi-regex": "^4.1.0" 6881 "ansi-regex": "^5.0.0"
6882 }
6883 },
6884 "supports-color": {
6885 "version": "7.1.0",
6886 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
6887 "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
6888 "dev": true,
6889 "requires": {
6890 "has-flag": "^4.0.0"
6799 } 6891 }
6892 },
6893 "type-fest": {
6894 "version": "0.8.1",
6895 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
6896 "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
6897 "dev": true
6800 } 6898 }
6801 } 6899 }
6802 }, 6900 },
@@ -7042,26 +7140,62 @@
7042 "dev": true 7140 "dev": true
7043 }, 7141 },
7044 "builder-util": { 7142 "builder-util": {
7045 "version": "21.2.0", 7143 "version": "22.4.1",
7046 "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-21.2.0.tgz", 7144 "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.4.1.tgz",
7047 "integrity": "sha512-Nd6CUb6YgDY8EXAXEIegx+1kzKqyFQ5ZM5BoYkeunAlwz/zDJoH1UCyULjoS5wQe5czNClFQy07zz2bzYD0Z4A==", 7145 "integrity": "sha512-+ysLc7cC4w6P7rBxmZ5X2aU3QvcwFoWCl1us+mcUKdsGmJAtFUMPJqueeptdxjyPrPShIUOKHzA8uk5A3d1fHg==",
7048 "dev": true, 7146 "dev": true,
7049 "requires": { 7147 "requires": {
7050 "7zip-bin": "~5.0.3", 7148 "7zip-bin": "~5.0.3",
7051 "@types/debug": "^4.1.4", 7149 "@types/debug": "^4.1.5",
7052 "app-builder-bin": "3.4.3", 7150 "@types/fs-extra": "^8.1.0",
7151 "app-builder-bin": "3.5.5",
7053 "bluebird-lst": "^1.0.9", 7152 "bluebird-lst": "^1.0.9",
7054 "builder-util-runtime": "8.3.0", 7153 "builder-util-runtime": "8.6.2",
7055 "chalk": "^2.4.2", 7154 "chalk": "^3.0.0",
7056 "debug": "^4.1.1", 7155 "debug": "^4.1.1",
7057 "fs-extra": "^8.1.0", 7156 "fs-extra": "^8.1.0",
7058 "is-ci": "^2.0.0", 7157 "is-ci": "^2.0.0",
7059 "js-yaml": "^3.13.1", 7158 "js-yaml": "^3.13.1",
7060 "source-map-support": "^0.5.13", 7159 "source-map-support": "^0.5.16",
7061 "stat-mode": "^0.3.0", 7160 "stat-mode": "^1.0.0",
7062 "temp-file": "^3.3.4" 7161 "temp-file": "^3.3.7"
7063 }, 7162 },
7064 "dependencies": { 7163 "dependencies": {
7164 "ansi-styles": {
7165 "version": "4.2.1",
7166 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
7167 "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
7168 "dev": true,
7169 "requires": {
7170 "@types/color-name": "^1.1.1",
7171 "color-convert": "^2.0.1"
7172 }
7173 },
7174 "chalk": {
7175 "version": "3.0.0",
7176 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
7177 "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
7178 "dev": true,
7179 "requires": {
7180 "ansi-styles": "^4.1.0",
7181 "supports-color": "^7.1.0"
7182 }
7183 },
7184 "color-convert": {
7185 "version": "2.0.1",
7186 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
7187 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
7188 "dev": true,
7189 "requires": {
7190 "color-name": "~1.1.4"
7191 }
7192 },
7193 "color-name": {
7194 "version": "1.1.4",
7195 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
7196 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
7197 "dev": true
7198 },
7065 "fs-extra": { 7199 "fs-extra": {
7066 "version": "8.1.0", 7200 "version": "8.1.0",
7067 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 7201 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -7072,14 +7206,38 @@
7072 "jsonfile": "^4.0.0", 7206 "jsonfile": "^4.0.0",
7073 "universalify": "^0.1.0" 7207 "universalify": "^0.1.0"
7074 } 7208 }
7209 },
7210 "has-flag": {
7211 "version": "4.0.0",
7212 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
7213 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
7214 "dev": true
7215 },
7216 "source-map-support": {
7217 "version": "0.5.16",
7218 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
7219 "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
7220 "dev": true,
7221 "requires": {
7222 "buffer-from": "^1.0.0",
7223 "source-map": "^0.6.0"
7224 }
7225 },
7226 "supports-color": {
7227 "version": "7.1.0",
7228 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
7229 "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
7230 "dev": true,
7231 "requires": {
7232 "has-flag": "^4.0.0"
7233 }
7075 } 7234 }
7076 } 7235 }
7077 }, 7236 },
7078 "builder-util-runtime": { 7237 "builder-util-runtime": {
7079 "version": "8.3.0", 7238 "version": "8.6.2",
7080 "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.3.0.tgz", 7239 "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.6.2.tgz",
7081 "integrity": "sha512-CSOdsYqf4RXIHh1HANPbrZHlZ9JQJXSuDDloblZPcWQVN62inyYoTQuSmY3KrgefME2Sv3Kn2MxHvbGQHRf8Iw==", 7240 "integrity": "sha512-9QnIBISfhgQ2BxtRLidVqf/v5HD73vSKZDllpUmGd2L6VORGQk7cZAPmPtw4HQM3gPBelyVJ5yIjMNZ8xjmd1A==",
7082 "dev": true,
7083 "requires": { 7241 "requires": {
7084 "debug": "^4.1.1", 7242 "debug": "^4.1.1",
7085 "sax": "^1.2.4" 7243 "sax": "^1.2.4"
@@ -8007,26 +8165,59 @@
8007 } 8165 }
8008 }, 8166 },
8009 "configstore": { 8167 "configstore": {
8010 "version": "4.0.0", 8168 "version": "5.0.1",
8011 "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", 8169 "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
8012 "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", 8170 "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
8013 "dev": true, 8171 "dev": true,
8014 "requires": { 8172 "requires": {
8015 "dot-prop": "^4.1.0", 8173 "dot-prop": "^5.2.0",
8016 "graceful-fs": "^4.1.2", 8174 "graceful-fs": "^4.1.2",
8017 "make-dir": "^1.0.0", 8175 "make-dir": "^3.0.0",
8018 "unique-string": "^1.0.0", 8176 "unique-string": "^2.0.0",
8019 "write-file-atomic": "^2.0.0", 8177 "write-file-atomic": "^3.0.0",
8020 "xdg-basedir": "^3.0.0" 8178 "xdg-basedir": "^4.0.0"
8021 }, 8179 },
8022 "dependencies": { 8180 "dependencies": {
8023 "dot-prop": { 8181 "dot-prop": {
8024 "version": "4.2.0", 8182 "version": "5.2.0",
8025 "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", 8183 "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
8026 "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", 8184 "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
8027 "dev": true, 8185 "dev": true,
8028 "requires": { 8186 "requires": {
8029 "is-obj": "^1.0.0" 8187 "is-obj": "^2.0.0"
8188 }
8189 },
8190 "is-obj": {
8191 "version": "2.0.0",
8192 "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
8193 "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
8194 "dev": true
8195 },
8196 "make-dir": {
8197 "version": "3.0.2",
8198 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
8199 "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
8200 "dev": true,
8201 "requires": {
8202 "semver": "^6.0.0"
8203 }
8204 },
8205 "semver": {
8206 "version": "6.3.0",
8207 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
8208 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
8209 "dev": true
8210 },
8211 "write-file-atomic": {
8212 "version": "3.0.3",
8213 "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
8214 "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
8215 "dev": true,
8216 "requires": {
8217 "imurmurhash": "^0.1.4",
8218 "is-typedarray": "^1.0.0",
8219 "signal-exit": "^3.0.2",
8220 "typedarray-to-buffer": "^3.1.5"
8030 } 8221 }
8031 } 8222 }
8032 } 8223 }
@@ -8724,9 +8915,9 @@
8724 } 8915 }
8725 }, 8916 },
8726 "crypto-random-string": { 8917 "crypto-random-string": {
8727 "version": "1.0.0", 8918 "version": "2.0.0",
8728 "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", 8919 "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
8729 "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", 8920 "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
8730 "dev": true 8921 "dev": true
8731 }, 8922 },
8732 "csrf": { 8923 "csrf": {
@@ -9282,18 +9473,18 @@
9282 } 9473 }
9283 }, 9474 },
9284 "dmg-builder": { 9475 "dmg-builder": {
9285 "version": "21.2.0", 9476 "version": "22.4.1",
9286 "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-21.2.0.tgz", 9477 "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.4.1.tgz",
9287 "integrity": "sha512-9cJEclnGy7EyKFCoHDYDf54pub/t92CQapyiUxU0w9Bj2vUvfoDagP1PMiX4XD5rPp96141h9A+QN0OB4VgvQg==", 9478 "integrity": "sha512-hEemh7n0zoVt7zPPwvn7iOttP03oENjJ4ApttPmt8oDnX8T4q42MjGWyDlLkPMplMJfoTxkkNqmm296f0OYM8Q==",
9288 "dev": true, 9479 "dev": true,
9289 "requires": { 9480 "requires": {
9290 "app-builder-lib": "~21.2.0", 9481 "app-builder-lib": "~22.4.1",
9291 "bluebird-lst": "^1.0.9", 9482 "bluebird-lst": "^1.0.9",
9292 "builder-util": "~21.2.0", 9483 "builder-util": "~22.4.1",
9293 "fs-extra": "^8.1.0", 9484 "fs-extra": "^8.1.0",
9294 "iconv-lite": "^0.5.0", 9485 "iconv-lite": "^0.5.1",
9295 "js-yaml": "^3.13.1", 9486 "js-yaml": "^3.13.1",
9296 "sanitize-filename": "^1.6.2" 9487 "sanitize-filename": "^1.6.3"
9297 }, 9488 },
9298 "dependencies": { 9489 "dependencies": {
9299 "fs-extra": { 9490 "fs-extra": {
@@ -9308,9 +9499,9 @@
9308 } 9499 }
9309 }, 9500 },
9310 "iconv-lite": { 9501 "iconv-lite": {
9311 "version": "0.5.0", 9502 "version": "0.5.1",
9312 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", 9503 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz",
9313 "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", 9504 "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==",
9314 "dev": true, 9505 "dev": true,
9315 "requires": { 9506 "requires": {
9316 "safer-buffer": ">= 2.1.2 < 3" 9507 "safer-buffer": ">= 2.1.2 < 3"
@@ -9618,15 +9809,15 @@
9618 "dev": true 9809 "dev": true
9619 }, 9810 },
9620 "ejs": { 9811 "ejs": {
9621 "version": "2.7.1", 9812 "version": "3.0.1",
9622 "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz", 9813 "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.0.1.tgz",
9623 "integrity": "sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==", 9814 "integrity": "sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw==",
9624 "dev": true 9815 "dev": true
9625 }, 9816 },
9626 "electron": { 9817 "electron": {
9627 "version": "8.0.0", 9818 "version": "8.1.1",
9628 "resolved": "https://registry.npmjs.org/electron/-/electron-8.0.0.tgz", 9819 "resolved": "https://registry.npmjs.org/electron/-/electron-8.1.1.tgz",
9629 "integrity": "sha512-vBXUKRqTUq0jv1upvISdvScDDH3uCPwXj4eA5BeR3UDbJp2hOhq7eJxwjIQbfLQql98aYz4X6pSlzBnhfyQqHA==", 9820 "integrity": "sha512-t+5zzFo7VOgckJc9YpImHJkpqeWxwpmEjywWbAa4IT5MULS7h1XU52H9gMswK/y8xc5lBNwxLhJSty/15+gi1A==",
9630 "dev": true, 9821 "dev": true,
9631 "requires": { 9822 "requires": {
9632 "@electron/get": "^1.0.1", 9823 "@electron/get": "^1.0.1",
@@ -9635,41 +9826,102 @@
9635 } 9826 }
9636 }, 9827 },
9637 "electron-builder": { 9828 "electron-builder": {
9638 "version": "21.2.0", 9829 "version": "22.4.1",
9639 "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-21.2.0.tgz", 9830 "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.4.1.tgz",
9640 "integrity": "sha512-x8EXrqFbAb2L3N22YlGar3dGh8vwptbB3ovo3OF6K7NTpcsmM2zEoJv7GhFyX73rNzSG2HaWpXwGAtOp2JWiEw==", 9831 "integrity": "sha512-13CjZcGeJS+c3EKRwFT/Oty5Niif5g1FwDioBLEbjkPCPQgxdtDsr+rJtCu9qxkiKDYpAoPS+t/clNk0efONvQ==",
9641 "dev": true, 9832 "dev": true,
9642 "requires": { 9833 "requires": {
9643 "app-builder-lib": "21.2.0", 9834 "@types/yargs": "^15.0.4",
9835 "app-builder-lib": "22.4.1",
9644 "bluebird-lst": "^1.0.9", 9836 "bluebird-lst": "^1.0.9",
9645 "builder-util": "21.2.0", 9837 "builder-util": "22.4.1",
9646 "builder-util-runtime": "8.3.0", 9838 "builder-util-runtime": "8.6.2",
9647 "chalk": "^2.4.2", 9839 "chalk": "^3.0.0",
9648 "dmg-builder": "21.2.0", 9840 "dmg-builder": "22.4.1",
9649 "fs-extra": "^8.1.0", 9841 "fs-extra": "^8.1.0",
9650 "is-ci": "^2.0.0", 9842 "is-ci": "^2.0.0",
9651 "lazy-val": "^1.0.4", 9843 "lazy-val": "^1.0.4",
9652 "read-config-file": "5.0.0", 9844 "read-config-file": "5.0.2",
9653 "sanitize-filename": "^1.6.2", 9845 "sanitize-filename": "^1.6.3",
9654 "update-notifier": "^3.0.1", 9846 "update-notifier": "^4.1.0",
9655 "yargs": "^13.3.0" 9847 "yargs": "^15.1.0"
9656 }, 9848 },
9657 "dependencies": { 9849 "dependencies": {
9850 "@types/yargs": {
9851 "version": "15.0.4",
9852 "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz",
9853 "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==",
9854 "dev": true,
9855 "requires": {
9856 "@types/yargs-parser": "*"
9857 }
9858 },
9658 "ansi-regex": { 9859 "ansi-regex": {
9659 "version": "4.1.0", 9860 "version": "5.0.0",
9660 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 9861 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
9661 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 9862 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
9662 "dev": true 9863 "dev": true
9663 }, 9864 },
9865 "ansi-styles": {
9866 "version": "4.2.1",
9867 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
9868 "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
9869 "dev": true,
9870 "requires": {
9871 "@types/color-name": "^1.1.1",
9872 "color-convert": "^2.0.1"
9873 }
9874 },
9875 "chalk": {
9876 "version": "3.0.0",
9877 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
9878 "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
9879 "dev": true,
9880 "requires": {
9881 "ansi-styles": "^4.1.0",
9882 "supports-color": "^7.1.0"
9883 }
9884 },
9664 "cliui": { 9885 "cliui": {
9665 "version": "5.0.0", 9886 "version": "6.0.0",
9666 "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 9887 "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
9667 "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 9888 "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
9668 "dev": true, 9889 "dev": true,
9669 "requires": { 9890 "requires": {
9670 "string-width": "^3.1.0", 9891 "string-width": "^4.2.0",
9671 "strip-ansi": "^5.2.0", 9892 "strip-ansi": "^6.0.0",
9672 "wrap-ansi": "^5.1.0" 9893 "wrap-ansi": "^6.2.0"
9894 }
9895 },
9896 "color-convert": {
9897 "version": "2.0.1",
9898 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
9899 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
9900 "dev": true,
9901 "requires": {
9902 "color-name": "~1.1.4"
9903 }
9904 },
9905 "color-name": {
9906 "version": "1.1.4",
9907 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
9908 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
9909 "dev": true
9910 },
9911 "emoji-regex": {
9912 "version": "8.0.0",
9913 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
9914 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
9915 "dev": true
9916 },
9917 "find-up": {
9918 "version": "4.1.0",
9919 "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
9920 "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
9921 "dev": true,
9922 "requires": {
9923 "locate-path": "^5.0.0",
9924 "path-exists": "^4.0.0"
9673 } 9925 }
9674 }, 9926 },
9675 "fs-extra": { 9927 "fs-extra": {
@@ -9689,6 +9941,42 @@
9689 "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 9941 "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
9690 "dev": true 9942 "dev": true
9691 }, 9943 },
9944 "has-flag": {
9945 "version": "4.0.0",
9946 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
9947 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
9948 "dev": true
9949 },
9950 "is-fullwidth-code-point": {
9951 "version": "3.0.0",
9952 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
9953 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
9954 "dev": true
9955 },
9956 "locate-path": {
9957 "version": "5.0.0",
9958 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
9959 "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
9960 "dev": true,
9961 "requires": {
9962 "p-locate": "^4.1.0"
9963 }
9964 },
9965 "p-locate": {
9966 "version": "4.1.0",
9967 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
9968 "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
9969 "dev": true,
9970 "requires": {
9971 "p-limit": "^2.2.0"
9972 }
9973 },
9974 "path-exists": {
9975 "version": "4.0.0",
9976 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
9977 "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
9978 "dev": true
9979 },
9692 "require-main-filename": { 9980 "require-main-filename": {
9693 "version": "2.0.0", 9981 "version": "2.0.0",
9694 "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 9982 "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
@@ -9696,58 +9984,68 @@
9696 "dev": true 9984 "dev": true
9697 }, 9985 },
9698 "string-width": { 9986 "string-width": {
9699 "version": "3.1.0", 9987 "version": "4.2.0",
9700 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 9988 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
9701 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 9989 "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
9702 "dev": true, 9990 "dev": true,
9703 "requires": { 9991 "requires": {
9704 "emoji-regex": "^7.0.1", 9992 "emoji-regex": "^8.0.0",
9705 "is-fullwidth-code-point": "^2.0.0", 9993 "is-fullwidth-code-point": "^3.0.0",
9706 "strip-ansi": "^5.1.0" 9994 "strip-ansi": "^6.0.0"
9707 } 9995 }
9708 }, 9996 },
9709 "strip-ansi": { 9997 "strip-ansi": {
9710 "version": "5.2.0", 9998 "version": "6.0.0",
9711 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 9999 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
9712 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 10000 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
9713 "dev": true, 10001 "dev": true,
9714 "requires": { 10002 "requires": {
9715 "ansi-regex": "^4.1.0" 10003 "ansi-regex": "^5.0.0"
10004 }
10005 },
10006 "supports-color": {
10007 "version": "7.1.0",
10008 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
10009 "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
10010 "dev": true,
10011 "requires": {
10012 "has-flag": "^4.0.0"
9716 } 10013 }
9717 }, 10014 },
9718 "wrap-ansi": { 10015 "wrap-ansi": {
9719 "version": "5.1.0", 10016 "version": "6.2.0",
9720 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 10017 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
9721 "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 10018 "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
9722 "dev": true, 10019 "dev": true,
9723 "requires": { 10020 "requires": {
9724 "ansi-styles": "^3.2.0", 10021 "ansi-styles": "^4.0.0",
9725 "string-width": "^3.0.0", 10022 "string-width": "^4.1.0",
9726 "strip-ansi": "^5.0.0" 10023 "strip-ansi": "^6.0.0"
9727 } 10024 }
9728 }, 10025 },
9729 "yargs": { 10026 "yargs": {
9730 "version": "13.3.0", 10027 "version": "15.3.1",
9731 "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", 10028 "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
9732 "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", 10029 "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
9733 "dev": true, 10030 "dev": true,
9734 "requires": { 10031 "requires": {
9735 "cliui": "^5.0.0", 10032 "cliui": "^6.0.0",
9736 "find-up": "^3.0.0", 10033 "decamelize": "^1.2.0",
10034 "find-up": "^4.1.0",
9737 "get-caller-file": "^2.0.1", 10035 "get-caller-file": "^2.0.1",
9738 "require-directory": "^2.1.1", 10036 "require-directory": "^2.1.1",
9739 "require-main-filename": "^2.0.0", 10037 "require-main-filename": "^2.0.0",
9740 "set-blocking": "^2.0.0", 10038 "set-blocking": "^2.0.0",
9741 "string-width": "^3.0.0", 10039 "string-width": "^4.2.0",
9742 "which-module": "^2.0.0", 10040 "which-module": "^2.0.0",
9743 "y18n": "^4.0.0", 10041 "y18n": "^4.0.0",
9744 "yargs-parser": "^13.1.1" 10042 "yargs-parser": "^18.1.1"
9745 } 10043 }
9746 }, 10044 },
9747 "yargs-parser": { 10045 "yargs-parser": {
9748 "version": "13.1.1", 10046 "version": "18.1.1",
9749 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", 10047 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz",
9750 "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", 10048 "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==",
9751 "dev": true, 10049 "dev": true,
9752 "requires": { 10050 "requires": {
9753 "camelcase": "^5.0.0", 10051 "camelcase": "^5.0.0",
@@ -9845,20 +10143,56 @@
9845 } 10143 }
9846 }, 10144 },
9847 "electron-publish": { 10145 "electron-publish": {
9848 "version": "21.2.0", 10146 "version": "22.4.1",
9849 "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-21.2.0.tgz", 10147 "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.4.1.tgz",
9850 "integrity": "sha512-mWavuoWJe87iaeKd0I24dNWIaR+0yRzshjNVqGyK019H766fsPWl3caQJnVKFaEyrZRP397v4JZVG0e7s16AxA==", 10148 "integrity": "sha512-nwKNum3KXm+01rtWX2pc1jhazdzDy2zYnQx+zmXphZchjd6UOMX3ZN0xyZUCKugw5ZliflT6LkgbrcBXBtYD3A==",
9851 "dev": true, 10149 "dev": true,
9852 "requires": { 10150 "requires": {
10151 "@types/fs-extra": "^8.1.0",
9853 "bluebird-lst": "^1.0.9", 10152 "bluebird-lst": "^1.0.9",
9854 "builder-util": "~21.2.0", 10153 "builder-util": "~22.4.1",
9855 "builder-util-runtime": "8.3.0", 10154 "builder-util-runtime": "8.6.2",
9856 "chalk": "^2.4.2", 10155 "chalk": "^3.0.0",
9857 "fs-extra": "^8.1.0", 10156 "fs-extra": "^8.1.0",
9858 "lazy-val": "^1.0.4", 10157 "lazy-val": "^1.0.4",
9859 "mime": "^2.4.4" 10158 "mime": "^2.4.4"
9860 }, 10159 },
9861 "dependencies": { 10160 "dependencies": {
10161 "ansi-styles": {
10162 "version": "4.2.1",
10163 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
10164 "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
10165 "dev": true,
10166 "requires": {
10167 "@types/color-name": "^1.1.1",
10168 "color-convert": "^2.0.1"
10169 }
10170 },
10171 "chalk": {
10172 "version": "3.0.0",
10173 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
10174 "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
10175 "dev": true,
10176 "requires": {
10177 "ansi-styles": "^4.1.0",
10178 "supports-color": "^7.1.0"
10179 }
10180 },
10181 "color-convert": {
10182 "version": "2.0.1",
10183 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
10184 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
10185 "dev": true,
10186 "requires": {
10187 "color-name": "~1.1.4"
10188 }
10189 },
10190 "color-name": {
10191 "version": "1.1.4",
10192 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
10193 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
10194 "dev": true
10195 },
9862 "fs-extra": { 10196 "fs-extra": {
9863 "version": "8.1.0", 10197 "version": "8.1.0",
9864 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 10198 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -9869,6 +10203,21 @@
9869 "jsonfile": "^4.0.0", 10203 "jsonfile": "^4.0.0",
9870 "universalify": "^0.1.0" 10204 "universalify": "^0.1.0"
9871 } 10205 }
10206 },
10207 "has-flag": {
10208 "version": "4.0.0",
10209 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
10210 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
10211 "dev": true
10212 },
10213 "supports-color": {
10214 "version": "7.1.0",
10215 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
10216 "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
10217 "dev": true,
10218 "requires": {
10219 "has-flag": "^4.0.0"
10220 }
9872 } 10221 }
9873 } 10222 }
9874 }, 10223 },
@@ -10140,29 +10489,20 @@
10140 "dev": true 10489 "dev": true
10141 }, 10490 },
10142 "electron-updater": { 10491 "electron-updater": {
10143 "version": "4.2.0", 10492 "version": "4.2.5",
10144 "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.2.0.tgz", 10493 "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.2.5.tgz",
10145 "integrity": "sha512-GuS3g7HDh17x/SaFjxjswlWUaKHczksYkV2Xc5CKj/bZH0YCvTSHtOmnBAdAmCk99u/71p3zP8f0jIqDfGcjww==", 10494 "integrity": "sha512-ir8SI3capF5pN4LTQY79bP7oqiBKjgtdDW378xVId5VcGUZ+Toei2j+fgx1mq3y4Qg19z4HqLxEZ9FqMD0T0RA==",
10146 "requires": { 10495 "requires": {
10147 "@types/semver": "^6.0.2", 10496 "@types/semver": "^7.1.0",
10148 "builder-util-runtime": "8.4.0", 10497 "builder-util-runtime": "8.6.2",
10149 "fs-extra": "^8.1.0", 10498 "fs-extra": "^8.1.0",
10150 "js-yaml": "^3.13.1", 10499 "js-yaml": "^3.13.1",
10151 "lazy-val": "^1.0.4", 10500 "lazy-val": "^1.0.4",
10152 "lodash.isequal": "^4.5.0", 10501 "lodash.isequal": "^4.5.0",
10153 "pako": "^1.0.10", 10502 "pako": "^1.0.11",
10154 "semver": "^6.3.0" 10503 "semver": "^7.1.3"
10155 }, 10504 },
10156 "dependencies": { 10505 "dependencies": {
10157 "builder-util-runtime": {
10158 "version": "8.4.0",
10159 "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.4.0.tgz",
10160 "integrity": "sha512-CJB/eKfPf2vHrkmirF5eicVnbDCkMBbwd5tRYlTlgud16zFeqD7QmrVUAOEXdnsrcNkiLg9dbuUsQKtl/AwsYQ==",
10161 "requires": {
10162 "debug": "^4.1.1",
10163 "sax": "^1.2.4"
10164 }
10165 },
10166 "fs-extra": { 10506 "fs-extra": {
10167 "version": "8.1.0", 10507 "version": "8.1.0",
10168 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 10508 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -10173,13 +10513,27 @@
10173 "universalify": "^0.1.0" 10513 "universalify": "^0.1.0"
10174 } 10514 }
10175 }, 10515 },
10516 "pako": {
10517 "version": "1.0.11",
10518 "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
10519 "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
10520 },
10176 "semver": { 10521 "semver": {
10177 "version": "6.3.0", 10522 "version": "7.1.3",
10178 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 10523 "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
10179 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 10524 "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA=="
10180 } 10525 }
10181 } 10526 }
10182 }, 10527 },
10528 "electron-util": {
10529 "version": "0.14.0",
10530 "resolved": "https://registry.npmjs.org/electron-util/-/electron-util-0.14.0.tgz",
10531 "integrity": "sha512-f8DXlOLrI7aq2S1yRlgx8Dc+Zbq5hlKKyVUnc73HyLEijo8/0KT9Cqlcduy75qwwynVw+cvbuqtqgIlrHLijyw==",
10532 "requires": {
10533 "electron-is-dev": "^1.1.0",
10534 "new-github-issue-url": "^0.2.1"
10535 }
10536 },
10183 "electron-window-state": { 10537 "electron-window-state": {
10184 "version": "5.0.3", 10538 "version": "5.0.3",
10185 "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", 10539 "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz",
@@ -10588,6 +10942,12 @@
10588 "es6-symbol": "^3.1.1" 10942 "es6-symbol": "^3.1.1"
10589 } 10943 }
10590 }, 10944 },
10945 "escape-goat": {
10946 "version": "2.1.1",
10947 "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
10948 "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
10949 "dev": true
10950 },
10591 "escape-html": { 10951 "escape-html": {
10592 "version": "1.0.1", 10952 "version": "1.0.1",
10593 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz", 10953 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz",
@@ -13520,12 +13880,12 @@
13520 } 13880 }
13521 }, 13881 },
13522 "global-dirs": { 13882 "global-dirs": {
13523 "version": "0.1.1", 13883 "version": "2.0.1",
13524 "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", 13884 "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz",
13525 "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", 13885 "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==",
13526 "dev": true, 13886 "dev": true,
13527 "requires": { 13887 "requires": {
13528 "ini": "^1.3.4" 13888 "ini": "^1.3.5"
13529 } 13889 }
13530 }, 13890 },
13531 "global-modules": { 13891 "global-modules": {
@@ -16116,13 +16476,13 @@
16116 "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" 16476 "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
16117 }, 16477 },
16118 "is-installed-globally": { 16478 "is-installed-globally": {
16119 "version": "0.1.0", 16479 "version": "0.3.1",
16120 "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", 16480 "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz",
16121 "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", 16481 "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==",
16122 "dev": true, 16482 "dev": true,
16123 "requires": { 16483 "requires": {
16124 "global-dirs": "^0.1.0", 16484 "global-dirs": "^2.0.1",
16125 "is-path-inside": "^1.0.0" 16485 "is-path-inside": "^3.0.1"
16126 } 16486 }
16127 }, 16487 },
16128 "is-negated-glob": { 16488 "is-negated-glob": {
@@ -16132,9 +16492,9 @@
16132 "dev": true 16492 "dev": true
16133 }, 16493 },
16134 "is-npm": { 16494 "is-npm": {
16135 "version": "3.0.0", 16495 "version": "4.0.0",
16136 "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", 16496 "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
16137 "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", 16497 "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==",
16138 "dev": true 16498 "dev": true
16139 }, 16499 },
16140 "is-number": { 16500 "is-number": {
@@ -16188,13 +16548,10 @@
16188 } 16548 }
16189 }, 16549 },
16190 "is-path-inside": { 16550 "is-path-inside": {
16191 "version": "1.0.1", 16551 "version": "3.0.2",
16192 "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 16552 "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
16193 "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 16553 "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
16194 "dev": true, 16554 "dev": true
16195 "requires": {
16196 "path-is-inside": "^1.0.1"
16197 }
16198 }, 16555 },
16199 "is-plain-obj": { 16556 "is-plain-obj": {
16200 "version": "1.1.0", 16557 "version": "1.1.0",
@@ -16321,9 +16678,9 @@
16321 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 16678 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
16322 }, 16679 },
16323 "isbinaryfile": { 16680 "isbinaryfile": {
16324 "version": "4.0.2", 16681 "version": "4.0.5",
16325 "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.2.tgz", 16682 "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.5.tgz",
16326 "integrity": "sha512-C3FSxJdNrEr2F4z6uFtNzECDM5hXk+46fxaa+cwBe5/XrWSmzdG8DDgyjfX6/NRdBB21q2JXuRAzPCUs+fclnQ==", 16683 "integrity": "sha512-Jvz0gpTh1AILHMCBUyqq7xv1ZOQrxTDwyp1/QUq1xFpOBvp4AH5uEobPePJht8KnBGqQIH7We6OR73mXsjG0cA==",
16327 "dev": true 16684 "dev": true
16328 }, 16685 },
16329 "isexe": { 16686 "isexe": {
@@ -18193,6 +18550,118 @@
18193 "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", 18550 "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
18194 "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" 18551 "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0="
18195 }, 18552 },
18553 "mac-screen-capture-permissions": {
18554 "version": "1.1.0",
18555 "resolved": "https://registry.npmjs.org/mac-screen-capture-permissions/-/mac-screen-capture-permissions-1.1.0.tgz",
18556 "integrity": "sha512-jMRumlB3FScui/7yW+5FqqbuO7CQ0XOJVT5oTsb7W9eRQDhCIpJpIF0XxLVXwq2DIOp0fYsz1LFiBjnyDYULyQ==",
18557 "requires": {
18558 "electron-util": "^0.13.0",
18559 "execa": "^2.0.4",
18560 "macos-version": "^5.2.0"
18561 },
18562 "dependencies": {
18563 "cross-spawn": {
18564 "version": "7.0.2",
18565 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
18566 "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
18567 "requires": {
18568 "path-key": "^3.1.0",
18569 "shebang-command": "^2.0.0",
18570 "which": "^2.0.1"
18571 }
18572 },
18573 "electron-util": {
18574 "version": "0.13.1",
18575 "resolved": "https://registry.npmjs.org/electron-util/-/electron-util-0.13.1.tgz",
18576 "integrity": "sha512-CvOuAyQPaPtnDp7SspwnT1yTb1yynw6yp4LrZCfEJ7TG/kJFiZW9RqMHlCEFWMn3QNoMkNhGVeCvWJV5NsYyuQ==",
18577 "requires": {
18578 "electron-is-dev": "^1.1.0",
18579 "new-github-issue-url": "^0.2.1"
18580 }
18581 },
18582 "execa": {
18583 "version": "2.1.0",
18584 "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz",
18585 "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==",
18586 "requires": {
18587 "cross-spawn": "^7.0.0",
18588 "get-stream": "^5.0.0",
18589 "is-stream": "^2.0.0",
18590 "merge-stream": "^2.0.0",
18591 "npm-run-path": "^3.0.0",
18592 "onetime": "^5.1.0",
18593 "p-finally": "^2.0.0",
18594 "signal-exit": "^3.0.2",
18595 "strip-final-newline": "^2.0.0"
18596 }
18597 },
18598 "get-stream": {
18599 "version": "5.1.0",
18600 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
18601 "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
18602 "requires": {
18603 "pump": "^3.0.0"
18604 }
18605 },
18606 "is-stream": {
18607 "version": "2.0.0",
18608 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
18609 "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="
18610 },
18611 "merge-stream": {
18612 "version": "2.0.0",
18613 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
18614 "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
18615 },
18616 "npm-run-path": {
18617 "version": "3.1.0",
18618 "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz",
18619 "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==",
18620 "requires": {
18621 "path-key": "^3.0.0"
18622 }
18623 },
18624 "onetime": {
18625 "version": "5.1.0",
18626 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
18627 "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
18628 "requires": {
18629 "mimic-fn": "^2.1.0"
18630 }
18631 },
18632 "p-finally": {
18633 "version": "2.0.1",
18634 "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
18635 "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw=="
18636 },
18637 "path-key": {
18638 "version": "3.1.1",
18639 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
18640 "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
18641 },
18642 "shebang-command": {
18643 "version": "2.0.0",
18644 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
18645 "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
18646 "requires": {
18647 "shebang-regex": "^3.0.0"
18648 }
18649 },
18650 "shebang-regex": {
18651 "version": "3.0.0",
18652 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
18653 "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
18654 },
18655 "which": {
18656 "version": "2.0.2",
18657 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
18658 "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
18659 "requires": {
18660 "isexe": "^2.0.0"
18661 }
18662 }
18663 }
18664 },
18196 "macos-notification-state": { 18665 "macos-notification-state": {
18197 "version": "1.3.1", 18666 "version": "1.3.1",
18198 "resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.3.1.tgz", 18667 "resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.3.1.tgz",
@@ -18208,6 +18677,14 @@
18208 "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", 18677 "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==",
18209 "dev": true 18678 "dev": true
18210 }, 18679 },
18680 "macos-version": {
18681 "version": "5.2.0",
18682 "resolved": "https://registry.npmjs.org/macos-version/-/macos-version-5.2.0.tgz",
18683 "integrity": "sha512-egt1bqVE1evUjCup2QN2F0g42AuVcumdM31xNbABz+uXquYPzWP4OrqDm+HpCfM+6t4JzWrzABQW+MZM+FW+Jg==",
18684 "requires": {
18685 "semver": "^5.6.0"
18686 }
18687 },
18211 "macroable": { 18688 "macroable": {
18212 "version": "1.0.0", 18689 "version": "1.0.0",
18213 "resolved": "https://registry.npmjs.org/macroable/-/macroable-1.0.0.tgz", 18690 "resolved": "https://registry.npmjs.org/macroable/-/macroable-1.0.0.tgz",
@@ -18337,9 +18814,9 @@
18337 } 18814 }
18338 }, 18815 },
18339 "marked": { 18816 "marked": {
18340 "version": "0.7.0", 18817 "version": "0.6.1",
18341 "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", 18818 "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.1.tgz",
18342 "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" 18819 "integrity": "sha512-+H0L3ibcWhAZE02SKMqmvYsErLo4EAVJxu5h3bHBBDvvjeWXtl92rGUSBYHL2++5Y+RSNgl8dYOAXcYe7lp1fA=="
18343 }, 18820 },
18344 "matchdep": { 18821 "matchdep": {
18345 "version": "2.0.0", 18822 "version": "2.0.0",
@@ -18642,8 +19119,7 @@
18642 "mimic-fn": { 19119 "mimic-fn": {
18643 "version": "2.1.0", 19120 "version": "2.1.0",
18644 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 19121 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
18645 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 19122 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
18646 "dev": true
18647 }, 19123 },
18648 "mimic-response": { 19124 "mimic-response": {
18649 "version": "1.0.1", 19125 "version": "1.0.1",
@@ -19132,6 +19608,11 @@
19132 "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", 19608 "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
19133 "dev": true 19609 "dev": true
19134 }, 19610 },
19611 "new-github-issue-url": {
19612 "version": "0.2.1",
19613 "resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz",
19614 "integrity": "sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA=="
19615 },
19135 "next-tick": { 19616 "next-tick": {
19136 "version": "1.0.0", 19617 "version": "1.0.0",
19137 "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", 19618 "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
@@ -20577,7 +21058,8 @@
20577 "pako": { 21058 "pako": {
20578 "version": "1.0.10", 21059 "version": "1.0.10",
20579 "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", 21060 "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
20580 "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" 21061 "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
21062 "dev": true
20581 }, 21063 },
20582 "parallel-transform": { 21064 "parallel-transform": {
20583 "version": "1.2.0", 21065 "version": "1.2.0",
@@ -22195,23 +22677,23 @@
22195 } 22677 }
22196 }, 22678 },
22197 "read-config-file": { 22679 "read-config-file": {
22198 "version": "5.0.0", 22680 "version": "5.0.2",
22199 "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-5.0.0.tgz", 22681 "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-5.0.2.tgz",
22200 "integrity": "sha512-jIKUu+C84bfnKxyJ5j30CxCqgXWYjZLXuVE/NYlMEpeni+dhESgAeZOZd0JZbg1xTkMmnCdxksDoarkOyfEsOg==", 22682 "integrity": "sha512-tVt1lsiSjs+FtL/vtfCivqtKR1UNk3BB3uPJQvJqkgtAYDvZjo0xyXFYSVmzaTcO+Jdi5G7O2K2vDV+p1M/oug==",
22201 "dev": true, 22683 "dev": true,
22202 "requires": { 22684 "requires": {
22203 "dotenv": "^8.0.0", 22685 "dotenv": "^8.2.0",
22204 "dotenv-expand": "^5.1.0", 22686 "dotenv-expand": "^5.1.0",
22205 "fs-extra": "^8.1.0", 22687 "fs-extra": "^8.1.0",
22206 "js-yaml": "^3.13.1", 22688 "js-yaml": "^3.13.1",
22207 "json5": "^2.1.0", 22689 "json5": "^2.1.1",
22208 "lazy-val": "^1.0.4" 22690 "lazy-val": "^1.0.4"
22209 }, 22691 },
22210 "dependencies": { 22692 "dependencies": {
22211 "dotenv": { 22693 "dotenv": {
22212 "version": "8.1.0", 22694 "version": "8.2.0",
22213 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.1.0.tgz", 22695 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
22214 "integrity": "sha512-GUE3gqcDCaMltj2++g6bRQ5rBJWtkWTmqmD0fo1RnnMuUqHNCt2oTPeDnS9n6fKYvlhn7AeBkb38lymBtWBQdA==", 22696 "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==",
22215 "dev": true 22697 "dev": true
22216 }, 22698 },
22217 "fs-extra": { 22699 "fs-extra": {
@@ -22224,6 +22706,21 @@
22224 "jsonfile": "^4.0.0", 22706 "jsonfile": "^4.0.0",
22225 "universalify": "^0.1.0" 22707 "universalify": "^0.1.0"
22226 } 22708 }
22709 },
22710 "json5": {
22711 "version": "2.1.2",
22712 "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz",
22713 "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==",
22714 "dev": true,
22715 "requires": {
22716 "minimist": "^1.2.5"
22717 }
22718 },
22719 "minimist": {
22720 "version": "1.2.5",
22721 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
22722 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
22723 "dev": true
22227 } 22724 }
22228 } 22725 }
22229 }, 22726 },
@@ -22606,13 +23103,12 @@
22606 } 23103 }
22607 }, 23104 },
22608 "registry-auth-token": { 23105 "registry-auth-token": {
22609 "version": "4.0.0", 23106 "version": "4.1.1",
22610 "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", 23107 "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz",
22611 "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", 23108 "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==",
22612 "dev": true, 23109 "dev": true,
22613 "requires": { 23110 "requires": {
22614 "rc": "^1.2.8", 23111 "rc": "^1.2.8"
22615 "safe-buffer": "^5.0.1"
22616 } 23112 }
22617 }, 23113 },
22618 "registry-url": { 23114 "registry-url": {
@@ -23457,12 +23953,20 @@
23457 "dev": true 23953 "dev": true
23458 }, 23954 },
23459 "semver-diff": { 23955 "semver-diff": {
23460 "version": "2.1.0", 23956 "version": "3.1.1",
23461 "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", 23957 "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
23462 "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", 23958 "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
23463 "dev": true, 23959 "dev": true,
23464 "requires": { 23960 "requires": {
23465 "semver": "^5.0.3" 23961 "semver": "^6.3.0"
23962 },
23963 "dependencies": {
23964 "semver": {
23965 "version": "6.3.0",
23966 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
23967 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
23968 "dev": true
23969 }
23466 } 23970 }
23467 }, 23971 },
23468 "semver-greatest-satisfied-range": { 23972 "semver-greatest-satisfied-range": {
@@ -24332,9 +24836,9 @@
24332 "dev": true 24836 "dev": true
24333 }, 24837 },
24334 "stat-mode": { 24838 "stat-mode": {
24335 "version": "0.3.0", 24839 "version": "1.0.0",
24336 "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.3.0.tgz", 24840 "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz",
24337 "integrity": "sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==", 24841 "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==",
24338 "dev": true 24842 "dev": true
24339 }, 24843 },
24340 "static-extend": { 24844 "static-extend": {
@@ -24591,6 +25095,11 @@
24591 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 25095 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
24592 "dev": true 25096 "dev": true
24593 }, 25097 },
25098 "strip-final-newline": {
25099 "version": "2.0.0",
25100 "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
25101 "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
25102 },
24594 "strip-indent": { 25103 "strip-indent": {
24595 "version": "2.0.0", 25104 "version": "2.0.0",
24596 "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", 25105 "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
@@ -24817,9 +25326,9 @@
24817 "dev": true 25326 "dev": true
24818 }, 25327 },
24819 "temp-file": { 25328 "temp-file": {
24820 "version": "3.3.4", 25329 "version": "3.3.7",
24821 "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.4.tgz", 25330 "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz",
24822 "integrity": "sha512-qSZ5W5q54iyGnP8cNl49RE0jTJc5CrzNocux5APD5yIxcgonoMuMSbsZfaZy8rTGCYo0Xz6ySVv3adagZ8gffg==", 25331 "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==",
24823 "dev": true, 25332 "dev": true,
24824 "requires": { 25333 "requires": {
24825 "async-exit-hook": "^2.0.1", 25334 "async-exit-hook": "^2.0.1",
@@ -24872,47 +25381,10 @@
24872 } 25381 }
24873 }, 25382 },
24874 "term-size": { 25383 "term-size": {
24875 "version": "1.2.0", 25384 "version": "2.2.0",
24876 "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", 25385 "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz",
24877 "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", 25386 "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==",
24878 "dev": true, 25387 "dev": true
24879 "requires": {
24880 "execa": "^0.7.0"
24881 },
24882 "dependencies": {
24883 "cross-spawn": {
24884 "version": "5.1.0",
24885 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
24886 "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
24887 "dev": true,
24888 "requires": {
24889 "lru-cache": "^4.0.1",
24890 "shebang-command": "^1.2.0",
24891 "which": "^1.2.9"
24892 }
24893 },
24894 "execa": {
24895 "version": "0.7.0",
24896 "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
24897 "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
24898 "dev": true,
24899 "requires": {
24900 "cross-spawn": "^5.0.1",
24901 "get-stream": "^3.0.0",
24902 "is-stream": "^1.1.0",
24903 "npm-run-path": "^2.0.0",
24904 "p-finally": "^1.0.0",
24905 "signal-exit": "^3.0.0",
24906 "strip-eof": "^1.0.0"
24907 }
24908 },
24909 "get-stream": {
24910 "version": "3.0.0",
24911 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
24912 "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
24913 "dev": true
24914 }
24915 }
24916 }, 25388 },
24917 "terminal-paginator": { 25389 "terminal-paginator": {
24918 "version": "2.0.2", 25390 "version": "2.0.2",
@@ -25743,6 +26215,15 @@
25743 "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 26215 "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
25744 "dev": true 26216 "dev": true
25745 }, 26217 },
26218 "typedarray-to-buffer": {
26219 "version": "3.1.5",
26220 "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
26221 "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
26222 "dev": true,
26223 "requires": {
26224 "is-typedarray": "^1.0.0"
26225 }
26226 },
25746 "typescript": { 26227 "typescript": {
25747 "version": "3.7.2", 26228 "version": "3.7.2",
25748 "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", 26229 "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz",
@@ -25890,12 +26371,12 @@
25890 } 26371 }
25891 }, 26372 },
25892 "unique-string": { 26373 "unique-string": {
25893 "version": "1.0.0", 26374 "version": "2.0.0",
25894 "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", 26375 "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
25895 "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", 26376 "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
25896 "dev": true, 26377 "dev": true,
25897 "requires": { 26378 "requires": {
25898 "crypto-random-string": "^1.0.0" 26379 "crypto-random-string": "^2.0.0"
25899 } 26380 }
25900 }, 26381 },
25901 "universal-user-agent": { 26382 "universal-user-agent": {
@@ -25990,23 +26471,85 @@
25990 } 26471 }
25991 }, 26472 },
25992 "update-notifier": { 26473 "update-notifier": {
25993 "version": "3.0.1", 26474 "version": "4.1.0",
25994 "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", 26475 "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz",
25995 "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", 26476 "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==",
25996 "dev": true, 26477 "dev": true,
25997 "requires": { 26478 "requires": {
25998 "boxen": "^3.0.0", 26479 "boxen": "^4.2.0",
25999 "chalk": "^2.0.1", 26480 "chalk": "^3.0.0",
26000 "configstore": "^4.0.0", 26481 "configstore": "^5.0.1",
26001 "has-yarn": "^2.1.0", 26482 "has-yarn": "^2.1.0",
26002 "import-lazy": "^2.1.0", 26483 "import-lazy": "^2.1.0",
26003 "is-ci": "^2.0.0", 26484 "is-ci": "^2.0.0",
26004 "is-installed-globally": "^0.1.0", 26485 "is-installed-globally": "^0.3.1",
26005 "is-npm": "^3.0.0", 26486 "is-npm": "^4.0.0",
26006 "is-yarn-global": "^0.3.0", 26487 "is-yarn-global": "^0.3.0",
26007 "latest-version": "^5.0.0", 26488 "latest-version": "^5.0.0",
26008 "semver-diff": "^2.0.0", 26489 "pupa": "^2.0.1",
26009 "xdg-basedir": "^3.0.0" 26490 "semver-diff": "^3.1.1",
26491 "xdg-basedir": "^4.0.0"
26492 },
26493 "dependencies": {
26494 "ansi-styles": {
26495 "version": "4.2.1",
26496 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
26497 "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
26498 "dev": true,
26499 "requires": {
26500 "@types/color-name": "^1.1.1",
26501 "color-convert": "^2.0.1"
26502 }
26503 },
26504 "chalk": {
26505 "version": "3.0.0",
26506 "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
26507 "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
26508 "dev": true,
26509 "requires": {
26510 "ansi-styles": "^4.1.0",
26511 "supports-color": "^7.1.0"
26512 }
26513 },
26514 "color-convert": {
26515 "version": "2.0.1",
26516 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
26517 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
26518 "dev": true,
26519 "requires": {
26520 "color-name": "~1.1.4"
26521 }
26522 },
26523 "color-name": {
26524 "version": "1.1.4",
26525 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
26526 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
26527 "dev": true
26528 },
26529 "has-flag": {
26530 "version": "4.0.0",
26531 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
26532 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
26533 "dev": true
26534 },
26535 "pupa": {
26536 "version": "2.0.1",
26537 "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz",
26538 "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==",
26539 "dev": true,
26540 "requires": {
26541 "escape-goat": "^2.0.0"
26542 }
26543 },
26544 "supports-color": {
26545 "version": "7.1.0",
26546 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
26547 "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
26548 "dev": true,
26549 "requires": {
26550 "has-flag": "^4.0.0"
26551 }
26552 }
26010 } 26553 }
26011 }, 26554 },
26012 "upper-case": { 26555 "upper-case": {
@@ -26936,12 +27479,52 @@
26936 } 27479 }
26937 }, 27480 },
26938 "widest-line": { 27481 "widest-line": {
26939 "version": "2.0.1", 27482 "version": "3.1.0",
26940 "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", 27483 "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
26941 "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", 27484 "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
26942 "dev": true, 27485 "dev": true,
26943 "requires": { 27486 "requires": {
26944 "string-width": "^2.1.1" 27487 "string-width": "^4.0.0"
27488 },
27489 "dependencies": {
27490 "ansi-regex": {
27491 "version": "5.0.0",
27492 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
27493 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
27494 "dev": true
27495 },
27496 "emoji-regex": {
27497 "version": "8.0.0",
27498 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
27499 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
27500 "dev": true
27501 },
27502 "is-fullwidth-code-point": {
27503 "version": "3.0.0",
27504 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
27505 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
27506 "dev": true
27507 },
27508 "string-width": {
27509 "version": "4.2.0",
27510 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
27511 "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
27512 "dev": true,
27513 "requires": {
27514 "emoji-regex": "^8.0.0",
27515 "is-fullwidth-code-point": "^3.0.0",
27516 "strip-ansi": "^6.0.0"
27517 }
27518 },
27519 "strip-ansi": {
27520 "version": "6.0.0",
27521 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
27522 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
27523 "dev": true,
27524 "requires": {
27525 "ansi-regex": "^5.0.0"
27526 }
27527 }
26945 } 27528 }
26946 }, 27529 },
26947 "win-ca": { 27530 "win-ca": {
@@ -27258,9 +27841,9 @@
27258 "dev": true 27841 "dev": true
27259 }, 27842 },
27260 "xdg-basedir": { 27843 "xdg-basedir": {
27261 "version": "3.0.0", 27844 "version": "4.0.0",
27262 "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", 27845 "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
27263 "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", 27846 "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
27264 "dev": true 27847 "dev": true
27265 }, 27848 },
27266 "xml-name-validator": { 27849 "xml-name-validator": {
diff --git a/package.json b/package.json
index 9f4f4b63e..becd0d227 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.3", 5 "version": "5.5.0-gm",
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",
@@ -76,7 +76,8 @@
76 "electron-process-reporter": "git+https://git@github.com/dizer/electron-process-reporter.git", 76 "electron-process-reporter": "git+https://git@github.com/dizer/electron-process-reporter.git",
77 "electron-react-titlebar": "0.8.2", 77 "electron-react-titlebar": "0.8.2",
78 "electron-spellchecker": "2.2.1", 78 "electron-spellchecker": "2.2.1",
79 "electron-updater": "4.2.0", 79 "electron-updater": "4.2.5",
80 "electron-util": "0.14.0",
80 "electron-window-state": "5.0.3", 81 "electron-window-state": "5.0.3",
81 "fs-extra": "7.0.1", 82 "fs-extra": "7.0.1",
82 "gulp-csso": "3.0.1", 83 "gulp-csso": "3.0.1",
@@ -85,8 +86,10 @@
85 "gulp-uglify": "3.0.2", 86 "gulp-uglify": "3.0.2",
86 "hex-to-rgba": "1.0.2", 87 "hex-to-rgba": "1.0.2",
87 "jsonwebtoken": "8.5.1", 88 "jsonwebtoken": "8.5.1",
88 "lodash": "4.17.15", 89 "lodash": "^4.17.4",
89 "marked": "0.7.0", 90 "mac-screen-capture-permissions": "1.1.0",
91 "macos-version": "5.2.0",
92 "marked": "0.6.1",
90 "mdi": "^1.9.33", 93 "mdi": "^1.9.33",
91 "mime-types": "2.1.25", 94 "mime-types": "2.1.25",
92 "mobx": "5.15.0", 95 "mobx": "5.15.0",
@@ -138,7 +141,7 @@
138 "@babel/preset-react": "7.7.4", 141 "@babel/preset-react": "7.7.4",
139 "@babel/register": "7.7.4", 142 "@babel/register": "7.7.4",
140 "@types/classnames": "^2.2.6", 143 "@types/classnames": "^2.2.6",
141 "@types/color": "^3.0.0", 144 "@types/color": "3.0.0",
142 "@types/color-convert": "^1.9.0", 145 "@types/color-convert": "^1.9.0",
143 "@types/jss": "^9.5.7", 146 "@types/jss": "^9.5.7",
144 "@types/lodash": "4.14.149", 147 "@types/lodash": "4.14.149",
@@ -154,8 +157,8 @@
154 "cross-env": "^5.0.5", 157 "cross-env": "^5.0.5",
155 "cz-conventional-changelog": "2.1.0", 158 "cz-conventional-changelog": "2.1.0",
156 "dotenv": "^4.0.0", 159 "dotenv": "^4.0.0",
157 "electron": "8.0.0", 160 "electron": "8.1.1",
158 "electron-builder": "21.2.0", 161 "electron-builder": "22.4.1",
159 "electron-notarize": "0.2.1", 162 "electron-notarize": "0.2.1",
160 "electron-rebuild": "1.10.0", 163 "electron-rebuild": "1.10.0",
161 "eslint": "5.10.0", 164 "eslint": "5.10.0",
@@ -203,7 +206,7 @@
203 ], 206 ],
204 "husky": { 207 "husky": {
205 "hooks": { 208 "hooks": {
206 "pre-push": "npm run lint && npm run reformat-files && npm run manage-translations && npm run apply-branding" 209 "pre-commit": "npm run lint && npm run reformat-files && npm run manage-translations && npm run apply-branding"
207 } 210 }
208 } 211 }
209} 212}
diff --git a/packages/theme/package-lock.json b/packages/theme/package-lock.json
index f74af2f24..85a87cf04 100644
--- a/packages/theme/package-lock.json
+++ b/packages/theme/package-lock.json
@@ -1,6 +1,6 @@
1{ 1{
2 "name": "@meetfranz/theme", 2 "name": "@meetfranz/theme",
3 "version": "1.0.4", 3 "version": "1.0.14",
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts
index 30cc19d99..b436d92f9 100644
--- a/packages/theme/src/themes/dark/index.ts
+++ b/packages/theme/src/themes/dark/index.ts
@@ -65,7 +65,7 @@ export const selectOptionItemHoverColor = selectColor;
65export const selectSearchColor = inputBackground; 65export const selectSearchColor = inputBackground;
66 66
67// Modal 67// Modal
68export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.8).rgb().string(); 68export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.9).rgb().string();
69export const colorModalBackground = legacyStyles.darkThemeGrayDark; 69export const colorModalBackground = legacyStyles.darkThemeGrayDark;
70 70
71// Services 71// Services
diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts
index edf56f21e..f8dc36574 100644
--- a/packages/theme/src/themes/default/index.ts
+++ b/packages/theme/src/themes/default/index.ts
@@ -1,7 +1,6 @@
1import color from 'color'; 1import color from 'color';
2import { cloneDeep } from 'lodash'; 2import { cloneDeep } from 'lodash';
3 3
4import { darkgreen } from 'color-name';
5import * as legacyStyles from '../legacy'; 4import * as legacyStyles from '../legacy';
6 5
7export interface IStyleTypes { 6export interface IStyleTypes {
@@ -145,7 +144,7 @@ export const badgeFontSize = uiFontSize - 2;
145export const badgeBorderRadius = 50; 144export const badgeBorderRadius = 50;
146 145
147// Modal 146// Modal
148export const colorModalOverlayBackground = color('#000').alpha(0.5).rgb().string(); 147export const colorModalOverlayBackground = color('#000').alpha(0.8).rgb().string();
149export const colorModalBackground = colorContentBackground; 148export const colorModalBackground = colorContentBackground;
150 149
151// Services 150// Services
diff --git a/recipes b/recipes
Subproject de6545a0858fa1aca1cea4b69764656bd583a80 Subproject 803c7eb1b65ad793513aaba56df507bc820959a
diff --git a/src/api/LocalApi.js b/src/api/LocalApi.js
index e2a46874a..ccdedd3f5 100644
--- a/src/api/LocalApi.js
+++ b/src/api/LocalApi.js
@@ -16,7 +16,7 @@ export default class LocalApi {
16 return this.local.getAppCacheSize(); 16 return this.local.getAppCacheSize();
17 } 17 }
18 18
19 clearAppCache() { 19 clearCache() {
20 return this.local.clearAppCache(); 20 return this.local.clearCache();
21 } 21 }
22} 22}
diff --git a/src/api/server/LocalApi.js b/src/api/server/LocalApi.js
index 2d9af416f..cc8035523 100644
--- a/src/api/server/LocalApi.js
+++ b/src/api/server/LocalApi.js
@@ -41,17 +41,14 @@ export default class LocalApi {
41 }); 41 });
42 } 42 }
43 43
44 async clearCache(serviceId) { 44 async clearCache(serviceId = null) {
45 const s = session.fromPartition(`persist:service-${serviceId}`); 45 const s = serviceId ? session.fromPartition(`persist:service-${serviceId}`) : session.defaultSession;
46 46
47 debug('LocalApi::clearCache resolves', serviceId); 47 debug('LocalApi::clearCache resolves', (serviceId || 'clearAppCache'));
48 return s.clearCache(); 48 await s.clearStorageData({
49 } 49 storages: ['appcache', 'cookies', 'filesystem', 'indexdb', 'localstorage', 'shadercache', 'websql', 'serviceworkers', 'cachestorage'],
50 50 quotas: ['temporary', 'persistent', 'syncable'],
51 async clearAppCache() { 51 });
52 const s = session.defaultSession;
53
54 debug('LocalApi::clearCache clearAppCache');
55 return s.clearCache(); 52 return s.clearCache();
56 } 53 }
57} 54}
diff --git a/src/app.js b/src/app.js
index d8fa37014..0e24420c3 100644
--- a/src/app.js
+++ b/src/app.js
@@ -35,6 +35,7 @@ import WelcomeScreen from './containers/auth/WelcomeScreen';
35import LoginScreen from './containers/auth/LoginScreen'; 35import LoginScreen from './containers/auth/LoginScreen';
36import LockedScreen from './containers/auth/LockedScreen'; 36import LockedScreen from './containers/auth/LockedScreen';
37import PasswordScreen from './containers/auth/PasswordScreen'; 37import PasswordScreen from './containers/auth/PasswordScreen';
38import ChangeServerScreen from './containers/auth/ChangeServerScreen';
38import SignupScreen from './containers/auth/SignupScreen'; 39import SignupScreen from './containers/auth/SignupScreen';
39import ImportScreen from './containers/auth/ImportScreen'; 40import ImportScreen from './containers/auth/ImportScreen';
40import PricingScreen from './containers/auth/PricingScreen'; 41import PricingScreen from './containers/auth/PricingScreen';
@@ -97,6 +98,7 @@ window.addEventListener('load', () => {
97 <Route path="/auth/welcome" component={WelcomeScreen} /> 98 <Route path="/auth/welcome" component={WelcomeScreen} />
98 <Route path="/auth/login" component={LoginScreen} /> 99 <Route path="/auth/login" component={LoginScreen} />
99 <Route path="/auth/locked" component={LockedScreen} /> 100 <Route path="/auth/locked" component={LockedScreen} />
101 <Route path="/auth/server" component={ChangeServerScreen} />
100 <Route path="/auth/signup"> 102 <Route path="/auth/signup">
101 <IndexRedirect to="/auth/signup/form" /> 103 <IndexRedirect to="/auth/signup/form" />
102 <Route path="/auth/signup/form" component={SignupScreen} /> 104 <Route path="/auth/signup/form" component={SignupScreen} />
diff --git a/src/components/AppUpdateInfoBar.js b/src/components/AppUpdateInfoBar.js
index 4108fdf12..f51fe029b 100644
--- a/src/components/AppUpdateInfoBar.js
+++ b/src/components/AppUpdateInfoBar.js
@@ -24,6 +24,7 @@ class AppUpdateInfoBar extends Component {
24 static propTypes = { 24 static propTypes = {
25 onInstallUpdate: PropTypes.func.isRequired, 25 onInstallUpdate: PropTypes.func.isRequired,
26 nextAppReleaseVersion: PropTypes.string, 26 nextAppReleaseVersion: PropTypes.string,
27 onHide: PropTypes.func.isRequired,
27 }; 28 };
28 29
29 static defaultProps = { 30 static defaultProps = {
@@ -39,6 +40,7 @@ class AppUpdateInfoBar extends Component {
39 const { 40 const {
40 onInstallUpdate, 41 onInstallUpdate,
41 nextAppReleaseVersion, 42 nextAppReleaseVersion,
43 onHide,
42 } = this.props; 44 } = this.props;
43 45
44 return ( 46 return (
@@ -46,7 +48,7 @@ class AppUpdateInfoBar extends Component {
46 type="primary" 48 type="primary"
47 ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)} 49 ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)}
48 onClick={onInstallUpdate} 50 onClick={onInstallUpdate}
49 sticky 51 onHide={onHide}
50 > 52 >
51 <span className="mdi mdi-information" /> 53 <span className="mdi mdi-information" />
52 {intl.formatMessage(messages.updateAvailable)} 54 {intl.formatMessage(messages.updateAvailable)}
diff --git a/src/components/auth/AuthLayout.js b/src/components/auth/AuthLayout.js
index 0c5198583..4783fc6a0 100644
--- a/src/components/auth/AuthLayout.js
+++ b/src/components/auth/AuthLayout.js
@@ -27,6 +27,10 @@ export default @observer class AuthLayout extends Component {
27 appUpdateIsDownloaded: PropTypes.bool.isRequired, 27 appUpdateIsDownloaded: PropTypes.bool.isRequired,
28 }; 28 };
29 29
30 state = {
31 shouldShowAppUpdateInfoBar: true,
32 }
33
30 static defaultProps = { 34 static defaultProps = {
31 nextAppReleaseVersion: null, 35 nextAppReleaseVersion: null,
32 }; 36 };
@@ -62,10 +66,13 @@ export default @observer class AuthLayout extends Component {
62 {intl.formatMessage(globalMessages.notConnectedToTheInternet)} 66 {intl.formatMessage(globalMessages.notConnectedToTheInternet)}
63 </InfoBar> 67 </InfoBar>
64 )} 68 )}
65 {appUpdateIsDownloaded && ( 69 {appUpdateIsDownloaded && this.state.shouldShowAppUpdateInfoBar && (
66 <AppUpdateInfoBar 70 <AppUpdateInfoBar
67 nextAppReleaseVersion={nextAppReleaseVersion} 71 nextAppReleaseVersion={nextAppReleaseVersion}
68 onInstallUpdate={installAppUpdate} 72 onInstallUpdate={installAppUpdate}
73 onHide={() => {
74 this.setState({ shouldShowAppUpdateInfoBar: false });
75 }}
69 /> 76 />
70 )} 77 )}
71 {isOnline && !isAPIHealthy && ( 78 {isOnline && !isAPIHealthy && (
diff --git a/src/components/auth/ChangeServer.js b/src/components/auth/ChangeServer.js
new file mode 100644
index 000000000..433334b6c
--- /dev/null
+++ b/src/components/auth/ChangeServer.js
@@ -0,0 +1,80 @@
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl';
5
6import Form from '../../lib/Form';
7import Input from '../ui/Input';
8import Button from '../ui/Button';
9
10const messages = defineMessages({
11 headline: {
12 id: 'changeserver.headline',
13 defaultMessage: '!!!Change server',
14 },
15 label: {
16 id: 'changeserver.label',
17 defaultMessage: '!!!Server',
18 },
19 submit: {
20 id: 'changeserver.submit',
21 defaultMessage: '!!!Submit',
22 },
23});
24
25export default @observer class ChangeServer extends Component {
26 static propTypes = {
27 onSubmit: PropTypes.func.isRequired,
28 server: PropTypes.string.isRequired,
29 };
30
31 static contextTypes = {
32 intl: intlShape,
33 };
34
35 form = new Form({
36 fields: {
37 server: {
38 label: this.context.intl.formatMessage(messages.label),
39 value: '',
40 },
41 },
42 }, this.context.intl);
43
44 componentDidMount() {
45 this.form.$('server').value = this.props.server;
46 }
47
48 submit(e) {
49 e.preventDefault();
50 this.form.submit({
51 onSuccess: (form) => {
52 this.props.onSubmit(form.values());
53 },
54 onError: () => { },
55 });
56 }
57
58 render() {
59 const { form } = this;
60 const { intl } = this.context;
61
62 return (
63 <div className="auth__container">
64 <form className="franz-form auth__form" onSubmit={e => this.submit(e)}>
65 <h1>{intl.formatMessage(messages.headline)}</h1>
66
67 <Input
68 field={form.$('server')}
69 focus
70 />
71 <Button
72 type="submit"
73 className="auth__button"
74 label={intl.formatMessage(messages.submit)}
75 />
76 </form>
77 </div>
78 );
79 }
80}
diff --git a/src/components/auth/Login.js b/src/components/auth/Login.js
index e25121de0..f33d134c8 100644
--- a/src/components/auth/Login.js
+++ b/src/components/auth/Login.js
@@ -78,6 +78,7 @@ export default @inject('actions') @observer class Login extends Component {
78 isServerLogout: PropTypes.bool.isRequired, 78 isServerLogout: PropTypes.bool.isRequired,
79 signupRoute: PropTypes.string.isRequired, 79 signupRoute: PropTypes.string.isRequired,
80 passwordRoute: PropTypes.string.isRequired, 80 passwordRoute: PropTypes.string.isRequired,
81 changeServerRoute: PropTypes.string.isRequired,
81 error: globalErrorPropType.isRequired, 82 error: globalErrorPropType.isRequired,
82 actions: PropTypes.object.isRequired, 83 actions: PropTypes.object.isRequired,
83 }; 84 };
@@ -127,6 +128,7 @@ export default @inject('actions') @observer class Login extends Component {
127 isServerLogout, 128 isServerLogout,
128 signupRoute, 129 signupRoute,
129 passwordRoute, 130 passwordRoute,
131 changeServerRoute,
130 error, 132 error,
131 } = this.props; 133 } = this.props;
132 134
@@ -194,7 +196,7 @@ export default @inject('actions') @observer class Login extends Component {
194 )} 196 )}
195 </form> 197 </form>
196 <div className="auth__links"> 198 <div className="auth__links">
197 <Link to="/settings/app">{intl.formatMessage(messages.changeServer)}</Link> 199 <Link to={changeServerRoute}>{intl.formatMessage(messages.changeServer)}</Link>
198 <a onClick={this.useLocalServer.bind(this)}>{intl.formatMessage(messages.serverless)}</a> 200 <a onClick={this.useLocalServer.bind(this)}>{intl.formatMessage(messages.serverless)}</a>
199 <Link to={signupRoute}>{intl.formatMessage(messages.signupLink)}</Link> 201 <Link to={signupRoute}>{intl.formatMessage(messages.signupLink)}</Link>
200 <Link to={passwordRoute}>{intl.formatMessage(messages.passwordLink)}</Link> 202 <Link to={passwordRoute}>{intl.formatMessage(messages.passwordLink)}</Link>
diff --git a/src/components/auth/Signup.js b/src/components/auth/Signup.js
index a166155a7..6a7db5cde 100644
--- a/src/components/auth/Signup.js
+++ b/src/components/auth/Signup.js
@@ -79,6 +79,7 @@ export default @inject('actions') @observer class Signup extends Component {
79 onSubmit: PropTypes.func.isRequired, 79 onSubmit: PropTypes.func.isRequired,
80 isSubmitting: PropTypes.bool.isRequired, 80 isSubmitting: PropTypes.bool.isRequired,
81 loginRoute: PropTypes.string.isRequired, 81 loginRoute: PropTypes.string.isRequired,
82 changeServerRoute: PropTypes.string.isRequired,
82 error: globalErrorPropType.isRequired, 83 error: globalErrorPropType.isRequired,
83 actions: PropTypes.object.isRequired, 84 actions: PropTypes.object.isRequired,
84 }; 85 };
@@ -130,7 +131,9 @@ export default @inject('actions') @observer class Signup extends Component {
130 render() { 131 render() {
131 const { form } = this; 132 const { form } = this;
132 const { intl } = this.context; 133 const { intl } = this.context;
133 const { isSubmitting, loginRoute, error } = this.props; 134 const {
135 isSubmitting, loginRoute, error, changeServerRoute,
136 } = this.props;
134 137
135 const termsBase = window.ferdi.stores.settings.all.app.server !== 'https://api.franzinfra.com' ? window.ferdi.stores.settings.all.app.server : 'https://meetfranz.com'; 138 const termsBase = window.ferdi.stores.settings.all.app.server !== 'https://api.franzinfra.com' ? window.ferdi.stores.settings.all.app.server : 'https://meetfranz.com';
136 139
@@ -198,7 +201,7 @@ export default @inject('actions') @observer class Signup extends Component {
198 </p> 201 </p>
199 </form> 202 </form>
200 <div className="auth__links"> 203 <div className="auth__links">
201 <Link to="/settings/app">{intl.formatMessage(messages.changeServer)}</Link> 204 <Link to={changeServerRoute}>{intl.formatMessage(messages.changeServer)}</Link>
202 <a onClick={this.useLocalServer.bind(this)}>{intl.formatMessage(messages.serverless)}</a> 205 <a onClick={this.useLocalServer.bind(this)}>{intl.formatMessage(messages.serverless)}</a>
203 <Link to={loginRoute}>{intl.formatMessage(messages.loginLink)}</Link> 206 <Link to={loginRoute}>{intl.formatMessage(messages.loginLink)}</Link>
204 </div> 207 </div>
diff --git a/src/components/auth/Welcome.js b/src/components/auth/Welcome.js
index 1453c1d7c..6e742e0c1 100644
--- a/src/components/auth/Welcome.js
+++ b/src/components/auth/Welcome.js
@@ -26,6 +26,7 @@ export default @inject('actions') @observer class Login extends Component {
26 static propTypes = { 26 static propTypes = {
27 loginRoute: PropTypes.string.isRequired, 27 loginRoute: PropTypes.string.isRequired,
28 signupRoute: PropTypes.string.isRequired, 28 signupRoute: PropTypes.string.isRequired,
29 changeServerRoute: PropTypes.string.isRequired,
29 recipes: MobxPropTypes.arrayOrObservableArray.isRequired, 30 recipes: MobxPropTypes.arrayOrObservableArray.isRequired,
30 actions: PropTypes.object.isRequired, 31 actions: PropTypes.object.isRequired,
31 }; 32 };
@@ -43,6 +44,7 @@ export default @inject('actions') @observer class Login extends Component {
43 const { 44 const {
44 loginRoute, 45 loginRoute,
45 signupRoute, 46 signupRoute,
47 changeServerRoute,
46 recipes, 48 recipes,
47 } = this.props; 49 } = this.props;
48 50
@@ -71,7 +73,7 @@ export default @inject('actions') @observer class Login extends Component {
71 <br /> 73 <br />
72 74
73 75
74 <Link to="settings/app"> 76 <Link to={changeServerRoute}>
75 <span style={{ 77 <span style={{
76 textAlign: 'center', 78 textAlign: 'center',
77 width: '100%', 79 width: '100%',
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js
index fe43c42d2..3b732e602 100644
--- a/src/components/layout/AppLayout.js
+++ b/src/components/layout/AppLayout.js
@@ -81,6 +81,10 @@ class AppLayout extends Component {
81 hasActivatedTrial: PropTypes.bool.isRequired, 81 hasActivatedTrial: PropTypes.bool.isRequired,
82 }; 82 };
83 83
84 state = {
85 shouldShowAppUpdateInfoBar: true,
86 }
87
84 static defaultProps = { 88 static defaultProps = {
85 children: [], 89 children: [],
86 nextAppReleaseVersion: null, 90 nextAppReleaseVersion: null,
@@ -181,10 +185,13 @@ class AppLayout extends Component {
181 {intl.formatMessage(messages.servicesUpdated)} 185 {intl.formatMessage(messages.servicesUpdated)}
182 </InfoBar> 186 </InfoBar>
183 )} 187 )}
184 {appUpdateIsDownloaded && ( 188 { appUpdateIsDownloaded && this.state.shouldShowAppUpdateInfoBar && (
185 <AppUpdateInfoBar 189 <AppUpdateInfoBar
186 nextAppReleaseVersion={nextAppReleaseVersion} 190 nextAppReleaseVersion={nextAppReleaseVersion}
187 onInstallUpdate={installAppUpdate} 191 onInstallUpdate={installAppUpdate}
192 onHide={() => {
193 this.setState({ shouldShowAppUpdateInfoBar: false });
194 }}
188 /> 195 />
189 )} 196 )}
190 <BasicAuth /> 197 <BasicAuth />
diff --git a/src/components/services/content/ConnectionLostBanner.js b/src/components/services/content/ConnectionLostBanner.js
new file mode 100644
index 000000000..9609a65b1
--- /dev/null
+++ b/src/components/services/content/ConnectionLostBanner.js
@@ -0,0 +1,119 @@
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react';
4import injectSheet from 'react-jss';
5import { Icon } from '@meetfranz/ui';
6import { intlShape, defineMessages } from 'react-intl';
7
8import {
9 mdiAlert,
10} from '@mdi/js';
11import { LIVE_API_WEBSITE } from '../../../config';
12// import { Button } from '@meetfranz/forms';
13
14const messages = defineMessages({
15 text: {
16 id: 'connectionLostBanner.message',
17 defaultMessage: '!!!Oh no! Franz lost the connection to {name}.',
18 },
19 moreInformation: {
20 id: 'connectionLostBanner.informationLink',
21 defaultMessage: '!!!What happened?',
22 },
23 cta: {
24 id: 'connectionLostBanner.cta',
25 defaultMessage: '!!!Reload Service',
26 },
27});
28
29const styles = theme => ({
30 root: {
31 background: theme.colorBackground,
32 borderRadius: theme.borderRadius,
33 position: 'absolute',
34 zIndex: 300,
35 height: 50,
36 display: 'flex',
37 flexDirection: 'row',
38 alignItems: 'center',
39 bottom: 10,
40 right: 10,
41 justifyContent: 'center',
42 padding: 10,
43 fontSize: 12,
44 },
45 link: {
46 display: 'inline-flex',
47 opacity: 0.7,
48 },
49 button: {
50 transition: 'opacity 0.25s',
51 color: theme.colorText,
52 border: [1, 'solid', theme.colorText],
53 borderRadius: theme.borderRadiusSmall,
54 padding: 4,
55 fontSize: 12,
56 marginLeft: 15,
57
58 '&:hover': {
59 opacity: 0.8,
60 },
61 },
62 icon: {
63 marginRight: 10,
64 fill: theme.styleTypes.danger.accent,
65 },
66});
67
68@injectSheet(styles) @observer
69class ConnectionLostBanner extends Component {
70 static propTypes = {
71 classes: PropTypes.object.isRequired,
72 name: PropTypes.string.isRequired,
73 reload: PropTypes.func.isRequired,
74 }
75
76 static contextTypes = {
77 intl: intlShape,
78 };
79
80 inputRef = React.createRef();
81
82 render() {
83 const {
84 classes,
85 name,
86 reload,
87 } = this.props;
88
89 const { intl } = this.context;
90
91 return (
92 <div className={classes.root}>
93 <Icon
94 icon={mdiAlert}
95 className={classes.icon}
96 />
97 <p>
98 {intl.formatMessage(messages.text, { name })}
99 <br />
100 <a
101 href={`${LIVE_API_WEBSITE}/support#what-does-franz-lost-the-connection-to-service-mean`}
102 className={classes.link}
103 >
104 {intl.formatMessage(messages.moreInformation)}
105 </a>
106 </p>
107 <button
108 type="button"
109 className={classes.button}
110 onClick={reload}
111 >
112 {intl.formatMessage(messages.cta)}
113 </button>
114 </div>
115 );
116 }
117}
118
119export default ConnectionLostBanner;
diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js
index f6832038a..d91016c71 100644
--- a/src/components/services/content/ServiceView.js
+++ b/src/components/services/content/ServiceView.js
@@ -193,7 +193,7 @@ export default @inject('stores', 'actions') @observer class ServiceView extends
193 </Fragment> 193 </Fragment>
194 ) : ( 194 ) : (
195 <> 195 <>
196 {!service.isHibernating ? ( 196 {(!service.isHibernating || service.disableHibernation) ? (
197 <> 197 <>
198 {showNavBar && ( 198 {showNavBar && (
199 <WebControlsScreen service={service} /> 199 <WebControlsScreen service={service} />
@@ -203,6 +203,12 @@ export default @inject('stores', 'actions') @observer class ServiceView extends
203 setWebviewReference={setWebviewReference} 203 setWebviewReference={setWebviewReference}
204 detachService={detachService} 204 detachService={detachService}
205 /> 205 />
206 {/* {service.lostRecipeConnection && (
207 <ConnectionLostBanner
208 name={service.name}
209 reload={reload}
210 />
211 )} */}
206 </> 212 </>
207 ) : ( 213 ) : (
208 <div> 214 <div>
diff --git a/src/components/services/tabs/TabItem.js b/src/components/services/tabs/TabItem.js
index 36338a910..ea7a66a62 100644
--- a/src/components/services/tabs/TabItem.js
+++ b/src/components/services/tabs/TabItem.js
@@ -145,7 +145,7 @@ class TabItem extends Component {
145 • 145 •
146 </span> 146 </span>
147 )} 147 )}
148 {service.isHibernating && ( 148 {service.isHibernating && !service.disableHibernation && (
149 <span className="tab-item__message-count hibernating"> 149 <span className="tab-item__message-count hibernating">
150 • 150 •
151 </span> 151 </span>
diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js
index 7d6bad883..5c3dc21d0 100644
--- a/src/components/settings/account/AccountDashboard.js
+++ b/src/components/settings/account/AccountDashboard.js
@@ -154,6 +154,7 @@ class AccountDashboard extends Component {
154 } 154 }
155 155
156 const isUsingWithoutAccount = server === LOCAL_SERVER; 156 const isUsingWithoutAccount = server === LOCAL_SERVER;
157 const isUsingFranzServer = server === 'https://api.franzinfra.com';
157 158
158 return ( 159 return (
159 <div className="settings__main"> 160 <div className="settings__main">
@@ -208,7 +209,7 @@ class AccountDashboard extends Component {
208 </div> 209 </div>
209 <div className="account__info"> 210 <div className="account__info">
210 <H1> 211 <H1>
211 <span className="username">{`${user.firstname} ${user.lastname}`}</span> 212 <span className="username">{`${user.firstname} ${isUsingFranzServer ? user.lastname : ''}`}</span>
212 {user.isPremium && ( 213 {user.isPremium && (
213 <> 214 <>
214 {' '} 215 {' '}
@@ -243,7 +244,7 @@ class AccountDashboard extends Component {
243 )} 244 )}
244 </div> 245 </div>
245 </div> 246 </div>
246 {user.isPremium && user.isSubscriptionOwner && ( 247 {user.isPremium && user.isSubscriptionOwner && isUsingFranzServer && (
247 <div className="account"> 248 <div className="account">
248 <div className="account__box"> 249 <div className="account__box">
249 <H2>{intl.formatMessage(messages.yourLicense)}</H2> 250 <H2>{intl.formatMessage(messages.yourLicense)}</H2>
@@ -322,25 +323,27 @@ class AccountDashboard extends Component {
322 </> 323 </>
323 )} 324 )}
324 325
325 <div className="account franz-form"> 326 {isUsingFranzServer && (
326 <div className="account__box"> 327 <div className="account franz-form">
327 <H2>{intl.formatMessage(messages.headlineDangerZone)}</H2> 328 <div className="account__box">
328 {!isDeleteAccountSuccessful && ( 329 <H2>{intl.formatMessage(messages.headlineDangerZone)}</H2>
329 <div className="account__subscription"> 330 {!isDeleteAccountSuccessful && (
330 <p>{intl.formatMessage(messages.deleteInfo)}</p> 331 <div className="account__subscription">
331 <Button 332 <p>{intl.formatMessage(messages.deleteInfo)}</p>
332 label={intl.formatMessage(messages.deleteAccount)} 333 <Button
333 buttonType="danger" 334 label={intl.formatMessage(messages.deleteAccount)}
334 onClick={() => deleteAccount()} 335 buttonType="danger"
335 loaded={!isLoadingDeleteAccount} 336 onClick={() => deleteAccount()}
336 /> 337 loaded={!isLoadingDeleteAccount}
337 </div> 338 />
338 )} 339 </div>
339 {isDeleteAccountSuccessful && ( 340 )}
340 <p>{intl.formatMessage(messages.deleteEmailSent)}</p> 341 {isDeleteAccountSuccessful && (
341 )} 342 <p>{intl.formatMessage(messages.deleteEmailSent)}</p>
343 )}
344 </div>
342 </div> 345 </div>
343 </div> 346 )}
344 </> 347 </>
345 )} 348 )}
346 </> 349 </>
diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js
index eb3249fa0..6b03f05be 100644
--- a/src/components/settings/navigation/SettingsNavigation.js
+++ b/src/components/settings/navigation/SettingsNavigation.js
@@ -105,6 +105,7 @@ export default @inject('stores', 'actions') @observer class SettingsNavigation e
105 const { intl } = this.context; 105 const { intl } = this.context;
106 const isLoggedIn = Boolean(localStorage.getItem('authToken')); 106 const isLoggedIn = Boolean(localStorage.getItem('authToken'));
107 const isUsingWithoutAccount = stores.settings.app.server === LOCAL_SERVER; 107 const isUsingWithoutAccount = stores.settings.app.server === LOCAL_SERVER;
108 const isUsingFranzServer = stores.settings.app.server === 'https://api.franzinfra.com';
108 109
109 return ( 110 return (
110 <div className="settings-navigation"> 111 <div className="settings-navigation">
@@ -154,17 +155,19 @@ export default @inject('stores', 'actions') @observer class SettingsNavigation e
154 > 155 >
155 {intl.formatMessage(messages.account)} 156 {intl.formatMessage(messages.account)}
156 </Link> 157 </Link>
157 <Link 158 {isUsingFranzServer && (
158 to="/settings/team" 159 <Link
159 className="settings-navigation__link" 160 to="/settings/team"
160 activeClassName="is-active" 161 className="settings-navigation__link"
161 disabled={!isLoggedIn} 162 activeClassName="is-active"
162 > 163 disabled={!isLoggedIn}
163 {intl.formatMessage(messages.team)} 164 >
164 {!user.data.isPremium && ( 165 {intl.formatMessage(messages.team)}
165 <ProBadge inverted={!isDarkThemeActive && router.location.pathname === '/settings/team'} /> 166 {!user.data.isPremium && (
166 )} 167 <ProBadge inverted={!isDarkThemeActive && router.location.pathname === '/settings/team'} />
167 </Link> 168 )}
169 </Link>
170 )}
168 <Link 171 <Link
169 to="/settings/app" 172 to="/settings/app"
170 className="settings-navigation__link" 173 className="settings-navigation__link"
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index 98051d78f..4fd1f99ef 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -12,6 +12,7 @@ import Service from '../../../models/Service';
12import Tabs, { TabItem } from '../../ui/Tabs'; 12import Tabs, { TabItem } from '../../ui/Tabs';
13import Input from '../../ui/Input'; 13import Input from '../../ui/Input';
14import Toggle from '../../ui/Toggle'; 14import Toggle from '../../ui/Toggle';
15import Slider from '../../ui/Slider';
15import Button from '../../ui/Button'; 16import Button from '../../ui/Button';
16import ImageUpload from '../../ui/ImageUpload'; 17import ImageUpload from '../../ui/ImageUpload';
17import Select from '../../ui/Select'; 18import Select from '../../ui/Select';
@@ -93,6 +94,10 @@ const messages = defineMessages({
93 id: 'settings.service.form.isMutedInfo', 94 id: 'settings.service.form.isMutedInfo',
94 defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', 95 defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted',
95 }, 96 },
97 disableHibernationInfo: {
98 id: 'settings.service.form.disableHibernationInfo',
99 defaultMessage: '!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.',
100 },
96 headlineNotifications: { 101 headlineNotifications: {
97 id: 'settings.service.form.headlineNotifications', 102 id: 'settings.service.form.headlineNotifications',
98 defaultMessage: '!!!Notifications', 103 defaultMessage: '!!!Notifications',
@@ -105,6 +110,10 @@ const messages = defineMessages({
105 id: 'settings.service.form.headlineGeneral', 110 id: 'settings.service.form.headlineGeneral',
106 defaultMessage: '!!!General', 111 defaultMessage: '!!!General',
107 }, 112 },
113 headlineDarkReaderSettings: {
114 id: 'settings.service.form.headlineDarkReaderSettings',
115 defaultMessage: '!!!DarkReader Settings',
116 },
108 iconDelete: { 117 iconDelete: {
109 id: 'settings.service.form.iconDelete', 118 id: 'settings.service.form.iconDelete',
110 defaultMessage: '!!!Delete', 119 defaultMessage: '!!!Delete',
@@ -149,6 +158,7 @@ export default @observer class EditServiceForm extends Component {
149 isProxyFeatureEnabled: PropTypes.bool.isRequired, 158 isProxyFeatureEnabled: PropTypes.bool.isRequired,
150 isServiceProxyIncludedInCurrentPlan: PropTypes.bool.isRequired, 159 isServiceProxyIncludedInCurrentPlan: PropTypes.bool.isRequired,
151 isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, 160 isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired,
161 isHibernationFeatureActive: PropTypes.bool.isRequired,
152 }; 162 };
153 163
154 static defaultProps = { 164 static defaultProps = {
@@ -214,6 +224,7 @@ export default @observer class EditServiceForm extends Component {
214 isProxyFeatureEnabled, 224 isProxyFeatureEnabled,
215 isServiceProxyIncludedInCurrentPlan, 225 isServiceProxyIncludedInCurrentPlan,
216 isSpellcheckerIncludedInCurrentPlan, 226 isSpellcheckerIncludedInCurrentPlan,
227 isHibernationFeatureActive,
217 } = this.props; 228 } = this.props;
218 const { intl } = this.context; 229 const { intl } = this.context;
219 230
@@ -359,8 +370,26 @@ export default @observer class EditServiceForm extends Component {
359 370
360 <div className="settings__settings-group"> 371 <div className="settings__settings-group">
361 <h3>{intl.formatMessage(messages.headlineGeneral)}</h3> 372 <h3>{intl.formatMessage(messages.headlineGeneral)}</h3>
362 <Toggle field={form.$('isDarkModeEnabled')} />
363 <Toggle field={form.$('isEnabled')} /> 373 <Toggle field={form.$('isEnabled')} />
374 {isHibernationFeatureActive && (
375 <>
376 <Toggle field={form.$('disableHibernation')} />
377 <p className="settings__help">
378 {intl.formatMessage(messages.disableHibernationInfo)}
379 </p>
380 </>
381 )}
382 <Toggle field={form.$('isDarkModeEnabled')} />
383 {form.$('isDarkModeEnabled').value
384 && (
385 <>
386 <h3>{intl.formatMessage(messages.headlineDarkReaderSettings)}</h3>
387 <Slider field={form.$('darkReaderBrightness')} />
388 <Slider field={form.$('darkReaderContrast')} />
389 <Slider field={form.$('darkReaderSepia')} />
390 </>
391 )
392 }
364 </div> 393 </div>
365 </div> 394 </div>
366 <div className="service-icon"> 395 <div className="service-icon">
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index 9564d837b..e1c2a2d4f 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -12,21 +12,12 @@ import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer';
12import Input from '../../ui/Input'; 12import Input from '../../ui/Input';
13 13
14import { FRANZ_TRANSLATION } from '../../../config'; 14import { FRANZ_TRANSLATION } from '../../../config';
15import { isMac } from '../../../environment'; 15import { isMac, isWindows } from '../../../environment';
16 16
17const { 17const {
18 systemPreferences, 18 systemPreferences,
19} = remote; 19} = remote;
20 20
21function escapeHtml(unsafe) {
22 return unsafe
23 .replace(/&/g, '&amp;')
24 .replace(/</g, '&lt;')
25 .replace(/>/g, '&gt;')
26 .replace(/"/g, '&quot;')
27 .replace(/'/g, '&#039;');
28}
29
30const messages = defineMessages({ 21const messages = defineMessages({
31 headline: { 22 headline: {
32 id: 'settings.app.headline', 23 id: 'settings.app.headline',
@@ -48,14 +39,6 @@ const messages = defineMessages({
48 id: 'settings.app.inactivityLockInfo', 39 id: 'settings.app.inactivityLockInfo',
49 defaultMessage: '!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable', 40 defaultMessage: '!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable',
50 }, 41 },
51 serverInfo: {
52 id: 'settings.app.serverInfo',
53 defaultMessage: '!!!We advice you to logout after changing your server as your settings might not be saved otherwise.',
54 },
55 serverMoneyInfo: {
56 id: 'settings.app.serverMoneyInfo',
57 defaultMessage: '!!!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.',
58 },
59 todoServerInfo: { 42 todoServerInfo: {
60 id: 'settings.app.todoServerInfo', 43 id: 'settings.app.todoServerInfo',
61 defaultMessage: '!!!This server will be used for the "Franz Todo" feature. (default: https://app.franztodos.com)', 44 defaultMessage: '!!!This server will be used for the "Franz Todo" feature. (default: https://app.franztodos.com)',
@@ -173,12 +156,11 @@ export default @observer class EditSettingsForm extends Component {
173 cacheSize: PropTypes.string.isRequired, 156 cacheSize: PropTypes.string.isRequired,
174 isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, 157 isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired,
175 isTodosEnabled: PropTypes.bool.isRequired, 158 isTodosEnabled: PropTypes.bool.isRequired,
159 isTodosActivated: PropTypes.bool.isRequired,
176 isWorkspaceEnabled: PropTypes.bool.isRequired, 160 isWorkspaceEnabled: PropTypes.bool.isRequired,
177 server: PropTypes.string.isRequired, 161 automaticUpdates: PropTypes.bool.isRequired,
178 noUpdates: PropTypes.bool.isRequired,
179 hibernationEnabled: PropTypes.bool.isRequired, 162 hibernationEnabled: PropTypes.bool.isRequired,
180 isDarkmodeEnabled: PropTypes.bool.isRequired, 163 isDarkmodeEnabled: PropTypes.bool.isRequired,
181 isTrayEnabled: PropTypes.bool.isRequired,
182 isAdaptableDarkModeEnabled: PropTypes.bool.isRequired, 164 isAdaptableDarkModeEnabled: PropTypes.bool.isRequired,
183 openProcessManager: PropTypes.func.isRequired, 165 openProcessManager: PropTypes.func.isRequired,
184 }; 166 };
@@ -214,12 +196,11 @@ export default @observer class EditSettingsForm extends Component {
214 isSpellcheckerIncludedInCurrentPlan, 196 isSpellcheckerIncludedInCurrentPlan,
215 isTodosEnabled, 197 isTodosEnabled,
216 isWorkspaceEnabled, 198 isWorkspaceEnabled,
217 server, 199 automaticUpdates,
218 noUpdates,
219 hibernationEnabled, 200 hibernationEnabled,
220 isDarkmodeEnabled, 201 isDarkmodeEnabled,
221 isTrayEnabled,
222 openProcessManager, 202 openProcessManager,
203 isTodosActivated,
223 } = this.props; 204 } = this.props;
224 const { intl } = this.context; 205 const { intl } = this.context;
225 206
@@ -232,8 +213,6 @@ export default @observer class EditSettingsForm extends Component {
232 updateButtonLabelMessage = messages.buttonSearchForUpdate; 213 updateButtonLabelMessage = messages.buttonSearchForUpdate;
233 } 214 }
234 215
235 const isLoggedIn = Boolean(localStorage.getItem('authToken'));
236
237 const { 216 const {
238 lockingFeatureEnabled, 217 lockingFeatureEnabled,
239 scheduledDNDEnabled, 218 scheduledDNDEnabled,
@@ -256,7 +235,7 @@ export default @observer class EditSettingsForm extends Component {
256 <Toggle field={form.$('runInBackground')} /> 235 <Toggle field={form.$('runInBackground')} />
257 <Toggle field={form.$('enableSystemTray')} /> 236 <Toggle field={form.$('enableSystemTray')} />
258 <Toggle field={form.$('reloadAfterResume')} /> 237 <Toggle field={form.$('reloadAfterResume')} />
259 {isTrayEnabled && <Toggle field={form.$('startMinimized')} />} 238 <Toggle field={form.$('startMinimized')} />
260 {process.platform === 'win32' && ( 239 {process.platform === 'win32' && (
261 <Toggle field={form.$('minimizeToSystemTray')} /> 240 <Toggle field={form.$('minimizeToSystemTray')} />
262 )} 241 )}
@@ -287,74 +266,41 @@ export default @observer class EditSettingsForm extends Component {
287 266
288 <Hr /> 267 <Hr />
289 268
290 <Input
291 placeholder="Server"
292 onChange={e => this.submit(e)}
293 field={form.$('server')}
294 autoFocus
295 />
296 {isLoggedIn && (
297 <p
298 className="settings__message"
299 style={{
300 borderTop: 0, marginTop: 0, paddingTop: 0, marginBottom: '2rem',
301 }}
302 >
303 { intl.formatMessage(messages.serverInfo) }
304 </p>
305 )}
306 {server === 'https://api.franzinfra.com' && (
307 <p
308 className="settings__message"
309 style={{
310 borderTop: 0, marginTop: 0, paddingTop: 0, marginBottom: '2rem',
311 }}
312 >
313 <span
314 dangerouslySetInnerHTML={{
315 __html:
316 // Needed to make links work
317 escapeHtml(
318 intl.formatMessage(messages.serverMoneyInfo),
319 ).replace('[Link 1]', '<a href="https://www.meetfranz.com/pricing" target="_blank">')
320 .replace('[Link 2]', '<a href="https://github.com/getferdi/server" target="_blank">')
321 .replace(/\[\/Link]/g, '</a>'),
322 }}
323 style={{
324 whiteSpace: 'pre-wrap',
325 }}
326 />
327 </p>
328 )}
329
330 <Hr />
331
332 {isWorkspaceEnabled && ( 269 {isWorkspaceEnabled && (
333 <Toggle field={form.$('keepAllWorkspacesLoaded')} /> 270 <Toggle field={form.$('keepAllWorkspacesLoaded')} />
334 )} 271 )}
335 272
336
337 <Hr /> 273 <Hr />
338 274
339 {isTodosEnabled && ( 275 {isTodosEnabled && (
340 <> 276 <>
341 <Toggle field={form.$('enableTodos')} /> 277 <Toggle field={form.$('enableTodos')} />
342 <Input 278 {isTodosActivated && (
343 placeholder="Todo Server" 279 <div>
344 onChange={e => this.submit(e)} 280 <Select field={form.$('predefinedTodoServer')} />
345 field={form.$('todoServer')} 281 {form.$('predefinedTodoServer').value === 'isUsingCustomTodoService' && (
346 /> 282 <div>
347 <p 283 <Input
348 className="settings__message" 284 placeholder="Todo Server"
349 style={{ 285 onChange={e => this.submit(e)}
350 borderTop: 0, marginTop: 0, paddingTop: 0, marginBottom: '2rem', 286 field={form.$('customTodoServer')}
351 }} 287 />
352 > 288 <p
353 { intl.formatMessage(messages.todoServerInfo) } 289 className="settings__message"
354 </p> 290 style={{
291 borderTop: 0, marginTop: 0, paddingTop: 0, marginBottom: '2rem',
292 }}
293 >
294 { intl.formatMessage(messages.todoServerInfo) }
295 </p>
296 </div>
297 )}
298 </div>
299 )}
355 </> 300 </>
356 )} 301 )}
357 302
303
358 <Hr /> 304 <Hr />
359 305
360 <Toggle field={form.$('lockingFeatureEnabled')} /> 306 <Toggle field={form.$('lockingFeatureEnabled')} />
@@ -455,10 +401,12 @@ export default @observer class EditSettingsForm extends Component {
455 <Toggle field={form.$('showDisabledServices')} /> 401 <Toggle field={form.$('showDisabledServices')} />
456 <Toggle field={form.$('showMessageBadgeWhenMuted')} /> 402 <Toggle field={form.$('showMessageBadgeWhenMuted')} />
457 403
404 {isMac && <Toggle field={form.$('showDragArea')} />}
405
458 <Hr /> 406 <Hr />
459 407
460 {isMac && <Toggle field={form.$('adaptableDarkMode')} />} 408 {(isMac || isWindows) && <Toggle field={form.$('adaptableDarkMode')} />}
461 {!(isMac && isAdaptableDarkModeEnabled) && <Toggle field={form.$('darkMode')} />} 409 {!((isMac || isWindows) && isAdaptableDarkModeEnabled) && <Toggle field={form.$('darkMode')} />}
462 {(isDarkmodeEnabled || isAdaptableDarkModeEnabled) && ( 410 {(isDarkmodeEnabled || isAdaptableDarkModeEnabled) && (
463 <> 411 <>
464 <Toggle field={form.$('universalDarkMode')} /> 412 <Toggle field={form.$('universalDarkMode')} />
@@ -555,36 +503,46 @@ export default @observer class EditSettingsForm extends Component {
555 503
556 {/* Updates */} 504 {/* Updates */}
557 <h2 id="updates">{intl.formatMessage(messages.headlineUpdates)}</h2> 505 <h2 id="updates">{intl.formatMessage(messages.headlineUpdates)}</h2>
558 {updateIsReadyToInstall ? ( 506 <Toggle field={form.$('automaticUpdates')} />
559 <Button 507 {automaticUpdates && (
560 label={intl.formatMessage(messages.buttonInstallUpdate)} 508 <div>
561 onClick={installUpdate} 509 <Toggle field={form.$('beta')} />
562 /> 510 {updateIsReadyToInstall ? (
563 ) : ( 511 <Button
564 <Button 512 label={intl.formatMessage(messages.buttonInstallUpdate)}
565 buttonType="secondary" 513 onClick={installUpdate}
566 label={intl.formatMessage(updateButtonLabelMessage)} 514 />
567 onClick={checkForUpdates} 515 ) : (
568 disabled={noUpdates || isCheckingForUpdates || isUpdateAvailable} 516 <Button
569 loaded={!isCheckingForUpdates || !isUpdateAvailable} 517 buttonType="secondary"
570 /> 518 label={intl.formatMessage(updateButtonLabelMessage)}
519 onClick={checkForUpdates}
520 disabled={!automaticUpdates || isCheckingForUpdates || isUpdateAvailable}
521 loaded={!isCheckingForUpdates || !isUpdateAvailable}
522 />
523 )}
524 <br />
525 </div>
571 )} 526 )}
572 <br />
573 <Toggle field={form.$('beta')} />
574 <Toggle field={form.$('noUpdates')} />
575 {intl.formatMessage(messages.currentVersion)} 527 {intl.formatMessage(messages.currentVersion)}
576 {' '} 528 {' '}
577 {remote.app.getVersion()} 529 {remote.app.getVersion()}
578 <br /> 530 {noUpdateAvailable && (
579 <br /> 531 <>
580 {noUpdateAvailable && intl.formatMessage(messages.updateStatusUpToDate)} 532 <br />
533 <br />
534 {intl.formatMessage(messages.updateStatusUpToDate)}
535 </>
536 )
537 }
581 <p className="settings__message"> 538 <p className="settings__message">
582
583 <span className="mdi mdi-github-face" /> 539 <span className="mdi mdi-github-face" />
584 <span> 540 <span>
541
585 Ferdi is based on 542 Ferdi is based on
586 {' '} 543 {' '}
587 <a href="https://github.com/meetfranz/franz" target="_blank">Franz</a> 544 <a href="https://github.com/meetfranz/franz" target="_blank">Franz</a>
545
588 , a project published 546 , a project published
589 under the 547 under the
590 {' '} 548 {' '}
diff --git a/src/components/settings/team/TeamDashboard.js b/src/components/settings/team/TeamDashboard.js
index 3d5358d89..72358d485 100644
--- a/src/components/settings/team/TeamDashboard.js
+++ b/src/components/settings/team/TeamDashboard.js
@@ -20,15 +20,15 @@ const messages = defineMessages({
20 }, 20 },
21 contentHeadline: { 21 contentHeadline: {
22 id: 'settings.team.contentHeadline', 22 id: 'settings.team.contentHeadline',
23 defaultMessage: '!!!Ferdi for Teams', 23 defaultMessage: '!!!Franz Team Management',
24 }, 24 },
25 intro: { 25 intro: {
26 id: 'settings.team.intro', 26 id: 'settings.team.intro',
27 defaultMessage: '!!!You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.', 27 defaultMessage: '!!!Your are currently using Franz Servers, which is why you have access to Team Management.',
28 }, 28 },
29 copy: { 29 copy: {
30 id: 'settings.team.copy', 30 id: 'settings.team.copy',
31 defaultMessage: '!!!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!', 31 defaultMessage: '!!!Franz\'s Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don\'t loose any functionality in managing your account.',
32 }, 32 },
33 manageButton: { 33 manageButton: {
34 id: 'settings.team.manageAction', 34 id: 'settings.team.manageAction',
diff --git a/src/components/ui/FeatureList.js b/src/components/ui/FeatureList.js
index f1039709c..dbc2a9078 100644
--- a/src/components/ui/FeatureList.js
+++ b/src/components/ui/FeatureList.js
@@ -66,6 +66,10 @@ const messages = defineMessages({
66 id: 'pricing.features.adFree', 66 id: 'pricing.features.adFree',
67 defaultMessage: '!!!Forever ad-free', 67 defaultMessage: '!!!Forever ad-free',
68 }, 68 },
69 appDelayEnabled: {
70 id: 'pricing.features.appDelaysEnabled',
71 defaultMessage: '!!!Occasional Waiting Screens',
72 },
69}); 73});
70 74
71export class FeatureList extends Component { 75export class FeatureList extends Component {
@@ -96,6 +100,7 @@ export class FeatureList extends Component {
96 const features = []; 100 const features = [];
97 if (plan === PLANS.FREE) { 101 if (plan === PLANS.FREE) {
98 features.push( 102 features.push(
103 messages.appDelayEnabled,
99 messages.upToThreeServices, 104 messages.upToThreeServices,
100 messages.availableRecipes, 105 messages.availableRecipes,
101 messages.accountSync, 106 messages.accountSync,
diff --git a/src/components/ui/Slider.js b/src/components/ui/Slider.js
new file mode 100644
index 000000000..b00a6a3f8
--- /dev/null
+++ b/src/components/ui/Slider.js
@@ -0,0 +1,65 @@
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react';
4import classnames from 'classnames';
5import { Field } from 'mobx-react-form';
6
7export default @observer class Slider extends Component {
8 static propTypes = {
9 field: PropTypes.instanceOf(Field).isRequired,
10 className: PropTypes.string,
11 showLabel: PropTypes.bool,
12 disabled: PropTypes.bool,
13 };
14
15 static defaultProps = {
16 className: '',
17 showLabel: true,
18 disabled: false,
19 };
20
21 onChange(e) {
22 const { field } = this.props;
23
24 field.onChange(e);
25 }
26
27 render() {
28 const {
29 field,
30 className,
31 showLabel,
32 disabled,
33 } = this.props;
34
35 if (field.value === '' && field.default !== '') {
36 field.value = field.default;
37 }
38
39 return (
40 <div
41 className={classnames([
42 'franz-form__field',
43 'franz-form__slider-wrapper',
44 className,
45 ])}
46 >
47 <div className="slider-container">
48 <input
49 className="slider"
50 type="range"
51 id={field.id}
52 name={field.name}
53 value={field.value}
54 min="1"
55 max="100"
56 onChange={e => (!disabled ? this.onChange(e) : null)}
57 />
58 </div>
59
60 {field.error && <div className={field.error}>{field.error}</div>}
61 {field.label && showLabel && <label className="franz-form__label" htmlFor={field.id}>{field.label}</label>}
62 </div>
63 );
64 }
65}
diff --git a/src/config.js b/src/config.js
index af304232e..45b840b0a 100644
--- a/src/config.js
+++ b/src/config.js
@@ -36,13 +36,13 @@ export const GA_ID = !isDevMode ? 'UA-74126766-10' : 'UA-74126766-12';
36export const KEEP_WS_LOADED_USID = '0a0aa000-0a0a-49a0-a000-a0a0a0a0a0a0'; 36export const KEEP_WS_LOADED_USID = '0a0aa000-0a0a-49a0-a000-a0a0a0a0a0a0';
37 37
38export const HIBERNATION_STRATEGIES = { 38export const HIBERNATION_STRATEGIES = {
39 10: 'Extemely Fast Hibernation (10sec)', 39 10: 'Extremely Fast Hibernation (10sec)',
40 30: 'Very Fast Hibernation (30sec)', 40 30: 'Very Fast Hibernation (30sec)',
41 60: 'Fast Hibernation (1min)', 41 60: 'Fast Hibernation (1min)',
42 300: 'Normal Hibernation (5min)', 42 300: 'Normal Hibernation (5min)',
43 600: 'Slow Hibernation (10min)', 43 600: 'Slow Hibernation (10min)',
44 1800: 'Very Slow Hibernation (30min)', 44 1800: 'Very Slow Hibernation (30min)',
45 3600: 'Extemely Slow Hibernation (1hour)', 45 3600: 'Extremely Slow Hibernation (1hour)',
46}; 46};
47 47
48export const NAVIGATION_BAR_BEHAVIOURS = { 48export const NAVIGATION_BAR_BEHAVIOURS = {
@@ -51,14 +51,26 @@ export const NAVIGATION_BAR_BEHAVIOURS = {
51 never: 'Never show navigation bar', 51 never: 'Never show navigation bar',
52}; 52};
53 53
54export const TODO_APPS = {
55 'https://todoist.com/app': 'Todoist',
56 'https://app.franztodos.com': 'Franz Todo',
57 'https://ticktick.com/signin': 'TickTick',
58 'https://todo.microsoft.com/?app#': 'Microsoft To Do',
59 'https://habitica.com/login': 'Habitica',
60 'https://app.nozbe.com/#login': 'Nozbe',
61 'https://www.rememberthemilk.com/login/': 'Remember The Milk',
62 'https://desktop.any.do/': 'Any.do',
63 isUsingCustomTodoService: 'Other service',
64};
65
54export const SIDEBAR_WIDTH = { 66export const SIDEBAR_WIDTH = {
55 35: 'Extemely slim sidebar', 67 35: 'Extremely slim sidebar',
56 45: 'Very slim sidebar', 68 45: 'Very slim sidebar',
57 55: 'Slim sidebar', 69 55: 'Slim sidebar',
58 68: 'Normal sidebar', 70 68: 'Normal sidebar',
59 80: 'Wide sidebar', 71 80: 'Wide sidebar',
60 90: 'Very wide sidebar', 72 90: 'Very wide sidebar',
61 100: 'Extemely wide sidebar', 73 100: 'Extremely wide sidebar',
62}; 74};
63 75
64export const ICON_SIZES = { 76export const ICON_SIZES = {
@@ -83,6 +95,7 @@ export const DEFAULT_APP_SETTINGS = {
83 privateNotifications: false, 95 privateNotifications: false,
84 showDisabledServices: true, 96 showDisabledServices: true,
85 showMessageBadgeWhenMuted: true, 97 showMessageBadgeWhenMuted: true,
98 showDragArea: false,
86 enableSpellchecking: true, 99 enableSpellchecking: true,
87 spellcheckerLanguage: 'en-us', 100 spellcheckerLanguage: 'en-us',
88 darkMode: process.platform === 'darwin' ? nativeTheme.shouldUseDarkColors : false, // We can't use refs from `./environment` at this time 101 darkMode: process.platform === 'darwin' ? nativeTheme.shouldUseDarkColors : false, // We can't use refs from `./environment` at this time
@@ -95,7 +108,7 @@ export const DEFAULT_APP_SETTINGS = {
95 108
96 // Ferdi specific options 109 // Ferdi specific options
97 server: LIVE_API, 110 server: LIVE_API,
98 todoServer: PRODUCTION_TODOS_FRONTEND_URL, 111 predefinedTodoServer: 'https://app.franztodos.com',
99 autohideMenuBar: false, 112 autohideMenuBar: false,
100 lockingFeatureEnabled: false, 113 lockingFeatureEnabled: false,
101 locked: false, 114 locked: false,
@@ -107,7 +120,7 @@ export const DEFAULT_APP_SETTINGS = {
107 hibernate: false, 120 hibernate: false,
108 hibernationStrategy: 300, 121 hibernationStrategy: 300,
109 inactivityLock: 0, 122 inactivityLock: 0,
110 noUpdates: false, 123 automaticUpdates: true,
111 showServiceNavigationBar: false, 124 showServiceNavigationBar: false,
112 universalDarkMode: true, 125 universalDarkMode: true,
113 adaptableDarkMode: true, 126 adaptableDarkMode: true,
@@ -166,7 +179,7 @@ if (process.env.FERDI_APPDATA_DIR != null) {
166 179
167export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config'); 180export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config');
168 181
169// Replacing app.asar is not beautiful but unforunately necessary 182// Replacing app.asar is not beautiful but unfortunately necessary
170export const RECIPES_PATH = asarPath(path.join(__dirname, 'recipes')); 183export const RECIPES_PATH = asarPath(path.join(__dirname, 'recipes'));
171 184
172export const ALLOWED_PROTOCOLS = [ 185export const ALLOWED_PROTOCOLS = [
diff --git a/src/containers/auth/ChangeServerScreen.js b/src/containers/auth/ChangeServerScreen.js
new file mode 100644
index 000000000..5c58087a3
--- /dev/null
+++ b/src/containers/auth/ChangeServerScreen.js
@@ -0,0 +1,50 @@
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import { inject, observer } from 'mobx-react';
4import { RouterStore } from 'mobx-react-router';
5import ChangeServer from '../../components/auth/ChangeServer';
6import SettingsStore from '../../stores/SettingsStore';
7
8export default @inject('stores', 'actions') @observer class ChangeServerScreen extends Component {
9 constructor(props) {
10 super(props);
11
12 this.onSubmit = this.onSubmit.bind(this);
13 }
14
15 onSubmit(values) {
16 const { server } = values;
17
18 this.props.actions.settings.update({
19 type: 'app',
20 data: {
21 server,
22 },
23 });
24 this.props.stores.router.push('/auth');
25 }
26
27 render() {
28 const { stores } = this.props;
29 const { server } = stores.settings.all.app;
30
31 return (
32 <ChangeServer
33 onSubmit={this.onSubmit}
34 server={server}
35 />
36 );
37 }
38}
39
40ChangeServerScreen.wrappedComponent.propTypes = {
41 actions: PropTypes.shape({
42 settings: PropTypes.shape({
43 update: PropTypes.func.isRequired,
44 }).isRequired,
45 }).isRequired,
46 stores: PropTypes.shape({
47 settings: PropTypes.instanceOf(SettingsStore).isRequired,
48 router: PropTypes.instanceOf(RouterStore).isRequired,
49 }).isRequired,
50};
diff --git a/src/containers/auth/LoginScreen.js b/src/containers/auth/LoginScreen.js
index e5ee10785..d17820ad6 100644
--- a/src/containers/auth/LoginScreen.js
+++ b/src/containers/auth/LoginScreen.js
@@ -21,6 +21,7 @@ export default @inject('stores', 'actions') @observer class LoginScreen extends
21 isServerLogout={stores.user.logoutReason === stores.user.logoutReasonTypes.SERVER} 21 isServerLogout={stores.user.logoutReason === stores.user.logoutReasonTypes.SERVER}
22 signupRoute={stores.user.signupRoute} 22 signupRoute={stores.user.signupRoute}
23 passwordRoute={stores.user.passwordRoute} 23 passwordRoute={stores.user.passwordRoute}
24 changeServerRoute={stores.user.changeServerRoute}
24 error={error} 25 error={error}
25 /> 26 />
26 ); 27 );
diff --git a/src/containers/auth/SignupScreen.js b/src/containers/auth/SignupScreen.js
index f93498be2..803fe1cd9 100644
--- a/src/containers/auth/SignupScreen.js
+++ b/src/containers/auth/SignupScreen.js
@@ -36,6 +36,7 @@ export default @inject('stores', 'actions') @observer class SignupScreen extends
36 onSubmit={values => this.onSignup(values)} 36 onSubmit={values => this.onSignup(values)}
37 isSubmitting={stores.user.signupRequest.isExecuting} 37 isSubmitting={stores.user.signupRequest.isExecuting}
38 loginRoute={stores.user.loginRoute} 38 loginRoute={stores.user.loginRoute}
39 changeServerRoute={stores.user.changeServerRoute}
39 error={error} 40 error={error}
40 /> 41 />
41 ); 42 );
diff --git a/src/containers/auth/WelcomeScreen.js b/src/containers/auth/WelcomeScreen.js
index 75182345a..6f2d0eee6 100644
--- a/src/containers/auth/WelcomeScreen.js
+++ b/src/containers/auth/WelcomeScreen.js
@@ -14,6 +14,7 @@ export default @inject('stores', 'actions') @observer class LoginScreen extends
14 <Welcome 14 <Welcome
15 loginRoute={user.loginRoute} 15 loginRoute={user.loginRoute}
16 signupRoute={user.signupRoute} 16 signupRoute={user.signupRoute}
17 changeServerRoute={user.changeServerRoute}
17 recipes={recipePreviews.featured} 18 recipes={recipePreviews.featured}
18 /> 19 />
19 ); 20 );
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js
index a7d33a3ea..14c1ef41e 100644
--- a/src/containers/settings/EditServiceScreen.js
+++ b/src/containers/settings/EditServiceScreen.js
@@ -33,6 +33,10 @@ const messages = defineMessages({
33 id: 'settings.service.form.enableService', 33 id: 'settings.service.form.enableService',
34 defaultMessage: '!!!Enable service', 34 defaultMessage: '!!!Enable service',
35 }, 35 },
36 disableHibernation: {
37 id: 'settings.service.form.disableHibernation',
38 defaultMessage: '!!!Disable hibernation',
39 },
36 enableNotification: { 40 enableNotification: {
37 id: 'settings.service.form.enableNotification', 41 id: 'settings.service.form.enableNotification',
38 defaultMessage: '!!!Enable Notifications', 42 defaultMessage: '!!!Enable Notifications',
@@ -65,6 +69,18 @@ const messages = defineMessages({
65 id: 'settings.service.form.enableDarkMode', 69 id: 'settings.service.form.enableDarkMode',
66 defaultMessage: '!!!Enable Dark Mode', 70 defaultMessage: '!!!Enable Dark Mode',
67 }, 71 },
72 darkReaderBrightness: {
73 id: 'settings.service.form.darkReaderBrightness',
74 defaultMessage: '!!!Darkreader Brightness',
75 },
76 darkReaderContrast: {
77 id: 'settings.service.form.darkReaderContrast',
78 defaultMessage: '!!!Darkreader Contrast',
79 },
80 darkReaderSepia: {
81 id: 'settings.service.form.darkReaderSepia',
82 defaultMessage: '!!!Darkreader Sepia',
83 },
68 enableProxy: { 84 enableProxy: {
69 id: 'settings.service.form.proxy.isEnabled', 85 id: 'settings.service.form.proxy.isEnabled',
70 defaultMessage: '!!!Use Proxy', 86 defaultMessage: '!!!Use Proxy',
@@ -96,6 +112,14 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
96 const { action } = this.props.router.params; 112 const { action } = this.props.router.params;
97 const { recipes, services } = this.props.stores; 113 const { recipes, services } = this.props.stores;
98 const { createService, updateService } = this.props.actions.service; 114 const { createService, updateService } = this.props.actions.service;
115 data.darkReaderSettings = {
116 brightness: data.darkReaderBrightness,
117 contrast: data.darkReaderContrast,
118 sepia: data.darkReaderSepia,
119 };
120 delete data.darkReaderContrast;
121 delete data.darkReaderBrightness;
122 delete data.darkReaderSepia;
99 123
100 const serviceData = data; 124 const serviceData = data;
101 serviceData.isMuted = !serviceData.isMuted; 125 serviceData.isMuted = !serviceData.isMuted;
@@ -114,8 +138,11 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
114 138
115 const { 139 const {
116 stores, 140 stores,
141 router,
117 } = this.props; 142 } = this.props;
118 143
144 const { action } = router.params;
145
119 let defaultSpellcheckerLanguage = SPELLCHECKER_LOCALES[stores.settings.app.spellcheckerLanguage]; 146 let defaultSpellcheckerLanguage = SPELLCHECKER_LOCALES[stores.settings.app.spellcheckerLanguage];
120 147
121 if (stores.settings.app.spellcheckerLanguage === 'automatic') { 148 if (stores.settings.app.spellcheckerLanguage === 'automatic') {
@@ -140,6 +167,11 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
140 value: service.isEnabled, 167 value: service.isEnabled,
141 default: true, 168 default: true,
142 }, 169 },
170 disableHibernation: {
171 label: intl.formatMessage(messages.disableHibernation),
172 value: action !== 'edit' ? false : service.disableHibernation,
173 default: false,
174 },
143 isNotificationEnabled: { 175 isNotificationEnabled: {
144 label: intl.formatMessage(messages.enableNotification), 176 label: intl.formatMessage(messages.enableNotification),
145 value: service.isNotificationEnabled, 177 value: service.isNotificationEnabled,
@@ -166,6 +198,21 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
166 value: service.isDarkModeEnabled, 198 value: service.isDarkModeEnabled,
167 default: stores.settings.app.darkMode, 199 default: stores.settings.app.darkMode,
168 }, 200 },
201 darkReaderBrightness: {
202 label: intl.formatMessage(messages.darkReaderBrightness),
203 value: service.darkReaderSettings ? service.darkReaderSettings.brightness : undefined,
204 default: 100,
205 },
206 darkReaderContrast: {
207 label: intl.formatMessage(messages.darkReaderContrast),
208 value: service.darkReaderSettings ? service.darkReaderSettings.contrast : undefined,
209 default: 90,
210 },
211 darkReaderSepia: {
212 label: intl.formatMessage(messages.darkReaderSepia),
213 value: service.darkReaderSettings ? service.darkReaderSettings.sepia : undefined,
214 default: 10,
215 },
169 spellcheckerLanguage: { 216 spellcheckerLanguage: {
170 label: intl.formatMessage(globalMessages.spellcheckerLanguage), 217 label: intl.formatMessage(globalMessages.spellcheckerLanguage),
171 value: service.spellcheckerLanguage, 218 value: service.spellcheckerLanguage,
@@ -292,7 +339,9 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
292 } 339 }
293 340
294 render() { 341 render() {
295 const { recipes, services, user } = this.props.stores; 342 const {
343 recipes, services, user, settings,
344 } = this.props.stores;
296 const { action } = this.props.router.params; 345 const { action } = this.props.router.params;
297 346
298 let recipe; 347 let recipe;
@@ -346,6 +395,7 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
346 isProxyFeatureEnabled={proxyFeature.isEnabled} 395 isProxyFeatureEnabled={proxyFeature.isEnabled}
347 isServiceProxyIncludedInCurrentPlan={proxyFeature.isIncludedInCurrentPlan} 396 isServiceProxyIncludedInCurrentPlan={proxyFeature.isIncludedInCurrentPlan}
348 isSpellcheckerIncludedInCurrentPlan={spellcheckerFeature.isIncludedInCurrentPlan} 397 isSpellcheckerIncludedInCurrentPlan={spellcheckerFeature.isIncludedInCurrentPlan}
398 isHibernationFeatureActive={settings.app.hibernate}
349 /> 399 />
350 </ErrorBoundary> 400 </ErrorBoundary>
351 ); 401 );
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 5221b0694..74ec1909e 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -11,7 +11,7 @@ import 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 { 13import {
14 DEFAULT_APP_SETTINGS, HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS, 14 DEFAULT_APP_SETTINGS, HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS, TODO_APPS,
15} from '../../config'; 15} from '../../config';
16import { config as spellcheckerConfig } from '../../features/spellchecker'; 16import { config as spellcheckerConfig } from '../../features/spellchecker';
17 17
@@ -20,8 +20,6 @@ import { getSelectOptions } from '../../helpers/i18n-helpers';
20import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; 20import EditSettingsForm from '../../components/settings/settings/EditSettingsForm';
21import ErrorBoundary from '../../components/util/ErrorBoundary'; 21import ErrorBoundary from '../../components/util/ErrorBoundary';
22 22
23import { API, TODOS_FRONTEND } from '../../environment';
24
25import globalMessages from '../../i18n/globalMessages'; 23import globalMessages from '../../i18n/globalMessages';
26import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos'; 24import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos';
27import WorkspacesStore from '../../features/workspaces/store'; 25import WorkspacesStore from '../../features/workspaces/store';
@@ -42,7 +40,7 @@ const messages = defineMessages({
42 }, 40 },
43 startMinimized: { 41 startMinimized: {
44 id: 'settings.app.form.startMinimized', 42 id: 'settings.app.form.startMinimized',
45 defaultMessage: '!!!Start minimized in tray', 43 defaultMessage: '!!!Start minimized',
46 }, 44 },
47 enableSystemTray: { 45 enableSystemTray: {
48 id: 'settings.app.form.enableSystemTray', 46 id: 'settings.app.form.enableSystemTray',
@@ -76,14 +74,14 @@ const messages = defineMessages({
76 id: 'settings.app.form.hibernationStrategy', 74 id: 'settings.app.form.hibernationStrategy',
77 defaultMessage: '!!!Hibernation strategy', 75 defaultMessage: '!!!Hibernation strategy',
78 }, 76 },
79 server: { 77 predefinedTodoServer: {
80 id: 'settings.app.form.server', 78 id: 'settings.app.form.predefinedTodoServer',
81 defaultMessage: '!!!Server',
82 },
83 todoServer: {
84 id: 'settings.app.form.todoServer',
85 defaultMessage: '!!!Todo Server', 79 defaultMessage: '!!!Todo Server',
86 }, 80 },
81 customTodoServer: {
82 id: 'settings.app.form.customTodoServer',
83 defaultMessage: '!!!Custom TodoServer',
84 },
87 enableLock: { 85 enableLock: {
88 id: 'settings.app.form.enableLock', 86 id: 'settings.app.form.enableLock',
89 defaultMessage: '!!!Enable Password Lock', 87 defaultMessage: '!!!Enable Password Lock',
@@ -122,7 +120,7 @@ const messages = defineMessages({
122 }, 120 },
123 adaptableDarkMode: { 121 adaptableDarkMode: {
124 id: 'settings.app.form.adaptableDarkMode', 122 id: 'settings.app.form.adaptableDarkMode',
125 defaultMessage: '!!!Synchronize dark mode with my Mac\'s dark mode setting', 123 defaultMessage: '!!!Synchronize dark mode with my OS\'s dark mode setting',
126 }, 124 },
127 universalDarkMode: { 125 universalDarkMode: {
128 id: 'settings.app.form.universalDarkMode', 126 id: 'settings.app.form.universalDarkMode',
@@ -148,6 +146,10 @@ const messages = defineMessages({
148 id: 'settings.app.form.showMessagesBadgesWhenMuted', 146 id: 'settings.app.form.showMessagesBadgesWhenMuted',
149 defaultMessage: '!!!Show unread message badge when notifications are disabled', 147 defaultMessage: '!!!Show unread message badge when notifications are disabled',
150 }, 148 },
149 showDragArea: {
150 id: 'settings.app.form.showDragArea',
151 defaultMessage: '!!!Show draggable area on window',
152 },
151 enableSpellchecking: { 153 enableSpellchecking: {
152 id: 'settings.app.form.enableSpellchecking', 154 id: 'settings.app.form.enableSpellchecking',
153 defaultMessage: '!!!Enable spell checking', 155 defaultMessage: '!!!Enable spell checking',
@@ -160,9 +162,9 @@ const messages = defineMessages({
160 id: 'settings.app.form.beta', 162 id: 'settings.app.form.beta',
161 defaultMessage: '!!!Include beta versions', 163 defaultMessage: '!!!Include beta versions',
162 }, 164 },
163 noUpdates: { 165 automaticUpdates: {
164 id: 'settings.app.form.noUpdates', 166 id: 'settings.app.form.automaticUpdates',
165 defaultMessage: '!!!Disable updates', 167 defaultMessage: '!!!Enable updates',
166 }, 168 },
167 enableTodos: { 169 enableTodos: {
168 id: 'settings.app.form.enableTodos', 170 id: 'settings.app.form.enableTodos',
@@ -207,8 +209,8 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
207 sentry: settingsData.sentry, 209 sentry: settingsData.sentry,
208 hibernate: settingsData.hibernate, 210 hibernate: settingsData.hibernate,
209 hibernationStrategy: settingsData.hibernationStrategy, 211 hibernationStrategy: settingsData.hibernationStrategy,
210 server: settingsData.server, 212 predefinedTodoServer: settingsData.predefinedTodoServer,
211 todoServer: settingsData.todoServer, 213 customTodoServer: settingsData.customTodoServer,
212 lockingFeatureEnabled: settingsData.lockingFeatureEnabled, 214 lockingFeatureEnabled: settingsData.lockingFeatureEnabled,
213 lockedPassword: settingsData.lockedPassword, 215 lockedPassword: settingsData.lockedPassword,
214 useTouchIdToUnlock: settingsData.useTouchIdToUnlock, 216 useTouchIdToUnlock: settingsData.useTouchIdToUnlock,
@@ -225,17 +227,18 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
225 iconSize: settingsData.iconSize, 227 iconSize: settingsData.iconSize,
226 accentColor: settingsData.accentColor, 228 accentColor: settingsData.accentColor,
227 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, 229 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted,
230 showDragArea: settingsData.showDragArea,
228 enableSpellchecking: settingsData.enableSpellchecking, 231 enableSpellchecking: settingsData.enableSpellchecking,
229 spellcheckerLanguage: settingsData.spellcheckerLanguage, 232 spellcheckerLanguage: settingsData.spellcheckerLanguage,
230 beta: settingsData.beta, // we need this info in the main process as well 233 beta: settingsData.beta, // we need this info in the main process as well
231 noUpdates: settingsData.noUpdates, // we need this info in the main process as well 234 automaticUpdates: settingsData.automaticUpdates, // we need this info in the main process as well
232 locale: settingsData.locale, // we need this info in the main process as well 235 locale: settingsData.locale, // we need this info in the main process as well
233 }, 236 },
234 }); 237 });
235 238
236 user.update({ 239 user.update({
237 userData: { 240 userData: {
238 noUpdates: settingsData.noUpdates, 241 automaticUpdates: settingsData.automaticUpdates,
239 beta: settingsData.beta, 242 beta: settingsData.beta,
240 locale: settingsData.locale, 243 locale: settingsData.locale,
241 }, 244 },
@@ -280,6 +283,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
280 sort: false, 283 sort: false,
281 }); 284 });
282 285
286 const todoApp = getSelectOptions({
287 locales: TODO_APPS,
288 sort: false,
289 });
290
283 const sidebarWidth = getSelectOptions({ 291 const sidebarWidth = getSelectOptions({
284 locales: SIDEBAR_WIDTH, 292 locales: SIDEBAR_WIDTH,
285 sort: false, 293 sort: false,
@@ -359,15 +367,16 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
359 options: hibernationStrategies, 367 options: hibernationStrategies,
360 default: DEFAULT_APP_SETTINGS.hibernationStrategy, 368 default: DEFAULT_APP_SETTINGS.hibernationStrategy,
361 }, 369 },
362 server: { 370 predefinedTodoServer: {
363 label: intl.formatMessage(messages.server), 371 label: intl.formatMessage(messages.predefinedTodoServer),
364 value: settings.all.app.server || API, 372 value: settings.all.app.predefinedTodoServer,
365 default: API, 373 default: DEFAULT_APP_SETTINGS.predefinedTodoServer,
374 options: todoApp,
366 }, 375 },
367 todoServer: { 376 customTodoServer: {
368 label: intl.formatMessage(messages.todoServer), 377 label: intl.formatMessage(messages.customTodoServer),
369 value: settings.all.app.todoServer, 378 value: settings.all.app.customTodoServer,
370 default: TODOS_FRONTEND, 379 default: DEFAULT_APP_SETTINGS.customTodoServer,
371 }, 380 },
372 lockingFeatureEnabled: { 381 lockingFeatureEnabled: {
373 label: intl.formatMessage(messages.enableLock), 382 label: intl.formatMessage(messages.enableLock),
@@ -418,6 +427,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
418 value: settings.all.app.showMessageBadgeWhenMuted, 427 value: settings.all.app.showMessageBadgeWhenMuted,
419 default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, 428 default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted,
420 }, 429 },
430 showDragArea: {
431 label: intl.formatMessage(messages.showDragArea),
432 value: settings.all.app.showDragArea,
433 default: DEFAULT_APP_SETTINGS.showDragArea,
434 },
421 enableSpellchecking: { 435 enableSpellchecking: {
422 label: intl.formatMessage(messages.enableSpellchecking), 436 label: intl.formatMessage(messages.enableSpellchecking),
423 value: !this.props.stores.user.data.isPremium && !spellcheckerConfig.isIncludedInCurrentPlan ? false : settings.all.app.enableSpellchecking, 437 value: !this.props.stores.user.data.isPremium && !spellcheckerConfig.isIncludedInCurrentPlan ? false : settings.all.app.enableSpellchecking,
@@ -477,10 +491,10 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
477 value: user.data.beta, 491 value: user.data.beta,
478 default: DEFAULT_APP_SETTINGS.beta, 492 default: DEFAULT_APP_SETTINGS.beta,
479 }, 493 },
480 noUpdates: { 494 automaticUpdates: {
481 label: intl.formatMessage(messages.noUpdates), 495 label: intl.formatMessage(messages.automaticUpdates),
482 value: settings.app.noUpdates, 496 value: settings.app.automaticUpdates,
483 default: DEFAULT_APP_SETTINGS.noUpdates, 497 default: DEFAULT_APP_SETTINGS.automaticUpdates,
484 }, 498 },
485 }, 499 },
486 }; 500 };
@@ -541,13 +555,13 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
541 isSpellcheckerIncludedInCurrentPlan={spellcheckerConfig.isIncludedInCurrentPlan} 555 isSpellcheckerIncludedInCurrentPlan={spellcheckerConfig.isIncludedInCurrentPlan}
542 isTodosEnabled={todos.isFeatureActive} 556 isTodosEnabled={todos.isFeatureActive}
543 isWorkspaceEnabled={workspaces.isFeatureActive} 557 isWorkspaceEnabled={workspaces.isFeatureActive}
544 server={this.props.stores.settings.app.server}
545 lockingFeatureEnabled={lockingFeatureEnabled} 558 lockingFeatureEnabled={lockingFeatureEnabled}
546 noUpdates={this.props.stores.settings.app.noUpdates} 559 automaticUpdates={this.props.stores.settings.app.automaticUpdates}
547 hibernationEnabled={this.props.stores.settings.app.hibernate} 560 hibernationEnabled={this.props.stores.settings.app.hibernate}
548 isDarkmodeEnabled={this.props.stores.settings.app.darkMode} 561 isDarkmodeEnabled={this.props.stores.settings.app.darkMode}
549 isTrayEnabled={this.props.stores.settings.app.enableSystemTray}
550 isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode} 562 isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode}
563 isTodosActivated={this.props.stores.todos.isFeatureEnabledByUser}
564 isUsingCustomTodoService={this.props.stores.todos.isUsingCustomTodoService}
551 openProcessManager={() => this.openProcessManager()} 565 openProcessManager={() => this.openProcessManager()}
552 /> 566 />
553 </ErrorBoundary> 567 </ErrorBoundary>
diff --git a/src/containers/settings/TeamScreen.js b/src/containers/settings/TeamScreen.js
index d0196923a..3e21ca2d9 100644
--- a/src/containers/settings/TeamScreen.js
+++ b/src/containers/settings/TeamScreen.js
@@ -8,13 +8,12 @@ import SettingsStore from '../../stores/SettingsStore';
8 8
9import TeamDashboard from '../../components/settings/team/TeamDashboard'; 9import TeamDashboard from '../../components/settings/team/TeamDashboard';
10import ErrorBoundary from '../../components/util/ErrorBoundary'; 10import ErrorBoundary from '../../components/util/ErrorBoundary';
11import { WEBSITE } from '../../environment';
12 11
13export default @inject('stores', 'actions') @observer class TeamScreen extends Component { 12export default @inject('stores', 'actions') @observer class TeamScreen extends Component {
14 handleWebsiteLink(route) { 13 handleWebsiteLink(route) {
15 const { actions, stores } = this.props; 14 const { actions, stores } = this.props;
16 15
17 const url = `${WEBSITE}${route}?authToken=${stores.user.authToken}&utm_source=app&utm_medium=account_dashboard`; 16 const url = `https://meetfranz.com/${route}?authToken=${stores.user.authToken}&utm_source=app&utm_medium=account_dashboard`;
18 17
19 actions.app.openExternalUrl({ url }); 18 actions.app.openExternalUrl({ url });
20 } 19 }
diff --git a/src/electron/ipc-api/autoUpdate.js b/src/electron/ipc-api/autoUpdate.js
index 506aecdf7..8c4d908dc 100644
--- a/src/electron/ipc-api/autoUpdate.js
+++ b/src/electron/ipc-api/autoUpdate.js
@@ -4,15 +4,13 @@ import { autoUpdater } from 'electron-updater';
4const debug = require('debug')('Ferdi:ipcApi:autoUpdate'); 4const debug = require('debug')('Ferdi:ipcApi:autoUpdate');
5 5
6export default (params) => { 6export default (params) => {
7 const disableUpdates = Boolean(params.settings.app.get('noUpdates')); 7 const enableUpdate = Boolean(params.settings.app.get('automaticUpdates'));
8 8
9 if (disableUpdates) { 9 if (!enableUpdate) {
10 autoUpdater.autoInstallOnAppQuit = false; 10 autoUpdater.autoInstallOnAppQuit = false;
11 autoUpdater.autoDownload = false; 11 autoUpdater.autoDownload = false;
12 } else if (process.platform === 'darwin' || process.platform === 'win32' || process.env.APPIMAGE) { 12 } else if (process.platform === 'darwin' || process.platform === 'win32' || process.env.APPIMAGE) {
13 ipcMain.on('autoUpdate', (event, args) => { 13 ipcMain.on('autoUpdate', (event, args) => {
14 const enableUpdate = !params.settings.app.get('noUpdates');
15
16 if (enableUpdate) { 14 if (enableUpdate) {
17 try { 15 try {
18 autoUpdater.autoInstallOnAppQuit = false; 16 autoUpdater.autoInstallOnAppQuit = false;
@@ -42,7 +40,6 @@ export default (params) => {
42 autoUpdater.on('update-available', (event) => { 40 autoUpdater.on('update-available', (event) => {
43 debug('update-available'); 41 debug('update-available');
44 42
45 const enableUpdate = !params.settings.app.get('noUpdates');
46 if (enableUpdate) { 43 if (enableUpdate) {
47 params.mainWindow.webContents.send('autoUpdate', { 44 params.mainWindow.webContents.send('autoUpdate', {
48 version: event.version, 45 version: event.version,
diff --git a/src/electron/macOSPermissions.js b/src/electron/macOSPermissions.js
new file mode 100644
index 000000000..4ba6a7619
--- /dev/null
+++ b/src/electron/macOSPermissions.js
@@ -0,0 +1,14 @@
1import { systemPreferences } from 'electron';
2import {
3 hasScreenCapturePermission,
4 hasPromptedForPermission,
5} from 'mac-screen-capture-permissions';
6
7export default function () {
8 systemPreferences.askForMediaAccess('camera');
9 systemPreferences.askForMediaAccess('microphone');
10
11 if (!hasPromptedForPermission()) {
12 hasScreenCapturePermission();
13 }
14}
diff --git a/src/features/announcements/components/AnnouncementScreen.js b/src/features/announcements/components/AnnouncementScreen.js
index 38de2dbc8..2f25e7139 100644
--- a/src/features/announcements/components/AnnouncementScreen.js
+++ b/src/features/announcements/components/AnnouncementScreen.js
@@ -192,6 +192,11 @@ class AnnouncementScreen extends Component {
192 stores: PropTypes.shape({ 192 stores: PropTypes.shape({
193 ui: PropTypes.instanceOf(UIStore).isRequired, 193 ui: PropTypes.instanceOf(UIStore).isRequired,
194 }).isRequired, 194 }).isRequired,
195 actions: PropTypes.shape({
196 app: PropTypes.shape({
197 openExternalUrl: PropTypes.func.isRequired,
198 }).isRequired,
199 }).isRequired,
195 }; 200 };
196 201
197 static contextTypes = { 202 static contextTypes = {
@@ -199,7 +204,7 @@ class AnnouncementScreen extends Component {
199 }; 204 };
200 205
201 render() { 206 render() {
202 const { classes, stores } = this.props; 207 const { classes, stores, actions } = this.props;
203 const { intl } = this.context; 208 const { intl } = this.context;
204 const { changelog, announcement } = announcementsStore; 209 const { changelog, announcement } = announcementsStore;
205 const themeImage = stores.ui.isDarkThemeActive ? 'dark' : 'light'; 210 const themeImage = stores.ui.isDarkThemeActive ? 'dark' : 'light';
@@ -223,14 +228,23 @@ class AnnouncementScreen extends Component {
223 __html: marked(announcement.main.text, markedOptions), 228 __html: marked(announcement.main.text, markedOptions),
224 }} 229 }}
225 /> 230 />
226 <div className={classes.mainCtaButton}> 231 {(announcement.main.cta.label || announcement.main.cta.href) && (
227 <Button 232 <div className={classes.mainCtaButton}>
228 label={announcement.main.cta.label} 233 <Button
229 onClick={() => { 234 label={announcement.main.cta.label}
230 window.location.href = `#${announcement.main.cta.href}`; 235 onClick={() => {
231 }} 236 const {
232 /> 237 href,
233 </div> 238 } = announcement.main.cta;
239 if (announcement.main.cta.href.startsWith('http')) {
240 actions.app.openExternalUrl({ url: href });
241 } else {
242 window.location.href = `#${href}`;
243 }
244 }}
245 />
246 </div>
247 )}
234 </div> 248 </div>
235 </div> 249 </div>
236 </div> 250 </div>
@@ -250,7 +264,14 @@ class AnnouncementScreen extends Component {
250 <Button 264 <Button
251 label={announcement.spotlight.cta.label} 265 label={announcement.spotlight.cta.label}
252 onClick={() => { 266 onClick={() => {
253 window.location.href = `#${announcement.spotlight.cta.href}`; 267 const {
268 href,
269 } = announcement.spotlight.cta;
270 if (announcement.spotlight.cta.href.startsWith('http')) {
271 actions.app.openExternalUrl({ url: href });
272 } else {
273 window.location.href = `#${href}`;
274 }
254 }} 275 }}
255 /> 276 />
256 </div> 277 </div>
diff --git a/src/features/appearance/index.js b/src/features/appearance/index.js
index 6dcdfc986..a14d1461e 100644
--- a/src/features/appearance/index.js
+++ b/src/features/appearance/index.js
@@ -63,6 +63,22 @@ function generateServiceRibbonWidthStyle(widthStr, iconSizeStr) {
63 `; 63 `;
64} 64}
65 65
66function generateShowDragAreaStyle(accentColor) {
67 return `
68 .sidebar {
69 padding-top: 0px !important;
70 }
71 .window-draggable {
72 position: initial;
73 background-color: ${accentColor};
74 }
75 #root {
76 /** Remove 22px from app height, otherwise the page will be to high */
77 height: calc(100% - 22px);
78 }
79 `;
80}
81
66function generateStyle(settings) { 82function generateStyle(settings) {
67 let style = ''; 83 let style = '';
68 84
@@ -70,6 +86,7 @@ function generateStyle(settings) {
70 accentColor, 86 accentColor,
71 serviceRibbonWidth, 87 serviceRibbonWidth,
72 iconSize, 88 iconSize,
89 showDragArea,
73 } = settings; 90 } = settings;
74 91
75 if (accentColor !== DEFAULT_APP_SETTINGS.accentColor) { 92 if (accentColor !== DEFAULT_APP_SETTINGS.accentColor) {
@@ -79,6 +96,9 @@ function generateStyle(settings) {
79 || iconSize !== DEFAULT_APP_SETTINGS.iconSize) { 96 || iconSize !== DEFAULT_APP_SETTINGS.iconSize) {
80 style += generateServiceRibbonWidthStyle(serviceRibbonWidth, iconSize); 97 style += generateServiceRibbonWidthStyle(serviceRibbonWidth, iconSize);
81 } 98 }
99 if (showDragArea) {
100 style += generateShowDragAreaStyle(accentColor);
101 }
82 102
83 return style; 103 return style;
84} 104}
@@ -121,4 +141,13 @@ export default function initAppearance(stores) {
121 updateStyle(settings.all.app); 141 updateStyle(settings.all.app);
122 }, 142 },
123 ); 143 );
144 // Update draggable area
145 reaction(
146 () => (
147 settings.all.app.showDragArea
148 ),
149 () => {
150 updateStyle(settings.all.app);
151 },
152 );
124} 153}
diff --git a/src/features/planSelection/components/PlanItem.js b/src/features/planSelection/components/PlanItem.js
index ec061377b..3855fedf1 100644
--- a/src/features/planSelection/components/PlanItem.js
+++ b/src/features/planSelection/components/PlanItem.js
@@ -49,6 +49,7 @@ const styles = theme => ({
49 priceWrapper: { 49 priceWrapper: {
50 height: 50, 50 height: 50,
51 marginBottom: 0, 51 marginBottom: 0,
52 marginTop: ({ text }) => (!text ? 15 : 0),
52 }, 53 },
53 price: { 54 price: {
54 fontSize: 50, 55 fontSize: 50,
@@ -64,7 +65,7 @@ const styles = theme => ({
64 cta: { 65 cta: {
65 background: theme.styleTypes.primary.accent, 66 background: theme.styleTypes.primary.accent,
66 color: theme.styleTypes.primary.contrast, 67 color: theme.styleTypes.primary.contrast,
67 margin: [40, 'auto', 0, 'auto'], 68 margin: [30, 'auto', 0, 'auto'],
68 }, 69 },
69 divider: { 70 divider: {
70 width: 40, 71 width: 40,
@@ -77,10 +78,14 @@ const styles = theme => ({
77 background: color(theme.styleTypes.primary.accent).darken(0.25).hex(), 78 background: color(theme.styleTypes.primary.accent).darken(0.25).hex(),
78 color: theme.styleTypes.primary.contrast, 79 color: theme.styleTypes.primary.contrast,
79 position: 'relative', 80 position: 'relative',
81 height: 'auto',
80 }, 82 },
81 content: { 83 content: {
82 padding: [10, 20, 20], 84 padding: [10, 20, 20],
83 background: '#EFEFEF', 85 background: '#EFEFEF',
86 display: 'flex',
87 flexDirection: 'column',
88 justifyContent: 'space-between',
84 }, 89 },
85 simpleCTA: { 90 simpleCTA: {
86 background: 'none', 91 background: 'none',
@@ -167,10 +172,14 @@ export default @observer @injectSheet(styles) class PlanItem extends Component {
167 </div> 172 </div>
168 )} 173 )}
169 <H2 className={classes.planName}>{name}</H2> 174 <H2 className={classes.planName}>{name}</H2>
170 <p className={classes.text}> 175 {text && (
171 {text} 176 <>
172 </p> 177 <p className={classes.text}>
173 <hr className={classes.divider} /> 178 {text}
179 </p>
180 <hr className={classes.divider} />
181 </>
182 )}
174 <p className={classes.priceWrapper}> 183 <p className={classes.priceWrapper}>
175 <span className={classes.currency}>{currency}</span> 184 <span className={classes.currency}>{currency}</span>
176 <span className={classes.price}> 185 <span className={classes.price}>
diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js
index 4bf5238dd..6f0dd30ad 100644
--- a/src/features/planSelection/components/PlanSelection.js
+++ b/src/features/planSelection/components/PlanSelection.js
@@ -6,7 +6,7 @@ import { defineMessages, intlShape } from 'react-intl';
6import { H1, H2, Icon } from '@meetfranz/ui'; 6import { H1, H2, Icon } from '@meetfranz/ui';
7import color from 'color'; 7import color from 'color';
8 8
9import { mdiRocket, mdiArrowRight } from '@mdi/js'; 9import { mdiArrowRight } from '@mdi/js';
10import PlanItem from './PlanItem'; 10import PlanItem from './PlanItem';
11import { i18nPlanName } from '../../../helpers/plan-helpers'; 11import { i18nPlanName } from '../../../helpers/plan-helpers';
12import { PLANS } from '../../../config'; 12import { PLANS } from '../../../config';
@@ -79,10 +79,10 @@ const styles = theme => ({
79 overflowY: 'scroll', 79 overflowY: 'scroll',
80 }, 80 },
81 container: { 81 container: {
82 width: '80%', 82 // width: '80%',
83 height: 'auto', 83 height: 'auto',
84 background: theme.styleTypes.primary.accent, 84 // background: theme.styleTypes.primary.accent,
85 padding: 40, 85 // padding: 40,
86 borderRadius: theme.borderRadius, 86 borderRadius: theme.borderRadius,
87 maxWidth: 1000, 87 maxWidth: 1000,
88 88
@@ -104,23 +104,6 @@ const styles = theme => ({
104 boxShadow: [0, 2, 30, color('#000').alpha(0.1).rgb().string()], 104 boxShadow: [0, 2, 30, color('#000').alpha(0.1).rgb().string()],
105 }, 105 },
106 }, 106 },
107 bigIcon: {
108 background: theme.styleTypes.danger.accent,
109 width: 120,
110 height: 120,
111 display: 'flex',
112 alignItems: 'center',
113 borderRadius: '100%',
114 justifyContent: 'center',
115 margin: [-100, 'auto', 20],
116
117 '& svg': {
118 width: '80px !important',
119 height: '80px !important',
120 filter: 'drop-shadow( 0px 2px 3px rgba(0, 0, 0, 0.3))',
121 fill: theme.styleTypes.danger.contrast,
122 },
123 },
124 headline: { 107 headline: {
125 fontSize: 40, 108 fontSize: 40,
126 }, 109 },
@@ -158,7 +141,7 @@ const styles = theme => ({
158 overflow: 'scroll-x', 141 overflow: 'scroll-x',
159 }, 142 },
160 featuredPlan: { 143 featuredPlan: {
161 transform: 'scale(1.05)', 144 transform: ({ isPersonalPlanAvailable }) => (isPersonalPlanAvailable ? 'scale(1.05)' : null),
162 }, 145 },
163 disclaimer: { 146 disclaimer: {
164 textAlign: 'right', 147 textAlign: 'right',
@@ -177,8 +160,13 @@ class PlanSelection extends Component {
177 upgradeAccount: PropTypes.func.isRequired, 160 upgradeAccount: PropTypes.func.isRequired,
178 stayOnFree: PropTypes.func.isRequired, 161 stayOnFree: PropTypes.func.isRequired,
179 hadSubscription: PropTypes.bool.isRequired, 162 hadSubscription: PropTypes.bool.isRequired,
163 isPersonalPlanAvailable: PropTypes.bool,
180 }; 164 };
181 165
166 static defaultProps = {
167 isPersonalPlanAvailable: true,
168 }
169
182 static contextTypes = { 170 static contextTypes = {
183 intl: intlShape, 171 intl: intlShape,
184 }; 172 };
@@ -196,6 +184,7 @@ class PlanSelection extends Component {
196 upgradeAccount, 184 upgradeAccount,
197 stayOnFree, 185 stayOnFree,
198 hadSubscription, 186 hadSubscription,
187 isPersonalPlanAvailable,
199 } = this.props; 188 } = this.props;
200 189
201 const { intl } = this.context; 190 const { intl } = this.context;
@@ -206,15 +195,14 @@ class PlanSelection extends Component {
206 className={classes.root} 195 className={classes.root}
207 > 196 >
208 <div className={classes.container}> 197 <div className={classes.container}>
209 <div className={classes.bigIcon}>
210 <Icon icon={mdiRocket} />
211 </div>
212 <H1 className={classes.headline}>{intl.formatMessage(messages.welcome, { name: firstname })}</H1> 198 <H1 className={classes.headline}>{intl.formatMessage(messages.welcome, { name: firstname })}</H1>
213 <H2 className={classes.subheadline}>{intl.formatMessage(messages.subheadline)}</H2> 199 {isPersonalPlanAvailable && (
200 <H2 className={classes.subheadline}>{intl.formatMessage(messages.subheadline)}</H2>
201 )}
214 <div className={classes.plans}> 202 <div className={classes.plans}>
215 <PlanItem 203 <PlanItem
216 name={i18nPlanName(PLANS.FREE, intl)} 204 name={i18nPlanName(PLANS.FREE, intl)}
217 text={intl.formatMessage(messages.textFree)} 205 text={isPersonalPlanAvailable ? intl.formatMessage(messages.textFree) : null}
218 price={0} 206 price={0}
219 currency={currency} 207 currency={currency}
220 ctaLabel={intl.formatMessage(subscriptionExpired ? messages.ctaDowngradeFree : messages.ctaStayOnFree)} 208 ctaLabel={intl.formatMessage(subscriptionExpired ? messages.ctaDowngradeFree : messages.ctaStayOnFree)}
@@ -228,33 +216,35 @@ class PlanSelection extends Component {
228 </PlanItem> 216 </PlanItem>
229 <PlanItem 217 <PlanItem
230 name={i18nPlanName(plans.pro.yearly.id, intl)} 218 name={i18nPlanName(plans.pro.yearly.id, intl)}
231 text={intl.formatMessage(messages.textProfessional)} 219 text={isPersonalPlanAvailable ? intl.formatMessage(messages.textProfessional) : null}
232 price={plans.pro.yearly.price} 220 price={plans.pro.yearly.price}
233 currency={currency} 221 currency={currency}
234 ctaLabel={intl.formatMessage(hadSubscription ? messages.shortActionPro : messages.actionTrial)} 222 ctaLabel={intl.formatMessage(hadSubscription ? messages.shortActionPro : messages.actionTrial)}
235 upgrade={() => upgradeAccount(plans.pro.yearly.id)} 223 upgrade={() => upgradeAccount(plans.pro.yearly.id)}
236 className={classes.featuredPlan} 224 className={classes.featuredPlan}
237 perUser 225 perUser
238 bestValue 226 bestValue={isPersonalPlanAvailable}
239 >
240 <FeatureList
241 plan={PLANS.PRO}
242 className={classes.featureList}
243 />
244 </PlanItem>
245 <PlanItem
246 name={i18nPlanName(plans.personal.yearly.id, intl)}
247 text={intl.formatMessage(messages.textPersonal)}
248 price={plans.personal.yearly.price}
249 currency={currency}
250 ctaLabel={intl.formatMessage(hadSubscription ? messages.shortActionPersonal : messages.actionTrial)}
251 upgrade={() => upgradeAccount(plans.personal.yearly.id)}
252 > 227 >
253 <FeatureList 228 <FeatureList
254 plan={PLANS.PERSONAL} 229 plan={isPersonalPlanAvailable ? PLANS.PRO : null}
255 className={classes.featureList} 230 className={classes.featureList}
256 /> 231 />
257 </PlanItem> 232 </PlanItem>
233 {isPersonalPlanAvailable && (
234 <PlanItem
235 name={i18nPlanName(plans.personal.yearly.id, intl)}
236 text={intl.formatMessage(messages.textPersonal)}
237 price={plans.personal.yearly.price}
238 currency={currency}
239 ctaLabel={intl.formatMessage(hadSubscription ? messages.shortActionPersonal : messages.actionTrial)}
240 upgrade={() => upgradeAccount(plans.personal.yearly.id)}
241 >
242 <FeatureList
243 plan={PLANS.PERSONAL}
244 className={classes.featureList}
245 />
246 </PlanItem>
247 )}
258 </div> 248 </div>
259 <div className={classes.footer}> 249 <div className={classes.footer}>
260 <a 250 <a
diff --git a/src/features/planSelection/containers/PlanSelectionScreen.js b/src/features/planSelection/containers/PlanSelectionScreen.js
index d202c924e..e4d85cda5 100644
--- a/src/features/planSelection/containers/PlanSelectionScreen.js
+++ b/src/features/planSelection/containers/PlanSelectionScreen.js
@@ -53,7 +53,8 @@ class PlanSelectionScreen extends Component {
53 const { intl } = this.context; 53 const { intl } = this.context;
54 54
55 const { user, features } = this.props.stores; 55 const { user, features } = this.props.stores;
56 const { plans, currency } = features.features.pricingConfig; 56 const { isPersonalPlanAvailable, pricingConfig } = features.features;
57 const { plans, currency } = pricingConfig;
57 const { activateTrial } = this.props.actions.user; 58 const { activateTrial } = this.props.actions.user;
58 const { downgradeAccount, hideOverlay } = this.props.actions.planSelection; 59 const { downgradeAccount, hideOverlay } = this.props.actions.planSelection;
59 60
@@ -95,6 +96,7 @@ class PlanSelectionScreen extends Component {
95 }} 96 }}
96 subscriptionExpired={user.team && user.team.state === 'expired' && !user.team.userHasDowngraded} 97 subscriptionExpired={user.team && user.team.state === 'expired' && !user.team.userHasDowngraded}
97 hadSubscription={user.data.hadSubscription} 98 hadSubscription={user.data.hadSubscription}
99 isPersonalPlanAvailable={isPersonalPlanAvailable}
98 /> 100 />
99 </ErrorBoundary> 101 </ErrorBoundary>
100 ); 102 );
diff --git a/src/features/todos/components/TodosWebview.js b/src/features/todos/components/TodosWebview.js
index e9b1963f7..2626186e9 100644
--- a/src/features/todos/components/TodosWebview.js
+++ b/src/features/todos/components/TodosWebview.js
@@ -9,10 +9,20 @@ import { defineMessages, intlShape } from 'react-intl';
9import { mdiCheckAll } from '@mdi/js'; 9import { mdiCheckAll } from '@mdi/js';
10import SettingsStore from '../../../stores/SettingsStore'; 10import SettingsStore from '../../../stores/SettingsStore';
11 11
12import * as environment from '../../../environment';
13import Appear from '../../../components/ui/effects/Appear'; 12import Appear from '../../../components/ui/effects/Appear';
14import UpgradeButton from '../../../components/ui/UpgradeButton'; 13import UpgradeButton from '../../../components/ui/UpgradeButton';
15 14
15// NOTE: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url
16function validURL(str) {
17 const pattern = new RegExp('^(https?:\\/\\/)?' // protocol
18 + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' // domain name
19 + '((\\d{1,3}\\.){3}\\d{1,3}))' // OR ip (v4) address
20 + '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' // port and path
21 + '(\\?[;&a-z\\d%_.~+=-]*)?' // query string
22 + '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator
23 return !!pattern.test(str);
24}
25
16const messages = defineMessages({ 26const messages = defineMessages({
17 premiumInfo: { 27 premiumInfo: {
18 id: 'feature.todos.premium.info', 28 id: 'feature.todos.premium.info',
@@ -194,6 +204,16 @@ class TodosWebview extends Component {
194 204
195 const { intl } = this.context; 205 const { intl } = this.context;
196 206
207 const isUsingPredefinedTodoServer = stores.settings.all.app.predefinedTodoServer !== 'isUsingCustomTodoService';
208 const todoUrl = isUsingPredefinedTodoServer
209 ? stores.settings.all.app.predefinedTodoServer
210 : stores.settings.all.app.customTodoServer;
211 let isTodoUrlValid = true;
212 if (isUsingPredefinedTodoServer === false) {
213 isTodoUrlValid = validURL(todoUrl);
214 }
215
216
197 return ( 217 return (
198 <div 218 <div
199 className={classes.root} 219 className={classes.root}
@@ -213,6 +233,8 @@ class TodosWebview extends Component {
213 /> 233 />
214 )} 234 )}
215 {isTodosIncludedInCurrentPlan ? ( 235 {isTodosIncludedInCurrentPlan ? (
236 isTodoUrlValid
237 && (
216 <Webview 238 <Webview
217 className={classes.webview} 239 className={classes.webview}
218 onDidAttach={() => { 240 onDidAttach={() => {
@@ -223,8 +245,9 @@ class TodosWebview extends Component {
223 partition="persist:todos" 245 partition="persist:todos"
224 preload="./features/todos/preload.js" 246 preload="./features/todos/preload.js"
225 ref={(webview) => { this.webview = webview ? webview.view : null; }} 247 ref={(webview) => { this.webview = webview ? webview.view : null; }}
226 src={stores.settings.all.app.todoServer || environment.TODOS_FRONTEND} 248 src={todoUrl}
227 /> 249 />
250 )
228 ) : ( 251 ) : (
229 <Appear> 252 <Appear>
230 <div className={classes.premiumContainer}> 253 <div className={classes.premiumContainer}>
diff --git a/src/features/webControls/containers/WebControlsScreen.js b/src/features/webControls/containers/WebControlsScreen.js
index 31168a397..258b15b14 100644
--- a/src/features/webControls/containers/WebControlsScreen.js
+++ b/src/features/webControls/containers/WebControlsScreen.js
@@ -52,11 +52,8 @@ class WebControlsScreen extends Component {
52 } 52 }
53 53
54 goHome() { 54 goHome() {
55 const { reloadActive } = this.props.actions.service;
56
57 if (!this.webview) return; 55 if (!this.webview) return;
58 56 this.webview.goToIndex(0);
59 reloadActive();
60 } 57 }
61 58
62 reload() { 59 reload() {
diff --git a/src/helpers/plan-helpers.js b/src/helpers/plan-helpers.js
index ee22e4471..b474f8bbd 100644
--- a/src/helpers/plan-helpers.js
+++ b/src/helpers/plan-helpers.js
@@ -20,6 +20,10 @@ const messages = defineMessages({
20 }, 20 },
21}); 21});
22 22
23export function cleanupPlanId(id) {
24 return id.replace(/(.*)-x[0-9]/, '$1');
25}
26
23export function i18nPlanName(planId, intl) { 27export function i18nPlanName(planId, intl) {
24 if (!planId) { 28 if (!planId) {
25 throw new Error('planId is required'); 29 throw new Error('planId is required');
@@ -29,7 +33,9 @@ export function i18nPlanName(planId, intl) {
29 throw new Error('intl context is required'); 33 throw new Error('intl context is required');
30 } 34 }
31 35
32 const plan = PLANS_MAPPING[planId]; 36 const id = cleanupPlanId(planId);
37
38 const plan = PLANS_MAPPING[id];
33 39
34 return intl.formatMessage(messages[plan]); 40 return intl.formatMessage(messages[plan]);
35} 41}
@@ -39,7 +45,9 @@ export function getPlan(planId) {
39 throw new Error('planId is required'); 45 throw new Error('planId is required');
40 } 46 }
41 47
42 const plan = PLANS_MAPPING[planId]; 48 const id = cleanupPlanId(planId);
49
50 const plan = PLANS_MAPPING[id];
43 51
44 return plan; 52 return plan;
45} 53}
diff --git a/src/helpers/userAgent-helpers.js b/src/helpers/userAgent-helpers.js
new file mode 100644
index 000000000..15edc1054
--- /dev/null
+++ b/src/helpers/userAgent-helpers.js
@@ -0,0 +1,45 @@
1import { remote, app } from 'electron';
2import os from 'os';
3import macosVersion from 'macos-version';
4import { isMac, isWindows } from '../environment';
5
6// This helper gets included from the backend and frontend but we only need to use "remote"
7// if we are in the frontend
8const ferdiVersion = remote && remote.app ? remote.app.getVersion() : app.getVersion();
9
10function macOS() {
11 const version = macosVersion();
12
13 return `Macintosh; Intel Mac OS X ${version.replace(/\./g, '_')}`;
14}
15
16function windows() {
17 const version = os.release();
18 const [majorVersion, minorVersion] = version.split('.');
19 return `Windows NT ${majorVersion}.${minorVersion}; Win64; x64`;
20}
21
22function linux() {
23 return 'X11; Ubuntu; Linux x86_64';
24}
25
26export default function userAgent(removeChromeVersion = false) {
27 let platformString = '';
28
29 if (isMac) {
30 platformString = macOS();
31 } else if (isWindows) {
32 platformString = windows();
33 } else {
34 platformString = linux();
35 }
36
37 let applicationString = '';
38 if (!removeChromeVersion) {
39 applicationString = ` Ferdi/${ferdiVersion} (Electron ${process.versions.electron})`;
40 }
41
42 // TODO: Update AppleWebKit and Safari version after electron update
43 return `Mozilla/5.0 (${platformString}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome${!removeChromeVersion ? `/${process.versions.chrome}` : ''} Safari/537.36${applicationString}`;
44 // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) old-airport-include/1.0.0 Chrome Electron/7.1.7 Safari/537.36
45}
diff --git a/src/i18n/apply-branding.js b/src/i18n/apply-branding.js
index d88d8741b..68ffb822a 100644
--- a/src/i18n/apply-branding.js
+++ b/src/i18n/apply-branding.js
@@ -13,6 +13,10 @@ const ignore = [
13 'settings.app.todoServerInfo', 13 'settings.app.todoServerInfo',
14 'settings.app.serverMoneyInfo', 14 'settings.app.serverMoneyInfo',
15 'settings.team.teamsUnavailableInfo', 15 'settings.team.teamsUnavailableInfo',
16 'settings.team.contentHeadline',
17 'settings.team.intro',
18 'settings.team.copy',
19 'settings.team.manageAction',
16 'settings.app.serverMoneyInfo', 20 'settings.app.serverMoneyInfo',
17]; 21];
18 22
diff --git a/src/i18n/locales/af.json b/src/i18n/locales/af.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/af.json
+++ b/src/i18n/locales/af.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json
index 8a201e1ae..ebe4419f9 100644
--- a/src/i18n/locales/ar.json
+++ b/src/i18n/locales/ar.json
@@ -1,6 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "إعادة التحميل", 2 "app.errorHandler.action": "إعادة التحميل",
3 "app.errorHandler.headline": "لقد حدث خطب ما", 3 "app.errorHandler.headline": "لقد حدث خطب ما",
4 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "تغيرات ÙÙŠ Ùريدي {version}", 7 "feature.announcements.changelog.headline": "تغيرات ÙÙŠ Ùريدي {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "رجاء قيم بشراء رخصة الدعم لبرنامج Ùريدي للتخلص من وقت الانتظار", 9 "feature.delayApp.headline": "رجاء قيم بشراء رخصة الدعم لبرنامج Ùريدي للتخلص من وقت الانتظار",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/bs.json b/src/i18n/locales/bs.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/bs.json
+++ b/src/i18n/locales/bs.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index 49b892332..340b5f4cf 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Enviar",
4 "feature.announcements.changelog.headline": "Canvis en Ferdi {version}", 7 "feature.announcements.changelog.headline": "Canvis en Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Si us plau, compra una llicència de suport per a Ferdi per saltar l'espera", 9 "feature.delayApp.headline": "Si us plau, compra una llicència de suport per a Ferdi per saltar l'espera",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Torna a carregar Ferdi", 157 "menu.view.reloadFranz": "Torna a carregar Ferdi",
155 "menu.view.reloadService": "Torna a carregar el servei", 158 "menu.view.reloadService": "Torna a carregar el servei",
156 "menu.view.resetZoom": "Mida real", 159 "menu.view.resetZoom": "Mida real",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Activa serveis per a desenvolupadors", 161 "menu.view.toggleDevTools": "Activa serveis per a desenvolupadors",
158 "menu.view.toggleFullScreen": "Activa la pantalla completa", 162 "menu.view.toggleFullScreen": "Activa la pantalla completa",
159 "menu.view.toggleServiceDevTools": "Habilita les eines de desenvolupador de serveis", 163 "menu.view.toggleServiceDevTools": "Habilita les eines de desenvolupador de serveis",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "La memòria cau de Ferdi està utilitzant {size} d'espai al disc", 274 "settings.app.cacheInfo": "La memòria cau de Ferdi està utilitzant {size} d'espai al disc",
271 "settings.app.currentVersion": "Versió actual:", 275 "settings.app.currentVersion": "Versió actual:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Obrir en segon plà", 278 "settings.app.form.autoLaunchInBackground": "Obrir en segon plà",
275 "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi a l'inici", 279 "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi a l'inici",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Inclou versions beta", 281 "settings.app.form.beta": "Inclou versions beta",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Activar acceleració GPU", 284 "settings.app.form.enableGPUAcceleration": "Activar acceleració GPU",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimitza Ferdi a la safata del sistema", 296 "settings.app.form.minimizeToSystemTray": "Minimitza Ferdi a la safata del sistema",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Mantén a Ferdi en segon pla en tancar la finestra", 301 "settings.app.form.runInBackground": "Mantén a Ferdi en segon pla en tancar la finestra",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Mostra les pestanyes dels serveis desactivats", 307 "settings.app.form.showDisabledServices": "Mostra les pestanyes dels serveis desactivats",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Configuració", 313 "settings.app.headline": "Configuració",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Memòria cau", 329 "settings.app.subheadlineCache": "Memòria cau",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Ajuda'ns a traduir Ferdi en la teva llengua.", 331 "settings.app.translationHelp": "Ajuda'ns a traduir Ferdi en la teva llengua.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Actualització disponible, descarregant ...", 333 "settings.app.updateStatusAvailable": "Actualització disponible, descarregant ...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Activa l'àudio", 370 "settings.service.form.enableAudio": "Activa l'àudio",
368 "settings.service.form.enableBadge": "Mostra les insígnies als missatges no llegits.", 371 "settings.service.form.enableBadge": "Mostra les insígnies als missatges no llegits.",
369 "settings.service.form.enableDarkMode": "Activar el Mode Fosc", 372 "settings.service.form.enableDarkMode": "Activar el Mode Fosc",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Activa les notificacions", 377 "settings.service.form.enableNotification": "Activa les notificacions",
371 "settings.service.form.enableService": "Activa el servei", 378 "settings.service.form.enableService": "Activa el servei",
372 "settings.service.form.headlineBadges": "Insígnies de missatges no llegits", 379 "settings.service.form.headlineBadges": "Insígnies de missatges no llegits",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Equip", 423 "settings.team.headline": "Equip",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json
index 36e1c9e22..f2d80e845 100644
--- a/src/i18n/locales/cs.json
+++ b/src/i18n/locales/cs.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Odeslat",
4 "feature.announcements.changelog.headline": "Změny ve Ferdi {version}", 7 "feature.announcements.changelog.headline": "Změny ve Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Kup si Ferdi Supporter licenci a nebudeÅ¡ už muset Äekat", 9 "feature.delayApp.headline": "Kup si Ferdi Supporter licenci a nebudeÅ¡ už muset Äekat",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Obnovit Ferdie", 157 "menu.view.reloadFranz": "Obnovit Ferdie",
155 "menu.view.reloadService": "Obnovit službu", 158 "menu.view.reloadService": "Obnovit službu",
156 "menu.view.resetZoom": "SkuteÄná velikost", 159 "menu.view.resetZoom": "SkuteÄná velikost",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Zobrazit Vývojářské nástroje", 161 "menu.view.toggleDevTools": "Zobrazit Vývojářské nástroje",
158 "menu.view.toggleFullScreen": "Přepnout na celou obrazovku", 162 "menu.view.toggleFullScreen": "Přepnout na celou obrazovku",
159 "menu.view.toggleServiceDevTools": "Zobrazit Vývojářské nástroje pro službu", 163 "menu.view.toggleServiceDevTools": "Zobrazit Vývojářské nástroje pro službu",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi momentálně používá {size} místa na disku.", 274 "settings.app.cacheInfo": "Ferdi momentálně používá {size} místa na disku.",
271 "settings.app.currentVersion": "Aktuální verze:", 275 "settings.app.currentVersion": "Aktuální verze:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Spustit na pozadí", 278 "settings.app.form.autoLaunchInBackground": "Spustit na pozadí",
275 "settings.app.form.autoLaunchOnStart": "Spustit Ferdi při startu", 279 "settings.app.form.autoLaunchOnStart": "Spustit Ferdi při startu",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Zahrnout beta verze", 281 "settings.app.form.beta": "Zahrnout beta verze",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Aktivovat GPU zrychlení", 284 "settings.app.form.enableGPUAcceleration": "Aktivovat GPU zrychlení",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimalizovat Ferdi do systémové lišty", 296 "settings.app.form.minimizeToSystemTray": "Minimalizovat Ferdi do systémové lišty",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Ponechat Ferdie v pozadí při zavírání okna", 301 "settings.app.form.runInBackground": "Ponechat Ferdie v pozadí při zavírání okna",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Zobrazit záložky vypnutých služeb", 307 "settings.app.form.showDisabledServices": "Zobrazit záložky vypnutých služeb",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Zobrazit odznak pro nepÅ™eÄtené zprávy když jsou upozornÄ›ní vypnutá", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Zobrazit odznak pro nepÅ™eÄtené zprávy když jsou upozornÄ›ní vypnutá",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Nastavení", 313 "settings.app.headline": "Nastavení",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Mezipaměť", 329 "settings.app.subheadlineCache": "Mezipaměť",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Pomozte nám přeložit Ferdi do svého jazyka.", 331 "settings.app.translationHelp": "Pomozte nám přeložit Ferdi do svého jazyka.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Aktualizace k dispozici, stahování...", 333 "settings.app.updateStatusAvailable": "Aktualizace k dispozici, stahování...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Zapnout zvuk", 370 "settings.service.form.enableAudio": "Zapnout zvuk",
368 "settings.service.form.enableBadge": "Ukázat odznaky nepÅ™eÄtených zpráv", 371 "settings.service.form.enableBadge": "Ukázat odznaky nepÅ™eÄtených zpráv",
369 "settings.service.form.enableDarkMode": "Povolit Tmavý vzhled", 372 "settings.service.form.enableDarkMode": "Povolit Tmavý vzhled",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Povolit upozornění", 377 "settings.service.form.enableNotification": "Povolit upozornění",
371 "settings.service.form.enableService": "Povolit službu", 378 "settings.service.form.enableService": "Povolit službu",
372 "settings.service.form.headlineBadges": "Odznaky nepÅ™eÄtených zpráv", 379 "settings.service.form.headlineBadges": "Odznaky nepÅ™eÄtených zpráv",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Tým", 423 "settings.team.headline": "Tým",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/da.json b/src/i18n/locales/da.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/da.json
+++ b/src/i18n/locales/da.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index 32cbd0cd8..a4cff3a32 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Server wechseln",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Absenden",
4 "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}",
5 "feature.debugger.title": "Debug-Informationen veröffentlichen", 8 "feature.debugger.title": "Debug-Informationen veröffentlichen",
6 "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen", 9 "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen",
@@ -116,7 +119,7 @@
116 "menu.edit.cut": "Ausschneiden", 119 "menu.edit.cut": "Ausschneiden",
117 "menu.edit.delete": "Löschen", 120 "menu.edit.delete": "Löschen",
118 "menu.edit.emojiSymbols": "Emoji & Symbole", 121 "menu.edit.emojiSymbols": "Emoji & Symbole",
119 "menu.edit.findInPage": "Find in Page", 122 "menu.edit.findInPage": "In Seite suchen",
120 "menu.edit.paste": "Einfügen", 123 "menu.edit.paste": "Einfügen",
121 "menu.edit.pasteAndMatchStyle": "Einfügen und Stil anpassen", 124 "menu.edit.pasteAndMatchStyle": "Einfügen und Stil anpassen",
122 "menu.edit.redo": "Wiederholen", 125 "menu.edit.redo": "Wiederholen",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Ferdi neu laden", 157 "menu.view.reloadFranz": "Ferdi neu laden",
155 "menu.view.reloadService": "Dienst neu laden", 158 "menu.view.reloadService": "Dienst neu laden",
156 "menu.view.resetZoom": "Originalgröße", 159 "menu.view.resetZoom": "Originalgröße",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Entwicklertools anzeigen", 161 "menu.view.toggleDevTools": "Entwicklertools anzeigen",
158 "menu.view.toggleFullScreen": "Vollbildmodus umschalten", 162 "menu.view.toggleFullScreen": "Vollbildmodus umschalten",
159 "menu.view.toggleServiceDevTools": "Entwicklertools für Dienst anzeigen", 163 "menu.view.toggleServiceDevTools": "Entwicklertools für Dienst anzeigen",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Der Ferdi Cache belegt derzeit {size}.", 274 "settings.app.cacheInfo": "Der Ferdi Cache belegt derzeit {size}.",
271 "settings.app.currentVersion": "Aktuelle Version:", 275 "settings.app.currentVersion": "Aktuelle Version:",
272 "settings.app.form.accentColor": "Akzentfarbe", 276 "settings.app.form.accentColor": "Akzentfarbe",
273 "settings.app.form.adaptableDarkMode": "Synchronisiere den Dunkelmodus mit dem Dunkelmodus meines Macs", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Im Hintergrund öffnen", 278 "settings.app.form.autoLaunchInBackground": "Im Hintergrund öffnen",
275 "settings.app.form.autoLaunchOnStart": "Ferdi beim Systemstart ausführen", 279 "settings.app.form.autoLaunchOnStart": "Ferdi beim Systemstart ausführen",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Beta-Versionen einbeziehen", 281 "settings.app.form.beta": "Beta-Versionen einbeziehen",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Dunkles Design verwenden", 283 "settings.app.form.darkMode": "Dunkles Design verwenden",
278 "settings.app.form.enableGPUAcceleration": "Hardwarebeschleunigung aktivieren", 284 "settings.app.form.enableGPUAcceleration": "Hardwarebeschleunigung aktivieren",
279 "settings.app.form.enableLock": "Passwort-Sperre aktivieren", 285 "settings.app.form.enableLock": "Passwort-Sperre aktivieren",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Passwort", 295 "settings.app.form.lockPassword": "Passwort",
290 "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren", 296 "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren",
291 "settings.app.form.navigationBarBehaviour": "Verhalten der Navigationsleiste", 297 "settings.app.form.navigationBarBehaviour": "Verhalten der Navigationsleiste",
292 "settings.app.form.noUpdates": "Updates deaktivieren", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen", 299 "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen",
294 "settings.app.form.reloadAfterResume": "Ferdi nach dem aufwachen aus dem Standby neu laden", 300 "settings.app.form.reloadAfterResume": "Ferdi nach dem aufwachen aus dem Standby neu laden",
295 "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird", 301 "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "Von", 303 "settings.app.form.scheduledDNDEnd": "Von",
298 "settings.app.form.scheduledDNDStart": "Bis", 304 "settings.app.form.scheduledDNDStart": "Bis",
299 "settings.app.form.sentry": "Telemetrie-Daten senden", 305 "settings.app.form.sentry": "Telemetrie-Daten senden",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Größe der Sidebar", 306 "settings.app.form.serviceRibbonWidth": "Größe der Sidebar",
302 "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen", 307 "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind",
304 "settings.app.form.startMinimized": "Minimiert starten", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo-Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren", 311 "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren",
307 "settings.app.form.useTouchIdToUnlock": "Verwenden von Touch ID zum Entsperren von Ferdi erlauben", 312 "settings.app.form.useTouchIdToUnlock": "Verwenden von Touch ID zum Entsperren von Ferdi erlauben",
308 "settings.app.headline": "Einstellungen", 313 "settings.app.headline": "Einstellungen",
@@ -321,10 +326,8 @@
321 "settings.app.scheduledDNDInfo": "Die geplante \"Nicht-stören\"-Funktion erlaubt es dir eine Zeitspanne festzulegen, in der du keine Benachrichtigungen von Ferdi erhalten möchtest.", 326 "settings.app.scheduledDNDInfo": "Die geplante \"Nicht-stören\"-Funktion erlaubt es dir eine Zeitspanne festzulegen, in der du keine Benachrichtigungen von Ferdi erhalten möchtest.",
322 "settings.app.scheduledDNDTimeInfo": "Zeiten im 24-Stunden-Format (z.B. 18:00). Endzeit kann vor Beginn der Startzeit sein (z.B. 17:00 Uhr, Ende 09:00), um die Funktion über Nacht zu aktivieren.", 327 "settings.app.scheduledDNDTimeInfo": "Zeiten im 24-Stunden-Format (z.B. 18:00). Endzeit kann vor Beginn der Startzeit sein (z.B. 17:00 Uhr, Ende 09:00), um die Funktion über Nacht zu aktivieren.",
323 "settings.app.sentryInfo": "Das Senden von Telemetrie-Daten ermöglicht es uns, Fehler in Ferdi zu finden - wir werden keine persönlichen Informationen wie deine Nachrichten versenden! Ändern dieser Option erfordert einen Neustart von Ferdi.", 328 "settings.app.sentryInfo": "Das Senden von Telemetrie-Daten ermöglicht es uns, Fehler in Ferdi zu finden - wir werden keine persönlichen Informationen wie deine Nachrichten versenden! Ändern dieser Option erfordert einen Neustart von Ferdi.",
324 "settings.app.serverInfo": "Wir empfehlen dir, dich nach dem Ändern des Servers abzumelden, da Ihre Einstellungen möglicherweise sonst nicht auf dem Server gespeichert werden können.",
325 "settings.app.serverMoneyInfo": "Du verwendest den Franz's offiziellen Server.\nWir wissen, dass Ferdi es dir erlaubt, alle Funktionen kostenlos zu nutzen, aber du verwendest immer noch Franz's Serverressourcen - für die Franz's Entwickler zahlen müssen.\nBitte überlege dir, [Link 1]für ein Franz Premium-Account zu zahlen[/Link] oder [Link 2]dir einen eigene Server einzurichten[/Link] (wenn du das Wissen und die Ressourcen dazu hast). \nDurch die Nutzung von Ferdi profitierst du noch immer stark von Franz's Diensten, Serverressourcen und seiner Entwicklung.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "Dieser Server wird für die Funktion \"Ferdi Todo\" verwendet. (Standard: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Hilf uns, Ferdi in Deine Sprache zu übersetzen.", 331 "settings.app.translationHelp": "Hilf uns, Ferdi in Deine Sprache zu übersetzen.",
329 "settings.app.universalDarkModeInfo": "Universeller Dark Mode versucht dynamisch Dienste abzudunkeln, die vom normalen Dark Mode noch nicht unterstützt werden.", 332 "settings.app.universalDarkModeInfo": "Universeller Dark Mode versucht dynamisch Dienste abzudunkeln, die vom normalen Dark Mode noch nicht unterstützt werden.",
330 "settings.app.updateStatusAvailable": "Update verfügbar, lädt herunter ...", 333 "settings.app.updateStatusAvailable": "Update verfügbar, lädt herunter ...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Audio aktivieren", 370 "settings.service.form.enableAudio": "Audio aktivieren",
368 "settings.service.form.enableBadge": "Nachrichten-Badge anzeigen", 371 "settings.service.form.enableBadge": "Nachrichten-Badge anzeigen",
369 "settings.service.form.enableDarkMode": "Dark Mode aktivieren", 372 "settings.service.form.enableDarkMode": "Dark Mode aktivieren",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Benachrichtigungen aktivieren", 377 "settings.service.form.enableNotification": "Benachrichtigungen aktivieren",
371 "settings.service.form.enableService": "Dienst aktivieren", 378 "settings.service.form.enableService": "Dienst aktivieren",
372 "settings.service.form.headlineBadges": "Nachrichten-Badge", 379 "settings.service.form.headlineBadges": "Nachrichten-Badge",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Unterstütze unsere Open Collective Kampagne", 418 "settings.supportFerdi.openCollective": "Unterstütze unsere Open Collective Kampagne",
412 "settings.supportFerdi.share": "Sag es deinen Freunden", 419 "settings.supportFerdi.share": "Sag es deinen Freunden",
413 "settings.supportFerdi.title": "Magst du Ferdi? Teile die Liebe!", 420 "settings.supportFerdi.title": "Magst du Ferdi? Teile die Liebe!",
414 "settings.team.contentHeadline": "Ferdi für Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "Mit Ferdi für Teams kannst du Kolleginnen und Kollegen per Email-Invite in dein Team einladen und ihre Abonnments in den Einstellungen deines Accounts verwalten. Verschwende keine Zeit mehr damit, Lizenzen für jedes Teammitglied einzeln einzurichten, vergiss mehrfache Rechnungen und unterschiedliche Abrechnungszeiträume - alles unter einem Dach.", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "settings.team.intro": "Mit Ferdi für Teams kannst du Premium Lizenzen für Kolleginnen und Kollegen oder Freunde und Familienmitglieder kaufen und verwalten - so viele du willst.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Verwalte dein Team auf getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams sind nicht verfügbar", 426 "settings.team.teamsUnavailable": "Teams sind nicht verfügbar",
420 "settings.team.teamsUnavailableInfo": "Teams sind derzeit nur bei der Verwendung des Franz Servers und nach der Zahlung für Franz Professional verfügbar.\nBitte ändern Sie Ihren Server auf https://api.franzinfra.com, um Teams zu verwenden.", 427 "settings.team.teamsUnavailableInfo": "Teams sind derzeit nur bei der Verwendung des Franz Servers und nach der Zahlung für Franz Professional verfügbar.\nBitte ändern Sie Ihren Server auf https://api.franzinfra.com, um Teams zu verwenden.",
421 "settings.team.upgradeAction": "Account Upgrade durchführen", 428 "settings.team.upgradeAction": "Account Upgrade durchführen",
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index be0cd008b..f3ff7caf3 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -46,6 +46,50 @@
46 { 46 {
47 "descriptors": [ 47 "descriptors": [
48 { 48 {
49 "defaultMessage": "!!!Change server",
50 "end": {
51 "column": 3,
52 "line": 14
53 },
54 "file": "src/components/auth/ChangeServer.js",
55 "id": "changeserver.headline",
56 "start": {
57 "column": 12,
58 "line": 11
59 }
60 },
61 {
62 "defaultMessage": "!!!Server",
63 "end": {
64 "column": 3,
65 "line": 18
66 },
67 "file": "src/components/auth/ChangeServer.js",
68 "id": "changeserver.label",
69 "start": {
70 "column": 9,
71 "line": 15
72 }
73 },
74 {
75 "defaultMessage": "!!!Submit",
76 "end": {
77 "column": 3,
78 "line": 22
79 },
80 "file": "src/components/auth/ChangeServer.js",
81 "id": "changeserver.submit",
82 "start": {
83 "column": 10,
84 "line": 19
85 }
86 }
87 ],
88 "path": "src/components/auth/ChangeServer.json"
89 },
90 {
91 "descriptors": [
92 {
49 "defaultMessage": "!!!Import your Ferdi 4 services", 93 "defaultMessage": "!!!Import your Ferdi 4 services",
50 "end": { 94 "end": {
51 "column": 3, 95 "column": 3,
@@ -1149,6 +1193,190 @@
1149 { 1193 {
1150 "descriptors": [ 1194 "descriptors": [
1151 { 1195 {
1196 "defaultMessage": "!!!Home",
1197 "end": {
1198 "column": 3,
1199 "line": 16
1200 },
1201 "file": "src/components/services/content/ConnectionBanner.js",
1202 "id": "webControls.goHome",
1203 "start": {
1204 "column": 10,
1205 "line": 13
1206 }
1207 },
1208 {
1209 "defaultMessage": "!!!Open in Browser",
1210 "end": {
1211 "column": 3,
1212 "line": 20
1213 },
1214 "file": "src/components/services/content/ConnectionBanner.js",
1215 "id": "webControls.openInBrowser",
1216 "start": {
1217 "column": 17,
1218 "line": 17
1219 }
1220 },
1221 {
1222 "defaultMessage": "!!!Back",
1223 "end": {
1224 "column": 3,
1225 "line": 24
1226 },
1227 "file": "src/components/services/content/ConnectionBanner.js",
1228 "id": "webControls.back",
1229 "start": {
1230 "column": 8,
1231 "line": 21
1232 }
1233 },
1234 {
1235 "defaultMessage": "!!!Forward",
1236 "end": {
1237 "column": 3,
1238 "line": 28
1239 },
1240 "file": "src/components/services/content/ConnectionBanner.js",
1241 "id": "webControls.forward",
1242 "start": {
1243 "column": 11,
1244 "line": 25
1245 }
1246 },
1247 {
1248 "defaultMessage": "!!!Reload",
1249 "end": {
1250 "column": 3,
1251 "line": 32
1252 },
1253 "file": "src/components/services/content/ConnectionBanner.js",
1254 "id": "webControls.reload",
1255 "start": {
1256 "column": 10,
1257 "line": 29
1258 }
1259 }
1260 ],
1261 "path": "src/components/services/content/ConnectionBanner.json"
1262 },
1263 {
1264 "descriptors": [
1265 {
1266 "defaultMessage": "!!!Home",
1267 "end": {
1268 "column": 3,
1269 "line": 16
1270 },
1271 "file": "src/components/services/content/ConnectionLost.js",
1272 "id": "webControls.goHome",
1273 "start": {
1274 "column": 10,
1275 "line": 13
1276 }
1277 },
1278 {
1279 "defaultMessage": "!!!Open in Browser",
1280 "end": {
1281 "column": 3,
1282 "line": 20
1283 },
1284 "file": "src/components/services/content/ConnectionLost.js",
1285 "id": "webControls.openInBrowser",
1286 "start": {
1287 "column": 17,
1288 "line": 17
1289 }
1290 },
1291 {
1292 "defaultMessage": "!!!Back",
1293 "end": {
1294 "column": 3,
1295 "line": 24
1296 },
1297 "file": "src/components/services/content/ConnectionLost.js",
1298 "id": "webControls.back",
1299 "start": {
1300 "column": 8,
1301 "line": 21
1302 }
1303 },
1304 {
1305 "defaultMessage": "!!!Forward",
1306 "end": {
1307 "column": 3,
1308 "line": 28
1309 },
1310 "file": "src/components/services/content/ConnectionLost.js",
1311 "id": "webControls.forward",
1312 "start": {
1313 "column": 11,
1314 "line": 25
1315 }
1316 },
1317 {
1318 "defaultMessage": "!!!Reload",
1319 "end": {
1320 "column": 3,
1321 "line": 32
1322 },
1323 "file": "src/components/services/content/ConnectionLost.js",
1324 "id": "webControls.reload",
1325 "start": {
1326 "column": 10,
1327 "line": 29
1328 }
1329 }
1330 ],
1331 "path": "src/components/services/content/ConnectionLost.json"
1332 },
1333 {
1334 "descriptors": [
1335 {
1336 "defaultMessage": "!!!Oh no! Franz lost the connection to {name}.",
1337 "end": {
1338 "column": 3,
1339 "line": 18
1340 },
1341 "file": "src/components/services/content/ConnectionLostBanner.js",
1342 "id": "connectionLostBanner.message",
1343 "start": {
1344 "column": 8,
1345 "line": 15
1346 }
1347 },
1348 {
1349 "defaultMessage": "!!!What happened?",
1350 "end": {
1351 "column": 3,
1352 "line": 22
1353 },
1354 "file": "src/components/services/content/ConnectionLostBanner.js",
1355 "id": "connectionLostBanner.informationLink",
1356 "start": {
1357 "column": 19,
1358 "line": 19
1359 }
1360 },
1361 {
1362 "defaultMessage": "!!!Reload Service",
1363 "end": {
1364 "column": 3,
1365 "line": 26
1366 },
1367 "file": "src/components/services/content/ConnectionLostBanner.js",
1368 "id": "connectionLostBanner.cta",
1369 "start": {
1370 "column": 7,
1371 "line": 23
1372 }
1373 }
1374 ],
1375 "path": "src/components/services/content/ConnectionLostBanner.json"
1376 },
1377 {
1378 "descriptors": [
1379 {
1152 "defaultMessage": "!!!Oh no!", 1380 "defaultMessage": "!!!Oh no!",
1153 "end": { 1381 "end": {
1154 "column": 3, 1382 "column": 3,
@@ -1390,6 +1618,76 @@
1390 { 1618 {
1391 "descriptors": [ 1619 "descriptors": [
1392 { 1620 {
1621 "defaultMessage": "!!!Home",
1622 "end": {
1623 "column": 3,
1624 "line": 16
1625 },
1626 "file": "src/components/services/content/WebControls.js",
1627 "id": "webControls.goHome",
1628 "start": {
1629 "column": 10,
1630 "line": 13
1631 }
1632 },
1633 {
1634 "defaultMessage": "!!!Open in Browser",
1635 "end": {
1636 "column": 3,
1637 "line": 20
1638 },
1639 "file": "src/components/services/content/WebControls.js",
1640 "id": "webControls.openInBrowser",
1641 "start": {
1642 "column": 17,
1643 "line": 17
1644 }
1645 },
1646 {
1647 "defaultMessage": "!!!Back",
1648 "end": {
1649 "column": 3,
1650 "line": 24
1651 },
1652 "file": "src/components/services/content/WebControls.js",
1653 "id": "webControls.back",
1654 "start": {
1655 "column": 8,
1656 "line": 21
1657 }
1658 },
1659 {
1660 "defaultMessage": "!!!Forward",
1661 "end": {
1662 "column": 3,
1663 "line": 28
1664 },
1665 "file": "src/components/services/content/WebControls.js",
1666 "id": "webControls.forward",
1667 "start": {
1668 "column": 11,
1669 "line": 25
1670 }
1671 },
1672 {
1673 "defaultMessage": "!!!Reload",
1674 "end": {
1675 "column": 3,
1676 "line": 32
1677 },
1678 "file": "src/components/services/content/WebControls.js",
1679 "id": "webControls.reload",
1680 "start": {
1681 "column": 10,
1682 "line": 29
1683 }
1684 }
1685 ],
1686 "path": "src/components/services/content/WebControls.json"
1687 },
1688 {
1689 "descriptors": [
1690 {
1393 "defaultMessage": "!!!Oh no!", 1691 "defaultMessage": "!!!Oh no!",
1394 "end": { 1692 "end": {
1395 "column": 3, 1693 "column": 3,
@@ -2377,107 +2675,120 @@
2377 } 2675 }
2378 }, 2676 },
2379 { 2677 {
2380 "defaultMessage": "!!!Notifications", 2678 "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.",
2381 "end": { 2679 "end": {
2382 "column": 3, 2680 "column": 3,
2383 "line": 99 2681 "line": 99
2384 }, 2682 },
2385 "file": "src/components/settings/services/EditServiceForm.js", 2683 "file": "src/components/settings/services/EditServiceForm.js",
2684 "id": "settings.service.form.disableHibernationInfo",
2685 "start": {
2686 "column": 26,
2687 "line": 96
2688 }
2689 },
2690 {
2691 "defaultMessage": "!!!Notifications",
2692 "end": {
2693 "column": 3,
2694 "line": 103
2695 },
2696 "file": "src/components/settings/services/EditServiceForm.js",
2386 "id": "settings.service.form.headlineNotifications", 2697 "id": "settings.service.form.headlineNotifications",
2387 "start": { 2698 "start": {
2388 "column": 25, 2699 "column": 25,
2389 "line": 96 2700 "line": 100
2390 } 2701 }
2391 }, 2702 },
2392 { 2703 {
2393 "defaultMessage": "!!!Unread message badges", 2704 "defaultMessage": "!!!Unread message badges",
2394 "end": { 2705 "end": {
2395 "column": 3, 2706 "column": 3,
2396 "line": 103 2707 "line": 107
2397 }, 2708 },
2398 "file": "src/components/settings/services/EditServiceForm.js", 2709 "file": "src/components/settings/services/EditServiceForm.js",
2399 "id": "settings.service.form.headlineBadges", 2710 "id": "settings.service.form.headlineBadges",
2400 "start": { 2711 "start": {
2401 "column": 18, 2712 "column": 18,
2402 "line": 100 2713 "line": 104
2403 } 2714 }
2404 }, 2715 },
2405 { 2716 {
2406 "defaultMessage": "!!!General", 2717 "defaultMessage": "!!!General",
2407 "end": { 2718 "end": {
2408 "column": 3, 2719 "column": 3,
2409 "line": 107 2720 "line": 111
2410 }, 2721 },
2411 "file": "src/components/settings/services/EditServiceForm.js", 2722 "file": "src/components/settings/services/EditServiceForm.js",
2412 "id": "settings.service.form.headlineGeneral", 2723 "id": "settings.service.form.headlineGeneral",
2413 "start": { 2724 "start": {
2414 "column": 19, 2725 "column": 19,
2415 "line": 104 2726 "line": 108
2416 } 2727 }
2417 }, 2728 },
2418 { 2729 {
2419 "defaultMessage": "!!!Delete", 2730 "defaultMessage": "!!!Delete",
2420 "end": { 2731 "end": {
2421 "column": 3, 2732 "column": 3,
2422 "line": 111 2733 "line": 115
2423 }, 2734 },
2424 "file": "src/components/settings/services/EditServiceForm.js", 2735 "file": "src/components/settings/services/EditServiceForm.js",
2425 "id": "settings.service.form.iconDelete", 2736 "id": "settings.service.form.iconDelete",
2426 "start": { 2737 "start": {
2427 "column": 14, 2738 "column": 14,
2428 "line": 108 2739 "line": 112
2429 } 2740 }
2430 }, 2741 },
2431 { 2742 {
2432 "defaultMessage": "!!!Drop your image, or click here", 2743 "defaultMessage": "!!!Drop your image, or click here",
2433 "end": { 2744 "end": {
2434 "column": 3, 2745 "column": 3,
2435 "line": 115 2746 "line": 119
2436 }, 2747 },
2437 "file": "src/components/settings/services/EditServiceForm.js", 2748 "file": "src/components/settings/services/EditServiceForm.js",
2438 "id": "settings.service.form.iconUpload", 2749 "id": "settings.service.form.iconUpload",
2439 "start": { 2750 "start": {
2440 "column": 14, 2751 "column": 14,
2441 "line": 112 2752 "line": 116
2442 } 2753 }
2443 }, 2754 },
2444 { 2755 {
2445 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", 2756 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings",
2446 "end": { 2757 "end": {
2447 "column": 3, 2758 "column": 3,
2448 "line": 119 2759 "line": 123
2449 }, 2760 },
2450 "file": "src/components/settings/services/EditServiceForm.js", 2761 "file": "src/components/settings/services/EditServiceForm.js",
2451 "id": "settings.service.form.proxy.headline", 2762 "id": "settings.service.form.proxy.headline",
2452 "start": { 2763 "start": {
2453 "column": 17, 2764 "column": 17,
2454 "line": 116 2765 "line": 120
2455 } 2766 }
2456 }, 2767 },
2457 { 2768 {
2458 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", 2769 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.",
2459 "end": { 2770 "end": {
2460 "column": 3, 2771 "column": 3,
2461 "line": 123 2772 "line": 127
2462 }, 2773 },
2463 "file": "src/components/settings/services/EditServiceForm.js", 2774 "file": "src/components/settings/services/EditServiceForm.js",
2464 "id": "settings.service.form.proxy.restartInfo", 2775 "id": "settings.service.form.proxy.restartInfo",
2465 "start": { 2776 "start": {
2466 "column": 20, 2777 "column": 20,
2467 "line": 120 2778 "line": 124
2468 } 2779 }
2469 }, 2780 },
2470 { 2781 {
2471 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", 2782 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.",
2472 "end": { 2783 "end": {
2473 "column": 3, 2784 "column": 3,
2474 "line": 127 2785 "line": 131
2475 }, 2786 },
2476 "file": "src/components/settings/services/EditServiceForm.js", 2787 "file": "src/components/settings/services/EditServiceForm.js",
2477 "id": "settings.service.form.proxy.info", 2788 "id": "settings.service.form.proxy.info",
2478 "start": { 2789 "start": {
2479 "column": 13, 2790 "column": 13,
2480 "line": 124 2791 "line": 128
2481 } 2792 }
2482 } 2793 }
2483 ], 2794 ],
@@ -2712,403 +3023,377 @@
2712 "defaultMessage": "!!!Settings", 3023 "defaultMessage": "!!!Settings",
2713 "end": { 3024 "end": {
2714 "column": 3, 3025 "column": 3,
2715 "line": 34 3026 "line": 25
2716 }, 3027 },
2717 "file": "src/components/settings/settings/EditSettingsForm.js", 3028 "file": "src/components/settings/settings/EditSettingsForm.js",
2718 "id": "settings.app.headline", 3029 "id": "settings.app.headline",
2719 "start": { 3030 "start": {
2720 "column": 12, 3031 "column": 12,
2721 "line": 31 3032 "line": 22
2722 } 3033 }
2723 }, 3034 },
2724 { 3035 {
2725 "defaultMessage": "!!!General", 3036 "defaultMessage": "!!!General",
2726 "end": { 3037 "end": {
2727 "column": 3, 3038 "column": 3,
2728 "line": 38 3039 "line": 29
2729 }, 3040 },
2730 "file": "src/components/settings/settings/EditSettingsForm.js", 3041 "file": "src/components/settings/settings/EditSettingsForm.js",
2731 "id": "settings.app.headlineGeneral", 3042 "id": "settings.app.headlineGeneral",
2732 "start": { 3043 "start": {
2733 "column": 19, 3044 "column": 19,
2734 "line": 35 3045 "line": 26
2735 } 3046 }
2736 }, 3047 },
2737 { 3048 {
2738 "defaultMessage": "!!!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.", 3049 "defaultMessage": "!!!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.",
2739 "end": { 3050 "end": {
2740 "column": 3, 3051 "column": 3,
2741 "line": 42 3052 "line": 33
2742 }, 3053 },
2743 "file": "src/components/settings/settings/EditSettingsForm.js", 3054 "file": "src/components/settings/settings/EditSettingsForm.js",
2744 "id": "settings.app.sentryInfo", 3055 "id": "settings.app.sentryInfo",
2745 "start": { 3056 "start": {
2746 "column": 14, 3057 "column": 14,
2747 "line": 39 3058 "line": 30
2748 } 3059 }
2749 }, 3060 },
2750 { 3061 {
2751 "defaultMessage": "!!!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.", 3062 "defaultMessage": "!!!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.",
2752 "end": { 3063 "end": {
2753 "column": 3, 3064 "column": 3,
2754 "line": 46 3065 "line": 37
2755 }, 3066 },
2756 "file": "src/components/settings/settings/EditSettingsForm.js", 3067 "file": "src/components/settings/settings/EditSettingsForm.js",
2757 "id": "settings.app.hibernateInfo", 3068 "id": "settings.app.hibernateInfo",
2758 "start": { 3069 "start": {
2759 "column": 17, 3070 "column": 17,
2760 "line": 43 3071 "line": 34
2761 } 3072 }
2762 }, 3073 },
2763 { 3074 {
2764 "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 3075 "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
2765 "end": { 3076 "end": {
2766 "column": 3, 3077 "column": 3,
2767 "line": 50 3078 "line": 41
2768 }, 3079 },
2769 "file": "src/components/settings/settings/EditSettingsForm.js", 3080 "file": "src/components/settings/settings/EditSettingsForm.js",
2770 "id": "settings.app.inactivityLockInfo", 3081 "id": "settings.app.inactivityLockInfo",
2771 "start": { 3082 "start": {
2772 "column": 22, 3083 "column": 22,
2773 "line": 47 3084 "line": 38
2774 }
2775 },
2776 {
2777 "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.",
2778 "end": {
2779 "column": 3,
2780 "line": 54
2781 },
2782 "file": "src/components/settings/settings/EditSettingsForm.js",
2783 "id": "settings.app.serverInfo",
2784 "start": {
2785 "column": 14,
2786 "line": 51
2787 }
2788 },
2789 {
2790 "defaultMessage": "!!!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.",
2791 "end": {
2792 "column": 3,
2793 "line": 58
2794 },
2795 "file": "src/components/settings/settings/EditSettingsForm.js",
2796 "id": "settings.app.serverMoneyInfo",
2797 "start": {
2798 "column": 19,
2799 "line": 55
2800 } 3085 }
2801 }, 3086 },
2802 { 3087 {
2803 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", 3088 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)",
2804 "end": { 3089 "end": {
2805 "column": 3, 3090 "column": 3,
2806 "line": 62 3091 "line": 45
2807 }, 3092 },
2808 "file": "src/components/settings/settings/EditSettingsForm.js", 3093 "file": "src/components/settings/settings/EditSettingsForm.js",
2809 "id": "settings.app.todoServerInfo", 3094 "id": "settings.app.todoServerInfo",
2810 "start": { 3095 "start": {
2811 "column": 18, 3096 "column": 18,
2812 "line": 59 3097 "line": 42
2813 } 3098 }
2814 }, 3099 },
2815 { 3100 {
2816 "defaultMessage": "!!!Password", 3101 "defaultMessage": "!!!Password",
2817 "end": { 3102 "end": {
2818 "column": 3, 3103 "column": 3,
2819 "line": 66 3104 "line": 49
2820 }, 3105 },
2821 "file": "src/components/settings/settings/EditSettingsForm.js", 3106 "file": "src/components/settings/settings/EditSettingsForm.js",
2822 "id": "settings.app.lockedPassword", 3107 "id": "settings.app.lockedPassword",
2823 "start": { 3108 "start": {
2824 "column": 18, 3109 "column": 18,
2825 "line": 63 3110 "line": 46
2826 } 3111 }
2827 }, 3112 },
2828 { 3113 {
2829 "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 3114 "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
2830 "end": { 3115 "end": {
2831 "column": 3, 3116 "column": 3,
2832 "line": 70 3117 "line": 53
2833 }, 3118 },
2834 "file": "src/components/settings/settings/EditSettingsForm.js", 3119 "file": "src/components/settings/settings/EditSettingsForm.js",
2835 "id": "settings.app.lockedPasswordInfo", 3120 "id": "settings.app.lockedPasswordInfo",
2836 "start": { 3121 "start": {
2837 "column": 22, 3122 "column": 22,
2838 "line": 67 3123 "line": 50
2839 } 3124 }
2840 }, 3125 },
2841 { 3126 {
2842 "defaultMessage": "!!!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.", 3127 "defaultMessage": "!!!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.",
2843 "end": { 3128 "end": {
2844 "column": 3, 3129 "column": 3,
2845 "line": 74 3130 "line": 57
2846 }, 3131 },
2847 "file": "src/components/settings/settings/EditSettingsForm.js", 3132 "file": "src/components/settings/settings/EditSettingsForm.js",
2848 "id": "settings.app.lockInfo", 3133 "id": "settings.app.lockInfo",
2849 "start": { 3134 "start": {
2850 "column": 12, 3135 "column": 12,
2851 "line": 71 3136 "line": 54
2852 } 3137 }
2853 }, 3138 },
2854 { 3139 {
2855 "defaultMessage": "!!!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.", 3140 "defaultMessage": "!!!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.",
2856 "end": { 3141 "end": {
2857 "column": 3, 3142 "column": 3,
2858 "line": 78 3143 "line": 61
2859 }, 3144 },
2860 "file": "src/components/settings/settings/EditSettingsForm.js", 3145 "file": "src/components/settings/settings/EditSettingsForm.js",
2861 "id": "settings.app.scheduledDNDTimeInfo", 3146 "id": "settings.app.scheduledDNDTimeInfo",
2862 "start": { 3147 "start": {
2863 "column": 24, 3148 "column": 24,
2864 "line": 75 3149 "line": 58
2865 } 3150 }
2866 }, 3151 },
2867 { 3152 {
2868 "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", 3153 "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.",
2869 "end": { 3154 "end": {
2870 "column": 3, 3155 "column": 3,
2871 "line": 82 3156 "line": 65
2872 }, 3157 },
2873 "file": "src/components/settings/settings/EditSettingsForm.js", 3158 "file": "src/components/settings/settings/EditSettingsForm.js",
2874 "id": "settings.app.scheduledDNDInfo", 3159 "id": "settings.app.scheduledDNDInfo",
2875 "start": { 3160 "start": {
2876 "column": 20, 3161 "column": 20,
2877 "line": 79 3162 "line": 62
2878 } 3163 }
2879 }, 3164 },
2880 { 3165 {
2881 "defaultMessage": "!!!Language", 3166 "defaultMessage": "!!!Language",
2882 "end": { 3167 "end": {
2883 "column": 3, 3168 "column": 3,
2884 "line": 86 3169 "line": 69
2885 }, 3170 },
2886 "file": "src/components/settings/settings/EditSettingsForm.js", 3171 "file": "src/components/settings/settings/EditSettingsForm.js",
2887 "id": "settings.app.headlineLanguage", 3172 "id": "settings.app.headlineLanguage",
2888 "start": { 3173 "start": {
2889 "column": 20, 3174 "column": 20,
2890 "line": 83 3175 "line": 66
2891 } 3176 }
2892 }, 3177 },
2893 { 3178 {
2894 "defaultMessage": "!!!Updates", 3179 "defaultMessage": "!!!Updates",
2895 "end": { 3180 "end": {
2896 "column": 3, 3181 "column": 3,
2897 "line": 90 3182 "line": 73
2898 }, 3183 },
2899 "file": "src/components/settings/settings/EditSettingsForm.js", 3184 "file": "src/components/settings/settings/EditSettingsForm.js",
2900 "id": "settings.app.headlineUpdates", 3185 "id": "settings.app.headlineUpdates",
2901 "start": { 3186 "start": {
2902 "column": 19, 3187 "column": 19,
2903 "line": 87 3188 "line": 70
2904 } 3189 }
2905 }, 3190 },
2906 { 3191 {
2907 "defaultMessage": "!!!Appearance", 3192 "defaultMessage": "!!!Appearance",
2908 "end": { 3193 "end": {
2909 "column": 3, 3194 "column": 3,
2910 "line": 94 3195 "line": 77
2911 }, 3196 },
2912 "file": "src/components/settings/settings/EditSettingsForm.js", 3197 "file": "src/components/settings/settings/EditSettingsForm.js",
2913 "id": "settings.app.headlineAppearance", 3198 "id": "settings.app.headlineAppearance",
2914 "start": { 3199 "start": {
2915 "column": 22, 3200 "column": 22,
2916 "line": 91 3201 "line": 74
2917 } 3202 }
2918 }, 3203 },
2919 { 3204 {
2920 "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 3205 "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
2921 "end": { 3206 "end": {
2922 "column": 3, 3207 "column": 3,
2923 "line": 98 3208 "line": 81
2924 }, 3209 },
2925 "file": "src/components/settings/settings/EditSettingsForm.js", 3210 "file": "src/components/settings/settings/EditSettingsForm.js",
2926 "id": "settings.app.universalDarkModeInfo", 3211 "id": "settings.app.universalDarkModeInfo",
2927 "start": { 3212 "start": {
2928 "column": 25, 3213 "column": 25,
2929 "line": 95 3214 "line": 78
2930 } 3215 }
2931 }, 3216 },
2932 { 3217 {
2933 "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", 3218 "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)",
2934 "end": { 3219 "end": {
2935 "column": 3, 3220 "column": 3,
2936 "line": 102 3221 "line": 85
2937 }, 3222 },
2938 "file": "src/components/settings/settings/EditSettingsForm.js", 3223 "file": "src/components/settings/settings/EditSettingsForm.js",
2939 "id": "settings.app.accentColorInfo", 3224 "id": "settings.app.accentColorInfo",
2940 "start": { 3225 "start": {
2941 "column": 19, 3226 "column": 19,
2942 "line": 99 3227 "line": 82
2943 } 3228 }
2944 }, 3229 },
2945 { 3230 {
2946 "defaultMessage": "!!!Advanced", 3231 "defaultMessage": "!!!Advanced",
2947 "end": { 3232 "end": {
2948 "column": 3, 3233 "column": 3,
2949 "line": 106 3234 "line": 89
2950 }, 3235 },
2951 "file": "src/components/settings/settings/EditSettingsForm.js", 3236 "file": "src/components/settings/settings/EditSettingsForm.js",
2952 "id": "settings.app.headlineAdvanced", 3237 "id": "settings.app.headlineAdvanced",
2953 "start": { 3238 "start": {
2954 "column": 20, 3239 "column": 20,
2955 "line": 103 3240 "line": 86
2956 } 3241 }
2957 }, 3242 },
2958 { 3243 {
2959 "defaultMessage": "!!!Help us to translate Ferdi into your language.", 3244 "defaultMessage": "!!!Help us to translate Ferdi into your language.",
2960 "end": { 3245 "end": {
2961 "column": 3, 3246 "column": 3,
2962 "line": 110 3247 "line": 93
2963 }, 3248 },
2964 "file": "src/components/settings/settings/EditSettingsForm.js", 3249 "file": "src/components/settings/settings/EditSettingsForm.js",
2965 "id": "settings.app.translationHelp", 3250 "id": "settings.app.translationHelp",
2966 "start": { 3251 "start": {
2967 "column": 19, 3252 "column": 19,
2968 "line": 107 3253 "line": 90
2969 } 3254 }
2970 }, 3255 },
2971 { 3256 {
2972 "defaultMessage": "!!!Cache", 3257 "defaultMessage": "!!!Cache",
2973 "end": { 3258 "end": {
2974 "column": 3, 3259 "column": 3,
2975 "line": 114 3260 "line": 97
2976 }, 3261 },
2977 "file": "src/components/settings/settings/EditSettingsForm.js", 3262 "file": "src/components/settings/settings/EditSettingsForm.js",
2978 "id": "settings.app.subheadlineCache", 3263 "id": "settings.app.subheadlineCache",
2979 "start": { 3264 "start": {
2980 "column": 20, 3265 "column": 20,
2981 "line": 111 3266 "line": 94
2982 } 3267 }
2983 }, 3268 },
2984 { 3269 {
2985 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", 3270 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
2986 "end": { 3271 "end": {
2987 "column": 3, 3272 "column": 3,
2988 "line": 118 3273 "line": 101
2989 }, 3274 },
2990 "file": "src/components/settings/settings/EditSettingsForm.js", 3275 "file": "src/components/settings/settings/EditSettingsForm.js",
2991 "id": "settings.app.cacheInfo", 3276 "id": "settings.app.cacheInfo",
2992 "start": { 3277 "start": {
2993 "column": 13, 3278 "column": 13,
2994 "line": 115 3279 "line": 98
2995 } 3280 }
2996 }, 3281 },
2997 { 3282 {
2998 "defaultMessage": "!!!Clear cache", 3283 "defaultMessage": "!!!Clear cache",
2999 "end": { 3284 "end": {
3000 "column": 3, 3285 "column": 3,
3001 "line": 122 3286 "line": 105
3002 }, 3287 },
3003 "file": "src/components/settings/settings/EditSettingsForm.js", 3288 "file": "src/components/settings/settings/EditSettingsForm.js",
3004 "id": "settings.app.buttonClearAllCache", 3289 "id": "settings.app.buttonClearAllCache",
3005 "start": { 3290 "start": {
3006 "column": 23, 3291 "column": 23,
3007 "line": 119 3292 "line": 102
3008 } 3293 }
3009 }, 3294 },
3010 { 3295 {
3011 "defaultMessage": "!!!Check for updates", 3296 "defaultMessage": "!!!Check for updates",
3012 "end": { 3297 "end": {
3013 "column": 3, 3298 "column": 3,
3014 "line": 126 3299 "line": 109
3015 }, 3300 },
3016 "file": "src/components/settings/settings/EditSettingsForm.js", 3301 "file": "src/components/settings/settings/EditSettingsForm.js",
3017 "id": "settings.app.buttonSearchForUpdate", 3302 "id": "settings.app.buttonSearchForUpdate",
3018 "start": { 3303 "start": {
3019 "column": 25, 3304 "column": 25,
3020 "line": 123 3305 "line": 106
3021 } 3306 }
3022 }, 3307 },
3023 { 3308 {
3024 "defaultMessage": "!!!Restart & install update", 3309 "defaultMessage": "!!!Restart & install update",
3025 "end": { 3310 "end": {
3026 "column": 3, 3311 "column": 3,
3027 "line": 130 3312 "line": 113
3028 }, 3313 },
3029 "file": "src/components/settings/settings/EditSettingsForm.js", 3314 "file": "src/components/settings/settings/EditSettingsForm.js",
3030 "id": "settings.app.buttonInstallUpdate", 3315 "id": "settings.app.buttonInstallUpdate",
3031 "start": { 3316 "start": {
3032 "column": 23, 3317 "column": 23,
3033 "line": 127 3318 "line": 110
3034 } 3319 }
3035 }, 3320 },
3036 { 3321 {
3037 "defaultMessage": "!!!Is searching for update", 3322 "defaultMessage": "!!!Is searching for update",
3038 "end": { 3323 "end": {
3039 "column": 3, 3324 "column": 3,
3040 "line": 134 3325 "line": 117
3041 }, 3326 },
3042 "file": "src/components/settings/settings/EditSettingsForm.js", 3327 "file": "src/components/settings/settings/EditSettingsForm.js",
3043 "id": "settings.app.updateStatusSearching", 3328 "id": "settings.app.updateStatusSearching",
3044 "start": { 3329 "start": {
3045 "column": 25, 3330 "column": 25,
3046 "line": 131 3331 "line": 114
3047 } 3332 }
3048 }, 3333 },
3049 { 3334 {
3050 "defaultMessage": "!!!Update available, downloading...", 3335 "defaultMessage": "!!!Update available, downloading...",
3051 "end": { 3336 "end": {
3052 "column": 3, 3337 "column": 3,
3053 "line": 138 3338 "line": 121
3054 }, 3339 },
3055 "file": "src/components/settings/settings/EditSettingsForm.js", 3340 "file": "src/components/settings/settings/EditSettingsForm.js",
3056 "id": "settings.app.updateStatusAvailable", 3341 "id": "settings.app.updateStatusAvailable",
3057 "start": { 3342 "start": {
3058 "column": 25, 3343 "column": 25,
3059 "line": 135 3344 "line": 118
3060 } 3345 }
3061 }, 3346 },
3062 { 3347 {
3063 "defaultMessage": "!!!You are using the latest version of Ferdi", 3348 "defaultMessage": "!!!You are using the latest version of Ferdi",
3064 "end": { 3349 "end": {
3065 "column": 3, 3350 "column": 3,
3066 "line": 142 3351 "line": 125
3067 }, 3352 },
3068 "file": "src/components/settings/settings/EditSettingsForm.js", 3353 "file": "src/components/settings/settings/EditSettingsForm.js",
3069 "id": "settings.app.updateStatusUpToDate", 3354 "id": "settings.app.updateStatusUpToDate",
3070 "start": { 3355 "start": {
3071 "column": 24, 3356 "column": 24,
3072 "line": 139 3357 "line": 122
3073 } 3358 }
3074 }, 3359 },
3075 { 3360 {
3076 "defaultMessage": "!!!Current version:", 3361 "defaultMessage": "!!!Current version:",
3077 "end": { 3362 "end": {
3078 "column": 3, 3363 "column": 3,
3079 "line": 146 3364 "line": 129
3080 }, 3365 },
3081 "file": "src/components/settings/settings/EditSettingsForm.js", 3366 "file": "src/components/settings/settings/EditSettingsForm.js",
3082 "id": "settings.app.currentVersion", 3367 "id": "settings.app.currentVersion",
3083 "start": { 3368 "start": {
3084 "column": 18, 3369 "column": 18,
3085 "line": 143 3370 "line": 126
3086 } 3371 }
3087 }, 3372 },
3088 { 3373 {
3089 "defaultMessage": "!!!Changes require restart", 3374 "defaultMessage": "!!!Changes require restart",
3090 "end": { 3375 "end": {
3091 "column": 3, 3376 "column": 3,
3092 "line": 150 3377 "line": 133
3093 }, 3378 },
3094 "file": "src/components/settings/settings/EditSettingsForm.js", 3379 "file": "src/components/settings/settings/EditSettingsForm.js",
3095 "id": "settings.app.restartRequired", 3380 "id": "settings.app.restartRequired",
3096 "start": { 3381 "start": {
3097 "column": 29, 3382 "column": 29,
3098 "line": 147 3383 "line": 130
3099 } 3384 }
3100 }, 3385 },
3101 { 3386 {
3102 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", 3387 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.",
3103 "end": { 3388 "end": {
3104 "column": 3, 3389 "column": 3,
3105 "line": 154 3390 "line": 137
3106 }, 3391 },
3107 "file": "src/components/settings/settings/EditSettingsForm.js", 3392 "file": "src/components/settings/settings/EditSettingsForm.js",
3108 "id": "settings.app.languageDisclaimer", 3393 "id": "settings.app.languageDisclaimer",
3109 "start": { 3394 "start": {
3110 "column": 22, 3395 "column": 22,
3111 "line": 151 3396 "line": 134
3112 } 3397 }
3113 } 3398 }
3114 ], 3399 ],
@@ -3200,7 +3485,7 @@
3200 } 3485 }
3201 }, 3486 },
3202 { 3487 {
3203 "defaultMessage": "!!!Ferdi for Teams", 3488 "defaultMessage": "!!!Franz Team Management",
3204 "end": { 3489 "end": {
3205 "column": 3, 3490 "column": 3,
3206 "line": 24 3491 "line": 24
@@ -3213,7 +3498,7 @@
3213 } 3498 }
3214 }, 3499 },
3215 { 3500 {
3216 "defaultMessage": "!!!You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 3501 "defaultMessage": "!!!Your are currently using Franz Servers, which is why you have access to Team Management.",
3217 "end": { 3502 "end": {
3218 "column": 3, 3503 "column": 3,
3219 "line": 28 3504 "line": 28
@@ -3226,7 +3511,7 @@
3226 } 3511 }
3227 }, 3512 },
3228 { 3513 {
3229 "defaultMessage": "!!!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!", 3514 "defaultMessage": "!!!Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
3230 "end": { 3515 "end": {
3231 "column": 3, 3516 "column": 3,
3232 "line": 32 3517 "line": 32
@@ -3870,6 +4155,19 @@
3870 "column": 10, 4155 "column": 10,
3871 "line": 65 4156 "line": 65
3872 } 4157 }
4158 },
4159 {
4160 "defaultMessage": "!!!Occasional Waiting Screens",
4161 "end": {
4162 "column": 3,
4163 "line": 72
4164 },
4165 "file": "src/components/ui/FeatureList.js",
4166 "id": "pricing.features.appDelaysEnabled",
4167 "start": {
4168 "column": 19,
4169 "line": 69
4170 }
3873 } 4171 }
3874 ], 4172 ],
3875 "path": "src/components/ui/FeatureList.json" 4173 "path": "src/components/ui/FeatureList.json"
@@ -3988,172 +4286,185 @@
3988 } 4286 }
3989 }, 4287 },
3990 { 4288 {
3991 "defaultMessage": "!!!Enable Notifications", 4289 "defaultMessage": "!!!Disable hibernation",
3992 "end": { 4290 "end": {
3993 "column": 3, 4291 "column": 3,
3994 "line": 39 4292 "line": 39
3995 }, 4293 },
3996 "file": "src/containers/settings/EditServiceScreen.js", 4294 "file": "src/containers/settings/EditServiceScreen.js",
3997 "id": "settings.service.form.enableNotification", 4295 "id": "settings.service.form.disableHibernation",
3998 "start": { 4296 "start": {
3999 "column": 22, 4297 "column": 22,
4000 "line": 36 4298 "line": 36
4001 } 4299 }
4002 }, 4300 },
4003 { 4301 {
4004 "defaultMessage": "!!!Show unread message badges", 4302 "defaultMessage": "!!!Enable Notifications",
4005 "end": { 4303 "end": {
4006 "column": 3, 4304 "column": 3,
4007 "line": 43 4305 "line": 43
4008 }, 4306 },
4009 "file": "src/containers/settings/EditServiceScreen.js", 4307 "file": "src/containers/settings/EditServiceScreen.js",
4308 "id": "settings.service.form.enableNotification",
4309 "start": {
4310 "column": 22,
4311 "line": 40
4312 }
4313 },
4314 {
4315 "defaultMessage": "!!!Show unread message badges",
4316 "end": {
4317 "column": 3,
4318 "line": 47
4319 },
4320 "file": "src/containers/settings/EditServiceScreen.js",
4010 "id": "settings.service.form.enableBadge", 4321 "id": "settings.service.form.enableBadge",
4011 "start": { 4322 "start": {
4012 "column": 15, 4323 "column": 15,
4013 "line": 40 4324 "line": 44
4014 } 4325 }
4015 }, 4326 },
4016 { 4327 {
4017 "defaultMessage": "!!!Enable audio", 4328 "defaultMessage": "!!!Enable audio",
4018 "end": { 4329 "end": {
4019 "column": 3, 4330 "column": 3,
4020 "line": 47 4331 "line": 51
4021 }, 4332 },
4022 "file": "src/containers/settings/EditServiceScreen.js", 4333 "file": "src/containers/settings/EditServiceScreen.js",
4023 "id": "settings.service.form.enableAudio", 4334 "id": "settings.service.form.enableAudio",
4024 "start": { 4335 "start": {
4025 "column": 15, 4336 "column": 15,
4026 "line": 44 4337 "line": 48
4027 } 4338 }
4028 }, 4339 },
4029 { 4340 {
4030 "defaultMessage": "!!!Team", 4341 "defaultMessage": "!!!Team",
4031 "end": { 4342 "end": {
4032 "column": 3, 4343 "column": 3,
4033 "line": 51 4344 "line": 55
4034 }, 4345 },
4035 "file": "src/containers/settings/EditServiceScreen.js", 4346 "file": "src/containers/settings/EditServiceScreen.js",
4036 "id": "settings.service.form.team", 4347 "id": "settings.service.form.team",
4037 "start": { 4348 "start": {
4038 "column": 8, 4349 "column": 8,
4039 "line": 48 4350 "line": 52
4040 } 4351 }
4041 }, 4352 },
4042 { 4353 {
4043 "defaultMessage": "!!!Service URL", 4354 "defaultMessage": "!!!Service URL",
4044 "end": { 4355 "end": {
4045 "column": 3, 4356 "column": 3,
4046 "line": 55 4357 "line": 59
4047 }, 4358 },
4048 "file": "src/containers/settings/EditServiceScreen.js", 4359 "file": "src/containers/settings/EditServiceScreen.js",
4049 "id": "settings.service.form.customUrl", 4360 "id": "settings.service.form.customUrl",
4050 "start": { 4361 "start": {
4051 "column": 13, 4362 "column": 13,
4052 "line": 52 4363 "line": 56
4053 } 4364 }
4054 }, 4365 },
4055 { 4366 {
4056 "defaultMessage": "!!!Show message badge for all new messages", 4367 "defaultMessage": "!!!Show message badge for all new messages",
4057 "end": { 4368 "end": {
4058 "column": 3, 4369 "column": 3,
4059 "line": 59 4370 "line": 63
4060 }, 4371 },
4061 "file": "src/containers/settings/EditServiceScreen.js", 4372 "file": "src/containers/settings/EditServiceScreen.js",
4062 "id": "settings.service.form.indirectMessages", 4373 "id": "settings.service.form.indirectMessages",
4063 "start": { 4374 "start": {
4064 "column": 20, 4375 "column": 20,
4065 "line": 56 4376 "line": 60
4066 } 4377 }
4067 }, 4378 },
4068 { 4379 {
4069 "defaultMessage": "!!!Custom icon", 4380 "defaultMessage": "!!!Custom icon",
4070 "end": { 4381 "end": {
4071 "column": 3, 4382 "column": 3,
4072 "line": 63 4383 "line": 67
4073 }, 4384 },
4074 "file": "src/containers/settings/EditServiceScreen.js", 4385 "file": "src/containers/settings/EditServiceScreen.js",
4075 "id": "settings.service.form.icon", 4386 "id": "settings.service.form.icon",
4076 "start": { 4387 "start": {
4077 "column": 8, 4388 "column": 8,
4078 "line": 60 4389 "line": 64
4079 } 4390 }
4080 }, 4391 },
4081 { 4392 {
4082 "defaultMessage": "!!!Enable Dark Mode", 4393 "defaultMessage": "!!!Enable Dark Mode",
4083 "end": { 4394 "end": {
4084 "column": 3, 4395 "column": 3,
4085 "line": 67 4396 "line": 71
4086 }, 4397 },
4087 "file": "src/containers/settings/EditServiceScreen.js", 4398 "file": "src/containers/settings/EditServiceScreen.js",
4088 "id": "settings.service.form.enableDarkMode", 4399 "id": "settings.service.form.enableDarkMode",
4089 "start": { 4400 "start": {
4090 "column": 18, 4401 "column": 18,
4091 "line": 64 4402 "line": 68
4092 } 4403 }
4093 }, 4404 },
4094 { 4405 {
4095 "defaultMessage": "!!!Use Proxy", 4406 "defaultMessage": "!!!Use Proxy",
4096 "end": { 4407 "end": {
4097 "column": 3, 4408 "column": 3,
4098 "line": 71 4409 "line": 75
4099 }, 4410 },
4100 "file": "src/containers/settings/EditServiceScreen.js", 4411 "file": "src/containers/settings/EditServiceScreen.js",
4101 "id": "settings.service.form.proxy.isEnabled", 4412 "id": "settings.service.form.proxy.isEnabled",
4102 "start": { 4413 "start": {
4103 "column": 15, 4414 "column": 15,
4104 "line": 68 4415 "line": 72
4105 } 4416 }
4106 }, 4417 },
4107 { 4418 {
4108 "defaultMessage": "!!!Proxy Host/IP", 4419 "defaultMessage": "!!!Proxy Host/IP",
4109 "end": { 4420 "end": {
4110 "column": 3, 4421 "column": 3,
4111 "line": 75 4422 "line": 79
4112 }, 4423 },
4113 "file": "src/containers/settings/EditServiceScreen.js", 4424 "file": "src/containers/settings/EditServiceScreen.js",
4114 "id": "settings.service.form.proxy.host", 4425 "id": "settings.service.form.proxy.host",
4115 "start": { 4426 "start": {
4116 "column": 13, 4427 "column": 13,
4117 "line": 72 4428 "line": 76
4118 } 4429 }
4119 }, 4430 },
4120 { 4431 {
4121 "defaultMessage": "!!!Port", 4432 "defaultMessage": "!!!Port",
4122 "end": { 4433 "end": {
4123 "column": 3, 4434 "column": 3,
4124 "line": 79 4435 "line": 83
4125 }, 4436 },
4126 "file": "src/containers/settings/EditServiceScreen.js", 4437 "file": "src/containers/settings/EditServiceScreen.js",
4127 "id": "settings.service.form.proxy.port", 4438 "id": "settings.service.form.proxy.port",
4128 "start": { 4439 "start": {
4129 "column": 13, 4440 "column": 13,
4130 "line": 76 4441 "line": 80
4131 } 4442 }
4132 }, 4443 },
4133 { 4444 {
4134 "defaultMessage": "!!!User", 4445 "defaultMessage": "!!!User",
4135 "end": { 4446 "end": {
4136 "column": 3, 4447 "column": 3,
4137 "line": 83 4448 "line": 87
4138 }, 4449 },
4139 "file": "src/containers/settings/EditServiceScreen.js", 4450 "file": "src/containers/settings/EditServiceScreen.js",
4140 "id": "settings.service.form.proxy.user", 4451 "id": "settings.service.form.proxy.user",
4141 "start": { 4452 "start": {
4142 "column": 13, 4453 "column": 13,
4143 "line": 80 4454 "line": 84
4144 } 4455 }
4145 }, 4456 },
4146 { 4457 {
4147 "defaultMessage": "!!!Password", 4458 "defaultMessage": "!!!Password",
4148 "end": { 4459 "end": {
4149 "column": 3, 4460 "column": 3,
4150 "line": 87 4461 "line": 91
4151 }, 4462 },
4152 "file": "src/containers/settings/EditServiceScreen.js", 4463 "file": "src/containers/settings/EditServiceScreen.js",
4153 "id": "settings.service.form.proxy.password", 4464 "id": "settings.service.form.proxy.password",
4154 "start": { 4465 "start": {
4155 "column": 17, 4466 "column": 17,
4156 "line": 84 4467 "line": 88
4157 } 4468 }
4158 } 4469 }
4159 ], 4470 ],
@@ -4165,468 +4476,481 @@
4165 "defaultMessage": "!!!Launch Ferdi on start", 4476 "defaultMessage": "!!!Launch Ferdi on start",
4166 "end": { 4477 "end": {
4167 "column": 3, 4478 "column": 3,
4168 "line": 34 4479 "line": 32
4169 }, 4480 },
4170 "file": "src/containers/settings/EditSettingsScreen.js", 4481 "file": "src/containers/settings/EditSettingsScreen.js",
4171 "id": "settings.app.form.autoLaunchOnStart", 4482 "id": "settings.app.form.autoLaunchOnStart",
4172 "start": { 4483 "start": {
4173 "column": 21, 4484 "column": 21,
4174 "line": 31 4485 "line": 29
4175 } 4486 }
4176 }, 4487 },
4177 { 4488 {
4178 "defaultMessage": "!!!Open in background", 4489 "defaultMessage": "!!!Open in background",
4179 "end": { 4490 "end": {
4180 "column": 3, 4491 "column": 3,
4181 "line": 38 4492 "line": 36
4182 }, 4493 },
4183 "file": "src/containers/settings/EditSettingsScreen.js", 4494 "file": "src/containers/settings/EditSettingsScreen.js",
4184 "id": "settings.app.form.autoLaunchInBackground", 4495 "id": "settings.app.form.autoLaunchInBackground",
4185 "start": { 4496 "start": {
4186 "column": 26, 4497 "column": 26,
4187 "line": 35 4498 "line": 33
4188 } 4499 }
4189 }, 4500 },
4190 { 4501 {
4191 "defaultMessage": "!!!Keep Ferdi in background when closing the window", 4502 "defaultMessage": "!!!Keep Ferdi in background when closing the window",
4192 "end": { 4503 "end": {
4193 "column": 3, 4504 "column": 3,
4194 "line": 42 4505 "line": 40
4195 }, 4506 },
4196 "file": "src/containers/settings/EditSettingsScreen.js", 4507 "file": "src/containers/settings/EditSettingsScreen.js",
4197 "id": "settings.app.form.runInBackground", 4508 "id": "settings.app.form.runInBackground",
4198 "start": { 4509 "start": {
4199 "column": 19, 4510 "column": 19,
4200 "line": 39 4511 "line": 37
4201 } 4512 }
4202 }, 4513 },
4203 { 4514 {
4204 "defaultMessage": "!!!Start minimized in tray", 4515 "defaultMessage": "!!!Start minimized",
4205 "end": { 4516 "end": {
4206 "column": 3, 4517 "column": 3,
4207 "line": 46 4518 "line": 44
4208 }, 4519 },
4209 "file": "src/containers/settings/EditSettingsScreen.js", 4520 "file": "src/containers/settings/EditSettingsScreen.js",
4210 "id": "settings.app.form.startMinimized", 4521 "id": "settings.app.form.startMinimized",
4211 "start": { 4522 "start": {
4212 "column": 18, 4523 "column": 18,
4213 "line": 43 4524 "line": 41
4214 } 4525 }
4215 }, 4526 },
4216 { 4527 {
4217 "defaultMessage": "!!!Always show Ferdi in system tray", 4528 "defaultMessage": "!!!Always show Ferdi in system tray",
4218 "end": { 4529 "end": {
4219 "column": 3, 4530 "column": 3,
4220 "line": 50 4531 "line": 48
4221 }, 4532 },
4222 "file": "src/containers/settings/EditSettingsScreen.js", 4533 "file": "src/containers/settings/EditSettingsScreen.js",
4223 "id": "settings.app.form.enableSystemTray", 4534 "id": "settings.app.form.enableSystemTray",
4224 "start": { 4535 "start": {
4225 "column": 20, 4536 "column": 20,
4226 "line": 47 4537 "line": 45
4227 } 4538 }
4228 }, 4539 },
4229 { 4540 {
4230 "defaultMessage": "!!!Reload Ferdi after system resume", 4541 "defaultMessage": "!!!Reload Ferdi after system resume",
4231 "end": { 4542 "end": {
4232 "column": 3, 4543 "column": 3,
4233 "line": 54 4544 "line": 52
4234 }, 4545 },
4235 "file": "src/containers/settings/EditSettingsScreen.js", 4546 "file": "src/containers/settings/EditSettingsScreen.js",
4236 "id": "settings.app.form.reloadAfterResume", 4547 "id": "settings.app.form.reloadAfterResume",
4237 "start": { 4548 "start": {
4238 "column": 21, 4549 "column": 21,
4239 "line": 51 4550 "line": 49
4240 } 4551 }
4241 }, 4552 },
4242 { 4553 {
4243 "defaultMessage": "!!!Minimize Ferdi to system tray", 4554 "defaultMessage": "!!!Minimize Ferdi to system tray",
4244 "end": { 4555 "end": {
4245 "column": 3, 4556 "column": 3,
4246 "line": 58 4557 "line": 56
4247 }, 4558 },
4248 "file": "src/containers/settings/EditSettingsScreen.js", 4559 "file": "src/containers/settings/EditSettingsScreen.js",
4249 "id": "settings.app.form.minimizeToSystemTray", 4560 "id": "settings.app.form.minimizeToSystemTray",
4250 "start": { 4561 "start": {
4251 "column": 24, 4562 "column": 24,
4252 "line": 55 4563 "line": 53
4253 } 4564 }
4254 }, 4565 },
4255 { 4566 {
4256 "defaultMessage": "!!!Don't show message content in notifications", 4567 "defaultMessage": "!!!Don't show message content in notifications",
4257 "end": { 4568 "end": {
4258 "column": 3, 4569 "column": 3,
4259 "line": 62 4570 "line": 60
4260 }, 4571 },
4261 "file": "src/containers/settings/EditSettingsScreen.js", 4572 "file": "src/containers/settings/EditSettingsScreen.js",
4262 "id": "settings.app.form.privateNotifications", 4573 "id": "settings.app.form.privateNotifications",
4263 "start": { 4574 "start": {
4264 "column": 24, 4575 "column": 24,
4265 "line": 59 4576 "line": 57
4266 } 4577 }
4267 }, 4578 },
4268 { 4579 {
4269 "defaultMessage": "!!!Navigation bar behaviour", 4580 "defaultMessage": "!!!Navigation bar behaviour",
4270 "end": { 4581 "end": {
4271 "column": 3, 4582 "column": 3,
4272 "line": 66 4583 "line": 64
4273 }, 4584 },
4274 "file": "src/containers/settings/EditSettingsScreen.js", 4585 "file": "src/containers/settings/EditSettingsScreen.js",
4275 "id": "settings.app.form.navigationBarBehaviour", 4586 "id": "settings.app.form.navigationBarBehaviour",
4276 "start": { 4587 "start": {
4277 "column": 26, 4588 "column": 26,
4278 "line": 63 4589 "line": 61
4279 } 4590 }
4280 }, 4591 },
4281 { 4592 {
4282 "defaultMessage": "!!!Send telemetry data", 4593 "defaultMessage": "!!!Send telemetry data",
4283 "end": { 4594 "end": {
4284 "column": 3, 4595 "column": 3,
4285 "line": 70 4596 "line": 68
4286 }, 4597 },
4287 "file": "src/containers/settings/EditSettingsScreen.js", 4598 "file": "src/containers/settings/EditSettingsScreen.js",
4288 "id": "settings.app.form.sentry", 4599 "id": "settings.app.form.sentry",
4289 "start": { 4600 "start": {
4290 "column": 10, 4601 "column": 10,
4291 "line": 67 4602 "line": 65
4292 } 4603 }
4293 }, 4604 },
4294 { 4605 {
4295 "defaultMessage": "!!!Enable service hibernation", 4606 "defaultMessage": "!!!Enable service hibernation",
4296 "end": { 4607 "end": {
4297 "column": 3, 4608 "column": 3,
4298 "line": 74 4609 "line": 72
4299 }, 4610 },
4300 "file": "src/containers/settings/EditSettingsScreen.js", 4611 "file": "src/containers/settings/EditSettingsScreen.js",
4301 "id": "settings.app.form.hibernate", 4612 "id": "settings.app.form.hibernate",
4302 "start": { 4613 "start": {
4303 "column": 13, 4614 "column": 13,
4304 "line": 71 4615 "line": 69
4305 } 4616 }
4306 }, 4617 },
4307 { 4618 {
4308 "defaultMessage": "!!!Hibernation strategy", 4619 "defaultMessage": "!!!Hibernation strategy",
4309 "end": { 4620 "end": {
4310 "column": 3, 4621 "column": 3,
4311 "line": 78 4622 "line": 76
4312 }, 4623 },
4313 "file": "src/containers/settings/EditSettingsScreen.js", 4624 "file": "src/containers/settings/EditSettingsScreen.js",
4314 "id": "settings.app.form.hibernationStrategy", 4625 "id": "settings.app.form.hibernationStrategy",
4315 "start": { 4626 "start": {
4316 "column": 23, 4627 "column": 23,
4317 "line": 75 4628 "line": 73
4318 } 4629 }
4319 }, 4630 },
4320 { 4631 {
4321 "defaultMessage": "!!!Server", 4632 "defaultMessage": "!!!Todo Server",
4322 "end": { 4633 "end": {
4323 "column": 3, 4634 "column": 3,
4324 "line": 82 4635 "line": 80
4325 }, 4636 },
4326 "file": "src/containers/settings/EditSettingsScreen.js", 4637 "file": "src/containers/settings/EditSettingsScreen.js",
4327 "id": "settings.app.form.server", 4638 "id": "settings.app.form.predefinedTodoServer",
4328 "start": { 4639 "start": {
4329 "column": 10, 4640 "column": 24,
4330 "line": 79 4641 "line": 77
4331 } 4642 }
4332 }, 4643 },
4333 { 4644 {
4334 "defaultMessage": "!!!Todo Server", 4645 "defaultMessage": "!!!Custom TodoServer",
4335 "end": { 4646 "end": {
4336 "column": 3, 4647 "column": 3,
4337 "line": 86 4648 "line": 84
4338 }, 4649 },
4339 "file": "src/containers/settings/EditSettingsScreen.js", 4650 "file": "src/containers/settings/EditSettingsScreen.js",
4340 "id": "settings.app.form.todoServer", 4651 "id": "settings.app.form.customTodoServer",
4341 "start": { 4652 "start": {
4342 "column": 14, 4653 "column": 20,
4343 "line": 83 4654 "line": 81
4344 } 4655 }
4345 }, 4656 },
4346 { 4657 {
4347 "defaultMessage": "!!!Enable Password Lock", 4658 "defaultMessage": "!!!Enable Password Lock",
4348 "end": { 4659 "end": {
4349 "column": 3, 4660 "column": 3,
4350 "line": 90 4661 "line": 88
4351 }, 4662 },
4352 "file": "src/containers/settings/EditSettingsScreen.js", 4663 "file": "src/containers/settings/EditSettingsScreen.js",
4353 "id": "settings.app.form.enableLock", 4664 "id": "settings.app.form.enableLock",
4354 "start": { 4665 "start": {
4355 "column": 14, 4666 "column": 14,
4356 "line": 87 4667 "line": 85
4357 } 4668 }
4358 }, 4669 },
4359 { 4670 {
4360 "defaultMessage": "!!!Password", 4671 "defaultMessage": "!!!Password",
4361 "end": { 4672 "end": {
4362 "column": 3, 4673 "column": 3,
4363 "line": 94 4674 "line": 92
4364 }, 4675 },
4365 "file": "src/containers/settings/EditSettingsScreen.js", 4676 "file": "src/containers/settings/EditSettingsScreen.js",
4366 "id": "settings.app.form.lockPassword", 4677 "id": "settings.app.form.lockPassword",
4367 "start": { 4678 "start": {
4368 "column": 16, 4679 "column": 16,
4369 "line": 91 4680 "line": 89
4370 } 4681 }
4371 }, 4682 },
4372 { 4683 {
4373 "defaultMessage": "!!!Allow using Touch ID to unlock", 4684 "defaultMessage": "!!!Allow using Touch ID to unlock",
4374 "end": { 4685 "end": {
4375 "column": 3, 4686 "column": 3,
4376 "line": 98 4687 "line": 96
4377 }, 4688 },
4378 "file": "src/containers/settings/EditSettingsScreen.js", 4689 "file": "src/containers/settings/EditSettingsScreen.js",
4379 "id": "settings.app.form.useTouchIdToUnlock", 4690 "id": "settings.app.form.useTouchIdToUnlock",
4380 "start": { 4691 "start": {
4381 "column": 22, 4692 "column": 22,
4382 "line": 95 4693 "line": 93
4383 } 4694 }
4384 }, 4695 },
4385 { 4696 {
4386 "defaultMessage": "!!!Lock after inactivity", 4697 "defaultMessage": "!!!Lock after inactivity",
4387 "end": { 4698 "end": {
4388 "column": 3, 4699 "column": 3,
4389 "line": 102 4700 "line": 100
4390 }, 4701 },
4391 "file": "src/containers/settings/EditSettingsScreen.js", 4702 "file": "src/containers/settings/EditSettingsScreen.js",
4392 "id": "settings.app.form.inactivityLock", 4703 "id": "settings.app.form.inactivityLock",
4393 "start": { 4704 "start": {
4394 "column": 18, 4705 "column": 18,
4395 "line": 99 4706 "line": 97
4396 } 4707 }
4397 }, 4708 },
4398 { 4709 {
4399 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 4710 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
4400 "end": { 4711 "end": {
4401 "column": 3, 4712 "column": 3,
4402 "line": 106 4713 "line": 104
4403 }, 4714 },
4404 "file": "src/containers/settings/EditSettingsScreen.js", 4715 "file": "src/containers/settings/EditSettingsScreen.js",
4405 "id": "settings.app.form.scheduledDNDEnabled", 4716 "id": "settings.app.form.scheduledDNDEnabled",
4406 "start": { 4717 "start": {
4407 "column": 23, 4718 "column": 23,
4408 "line": 103 4719 "line": 101
4409 } 4720 }
4410 }, 4721 },
4411 { 4722 {
4412 "defaultMessage": "!!!From", 4723 "defaultMessage": "!!!From",
4413 "end": { 4724 "end": {
4414 "column": 3, 4725 "column": 3,
4415 "line": 110 4726 "line": 108
4416 }, 4727 },
4417 "file": "src/containers/settings/EditSettingsScreen.js", 4728 "file": "src/containers/settings/EditSettingsScreen.js",
4418 "id": "settings.app.form.scheduledDNDStart", 4729 "id": "settings.app.form.scheduledDNDStart",
4419 "start": { 4730 "start": {
4420 "column": 21, 4731 "column": 21,
4421 "line": 107 4732 "line": 105
4422 } 4733 }
4423 }, 4734 },
4424 { 4735 {
4425 "defaultMessage": "!!!To", 4736 "defaultMessage": "!!!To",
4426 "end": { 4737 "end": {
4427 "column": 3, 4738 "column": 3,
4428 "line": 114 4739 "line": 112
4429 }, 4740 },
4430 "file": "src/containers/settings/EditSettingsScreen.js", 4741 "file": "src/containers/settings/EditSettingsScreen.js",
4431 "id": "settings.app.form.scheduledDNDEnd", 4742 "id": "settings.app.form.scheduledDNDEnd",
4432 "start": { 4743 "start": {
4433 "column": 19, 4744 "column": 19,
4434 "line": 111 4745 "line": 109
4435 } 4746 }
4436 }, 4747 },
4437 { 4748 {
4438 "defaultMessage": "!!!Language", 4749 "defaultMessage": "!!!Language",
4439 "end": { 4750 "end": {
4440 "column": 3, 4751 "column": 3,
4441 "line": 118 4752 "line": 116
4442 }, 4753 },
4443 "file": "src/containers/settings/EditSettingsScreen.js", 4754 "file": "src/containers/settings/EditSettingsScreen.js",
4444 "id": "settings.app.form.language", 4755 "id": "settings.app.form.language",
4445 "start": { 4756 "start": {
4446 "column": 12, 4757 "column": 12,
4447 "line": 115 4758 "line": 113
4448 } 4759 }
4449 }, 4760 },
4450 { 4761 {
4451 "defaultMessage": "!!!Dark Mode", 4762 "defaultMessage": "!!!Dark Mode",
4452 "end": { 4763 "end": {
4453 "column": 3, 4764 "column": 3,
4454 "line": 122 4765 "line": 120
4455 }, 4766 },
4456 "file": "src/containers/settings/EditSettingsScreen.js", 4767 "file": "src/containers/settings/EditSettingsScreen.js",
4457 "id": "settings.app.form.darkMode", 4768 "id": "settings.app.form.darkMode",
4458 "start": { 4769 "start": {
4459 "column": 12, 4770 "column": 12,
4460 "line": 119 4771 "line": 117
4461 } 4772 }
4462 }, 4773 },
4463 { 4774 {
4464 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", 4775 "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting",
4465 "end": { 4776 "end": {
4466 "column": 3, 4777 "column": 3,
4467 "line": 126 4778 "line": 124
4468 }, 4779 },
4469 "file": "src/containers/settings/EditSettingsScreen.js", 4780 "file": "src/containers/settings/EditSettingsScreen.js",
4470 "id": "settings.app.form.adaptableDarkMode", 4781 "id": "settings.app.form.adaptableDarkMode",
4471 "start": { 4782 "start": {
4472 "column": 21, 4783 "column": 21,
4473 "line": 123 4784 "line": 121
4474 } 4785 }
4475 }, 4786 },
4476 { 4787 {
4477 "defaultMessage": "!!!Enable universal Dark Mode", 4788 "defaultMessage": "!!!Enable universal Dark Mode",
4478 "end": { 4789 "end": {
4479 "column": 3, 4790 "column": 3,
4480 "line": 130 4791 "line": 128
4481 }, 4792 },
4482 "file": "src/containers/settings/EditSettingsScreen.js", 4793 "file": "src/containers/settings/EditSettingsScreen.js",
4483 "id": "settings.app.form.universalDarkMode", 4794 "id": "settings.app.form.universalDarkMode",
4484 "start": { 4795 "start": {
4485 "column": 21, 4796 "column": 21,
4486 "line": 127 4797 "line": 125
4487 } 4798 }
4488 }, 4799 },
4489 { 4800 {
4490 "defaultMessage": "!!!Sidebar width", 4801 "defaultMessage": "!!!Sidebar width",
4491 "end": { 4802 "end": {
4492 "column": 3, 4803 "column": 3,
4493 "line": 134 4804 "line": 132
4494 }, 4805 },
4495 "file": "src/containers/settings/EditSettingsScreen.js", 4806 "file": "src/containers/settings/EditSettingsScreen.js",
4496 "id": "settings.app.form.serviceRibbonWidth", 4807 "id": "settings.app.form.serviceRibbonWidth",
4497 "start": { 4808 "start": {
4498 "column": 22, 4809 "column": 22,
4499 "line": 131 4810 "line": 129
4500 } 4811 }
4501 }, 4812 },
4502 { 4813 {
4503 "defaultMessage": "!!!Service icon size", 4814 "defaultMessage": "!!!Service icon size",
4504 "end": { 4815 "end": {
4505 "column": 3, 4816 "column": 3,
4506 "line": 138 4817 "line": 136
4507 }, 4818 },
4508 "file": "src/containers/settings/EditSettingsScreen.js", 4819 "file": "src/containers/settings/EditSettingsScreen.js",
4509 "id": "settings.app.form.iconSize", 4820 "id": "settings.app.form.iconSize",
4510 "start": { 4821 "start": {
4511 "column": 12, 4822 "column": 12,
4512 "line": 135 4823 "line": 133
4513 } 4824 }
4514 }, 4825 },
4515 { 4826 {
4516 "defaultMessage": "!!!Accent color", 4827 "defaultMessage": "!!!Accent color",
4517 "end": { 4828 "end": {
4518 "column": 3, 4829 "column": 3,
4519 "line": 142 4830 "line": 140
4520 }, 4831 },
4521 "file": "src/containers/settings/EditSettingsScreen.js", 4832 "file": "src/containers/settings/EditSettingsScreen.js",
4522 "id": "settings.app.form.accentColor", 4833 "id": "settings.app.form.accentColor",
4523 "start": { 4834 "start": {
4524 "column": 15, 4835 "column": 15,
4525 "line": 139 4836 "line": 137
4526 } 4837 }
4527 }, 4838 },
4528 { 4839 {
4529 "defaultMessage": "!!!Display disabled services tabs", 4840 "defaultMessage": "!!!Display disabled services tabs",
4530 "end": { 4841 "end": {
4531 "column": 3, 4842 "column": 3,
4532 "line": 146 4843 "line": 144
4533 }, 4844 },
4534 "file": "src/containers/settings/EditSettingsScreen.js", 4845 "file": "src/containers/settings/EditSettingsScreen.js",
4535 "id": "settings.app.form.showDisabledServices", 4846 "id": "settings.app.form.showDisabledServices",
4536 "start": { 4847 "start": {
4537 "column": 24, 4848 "column": 24,
4538 "line": 143 4849 "line": 141
4539 } 4850 }
4540 }, 4851 },
4541 { 4852 {
4542 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 4853 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
4543 "end": { 4854 "end": {
4544 "column": 3, 4855 "column": 3,
4545 "line": 150 4856 "line": 148
4546 }, 4857 },
4547 "file": "src/containers/settings/EditSettingsScreen.js", 4858 "file": "src/containers/settings/EditSettingsScreen.js",
4548 "id": "settings.app.form.showMessagesBadgesWhenMuted", 4859 "id": "settings.app.form.showMessagesBadgesWhenMuted",
4549 "start": { 4860 "start": {
4550 "column": 29, 4861 "column": 29,
4551 "line": 147 4862 "line": 145
4863 }
4864 },
4865 {
4866 "defaultMessage": "!!!Show draggable area on window",
4867 "end": {
4868 "column": 3,
4869 "line": 152
4870 },
4871 "file": "src/containers/settings/EditSettingsScreen.js",
4872 "id": "settings.app.form.showDragArea",
4873 "start": {
4874 "column": 16,
4875 "line": 149
4552 } 4876 }
4553 }, 4877 },
4554 { 4878 {
4555 "defaultMessage": "!!!Enable spell checking", 4879 "defaultMessage": "!!!Enable spell checking",
4556 "end": { 4880 "end": {
4557 "column": 3, 4881 "column": 3,
4558 "line": 154 4882 "line": 156
4559 }, 4883 },
4560 "file": "src/containers/settings/EditSettingsScreen.js", 4884 "file": "src/containers/settings/EditSettingsScreen.js",
4561 "id": "settings.app.form.enableSpellchecking", 4885 "id": "settings.app.form.enableSpellchecking",
4562 "start": { 4886 "start": {
4563 "column": 23, 4887 "column": 23,
4564 "line": 151 4888 "line": 153
4565 } 4889 }
4566 }, 4890 },
4567 { 4891 {
4568 "defaultMessage": "!!!Enable GPU Acceleration", 4892 "defaultMessage": "!!!Enable GPU Acceleration",
4569 "end": { 4893 "end": {
4570 "column": 3, 4894 "column": 3,
4571 "line": 158 4895 "line": 160
4572 }, 4896 },
4573 "file": "src/containers/settings/EditSettingsScreen.js", 4897 "file": "src/containers/settings/EditSettingsScreen.js",
4574 "id": "settings.app.form.enableGPUAcceleration", 4898 "id": "settings.app.form.enableGPUAcceleration",
4575 "start": { 4899 "start": {
4576 "column": 25, 4900 "column": 25,
4577 "line": 155 4901 "line": 157
4578 } 4902 }
4579 }, 4903 },
4580 { 4904 {
4581 "defaultMessage": "!!!Include beta versions", 4905 "defaultMessage": "!!!Include beta versions",
4582 "end": { 4906 "end": {
4583 "column": 3, 4907 "column": 3,
4584 "line": 162 4908 "line": 164
4585 }, 4909 },
4586 "file": "src/containers/settings/EditSettingsScreen.js", 4910 "file": "src/containers/settings/EditSettingsScreen.js",
4587 "id": "settings.app.form.beta", 4911 "id": "settings.app.form.beta",
4588 "start": { 4912 "start": {
4589 "column": 8, 4913 "column": 8,
4590 "line": 159 4914 "line": 161
4591 } 4915 }
4592 }, 4916 },
4593 { 4917 {
4594 "defaultMessage": "!!!Disable updates", 4918 "defaultMessage": "!!!Enable updates",
4595 "end": { 4919 "end": {
4596 "column": 3, 4920 "column": 3,
4597 "line": 166 4921 "line": 168
4598 }, 4922 },
4599 "file": "src/containers/settings/EditSettingsScreen.js", 4923 "file": "src/containers/settings/EditSettingsScreen.js",
4600 "id": "settings.app.form.noUpdates", 4924 "id": "settings.app.form.automaticUpdates",
4601 "start": { 4925 "start": {
4602 "column": 13, 4926 "column": 20,
4603 "line": 163 4927 "line": 165
4604 } 4928 }
4605 }, 4929 },
4606 { 4930 {
4607 "defaultMessage": "!!!Enable Franz Todos", 4931 "defaultMessage": "!!!Enable Franz Todos",
4608 "end": { 4932 "end": {
4609 "column": 3, 4933 "column": 3,
4610 "line": 170 4934 "line": 172
4611 }, 4935 },
4612 "file": "src/containers/settings/EditSettingsScreen.js", 4936 "file": "src/containers/settings/EditSettingsScreen.js",
4613 "id": "settings.app.form.enableTodos", 4937 "id": "settings.app.form.enableTodos",
4614 "start": { 4938 "start": {
4615 "column": 15, 4939 "column": 15,
4616 "line": 167 4940 "line": 169
4617 } 4941 }
4618 }, 4942 },
4619 { 4943 {
4620 "defaultMessage": "!!!Keep all workspaces loaded", 4944 "defaultMessage": "!!!Keep all workspaces loaded",
4621 "end": { 4945 "end": {
4622 "column": 3, 4946 "column": 3,
4623 "line": 174 4947 "line": 176
4624 }, 4948 },
4625 "file": "src/containers/settings/EditSettingsScreen.js", 4949 "file": "src/containers/settings/EditSettingsScreen.js",
4626 "id": "settings.app.form.keepAllWorkspacesLoaded", 4950 "id": "settings.app.form.keepAllWorkspacesLoaded",
4627 "start": { 4951 "start": {
4628 "column": 27, 4952 "column": 27,
4629 "line": 171 4953 "line": 173
4630 } 4954 }
4631 } 4955 }
4632 ], 4956 ],
@@ -5296,6 +5620,76 @@
5296 { 5620 {
5297 "descriptors": [ 5621 "descriptors": [
5298 { 5622 {
5623 "defaultMessage": "!!!Home",
5624 "end": {
5625 "column": 3,
5626 "line": 16
5627 },
5628 "file": "src/features/recipeConnectionLost/components/WebControls.js",
5629 "id": "webControls.goHome",
5630 "start": {
5631 "column": 10,
5632 "line": 13
5633 }
5634 },
5635 {
5636 "defaultMessage": "!!!Open in Browser",
5637 "end": {
5638 "column": 3,
5639 "line": 20
5640 },
5641 "file": "src/features/recipeConnectionLost/components/WebControls.js",
5642 "id": "webControls.openInBrowser",
5643 "start": {
5644 "column": 17,
5645 "line": 17
5646 }
5647 },
5648 {
5649 "defaultMessage": "!!!Back",
5650 "end": {
5651 "column": 3,
5652 "line": 24
5653 },
5654 "file": "src/features/recipeConnectionLost/components/WebControls.js",
5655 "id": "webControls.back",
5656 "start": {
5657 "column": 8,
5658 "line": 21
5659 }
5660 },
5661 {
5662 "defaultMessage": "!!!Forward",
5663 "end": {
5664 "column": 3,
5665 "line": 28
5666 },
5667 "file": "src/features/recipeConnectionLost/components/WebControls.js",
5668 "id": "webControls.forward",
5669 "start": {
5670 "column": 11,
5671 "line": 25
5672 }
5673 },
5674 {
5675 "defaultMessage": "!!!Reload",
5676 "end": {
5677 "column": 3,
5678 "line": 32
5679 },
5680 "file": "src/features/recipeConnectionLost/components/WebControls.js",
5681 "id": "webControls.reload",
5682 "start": {
5683 "column": 10,
5684 "line": 29
5685 }
5686 }
5687 ],
5688 "path": "src/features/recipeConnectionLost/components/WebControls.json"
5689 },
5690 {
5691 "descriptors": [
5692 {
5299 "defaultMessage": "!!!Changes in Franz {version}", 5693 "defaultMessage": "!!!Changes in Franz {version}",
5300 "end": { 5694 "end": {
5301 "column": 3, 5695 "column": 3,
@@ -5444,39 +5838,39 @@
5444 "defaultMessage": "!!!Franz Todos are available to premium users now!", 5838 "defaultMessage": "!!!Franz Todos are available to premium users now!",
5445 "end": { 5839 "end": {
5446 "column": 3, 5840 "column": 3,
5447 "line": 20 5841 "line": 30
5448 }, 5842 },
5449 "file": "src/features/todos/components/TodosWebview.js", 5843 "file": "src/features/todos/components/TodosWebview.js",
5450 "id": "feature.todos.premium.info", 5844 "id": "feature.todos.premium.info",
5451 "start": { 5845 "start": {
5452 "column": 15, 5846 "column": 15,
5453 "line": 17 5847 "line": 27
5454 } 5848 }
5455 }, 5849 },
5456 { 5850 {
5457 "defaultMessage": "!!!Upgrade Account", 5851 "defaultMessage": "!!!Upgrade Account",
5458 "end": { 5852 "end": {
5459 "column": 3, 5853 "column": 3,
5460 "line": 24 5854 "line": 34
5461 }, 5855 },
5462 "file": "src/features/todos/components/TodosWebview.js", 5856 "file": "src/features/todos/components/TodosWebview.js",
5463 "id": "feature.todos.premium.upgrade", 5857 "id": "feature.todos.premium.upgrade",
5464 "start": { 5858 "start": {
5465 "column": 14, 5859 "column": 14,
5466 "line": 21 5860 "line": 31
5467 } 5861 }
5468 }, 5862 },
5469 { 5863 {
5470 "defaultMessage": "!!!Everyone else will have to wait a little longer.", 5864 "defaultMessage": "!!!Everyone else will have to wait a little longer.",
5471 "end": { 5865 "end": {
5472 "column": 3, 5866 "column": 3,
5473 "line": 28 5867 "line": 38
5474 }, 5868 },
5475 "file": "src/features/todos/components/TodosWebview.js", 5869 "file": "src/features/todos/components/TodosWebview.js",
5476 "id": "feature.todos.premium.rollout", 5870 "id": "feature.todos.premium.rollout",
5477 "start": { 5871 "start": {
5478 "column": 15, 5872 "column": 15,
5479 "line": 25 5873 "line": 35
5480 } 5874 }
5481 } 5875 }
5482 ], 5876 ],
@@ -6694,627 +7088,640 @@
6694 } 7088 }
6695 }, 7089 },
6696 { 7090 {
6697 "defaultMessage": "!!!Toggle Developer Tools", 7091 "defaultMessage": "!!!Toggle Dark Mode",
6698 "end": { 7092 "end": {
6699 "column": 3, 7093 "column": 3,
6700 "line": 117 7094 "line": 117
6701 }, 7095 },
6702 "file": "src/lib/Menu.js", 7096 "file": "src/lib/Menu.js",
6703 "id": "menu.view.toggleDevTools", 7097 "id": "menu.view.toggleDarkMode",
6704 "start": { 7098 "start": {
6705 "column": 18, 7099 "column": 18,
6706 "line": 114 7100 "line": 114
6707 } 7101 }
6708 }, 7102 },
6709 { 7103 {
6710 "defaultMessage": "!!!Toggle Todos Developer Tools", 7104 "defaultMessage": "!!!Toggle Developer Tools",
6711 "end": { 7105 "end": {
6712 "column": 3, 7106 "column": 3,
6713 "line": 121 7107 "line": 121
6714 }, 7108 },
6715 "file": "src/lib/Menu.js", 7109 "file": "src/lib/Menu.js",
7110 "id": "menu.view.toggleDevTools",
7111 "start": {
7112 "column": 18,
7113 "line": 118
7114 }
7115 },
7116 {
7117 "defaultMessage": "!!!Toggle Todos Developer Tools",
7118 "end": {
7119 "column": 3,
7120 "line": 125
7121 },
7122 "file": "src/lib/Menu.js",
6716 "id": "menu.view.toggleTodosDevTools", 7123 "id": "menu.view.toggleTodosDevTools",
6717 "start": { 7124 "start": {
6718 "column": 23, 7125 "column": 23,
6719 "line": 118 7126 "line": 122
6720 } 7127 }
6721 }, 7128 },
6722 { 7129 {
6723 "defaultMessage": "!!!Toggle Service Developer Tools", 7130 "defaultMessage": "!!!Toggle Service Developer Tools",
6724 "end": { 7131 "end": {
6725 "column": 3, 7132 "column": 3,
6726 "line": 125 7133 "line": 129
6727 }, 7134 },
6728 "file": "src/lib/Menu.js", 7135 "file": "src/lib/Menu.js",
6729 "id": "menu.view.toggleServiceDevTools", 7136 "id": "menu.view.toggleServiceDevTools",
6730 "start": { 7137 "start": {
6731 "column": 25, 7138 "column": 25,
6732 "line": 122 7139 "line": 126
6733 } 7140 }
6734 }, 7141 },
6735 { 7142 {
6736 "defaultMessage": "!!!Reload Service", 7143 "defaultMessage": "!!!Reload Service",
6737 "end": { 7144 "end": {
6738 "column": 3, 7145 "column": 3,
6739 "line": 129 7146 "line": 133
6740 }, 7147 },
6741 "file": "src/lib/Menu.js", 7148 "file": "src/lib/Menu.js",
6742 "id": "menu.view.reloadService", 7149 "id": "menu.view.reloadService",
6743 "start": { 7150 "start": {
6744 "column": 17, 7151 "column": 17,
6745 "line": 126 7152 "line": 130
6746 } 7153 }
6747 }, 7154 },
6748 { 7155 {
6749 "defaultMessage": "!!!Reload Ferdi", 7156 "defaultMessage": "!!!Reload Ferdi",
6750 "end": { 7157 "end": {
6751 "column": 3, 7158 "column": 3,
6752 "line": 133 7159 "line": 137
6753 }, 7160 },
6754 "file": "src/lib/Menu.js", 7161 "file": "src/lib/Menu.js",
6755 "id": "menu.view.reloadFranz", 7162 "id": "menu.view.reloadFranz",
6756 "start": { 7163 "start": {
6757 "column": 15, 7164 "column": 15,
6758 "line": 130 7165 "line": 134
6759 } 7166 }
6760 }, 7167 },
6761 { 7168 {
6762 "defaultMessage": "!!!Lock Ferdi", 7169 "defaultMessage": "!!!Lock Ferdi",
6763 "end": { 7170 "end": {
6764 "column": 3, 7171 "column": 3,
6765 "line": 137 7172 "line": 141
6766 }, 7173 },
6767 "file": "src/lib/Menu.js", 7174 "file": "src/lib/Menu.js",
6768 "id": "menu.view.lockFerdi", 7175 "id": "menu.view.lockFerdi",
6769 "start": { 7176 "start": {
6770 "column": 13, 7177 "column": 13,
6771 "line": 134 7178 "line": 138
6772 } 7179 }
6773 }, 7180 },
6774 { 7181 {
6775 "defaultMessage": "!!!Minimize", 7182 "defaultMessage": "!!!Minimize",
6776 "end": { 7183 "end": {
6777 "column": 3, 7184 "column": 3,
6778 "line": 141 7185 "line": 145
6779 }, 7186 },
6780 "file": "src/lib/Menu.js", 7187 "file": "src/lib/Menu.js",
6781 "id": "menu.window.minimize", 7188 "id": "menu.window.minimize",
6782 "start": { 7189 "start": {
6783 "column": 12, 7190 "column": 12,
6784 "line": 138 7191 "line": 142
6785 } 7192 }
6786 }, 7193 },
6787 { 7194 {
6788 "defaultMessage": "!!!Close", 7195 "defaultMessage": "!!!Close",
6789 "end": { 7196 "end": {
6790 "column": 3, 7197 "column": 3,
6791 "line": 145 7198 "line": 149
6792 }, 7199 },
6793 "file": "src/lib/Menu.js", 7200 "file": "src/lib/Menu.js",
6794 "id": "menu.window.close", 7201 "id": "menu.window.close",
6795 "start": { 7202 "start": {
6796 "column": 9, 7203 "column": 9,
6797 "line": 142 7204 "line": 146
6798 } 7205 }
6799 }, 7206 },
6800 { 7207 {
6801 "defaultMessage": "!!!Learn More", 7208 "defaultMessage": "!!!Learn More",
6802 "end": { 7209 "end": {
6803 "column": 3, 7210 "column": 3,
6804 "line": 149 7211 "line": 153
6805 }, 7212 },
6806 "file": "src/lib/Menu.js", 7213 "file": "src/lib/Menu.js",
6807 "id": "menu.help.learnMore", 7214 "id": "menu.help.learnMore",
6808 "start": { 7215 "start": {
6809 "column": 13, 7216 "column": 13,
6810 "line": 146 7217 "line": 150
6811 } 7218 }
6812 }, 7219 },
6813 { 7220 {
6814 "defaultMessage": "!!!Changelog", 7221 "defaultMessage": "!!!Changelog",
6815 "end": { 7222 "end": {
6816 "column": 3, 7223 "column": 3,
6817 "line": 153 7224 "line": 157
6818 }, 7225 },
6819 "file": "src/lib/Menu.js", 7226 "file": "src/lib/Menu.js",
6820 "id": "menu.help.changelog", 7227 "id": "menu.help.changelog",
6821 "start": { 7228 "start": {
6822 "column": 13, 7229 "column": 13,
6823 "line": 150 7230 "line": 154
6824 } 7231 }
6825 }, 7232 },
6826 { 7233 {
6827 "defaultMessage": "!!!Support", 7234 "defaultMessage": "!!!Support",
6828 "end": { 7235 "end": {
6829 "column": 3, 7236 "column": 3,
6830 "line": 157 7237 "line": 161
6831 }, 7238 },
6832 "file": "src/lib/Menu.js", 7239 "file": "src/lib/Menu.js",
6833 "id": "menu.help.support", 7240 "id": "menu.help.support",
6834 "start": { 7241 "start": {
6835 "column": 11, 7242 "column": 11,
6836 "line": 154 7243 "line": 158
6837 } 7244 }
6838 }, 7245 },
6839 { 7246 {
6840 "defaultMessage": "!!!Copy Debug Information", 7247 "defaultMessage": "!!!Copy Debug Information",
6841 "end": { 7248 "end": {
6842 "column": 3, 7249 "column": 3,
6843 "line": 161 7250 "line": 165
6844 }, 7251 },
6845 "file": "src/lib/Menu.js", 7252 "file": "src/lib/Menu.js",
6846 "id": "menu.help.debugInfo", 7253 "id": "menu.help.debugInfo",
6847 "start": { 7254 "start": {
6848 "column": 13, 7255 "column": 13,
6849 "line": 158 7256 "line": 162
6850 } 7257 }
6851 }, 7258 },
6852 { 7259 {
6853 "defaultMessage": "!!!Publish Debug Information", 7260 "defaultMessage": "!!!Publish Debug Information",
6854 "end": { 7261 "end": {
6855 "column": 3, 7262 "column": 3,
6856 "line": 165 7263 "line": 169
6857 }, 7264 },
6858 "file": "src/lib/Menu.js", 7265 "file": "src/lib/Menu.js",
6859 "id": "menu.help.publishDebugInfo", 7266 "id": "menu.help.publishDebugInfo",
6860 "start": { 7267 "start": {
6861 "column": 20, 7268 "column": 20,
6862 "line": 162 7269 "line": 166
6863 } 7270 }
6864 }, 7271 },
6865 { 7272 {
6866 "defaultMessage": "!!!Ferdi Debug Information", 7273 "defaultMessage": "!!!Ferdi Debug Information",
6867 "end": { 7274 "end": {
6868 "column": 3, 7275 "column": 3,
6869 "line": 169 7276 "line": 173
6870 }, 7277 },
6871 "file": "src/lib/Menu.js", 7278 "file": "src/lib/Menu.js",
6872 "id": "menu.help.debugInfoCopiedHeadline", 7279 "id": "menu.help.debugInfoCopiedHeadline",
6873 "start": { 7280 "start": {
6874 "column": 27, 7281 "column": 27,
6875 "line": 166 7282 "line": 170
6876 } 7283 }
6877 }, 7284 },
6878 { 7285 {
6879 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 7286 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
6880 "end": { 7287 "end": {
6881 "column": 3, 7288 "column": 3,
6882 "line": 173 7289 "line": 177
6883 }, 7290 },
6884 "file": "src/lib/Menu.js", 7291 "file": "src/lib/Menu.js",
6885 "id": "menu.help.debugInfoCopiedBody", 7292 "id": "menu.help.debugInfoCopiedBody",
6886 "start": { 7293 "start": {
6887 "column": 23, 7294 "column": 23,
6888 "line": 170 7295 "line": 174
6889 } 7296 }
6890 }, 7297 },
6891 { 7298 {
6892 "defaultMessage": "!!!Unlock with Touch ID", 7299 "defaultMessage": "!!!Unlock with Touch ID",
6893 "end": { 7300 "end": {
6894 "column": 3, 7301 "column": 3,
6895 "line": 177 7302 "line": 181
6896 }, 7303 },
6897 "file": "src/lib/Menu.js", 7304 "file": "src/lib/Menu.js",
6898 "id": "locked.touchId", 7305 "id": "locked.touchId",
6899 "start": { 7306 "start": {
6900 "column": 11, 7307 "column": 11,
6901 "line": 174 7308 "line": 178
6902 } 7309 }
6903 }, 7310 },
6904 { 7311 {
6905 "defaultMessage": "!!!unlock via Touch ID", 7312 "defaultMessage": "!!!unlock via Touch ID",
6906 "end": { 7313 "end": {
6907 "column": 3, 7314 "column": 3,
6908 "line": 181 7315 "line": 185
6909 }, 7316 },
6910 "file": "src/lib/Menu.js", 7317 "file": "src/lib/Menu.js",
6911 "id": "locked.touchIdPrompt", 7318 "id": "locked.touchIdPrompt",
6912 "start": { 7319 "start": {
6913 "column": 17, 7320 "column": 17,
6914 "line": 178 7321 "line": 182
6915 } 7322 }
6916 }, 7323 },
6917 { 7324 {
6918 "defaultMessage": "!!!Terms of Service", 7325 "defaultMessage": "!!!Terms of Service",
6919 "end": { 7326 "end": {
6920 "column": 3, 7327 "column": 3,
6921 "line": 185 7328 "line": 189
6922 }, 7329 },
6923 "file": "src/lib/Menu.js", 7330 "file": "src/lib/Menu.js",
6924 "id": "menu.help.tos", 7331 "id": "menu.help.tos",
6925 "start": { 7332 "start": {
6926 "column": 7, 7333 "column": 7,
6927 "line": 182 7334 "line": 186
6928 } 7335 }
6929 }, 7336 },
6930 { 7337 {
6931 "defaultMessage": "!!!Privacy Statement", 7338 "defaultMessage": "!!!Privacy Statement",
6932 "end": { 7339 "end": {
6933 "column": 3, 7340 "column": 3,
6934 "line": 189 7341 "line": 193
6935 }, 7342 },
6936 "file": "src/lib/Menu.js", 7343 "file": "src/lib/Menu.js",
6937 "id": "menu.help.privacy", 7344 "id": "menu.help.privacy",
6938 "start": { 7345 "start": {
6939 "column": 11, 7346 "column": 11,
6940 "line": 186 7347 "line": 190
6941 } 7348 }
6942 }, 7349 },
6943 { 7350 {
6944 "defaultMessage": "!!!File", 7351 "defaultMessage": "!!!File",
6945 "end": { 7352 "end": {
6946 "column": 3, 7353 "column": 3,
6947 "line": 193 7354 "line": 197
6948 }, 7355 },
6949 "file": "src/lib/Menu.js", 7356 "file": "src/lib/Menu.js",
6950 "id": "menu.file", 7357 "id": "menu.file",
6951 "start": { 7358 "start": {
6952 "column": 8, 7359 "column": 8,
6953 "line": 190 7360 "line": 194
6954 } 7361 }
6955 }, 7362 },
6956 { 7363 {
6957 "defaultMessage": "!!!View", 7364 "defaultMessage": "!!!View",
6958 "end": { 7365 "end": {
6959 "column": 3, 7366 "column": 3,
6960 "line": 197 7367 "line": 201
6961 }, 7368 },
6962 "file": "src/lib/Menu.js", 7369 "file": "src/lib/Menu.js",
6963 "id": "menu.view", 7370 "id": "menu.view",
6964 "start": { 7371 "start": {
6965 "column": 8, 7372 "column": 8,
6966 "line": 194 7373 "line": 198
6967 } 7374 }
6968 }, 7375 },
6969 { 7376 {
6970 "defaultMessage": "!!!Services", 7377 "defaultMessage": "!!!Services",
6971 "end": { 7378 "end": {
6972 "column": 3, 7379 "column": 3,
6973 "line": 201 7380 "line": 205
6974 }, 7381 },
6975 "file": "src/lib/Menu.js", 7382 "file": "src/lib/Menu.js",
6976 "id": "menu.services", 7383 "id": "menu.services",
6977 "start": { 7384 "start": {
6978 "column": 12, 7385 "column": 12,
6979 "line": 198 7386 "line": 202
6980 } 7387 }
6981 }, 7388 },
6982 { 7389 {
6983 "defaultMessage": "!!!Window", 7390 "defaultMessage": "!!!Window",
6984 "end": { 7391 "end": {
6985 "column": 3, 7392 "column": 3,
6986 "line": 205 7393 "line": 209
6987 }, 7394 },
6988 "file": "src/lib/Menu.js", 7395 "file": "src/lib/Menu.js",
6989 "id": "menu.window", 7396 "id": "menu.window",
6990 "start": { 7397 "start": {
6991 "column": 10, 7398 "column": 10,
6992 "line": 202 7399 "line": 206
6993 } 7400 }
6994 }, 7401 },
6995 { 7402 {
6996 "defaultMessage": "!!!Help", 7403 "defaultMessage": "!!!Help",
6997 "end": { 7404 "end": {
6998 "column": 3, 7405 "column": 3,
6999 "line": 209 7406 "line": 213
7000 }, 7407 },
7001 "file": "src/lib/Menu.js", 7408 "file": "src/lib/Menu.js",
7002 "id": "menu.help", 7409 "id": "menu.help",
7003 "start": { 7410 "start": {
7004 "column": 8, 7411 "column": 8,
7005 "line": 206 7412 "line": 210
7006 } 7413 }
7007 }, 7414 },
7008 { 7415 {
7009 "defaultMessage": "!!!About Ferdi", 7416 "defaultMessage": "!!!About Ferdi",
7010 "end": { 7417 "end": {
7011 "column": 3, 7418 "column": 3,
7012 "line": 213 7419 "line": 217
7013 }, 7420 },
7014 "file": "src/lib/Menu.js", 7421 "file": "src/lib/Menu.js",
7015 "id": "menu.app.about", 7422 "id": "menu.app.about",
7016 "start": { 7423 "start": {
7017 "column": 9, 7424 "column": 9,
7018 "line": 210 7425 "line": 214
7019 } 7426 }
7020 }, 7427 },
7021 { 7428 {
7022 "defaultMessage": "!!!What's new?", 7429 "defaultMessage": "!!!What's new?",
7023 "end": { 7430 "end": {
7024 "column": 3, 7431 "column": 3,
7025 "line": 217 7432 "line": 221
7026 }, 7433 },
7027 "file": "src/lib/Menu.js", 7434 "file": "src/lib/Menu.js",
7028 "id": "menu.app.announcement", 7435 "id": "menu.app.announcement",
7029 "start": { 7436 "start": {
7030 "column": 16, 7437 "column": 16,
7031 "line": 214 7438 "line": 218
7032 } 7439 }
7033 }, 7440 },
7034 { 7441 {
7035 "defaultMessage": "!!!Settings", 7442 "defaultMessage": "!!!Settings",
7036 "end": { 7443 "end": {
7037 "column": 3, 7444 "column": 3,
7038 "line": 221 7445 "line": 225
7039 }, 7446 },
7040 "file": "src/lib/Menu.js", 7447 "file": "src/lib/Menu.js",
7041 "id": "menu.app.settings", 7448 "id": "menu.app.settings",
7042 "start": { 7449 "start": {
7043 "column": 12, 7450 "column": 12,
7044 "line": 218 7451 "line": 222
7045 } 7452 }
7046 }, 7453 },
7047 { 7454 {
7048 "defaultMessage": "!!!Check for updates", 7455 "defaultMessage": "!!!Check for updates",
7049 "end": { 7456 "end": {
7050 "column": 3, 7457 "column": 3,
7051 "line": 225 7458 "line": 229
7052 }, 7459 },
7053 "file": "src/lib/Menu.js", 7460 "file": "src/lib/Menu.js",
7054 "id": "menu.app.checkForUpdates", 7461 "id": "menu.app.checkForUpdates",
7055 "start": { 7462 "start": {
7056 "column": 19, 7463 "column": 19,
7057 "line": 222 7464 "line": 226
7058 } 7465 }
7059 }, 7466 },
7060 { 7467 {
7061 "defaultMessage": "!!!Hide", 7468 "defaultMessage": "!!!Hide",
7062 "end": { 7469 "end": {
7063 "column": 3, 7470 "column": 3,
7064 "line": 229 7471 "line": 233
7065 }, 7472 },
7066 "file": "src/lib/Menu.js", 7473 "file": "src/lib/Menu.js",
7067 "id": "menu.app.hide", 7474 "id": "menu.app.hide",
7068 "start": { 7475 "start": {
7069 "column": 8, 7476 "column": 8,
7070 "line": 226 7477 "line": 230
7071 } 7478 }
7072 }, 7479 },
7073 { 7480 {
7074 "defaultMessage": "!!!Hide Others", 7481 "defaultMessage": "!!!Hide Others",
7075 "end": { 7482 "end": {
7076 "column": 3, 7483 "column": 3,
7077 "line": 233 7484 "line": 237
7078 }, 7485 },
7079 "file": "src/lib/Menu.js", 7486 "file": "src/lib/Menu.js",
7080 "id": "menu.app.hideOthers", 7487 "id": "menu.app.hideOthers",
7081 "start": { 7488 "start": {
7082 "column": 14, 7489 "column": 14,
7083 "line": 230 7490 "line": 234
7084 } 7491 }
7085 }, 7492 },
7086 { 7493 {
7087 "defaultMessage": "!!!Unhide", 7494 "defaultMessage": "!!!Unhide",
7088 "end": { 7495 "end": {
7089 "column": 3, 7496 "column": 3,
7090 "line": 237 7497 "line": 241
7091 }, 7498 },
7092 "file": "src/lib/Menu.js", 7499 "file": "src/lib/Menu.js",
7093 "id": "menu.app.unhide", 7500 "id": "menu.app.unhide",
7094 "start": { 7501 "start": {
7095 "column": 10, 7502 "column": 10,
7096 "line": 234 7503 "line": 238
7097 } 7504 }
7098 }, 7505 },
7099 { 7506 {
7100 "defaultMessage": "!!!Auto-hide menu bar", 7507 "defaultMessage": "!!!Auto-hide menu bar",
7101 "end": { 7508 "end": {
7102 "column": 3, 7509 "column": 3,
7103 "line": 241 7510 "line": 245
7104 }, 7511 },
7105 "file": "src/lib/Menu.js", 7512 "file": "src/lib/Menu.js",
7106 "id": "menu.app.autohideMenuBar", 7513 "id": "menu.app.autohideMenuBar",
7107 "start": { 7514 "start": {
7108 "column": 19, 7515 "column": 19,
7109 "line": 238 7516 "line": 242
7110 } 7517 }
7111 }, 7518 },
7112 { 7519 {
7113 "defaultMessage": "!!!Quit", 7520 "defaultMessage": "!!!Quit",
7114 "end": { 7521 "end": {
7115 "column": 3, 7522 "column": 3,
7116 "line": 245 7523 "line": 249
7117 }, 7524 },
7118 "file": "src/lib/Menu.js", 7525 "file": "src/lib/Menu.js",
7119 "id": "menu.app.quit", 7526 "id": "menu.app.quit",
7120 "start": { 7527 "start": {
7121 "column": 8, 7528 "column": 8,
7122 "line": 242 7529 "line": 246
7123 } 7530 }
7124 }, 7531 },
7125 { 7532 {
7126 "defaultMessage": "!!!Add New Service...", 7533 "defaultMessage": "!!!Add New Service...",
7127 "end": { 7534 "end": {
7128 "column": 3, 7535 "column": 3,
7129 "line": 249 7536 "line": 253
7130 }, 7537 },
7131 "file": "src/lib/Menu.js", 7538 "file": "src/lib/Menu.js",
7132 "id": "menu.services.addNewService", 7539 "id": "menu.services.addNewService",
7133 "start": { 7540 "start": {
7134 "column": 17, 7541 "column": 17,
7135 "line": 246 7542 "line": 250
7136 } 7543 }
7137 }, 7544 },
7138 { 7545 {
7139 "defaultMessage": "!!!Add New Workspace...", 7546 "defaultMessage": "!!!Add New Workspace...",
7140 "end": { 7547 "end": {
7141 "column": 3, 7548 "column": 3,
7142 "line": 253 7549 "line": 257
7143 }, 7550 },
7144 "file": "src/lib/Menu.js", 7551 "file": "src/lib/Menu.js",
7145 "id": "menu.workspaces.addNewWorkspace", 7552 "id": "menu.workspaces.addNewWorkspace",
7146 "start": { 7553 "start": {
7147 "column": 19, 7554 "column": 19,
7148 "line": 250 7555 "line": 254
7149 } 7556 }
7150 }, 7557 },
7151 { 7558 {
7152 "defaultMessage": "!!!Open workspace drawer", 7559 "defaultMessage": "!!!Open workspace drawer",
7153 "end": { 7560 "end": {
7154 "column": 3, 7561 "column": 3,
7155 "line": 257 7562 "line": 261
7156 }, 7563 },
7157 "file": "src/lib/Menu.js", 7564 "file": "src/lib/Menu.js",
7158 "id": "menu.workspaces.openWorkspaceDrawer", 7565 "id": "menu.workspaces.openWorkspaceDrawer",
7159 "start": { 7566 "start": {
7160 "column": 23, 7567 "column": 23,
7161 "line": 254 7568 "line": 258
7162 } 7569 }
7163 }, 7570 },
7164 { 7571 {
7165 "defaultMessage": "!!!Close workspace drawer", 7572 "defaultMessage": "!!!Close workspace drawer",
7166 "end": { 7573 "end": {
7167 "column": 3, 7574 "column": 3,
7168 "line": 261 7575 "line": 265
7169 }, 7576 },
7170 "file": "src/lib/Menu.js", 7577 "file": "src/lib/Menu.js",
7171 "id": "menu.workspaces.closeWorkspaceDrawer", 7578 "id": "menu.workspaces.closeWorkspaceDrawer",
7172 "start": { 7579 "start": {
7173 "column": 24, 7580 "column": 24,
7174 "line": 258 7581 "line": 262
7175 } 7582 }
7176 }, 7583 },
7177 { 7584 {
7178 "defaultMessage": "!!!Activate next service...", 7585 "defaultMessage": "!!!Activate next service...",
7179 "end": { 7586 "end": {
7180 "column": 3, 7587 "column": 3,
7181 "line": 265 7588 "line": 269
7182 }, 7589 },
7183 "file": "src/lib/Menu.js", 7590 "file": "src/lib/Menu.js",
7184 "id": "menu.services.setNextServiceActive", 7591 "id": "menu.services.setNextServiceActive",
7185 "start": { 7592 "start": {
7186 "column": 23, 7593 "column": 23,
7187 "line": 262 7594 "line": 266
7188 } 7595 }
7189 }, 7596 },
7190 { 7597 {
7191 "defaultMessage": "!!!Activate previous service...", 7598 "defaultMessage": "!!!Activate previous service...",
7192 "end": { 7599 "end": {
7193 "column": 3, 7600 "column": 3,
7194 "line": 269 7601 "line": 273
7195 }, 7602 },
7196 "file": "src/lib/Menu.js", 7603 "file": "src/lib/Menu.js",
7197 "id": "menu.services.activatePreviousService", 7604 "id": "menu.services.activatePreviousService",
7198 "start": { 7605 "start": {
7199 "column": 27, 7606 "column": 27,
7200 "line": 266 7607 "line": 270
7201 } 7608 }
7202 }, 7609 },
7203 { 7610 {
7204 "defaultMessage": "!!!Disable notifications & audio", 7611 "defaultMessage": "!!!Disable notifications & audio",
7205 "end": { 7612 "end": {
7206 "column": 3, 7613 "column": 3,
7207 "line": 273 7614 "line": 277
7208 }, 7615 },
7209 "file": "src/lib/Menu.js", 7616 "file": "src/lib/Menu.js",
7210 "id": "sidebar.muteApp", 7617 "id": "sidebar.muteApp",
7211 "start": { 7618 "start": {
7212 "column": 11, 7619 "column": 11,
7213 "line": 270 7620 "line": 274
7214 } 7621 }
7215 }, 7622 },
7216 { 7623 {
7217 "defaultMessage": "!!!Enable notifications & audio", 7624 "defaultMessage": "!!!Enable notifications & audio",
7218 "end": { 7625 "end": {
7219 "column": 3, 7626 "column": 3,
7220 "line": 277 7627 "line": 281
7221 }, 7628 },
7222 "file": "src/lib/Menu.js", 7629 "file": "src/lib/Menu.js",
7223 "id": "sidebar.unmuteApp", 7630 "id": "sidebar.unmuteApp",
7224 "start": { 7631 "start": {
7225 "column": 13, 7632 "column": 13,
7226 "line": 274 7633 "line": 278
7227 } 7634 }
7228 }, 7635 },
7229 { 7636 {
7230 "defaultMessage": "!!!Workspaces", 7637 "defaultMessage": "!!!Workspaces",
7231 "end": { 7638 "end": {
7232 "column": 3, 7639 "column": 3,
7233 "line": 281 7640 "line": 285
7234 }, 7641 },
7235 "file": "src/lib/Menu.js", 7642 "file": "src/lib/Menu.js",
7236 "id": "menu.workspaces", 7643 "id": "menu.workspaces",
7237 "start": { 7644 "start": {
7238 "column": 14, 7645 "column": 14,
7239 "line": 278 7646 "line": 282
7240 } 7647 }
7241 }, 7648 },
7242 { 7649 {
7243 "defaultMessage": "!!!Default", 7650 "defaultMessage": "!!!Default",
7244 "end": { 7651 "end": {
7245 "column": 3, 7652 "column": 3,
7246 "line": 285 7653 "line": 289
7247 }, 7654 },
7248 "file": "src/lib/Menu.js", 7655 "file": "src/lib/Menu.js",
7249 "id": "menu.workspaces.defaultWorkspace", 7656 "id": "menu.workspaces.defaultWorkspace",
7250 "start": { 7657 "start": {
7251 "column": 20, 7658 "column": 20,
7252 "line": 282 7659 "line": 286
7253 } 7660 }
7254 }, 7661 },
7255 { 7662 {
7256 "defaultMessage": "!!!Todos", 7663 "defaultMessage": "!!!Todos",
7257 "end": { 7664 "end": {
7258 "column": 3, 7665 "column": 3,
7259 "line": 289 7666 "line": 293
7260 }, 7667 },
7261 "file": "src/lib/Menu.js", 7668 "file": "src/lib/Menu.js",
7262 "id": "menu.todos", 7669 "id": "menu.todos",
7263 "start": { 7670 "start": {
7264 "column": 9, 7671 "column": 9,
7265 "line": 286 7672 "line": 290
7266 } 7673 }
7267 }, 7674 },
7268 { 7675 {
7269 "defaultMessage": "!!!Open Todos drawer", 7676 "defaultMessage": "!!!Open Todos drawer",
7270 "end": { 7677 "end": {
7271 "column": 3, 7678 "column": 3,
7272 "line": 293 7679 "line": 297
7273 }, 7680 },
7274 "file": "src/lib/Menu.js", 7681 "file": "src/lib/Menu.js",
7275 "id": "menu.Todoss.openTodosDrawer", 7682 "id": "menu.Todoss.openTodosDrawer",
7276 "start": { 7683 "start": {
7277 "column": 19, 7684 "column": 19,
7278 "line": 290 7685 "line": 294
7279 } 7686 }
7280 }, 7687 },
7281 { 7688 {
7282 "defaultMessage": "!!!Close Todos drawer", 7689 "defaultMessage": "!!!Close Todos drawer",
7283 "end": { 7690 "end": {
7284 "column": 3, 7691 "column": 3,
7285 "line": 297 7692 "line": 301
7286 }, 7693 },
7287 "file": "src/lib/Menu.js", 7694 "file": "src/lib/Menu.js",
7288 "id": "menu.Todoss.closeTodosDrawer", 7695 "id": "menu.Todoss.closeTodosDrawer",
7289 "start": { 7696 "start": {
7290 "column": 20, 7697 "column": 20,
7291 "line": 294 7698 "line": 298
7292 } 7699 }
7293 }, 7700 },
7294 { 7701 {
7295 "defaultMessage": "!!!Enable Todos", 7702 "defaultMessage": "!!!Enable Todos",
7296 "end": { 7703 "end": {
7297 "column": 3, 7704 "column": 3,
7298 "line": 301 7705 "line": 305
7299 }, 7706 },
7300 "file": "src/lib/Menu.js", 7707 "file": "src/lib/Menu.js",
7301 "id": "menu.todos.enableTodos", 7708 "id": "menu.todos.enableTodos",
7302 "start": { 7709 "start": {
7303 "column": 15, 7710 "column": 15,
7304 "line": 298 7711 "line": 302
7305 } 7712 }
7306 }, 7713 },
7307 { 7714 {
7308 "defaultMessage": "!!!Home", 7715 "defaultMessage": "!!!Home",
7309 "end": { 7716 "end": {
7310 "column": 3, 7717 "column": 3,
7311 "line": 305 7718 "line": 309
7312 }, 7719 },
7313 "file": "src/lib/Menu.js", 7720 "file": "src/lib/Menu.js",
7314 "id": "menu.services.goHome", 7721 "id": "menu.services.goHome",
7315 "start": { 7722 "start": {
7316 "column": 17, 7723 "column": 17,
7317 "line": 302 7724 "line": 306
7318 } 7725 }
7319 } 7726 }
7320 ], 7727 ],
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json
index 9223ee44f..a5d95e7f8 100644
--- a/src/i18n/locales/el.json
+++ b/src/i18n/locales/el.json
@@ -1,6 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "ΕπαναφόÏτωση", 2 "app.errorHandler.action": "ΕπαναφόÏτωση",
3 "app.errorHandler.headline": "Κάτι δεν λειτουÏγεί", 3 "app.errorHandler.headline": "Κάτι δεν λειτουÏγεί",
4 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Υποβολή",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Ανανέωση Ferdi", 157 "menu.view.reloadFranz": "Ανανέωση Ferdi",
155 "menu.view.reloadService": "Ανανέωση ΥπηÏεσίας", 158 "menu.view.reloadService": "Ανανέωση ΥπηÏεσίας",
156 "menu.view.resetZoom": "ΠÏαγματικό μέγεθος", 159 "menu.view.resetZoom": "ΠÏαγματικό μέγεθος",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Άνοιγμα ΕÏγαλειοθήκη ΠÏογÏαμματιστών", 161 "menu.view.toggleDevTools": "Άνοιγμα ΕÏγαλειοθήκη ΠÏογÏαμματιστών",
158 "menu.view.toggleFullScreen": "ΛειτουÏγία πλήÏους οθόνης", 162 "menu.view.toggleFullScreen": "ΛειτουÏγία πλήÏους οθόνης",
159 "menu.view.toggleServiceDevTools": "ΛειτουÏγεία ΥπηÏεσίασ ΕÏγαλειοθήκης ΠÏογÏαμματιστών", 163 "menu.view.toggleServiceDevTools": "ΛειτουÏγεία ΥπηÏεσίασ ΕÏγαλειοθήκης ΠÏογÏαμματιστών",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Το Ferdi χÏησιμοποιεί αυτήν τη στιγμή {size} χώÏου στο δίσκο.", 274 "settings.app.cacheInfo": "Το Ferdi χÏησιμοποιεί αυτήν τη στιγμή {size} χώÏου στο δίσκο.",
271 "settings.app.currentVersion": "ΤÏέχουσα έκδοση:", 275 "settings.app.currentVersion": "ΤÏέχουσα έκδοση:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Άνοιγμα στο παÏασκήνιο", 278 "settings.app.form.autoLaunchInBackground": "Άνοιγμα στο παÏασκήνιο",
275 "settings.app.form.autoLaunchOnStart": "Εκκίνηση του Ferdi κατά την εκκίνηση του συστήματος", 279 "settings.app.form.autoLaunchOnStart": "Εκκίνηση του Ferdi κατά την εκκίνηση του συστήματος",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "ΣυμπεÏιλάβετε εκδόσεις beta", 281 "settings.app.form.beta": "ΣυμπεÏιλάβετε εκδόσεις beta",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "ΕνεÏγοποιήση Ενίσχυσης GPU ", 284 "settings.app.form.enableGPUAcceleration": "ΕνεÏγοποιήση Ενίσχυσης GPU ",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Ελαχιστοποίηση του Ferdi στη γÏαμμή ειδοποιήσεων", 296 "settings.app.form.minimizeToSystemTray": "Ελαχιστοποίηση του Ferdi στη γÏαμμή ειδοποιήσεων",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "ΚÏατήστε το Ferdi στο παÏασκήνιο κατά το κλείσιμο του παÏαθÏÏου", 301 "settings.app.form.runInBackground": "ΚÏατήστε το Ferdi στο παÏασκήνιο κατά το κλείσιμο του παÏαθÏÏου",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "ΠÏοβολή καÏτελών των απενεÏγοποιημένων υπηÏεσιών", 307 "settings.app.form.showDisabledServices": "ΠÏοβολή καÏτελών των απενεÏγοποιημένων υπηÏεσιών",
303 "settings.app.form.showMessagesBadgesWhenMuted": "ΠÏοβολή του εικονιδίου μη αναγνωσμένου μηνÏματος όταν οι ειδοποιήσεις είναι απενεÏγοποιημένες", 308 "settings.app.form.showMessagesBadgesWhenMuted": "ΠÏοβολή του εικονιδίου μη αναγνωσμένου μηνÏματος όταν οι ειδοποιήσεις είναι απενεÏγοποιημένες",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Ρυθμίσεις", 313 "settings.app.headline": "Ρυθμίσεις",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Λανθάνουσα μνήμη", 329 "settings.app.subheadlineCache": "Λανθάνουσα μνήμη",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Βοηθήστε μας να μεταφÏάσουμε το Ferdi στη δική σας γλώσσα.", 331 "settings.app.translationHelp": "Βοηθήστε μας να μεταφÏάσουμε το Ferdi στη δική σας γλώσσα.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "ΥπάÏχει διαθέσιμη ενημέÏωση, γίνεται λήψη...", 333 "settings.app.updateStatusAvailable": "ΥπάÏχει διαθέσιμη ενημέÏωση, γίνεται λήψη...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "ΕνεÏγοποίηση ήχου", 370 "settings.service.form.enableAudio": "ΕνεÏγοποίηση ήχου",
368 "settings.service.form.enableBadge": "Εμφάνιση εικονιδίων μη αναγνωσμένου μηνÏματος", 371 "settings.service.form.enableBadge": "Εμφάνιση εικονιδίων μη αναγνωσμένου μηνÏματος",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "ΕνεÏγοποίηση ειδοποιήσεων", 377 "settings.service.form.enableNotification": "ΕνεÏγοποίηση ειδοποιήσεων",
371 "settings.service.form.enableService": "ΕνεÏγοποίηση υπηÏεσίας", 378 "settings.service.form.enableService": "ΕνεÏγοποίηση υπηÏεσίας",
372 "settings.service.form.headlineBadges": "Εικονίδια μη αναγνωσμένου μηνÏματος", 379 "settings.service.form.headlineBadges": "Εικονίδια μη αναγνωσμένου μηνÏματος",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Ομάδα", 423 "settings.team.headline": "Ομάδα",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 4c14c8f90..d1b01f884 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -1,6 +1,12 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
7 "connectionLostBanner.cta": "Reload Service",
8 "connectionLostBanner.informationLink": "What happened?",
9 "connectionLostBanner.message": "Oh no! Ferdi lost the connection to {name}.",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 10 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 11 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 12 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +160,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 160 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 161 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 162 "menu.view.resetZoom": "Actual Size",
163 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 164 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 165 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 166 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -179,6 +186,7 @@
179 "pricing.features.accountSync": "Account Synchronisation", 186 "pricing.features.accountSync": "Account Synchronisation",
180 "pricing.features.adFree": "Forever ad-free", 187 "pricing.features.adFree": "Forever ad-free",
181 "pricing.features.appDelays": "No Waiting Screens", 188 "pricing.features.appDelays": "No Waiting Screens",
189 "pricing.features.appDelaysEnabled": "Occasional Waiting Screens",
182 "pricing.features.customWebsites": "Add Custom Websites", 190 "pricing.features.customWebsites": "Add Custom Websites",
183 "pricing.features.desktopNotifications": "Desktop Notifications", 191 "pricing.features.desktopNotifications": "Desktop Notifications",
184 "pricing.features.onPremise": "On-premise & other Hosted Services", 192 "pricing.features.onPremise": "On-premise & other Hosted Services",
@@ -270,10 +278,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 278 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 279 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 280 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 281 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 282 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 283 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
284 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 285 "settings.app.form.beta": "Include beta versions",
286 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 287 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 288 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 289 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +299,7 @@
289 "settings.app.form.lockPassword": "Password", 299 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 300 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 301 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 302 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 303 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 304 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 305 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +307,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 307 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 308 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 309 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 310 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 311 "settings.app.form.showDisabledServices": "Display disabled services tabs",
312 "settings.app.form.showDragArea": "Show draggable area on window",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 313 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 314 "settings.app.form.startMinimized": "Start minimized",
305 "settings.app.form.todoServer": "Todo Server",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 315 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 316 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 317 "settings.app.headline": "Settings",
@@ -321,10 +330,8 @@
321 "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.", 330 "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.",
322 "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.", 331 "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.",
323 "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.", 332 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 333 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 334 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 335 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 336 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 337 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -363,6 +370,8 @@
363 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", 370 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account",
364 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", 371 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
365 "settings.service.form.deleteButton": "Delete service", 372 "settings.service.form.deleteButton": "Delete service",
373 "settings.service.form.disableHibernation": "Disable hibernation",
374 "settings.service.form.disableHibernationInfo": "You currently have hibernation enabled but you can disable hibernation for individual services using this option.",
366 "settings.service.form.editServiceHeadline": "Edit {name}", 375 "settings.service.form.editServiceHeadline": "Edit {name}",
367 "settings.service.form.enableAudio": "Enable audio", 376 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 377 "settings.service.form.enableBadge": "Show unread message badges",
@@ -411,11 +420,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 420 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 421 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 422 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 423 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 424 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 425 "settings.team.headline": "Team",
417 "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.", 426 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 427 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 428 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 429 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 430 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json
index 235e12146..544ad997d 100644
--- a/src/i18n/locales/en.json
+++ b/src/i18n/locales/en.json
@@ -116,6 +116,7 @@
116 "menu.view.reloadService": "Athlódáil seirbhís", 116 "menu.view.reloadService": "Athlódáil seirbhís",
117 "menu.view.resetZoom": "Fíormhéid", 117 "menu.view.resetZoom": "Fíormhéid",
118 "menu.view.toggleDevTools": "Scoránaigh uirlis forbróra", 118 "menu.view.toggleDevTools": "Scoránaigh uirlis forbróra",
119 "menu.view.toggleDarkMode": "Toggle Dark Mode",
119 "menu.view.toggleFullScreen": "Scoránaigh mód lánscáileáin", 120 "menu.view.toggleFullScreen": "Scoránaigh mód lánscáileáin",
120 "menu.view.toggleServiceDevTools": "Scoránaigh uirlis forbróra seirbhíse", 121 "menu.view.toggleServiceDevTools": "Scoránaigh uirlis forbróra seirbhíse",
121 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", 122 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools",
@@ -218,6 +219,7 @@
218 "settings.app.cacheInfo": "Tá taisce Ferdi ag baint úsáid as {size} den spás diosca.", 219 "settings.app.cacheInfo": "Tá taisce Ferdi ag baint úsáid as {size} den spás diosca.",
219 "settings.app.currentVersion": "Leagan reatha:", 220 "settings.app.currentVersion": "Leagan reatha:",
220 "settings.app.form.autoLaunchInBackground": "Oscail sa chúlra", 221 "settings.app.form.autoLaunchInBackground": "Oscail sa chúlra",
222 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
221 "settings.app.form.autoLaunchOnStart": "Láinseáil Ferdi ón tús", 223 "settings.app.form.autoLaunchOnStart": "Láinseáil Ferdi ón tús",
222 "settings.app.form.beta": "Cuir leagain béite san áireamh", 224 "settings.app.form.beta": "Cuir leagain béite san áireamh",
223 "settings.app.form.darkMode": "Join the Dark Side", 225 "settings.app.form.darkMode": "Join the Dark Side",
@@ -298,6 +300,10 @@
298 "settings.service.form.enableAudio": "Cumasaigh fuaim", 300 "settings.service.form.enableAudio": "Cumasaigh fuaim",
299 "settings.service.form.enableBadge": "Taispeáin comhartha do theachtaireachtaí neamhléite", 301 "settings.service.form.enableBadge": "Taispeáin comhartha do theachtaireachtaí neamhléite",
300 "settings.service.form.enableDarkMode": "Enable Dark Mode", 302 "settings.service.form.enableDarkMode": "Enable Dark Mode",
303 "settings.service.form.darkReaderBrightness": "Darkreader Brightness",
304 "settings.service.form.darkReaderContrast": "Darkreader Contrast",
305 "settings.service.form.darkReaderSepia": "Darkreader Sepia",
306 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
301 "settings.service.form.enableNotification": "Cumasaigh fógraí", 307 "settings.service.form.enableNotification": "Cumasaigh fógraí",
302 "settings.service.form.enableService": "Cumasaigh seirbhís", 308 "settings.service.form.enableService": "Cumasaigh seirbhís",
303 "settings.service.form.headlineBadges": "Comhartha do theachtaireachtaí neamhléite", 309 "settings.service.form.headlineBadges": "Comhartha do theachtaireachtaí neamhléite",
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 654b1300f..ba72a7a8e 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Cambiar servidor",
5 "changeserver.label": "Servidor",
6 "changeserver.submit": "Enviar",
4 "feature.announcements.changelog.headline": "Cambios en Ferdi {version}", 7 "feature.announcements.changelog.headline": "Cambios en Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Por favor compra una Licencia de Soporte de Ferdi para omitir la espera", 9 "feature.delayApp.headline": "Por favor compra una Licencia de Soporte de Ferdi para omitir la espera",
@@ -28,8 +31,8 @@
28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 31 "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.", 32 "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", 33 "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", 34 "feature.publishDebugInfo.privacy": "Política de Privacidad",
32 "feature.publishDebugInfo.publish": "Accept and publish", 35 "feature.publishDebugInfo.publish": "Aceptar y publicar",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 36 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Términos de servicio", 37 "feature.publishDebugInfo.terms": "Términos de servicio",
35 "feature.publishDebugInfo.title": "Publish debug information", 38 "feature.publishDebugInfo.title": "Publish debug information",
@@ -85,9 +88,9 @@
85 "locked.invalidCredentials": "Contraseña incorrecta", 88 "locked.invalidCredentials": "Contraseña incorrecta",
86 "locked.password.label": "Contraseña", 89 "locked.password.label": "Contraseña",
87 "locked.submit.label": "Desbloquear", 90 "locked.submit.label": "Desbloquear",
88 "locked.touchId": "Unlock with Touch ID", 91 "locked.touchId": "Desbloquear con Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID", 92 "locked.touchIdPrompt": "desbloquear con Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password", 93 "locked.unlockWithPassword": "Desbloquear con contraseña",
91 "login.changeServer": "Cambiar servidor", 94 "login.changeServer": "Cambiar servidor",
92 "login.customServerQuestion": "Using a custom Ferdi server?", 95 "login.customServerQuestion": "Using a custom Ferdi server?",
93 "login.customServerSuggestion": "Try importing your Franz account", 96 "login.customServerSuggestion": "Try importing your Franz account",
@@ -116,7 +119,7 @@
116 "menu.edit.cut": "Cortar", 119 "menu.edit.cut": "Cortar",
117 "menu.edit.delete": "Borrar", 120 "menu.edit.delete": "Borrar",
118 "menu.edit.emojiSymbols": "Emoji y Símbolos", 121 "menu.edit.emojiSymbols": "Emoji y Símbolos",
119 "menu.edit.findInPage": "Find in Page", 122 "menu.edit.findInPage": "Buscar en la página",
120 "menu.edit.paste": "Pegar", 123 "menu.edit.paste": "Pegar",
121 "menu.edit.pasteAndMatchStyle": "Pegar con el mismo estilo", 124 "menu.edit.pasteAndMatchStyle": "Pegar con el mismo estilo",
122 "menu.edit.redo": "Rehacer", 125 "menu.edit.redo": "Rehacer",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Recargar Ferdi", 157 "menu.view.reloadFranz": "Recargar Ferdi",
155 "menu.view.reloadService": "Recargar Servicio", 158 "menu.view.reloadService": "Recargar Servicio",
156 "menu.view.resetZoom": "Tamaño Actual", 159 "menu.view.resetZoom": "Tamaño Actual",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Activar las Herramientas para Desarrolladores", 161 "menu.view.toggleDevTools": "Activar las Herramientas para Desarrolladores",
158 "menu.view.toggleFullScreen": "Cambiar a Pantalla Completa", 162 "menu.view.toggleFullScreen": "Cambiar a Pantalla Completa",
159 "menu.view.toggleServiceDevTools": "Mostrar Herramientas de Servicios para Desarrolladores", 163 "menu.view.toggleServiceDevTools": "Mostrar Herramientas de Servicios para Desarrolladores",
@@ -270,11 +274,13 @@
270 "settings.app.cacheInfo": "El cache de Ferdi actualmente usa {size} de espacio en disco.", 274 "settings.app.cacheInfo": "El cache de Ferdi actualmente usa {size} de espacio en disco.",
271 "settings.app.currentVersion": "Versión actual:", 275 "settings.app.currentVersion": "Versión actual:",
272 "settings.app.form.accentColor": "Color de realce", 276 "settings.app.form.accentColor": "Color de realce",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Abrir en segundo plano", 278 "settings.app.form.autoLaunchInBackground": "Abrir en segundo plano",
275 "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi al iniciar", 279 "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi al iniciar",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Incluir versiones beta", 281 "settings.app.form.beta": "Incluir versiones beta",
277 "settings.app.form.darkMode": "Enable dark mode", 282 "settings.app.form.customTodoServer": "Custom Todo Server",
283 "settings.app.form.darkMode": "Activar tema oscuro",
278 "settings.app.form.enableGPUAcceleration": "Habilitar aceleración de GPU", 284 "settings.app.form.enableGPUAcceleration": "Habilitar aceleración de GPU",
279 "settings.app.form.enableLock": "Activar bloqueo por contraseña", 285 "settings.app.form.enableLock": "Activar bloqueo por contraseña",
280 "settings.app.form.enableSpellchecking": "Activar corrección ortográfica", 286 "settings.app.form.enableSpellchecking": "Activar corrección ortográfica",
@@ -283,26 +289,25 @@
283 "settings.app.form.hibernate": "Habilitar hibernación del servicio", 289 "settings.app.form.hibernate": "Habilitar hibernación del servicio",
284 "settings.app.form.hibernationStrategy": "Estrategia de hibernación", 290 "settings.app.form.hibernationStrategy": "Estrategia de hibernación",
285 "settings.app.form.iconSize": "Service icon size", 291 "settings.app.form.iconSize": "Service icon size",
286 "settings.app.form.inactivityLock": "Lock after inactivity", 292 "settings.app.form.inactivityLock": "Bloquear tras inactividad",
287 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Ãreas de trabajo cargadas", 293 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Ãreas de trabajo cargadas",
288 "settings.app.form.language": "Idioma", 294 "settings.app.form.language": "Idioma",
289 "settings.app.form.lockPassword": "Contraseña", 295 "settings.app.form.lockPassword": "Contraseña",
290 "settings.app.form.minimizeToSystemTray": "Minimizar Ferdi a la bandeja del sistema", 296 "settings.app.form.minimizeToSystemTray": "Minimizar Ferdi a la bandeja del sistema",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Desactivar actualizaciones", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "No mostrar contenido de mensajes en notificaciones", 299 "settings.app.form.privateNotifications": "No mostrar contenido de mensajes en notificaciones",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Mantener Ferdi en segundo plano al cerrar la ventana", 301 "settings.app.form.runInBackground": "Mantener Ferdi en segundo plano al cerrar la ventana",
296 "settings.app.form.scheduledDNDEnabled": "Activar programación \"No molestar\"", 302 "settings.app.form.scheduledDNDEnabled": "Activar programación \"No molestar\"",
297 "settings.app.form.scheduledDNDEnd": "A", 303 "settings.app.form.scheduledDNDEnd": "A",
298 "settings.app.form.scheduledDNDStart": "De", 304 "settings.app.form.scheduledDNDStart": "De",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Enviar datos de telemetría",
300 "settings.app.form.server": "Servidor",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Mostrar pestañas de servicios desactivados", 307 "settings.app.form.showDisabledServices": "Mostrar pestañas de servicios desactivados",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Servidor de tareas", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Activar modo oscuro universal", 311 "settings.app.form.universalDarkMode": "Activar modo oscuro universal",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Configuración", 313 "settings.app.headline": "Configuración",
@@ -321,10 +326,8 @@
321 "settings.app.scheduledDNDInfo": "El \"No molestar\" programado permite definir un período de tiempo en el que no recibir notificaciones de Ferdi.", 326 "settings.app.scheduledDNDInfo": "El \"No molestar\" programado permite definir un período de tiempo en el que no recibir notificaciones de Ferdi.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Caché", 329 "settings.app.subheadlineCache": "Caché",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Ayúdanos a traducir Ferdi a tu idioma.", 331 "settings.app.translationHelp": "Ayúdanos a traducir Ferdi a tu idioma.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Actualización disponible, descargando...", 333 "settings.app.updateStatusAvailable": "Actualización disponible, descargando...",
@@ -345,7 +348,7 @@
345 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 348 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes",
346 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 349 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes",
347 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 350 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:",
348 "settings.recipes.customService.openDevDocs": "Developer Documentation", 351 "settings.recipes.customService.openDevDocs": "Documentación para desarrolladores",
349 "settings.recipes.customService.openFolder": "Open folder", 352 "settings.recipes.customService.openFolder": "Open folder",
350 "settings.recipes.headline": "Servicios disponibles", 353 "settings.recipes.headline": "Servicios disponibles",
351 "settings.recipes.missingService": "¿Echas de menos algún servicio?", 354 "settings.recipes.missingService": "¿Echas de menos algún servicio?",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Habilitar audio", 370 "settings.service.form.enableAudio": "Habilitar audio",
368 "settings.service.form.enableBadge": "Mostrar señal de mensajes no leídos", 371 "settings.service.form.enableBadge": "Mostrar señal de mensajes no leídos",
369 "settings.service.form.enableDarkMode": "Habilitar modo oscuro", 372 "settings.service.form.enableDarkMode": "Habilitar modo oscuro",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Activar notificaciones", 377 "settings.service.form.enableNotification": "Activar notificaciones",
371 "settings.service.form.enableService": "Activar servicio", 378 "settings.service.form.enableService": "Activar servicio",
372 "settings.service.form.headlineBadges": "Insignias de mensaje no leídos", 379 "settings.service.form.headlineBadges": "Insignias de mensaje no leídos",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi para equipos", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Equipo", 423 "settings.team.headline": "Equipo",
417 "settings.team.intro": "¿Usted y su equipo usan a Ferdi? Ahora puede administrar las suscripciones Premium para tantos colegas, amigos o familiares como desee, todo desde una misma cuenta.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Gestione su equipo en getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Actualiza tu cuenta", 428 "settings.team.upgradeAction": "Actualiza tu cuenta",
diff --git a/src/i18n/locales/fi.json b/src/i18n/locales/fi.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/fi.json
+++ b/src/i18n/locales/fi.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index f8d945ec0..9cc26b990 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Changer de serveur",
5 "changeserver.label": "Serveur",
6 "changeserver.submit": "Soumettre",
4 "feature.announcements.changelog.headline": "Les nouveaux changements dans Ferdi {version}", 7 "feature.announcements.changelog.headline": "Les nouveaux changements dans Ferdi {version}",
5 "feature.debugger.title": "Publier les informations de débogage", 8 "feature.debugger.title": "Publier les informations de débogage",
6 "feature.delayApp.headline": "Achetez la licence Ferdi pour ne plus avoir de temps d'attente", 9 "feature.delayApp.headline": "Achetez la licence Ferdi pour ne plus avoir de temps d'attente",
@@ -116,7 +119,7 @@
116 "menu.edit.cut": "Couper", 119 "menu.edit.cut": "Couper",
117 "menu.edit.delete": "Supprimer", 120 "menu.edit.delete": "Supprimer",
118 "menu.edit.emojiSymbols": "Emoji & Symboles", 121 "menu.edit.emojiSymbols": "Emoji & Symboles",
119 "menu.edit.findInPage": "Find in Page", 122 "menu.edit.findInPage": "Rechercher dans la page",
120 "menu.edit.paste": "Coller", 123 "menu.edit.paste": "Coller",
121 "menu.edit.pasteAndMatchStyle": "Coller et fusionner le style", 124 "menu.edit.pasteAndMatchStyle": "Coller et fusionner le style",
122 "menu.edit.redo": "Rétablir", 125 "menu.edit.redo": "Rétablir",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Recharger Ferdi", 157 "menu.view.reloadFranz": "Recharger Ferdi",
155 "menu.view.reloadService": "Redémarrer le service", 158 "menu.view.reloadService": "Redémarrer le service",
156 "menu.view.resetZoom": "Taille actuelle", 159 "menu.view.resetZoom": "Taille actuelle",
160 "menu.view.toggleDarkMode": "Activer le mode sombre",
157 "menu.view.toggleDevTools": "Activer les outils de développeur", 161 "menu.view.toggleDevTools": "Activer les outils de développeur",
158 "menu.view.toggleFullScreen": "Activer le mode plein écran", 162 "menu.view.toggleFullScreen": "Activer le mode plein écran",
159 "menu.view.toggleServiceDevTools": "Activer les outils de développeur du service", 163 "menu.view.toggleServiceDevTools": "Activer les outils de développeur du service",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.", 274 "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.",
271 "settings.app.currentVersion": "Version actuelle :", 275 "settings.app.currentVersion": "Version actuelle :",
272 "settings.app.form.accentColor": "Couleur d'accentuation", 276 "settings.app.form.accentColor": "Couleur d'accentuation",
273 "settings.app.form.adaptableDarkMode": "Synchroniser le mode sombre avec les paramètres du mode sombre de mon Mac", 277 "settings.app.form.adaptableDarkMode": "Synchroniser le mode sombre avec l'option mode sombre du système",
274 "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan", 278 "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan",
275 "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage", 279 "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage",
280 "settings.app.form.automaticUpdates": "Activer les mises à jour",
276 "settings.app.form.beta": "Accepter les versions bêta", 281 "settings.app.form.beta": "Accepter les versions bêta",
282 "settings.app.form.customTodoServer": "Serveur Todo personnalisé",
277 "settings.app.form.darkMode": "Activer le mode sombre", 283 "settings.app.form.darkMode": "Activer le mode sombre",
278 "settings.app.form.enableGPUAcceleration": "Activer l'accélération GPU", 284 "settings.app.form.enableGPUAcceleration": "Activer l'accélération GPU",
279 "settings.app.form.enableLock": "Activer le verrouillage par mot de passe", 285 "settings.app.form.enableLock": "Activer le verrouillage par mot de passe",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Mot de passe", 295 "settings.app.form.lockPassword": "Mot de passe",
290 "settings.app.form.minimizeToSystemTray": "Minimiser Ferdi dans la zone de notification", 296 "settings.app.form.minimizeToSystemTray": "Minimiser Ferdi dans la zone de notification",
291 "settings.app.form.navigationBarBehaviour": "Comportement de la barre de navigation", 297 "settings.app.form.navigationBarBehaviour": "Comportement de la barre de navigation",
292 "settings.app.form.noUpdates": "Désactiver les mises à jours", 298 "settings.app.form.predefinedTodoServer": "Serveur Todo",
293 "settings.app.form.privateNotifications": "Ne pas afficher le contenu des notifications", 299 "settings.app.form.privateNotifications": "Ne pas afficher le contenu des notifications",
294 "settings.app.form.reloadAfterResume": "Recharger Ferdi après la reprise du système", 300 "settings.app.form.reloadAfterResume": "Recharger Ferdi après la reprise du système",
295 "settings.app.form.runInBackground": "Garder Ferdi ouvert en arrière-plan à la fermeture de la fenêtre", 301 "settings.app.form.runInBackground": "Garder Ferdi ouvert en arrière-plan à la fermeture de la fenêtre",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "À", 303 "settings.app.form.scheduledDNDEnd": "À",
298 "settings.app.form.scheduledDNDStart": "De", 304 "settings.app.form.scheduledDNDStart": "De",
299 "settings.app.form.sentry": "Envoyer des données de télémétrie", 305 "settings.app.form.sentry": "Envoyer des données de télémétrie",
300 "settings.app.form.server": "Serveur",
301 "settings.app.form.serviceRibbonWidth": "Largeur du menu", 306 "settings.app.form.serviceRibbonWidth": "Largeur du menu",
302 "settings.app.form.showDisabledServices": "Afficher les onglets des services désactivés", 307 "settings.app.form.showDisabledServices": "Afficher les onglets des services désactivés",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Afficher les badges de messages non lus quand les notifications sont désactivées", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Afficher les badges de messages non lus quand les notifications sont désactivées",
304 "settings.app.form.startMinimized": "Démarrer en mode réduit", 309 "settings.app.form.showDragArea": "Afficher les zones de glisser-déposer dans la fenêtre",
305 "settings.app.form.todoServer": "Serveur Todo", 310 "settings.app.form.startMinimized": "Démarrage minimisé",
306 "settings.app.form.universalDarkMode": "Activer le mode sombre universel", 311 "settings.app.form.universalDarkMode": "Activer le mode sombre universel",
307 "settings.app.form.useTouchIdToUnlock": "Autoriser l'utilisation de TouchID pour déverrouiller Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Autoriser l'utilisation de TouchID pour déverrouiller Ferdi",
308 "settings.app.headline": "Paramètres", 313 "settings.app.headline": "Paramètres",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "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.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "Ce serveur va être utilisé pour la fonction \"Ferdi Todo\". (défaut: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "Ce serveur sera utilisé pour la fonctionnalité \"Ferdi Todo\".",
328 "settings.app.translationHelp": "Aidez-nous à traduire Ferdi dans votre langue.", 331 "settings.app.translationHelp": "Aidez-nous à traduire Ferdi dans votre langue.",
329 "settings.app.universalDarkModeInfo": "Le mode sombre universel tente de générer dynamiquement des styles de mode sombre pour les services qui ne sont pas encore supportés.", 332 "settings.app.universalDarkModeInfo": "Le mode sombre universel tente de générer dynamiquement des styles de mode sombre pour les services qui ne sont pas encore supportés.",
330 "settings.app.updateStatusAvailable": "Mise à jour disponible, téléchargement en cours...", 333 "settings.app.updateStatusAvailable": "Mise à jour disponible, téléchargement en cours...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Activer l'audio", 370 "settings.service.form.enableAudio": "Activer l'audio",
368 "settings.service.form.enableBadge": "Afficher le badge des messages non lus", 371 "settings.service.form.enableBadge": "Afficher le badge des messages non lus",
369 "settings.service.form.enableDarkMode": "Activer le mode sombre", 372 "settings.service.form.enableDarkMode": "Activer le mode sombre",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Activer les notifications", 377 "settings.service.form.enableNotification": "Activer les notifications",
371 "settings.service.form.enableService": "Activer le service", 378 "settings.service.form.enableService": "Activer le service",
372 "settings.service.form.headlineBadges": "Badge des messages non lus", 379 "settings.service.form.headlineBadges": "Badge des messages non lus",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Supporter notre Open Collective", 418 "settings.supportFerdi.openCollective": "Supporter notre Open Collective",
412 "settings.supportFerdi.share": "Parlez en à vos Amis", 419 "settings.supportFerdi.share": "Parlez en à vos Amis",
413 "settings.supportFerdi.title": "Vous aimez Ferdi? Répandez l'amour!", 420 "settings.supportFerdi.title": "Vous aimez Ferdi? Répandez l'amour!",
414 "settings.team.contentHeadline": "Ferdi pour les équipes", 421 "settings.team.contentHeadline": "Gestion d'équipe Franz",
415 "settings.team.copy": "Ferdi pour Équipe t'offre la possibilité d'inviter des collègues dans ton équipe de travail en leur envoyant des invitations par courrier électronique et en gérant leurs abonnements dans les préférences de ton compte. Ne perds pas de temps à les gérer individuellement les factures multiples et les différents cycles de facturation - il suffit d'une seule équipe de travail pour gérer tout ça!", 422 "settings.team.copy": "La gestion d'équipe de Franz vous permet de gérer les abonnements Franz pour plusieurs utilisateurs. N’oubliez pas que le fait d’avoir un abonnement Franz Premium ne vous donnera aucun avantage dans l'utilisation de Ferdi : la seule raison pour laquelle vous avez encore accès à la gestion d’équipe est que vous pouvez gérer vos équipes Franz héritées et que vous ne perdez donc aucune fonctionnalité dans la gestion de votre compte.",
416 "settings.team.headline": "Équipe", 423 "settings.team.headline": "Équipe",
417 "settings.team.intro": "Vous et votre équipes utilise Ferdi? Tu peux désormais gérer les abonnements Premium pour autant de collègues, amis ou membres de famille que tu souhaites, à partir d'un seul et même compte.", 424 "settings.team.intro": "Vous utilisez actuellement les serveurs Franz, c'est pourquoi vous avez accès à la gestion d'équipe.",
418 "settings.team.manageAction": "Gère ton équipe sur getferdi.com", 425 "settings.team.manageAction": "Gérez votre équipe sur meetfranz.com",
419 "settings.team.teamsUnavailable": "Les équipes sont indisponibles", 426 "settings.team.teamsUnavailable": "Les équipes sont indisponibles",
420 "settings.team.teamsUnavailableInfo": "Les équipes sont actuellement disponibles uniquement lorsque vous utilisez le serveur de Franz et après avoir payé pour Franz Professionnel. Veuillez changer votre serveur à https://api.franzinfra.com pour utiliser des équipes.", 427 "settings.team.teamsUnavailableInfo": "Les équipes sont actuellement disponibles uniquement lorsque vous utilisez le serveur de Franz et après avoir payé pour Franz Professionnel. Veuillez changer votre serveur à https://api.franzinfra.com pour utiliser des équipes.",
421 "settings.team.upgradeAction": "Améliorez votre compte", 428 "settings.team.upgradeAction": "Améliorez votre compte",
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json
index f9b3a11b3..5da8219c0 100644
--- a/src/i18n/locales/ga.json
+++ b/src/i18n/locales/ga.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Cuir isteach",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Athlódáil Ferdi", 157 "menu.view.reloadFranz": "Athlódáil Ferdi",
155 "menu.view.reloadService": "Athlódáil seirbhís", 158 "menu.view.reloadService": "Athlódáil seirbhís",
156 "menu.view.resetZoom": "Fíormhéid", 159 "menu.view.resetZoom": "Fíormhéid",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Scoránaigh uirlis forbróra", 161 "menu.view.toggleDevTools": "Scoránaigh uirlis forbróra",
158 "menu.view.toggleFullScreen": "Scoránaigh mód lánscáileáin", 162 "menu.view.toggleFullScreen": "Scoránaigh mód lánscáileáin",
159 "menu.view.toggleServiceDevTools": "Scoránaigh uirlis forbróra seirbhíse", 163 "menu.view.toggleServiceDevTools": "Scoránaigh uirlis forbróra seirbhíse",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Tá taisce Ferdi ag baint úsáid as {size} den spás diosca.", 274 "settings.app.cacheInfo": "Tá taisce Ferdi ag baint úsáid as {size} den spás diosca.",
271 "settings.app.currentVersion": "Leagan reatha:", 275 "settings.app.currentVersion": "Leagan reatha:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Oscail sa chúlra", 278 "settings.app.form.autoLaunchInBackground": "Oscail sa chúlra",
275 "settings.app.form.autoLaunchOnStart": "Láinseáil Ferdi ón tús", 279 "settings.app.form.autoLaunchOnStart": "Láinseáil Ferdi ón tús",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Cuir leagain béite san áireamh", 281 "settings.app.form.beta": "Cuir leagain béite san áireamh",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Cumasaigh luasghéarú APG", 284 "settings.app.form.enableGPUAcceleration": "Cumasaigh luasghéarú APG",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Ãoslaghdaigh Ferdi chuig tráidire an chórais", 296 "settings.app.form.minimizeToSystemTray": "Ãoslaghdaigh Ferdi chuig tráidire an chórais",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Coimeád Ferdi sa chúlra nuair a dhúntar an fhuinneog", 301 "settings.app.form.runInBackground": "Coimeád Ferdi sa chúlra nuair a dhúntar an fhuinneog",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Taispeáin tabanna do sheirbhísí dhíchumasaithe", 307 "settings.app.form.showDisabledServices": "Taispeáin tabanna do sheirbhísí dhíchumasaithe",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Socruithe", 313 "settings.app.headline": "Socruithe",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Taisce", 329 "settings.app.subheadlineCache": "Taisce",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Cabhraigh linn Ferdi a aistriú i do theanga.", 331 "settings.app.translationHelp": "Cabhraigh linn Ferdi a aistriú i do theanga.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Nuashonrú le fáil, ag íoslódáil...", 333 "settings.app.updateStatusAvailable": "Nuashonrú le fáil, ag íoslódáil...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Cumasaigh fuaim", 370 "settings.service.form.enableAudio": "Cumasaigh fuaim",
368 "settings.service.form.enableBadge": "Taispeáin comhartha do theachtaireachtaí neamhléite", 371 "settings.service.form.enableBadge": "Taispeáin comhartha do theachtaireachtaí neamhléite",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Cumasaigh fógraí", 377 "settings.service.form.enableNotification": "Cumasaigh fógraí",
371 "settings.service.form.enableService": "Cumasaigh seirbhís", 378 "settings.service.form.enableService": "Cumasaigh seirbhís",
372 "settings.service.form.headlineBadges": "Comhartha do theachtaireachtaí neamhléite", 379 "settings.service.form.headlineBadges": "Comhartha do theachtaireachtaí neamhléite",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Foireann", 423 "settings.team.headline": "Foireann",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/he.json
+++ b/src/i18n/locales/he.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json
index 00f22fdaa..879328576 100644
--- a/src/i18n/locales/hr.json
+++ b/src/i18n/locales/hr.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Pošalji",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi predmemorija trenutno koristi {size} prostora na disku", 274 "settings.app.cacheInfo": "Ferdi predmemorija trenutno koristi {size} prostora na disku",
271 "settings.app.currentVersion": "Trenutna verzija:", 275 "settings.app.currentVersion": "Trenutna verzija:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Otvori u pozadini", 278 "settings.app.form.autoLaunchInBackground": "Otvori u pozadini",
275 "settings.app.form.autoLaunchOnStart": "Pokreni Ferdi sa sistemom", 279 "settings.app.form.autoLaunchOnStart": "Pokreni Ferdi sa sistemom",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Obuhvati i beta verzije", 281 "settings.app.form.beta": "Obuhvati i beta verzije",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku", 296 "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren", 301 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Prikaži ploÄe s onemogućenim servisima", 307 "settings.app.form.showDisabledServices": "Prikaži ploÄe s onemogućenim servisima",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Pokaži neproÄitane znaÄke poruka kad se obavjeÅ¡tenja onemoguće", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Pokaži neproÄitane znaÄke poruka kad se obavjeÅ¡tenja onemoguće",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Postavke", 313 "settings.app.headline": "Postavke",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Predmemorija", 329 "settings.app.subheadlineCache": "Predmemorija",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ", 331 "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Nadogradnja dostupna, preuzimanje...", 333 "settings.app.updateStatusAvailable": "Nadogradnja dostupna, preuzimanje...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Omogućite zvuk", 370 "settings.service.form.enableAudio": "Omogućite zvuk",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Omogućite obavijesti", 377 "settings.service.form.enableNotification": "Omogućite obavijesti",
371 "settings.service.form.enableService": "Omogućite usluge", 378 "settings.service.form.enableService": "Omogućite usluge",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Tim", 423 "settings.team.headline": "Tim",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json
index f640289db..cc699a6fb 100644
--- a/src/i18n/locales/hu.json
+++ b/src/i18n/locales/hu.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Küldés",
4 "feature.announcements.changelog.headline": "Ferdi {version} változásai", 7 "feature.announcements.changelog.headline": "Ferdi {version} változásai",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához", 9 "feature.delayApp.headline": "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Ferdi újrainditása", 157 "menu.view.reloadFranz": "Ferdi újrainditása",
155 "menu.view.reloadService": "Szolgáltatás újraindítása", 158 "menu.view.reloadService": "Szolgáltatás újraindítása",
156 "menu.view.resetZoom": "Tényleges méret", 159 "menu.view.resetZoom": "Tényleges méret",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Fejlesztői eszközök ki/bekapcsolása", 161 "menu.view.toggleDevTools": "Fejlesztői eszközök ki/bekapcsolása",
158 "menu.view.toggleFullScreen": "Teljes képernyős mód ki/bekapcsolása", 162 "menu.view.toggleFullScreen": "Teljes képernyős mód ki/bekapcsolása",
159 "menu.view.toggleServiceDevTools": "Szolgáltatás Fejlesztői Eszközök ki/bekapcsolása", 163 "menu.view.toggleServiceDevTools": "Szolgáltatás Fejlesztői Eszközök ki/bekapcsolása",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "A Ferdi gyorsítótár jelenleg {size} lemezterületet használ.", 274 "settings.app.cacheInfo": "A Ferdi gyorsítótár jelenleg {size} lemezterületet használ.",
271 "settings.app.currentVersion": "Aktuális verzió:", 275 "settings.app.currentVersion": "Aktuális verzió:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Megnyitás háttérben", 278 "settings.app.form.autoLaunchInBackground": "Megnyitás háttérben",
275 "settings.app.form.autoLaunchOnStart": "Ferdi betöltése indításkor", 279 "settings.app.form.autoLaunchOnStart": "Ferdi betöltése indításkor",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Béta verziók keresése", 281 "settings.app.form.beta": "Béta verziók keresése",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Hardveres gyorsítás engedélyezése", 284 "settings.app.form.enableGPUAcceleration": "Hardveres gyorsítás engedélyezése",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Ferdi kicsinyítése a tálcára", 296 "settings.app.form.minimizeToSystemTray": "Ferdi kicsinyítése a tálcára",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Ferdi fusson a háttérben az ablak bezárásakor", 301 "settings.app.form.runInBackground": "Ferdi fusson a háttérben az ablak bezárásakor",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Letiltott szolgáltatások megjelenítése", 307 "settings.app.form.showDisabledServices": "Letiltott szolgáltatások megjelenítése",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Beállítások", 313 "settings.app.headline": "Beállítások",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Gyorsítótár", 329 "settings.app.subheadlineCache": "Gyorsítótár",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Segíts nekünk a Ferdi-ot lefordítani a nyelvedre.", 331 "settings.app.translationHelp": "Segíts nekünk a Ferdi-ot lefordítani a nyelvedre.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Frissítés elérhető, letöltés folyamatban...", 333 "settings.app.updateStatusAvailable": "Frissítés elérhető, letöltés folyamatban...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Hang engedélyezése", 370 "settings.service.form.enableAudio": "Hang engedélyezése",
368 "settings.service.form.enableBadge": "Mutasd az olvasatlan jelzéseket", 371 "settings.service.form.enableBadge": "Mutasd az olvasatlan jelzéseket",
369 "settings.service.form.enableDarkMode": "Sötét mód engedélyezése", 372 "settings.service.form.enableDarkMode": "Sötét mód engedélyezése",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Értesítések engedélyezése", 377 "settings.service.form.enableNotification": "Értesítések engedélyezése",
371 "settings.service.form.enableService": "Szolgáltatás engedélyezése", 378 "settings.service.form.enableService": "Szolgáltatás engedélyezése",
372 "settings.service.form.headlineBadges": "Olvasatlan üzenet jelzések", 379 "settings.service.form.headlineBadges": "Olvasatlan üzenet jelzések",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "A Ferdi for Teams lehetőséget teremt arra, hogy meghívd munkatársaidat a csapatodba email-en keresztül, és kezelhesd a Ferdi előfizetéseiket és fiókbeállításaikat. Ne fecséreld az idődet minden egyes csapattag regisztrációjára, felejtsd el a sok-sok egyéni számlát és különböző lejárati időt - egy mindenek felett!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Csapat", 423 "settings.team.headline": "Csapat",
417 "settings.team.intro": "Te és a csapatod Ferdi-ot használtok? Egy fiókból kezelheted kollégáid, barátaid vagy családtagjaid Prémium előfizetéseit.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Csapat kezelése a getferdi.com-on", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Előfizetés", 428 "settings.team.upgradeAction": "Előfizetés",
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json
index a1ece26cc..47039a827 100644
--- a/src/i18n/locales/id.json
+++ b/src/i18n/locales/id.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Kirim",
4 "feature.announcements.changelog.headline": "Perubahan dalam Ferdi {version}", 7 "feature.announcements.changelog.headline": "Perubahan dalam Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Beli Lisensi Pendukung Ferdi agar tidak perlu menunggu", 9 "feature.delayApp.headline": "Beli Lisensi Pendukung Ferdi agar tidak perlu menunggu",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Muat Ulang Ferdi", 157 "menu.view.reloadFranz": "Muat Ulang Ferdi",
155 "menu.view.reloadService": "Muat ulang Layanan", 158 "menu.view.reloadService": "Muat ulang Layanan",
156 "menu.view.resetZoom": "Ukuran Sebenarnya", 159 "menu.view.resetZoom": "Ukuran Sebenarnya",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Aktif/Nonaktifkan alat pengembang", 161 "menu.view.toggleDevTools": "Aktif/Nonaktifkan alat pengembang",
158 "menu.view.toggleFullScreen": "Aktif/Nonaktifkan Layar Penuh", 162 "menu.view.toggleFullScreen": "Aktif/Nonaktifkan Layar Penuh",
159 "menu.view.toggleServiceDevTools": "Aktif/Nonaktifkan layanan alat pengembang", 163 "menu.view.toggleServiceDevTools": "Aktif/Nonaktifkan layanan alat pengembang",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Singgahan Ferdi sedang menggunakan ruang disk {size}.", 274 "settings.app.cacheInfo": "Singgahan Ferdi sedang menggunakan ruang disk {size}.",
271 "settings.app.currentVersion": "Versi saat ini:", 275 "settings.app.currentVersion": "Versi saat ini:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Buka di latar belakang", 278 "settings.app.form.autoLaunchInBackground": "Buka di latar belakang",
275 "settings.app.form.autoLaunchOnStart": "Jalankan Ferdi saat komputer dimulai", 279 "settings.app.form.autoLaunchOnStart": "Jalankan Ferdi saat komputer dimulai",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Sertakan versi beta", 281 "settings.app.form.beta": "Sertakan versi beta",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Aktifkan Akselerasi GPU", 284 "settings.app.form.enableGPUAcceleration": "Aktifkan Akselerasi GPU",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Perkecil Ferdi ke baki sistem", 296 "settings.app.form.minimizeToSystemTray": "Perkecil Ferdi ke baki sistem",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Tetap jalankan Ferdi di latar belakang saat menutup jendela", 301 "settings.app.form.runInBackground": "Tetap jalankan Ferdi di latar belakang saat menutup jendela",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Tampilkan tab layanan yang dinonaktifkan", 307 "settings.app.form.showDisabledServices": "Tampilkan tab layanan yang dinonaktifkan",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Pengaturan", 313 "settings.app.headline": "Pengaturan",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Singgahan", 329 "settings.app.subheadlineCache": "Singgahan",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Bantu kami menerjemahkan Ferdi ke bahasa Anda.", 331 "settings.app.translationHelp": "Bantu kami menerjemahkan Ferdi ke bahasa Anda.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Versi baru tersedia, mengunduh...", 333 "settings.app.updateStatusAvailable": "Versi baru tersedia, mengunduh...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Aktifkan audio", 370 "settings.service.form.enableAudio": "Aktifkan audio",
368 "settings.service.form.enableBadge": "Tampilkan lencana pesan belum dibaca", 371 "settings.service.form.enableBadge": "Tampilkan lencana pesan belum dibaca",
369 "settings.service.form.enableDarkMode": "Aktifkan Mode Gelap", 372 "settings.service.form.enableDarkMode": "Aktifkan Mode Gelap",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Aktifkan pemberitahuan", 377 "settings.service.form.enableNotification": "Aktifkan pemberitahuan",
371 "settings.service.form.enableService": "Aktifkan layanan", 378 "settings.service.form.enableService": "Aktifkan layanan",
372 "settings.service.form.headlineBadges": "Lencana pesan belum dibaca", 379 "settings.service.form.headlineBadges": "Lencana pesan belum dibaca",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi untuk Tim", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "Ferdi untuk Tim menyediakan opsi untuk mengundang rekan kerja ke tim Anda dengan mengirimkan undangan email dan mengelola langganan mereka pada preferensi akun Anda. Jangan habiskan waktu Anda menyiapkan langganan bagi masing-masing anggota tim, lupakan berbagai faktur dan periode penagihan - satu tim untuk semua!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Tim", 423 "settings.team.headline": "Tim",
417 "settings.team.intro": "Anda dan tim Anda menggunakan Ferdi? Kini Anda bisa mengelola langganan Premium untuk semua rekan kerja, teman, atau anggota keluar sebanyak yang Anda inginkan, semuanya cukup dari satu akun.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Kelola Tim Anda di getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Tingkatkan Akun Anda", 428 "settings.team.upgradeAction": "Tingkatkan Akun Anda",
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index e473de0cf..815f5bcb4 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Invia",
4 "feature.announcements.changelog.headline": "Modifiche in Ferdi {Version}", 7 "feature.announcements.changelog.headline": "Modifiche in Ferdi {Version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Per favore, compra una Licenza Supporter di Ferdi per saltare l'attesa", 9 "feature.delayApp.headline": "Per favore, compra una Licenza Supporter di Ferdi per saltare l'attesa",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Ricarica Ferdi", 157 "menu.view.reloadFranz": "Ricarica Ferdi",
155 "menu.view.reloadService": "Ricarica Servizio", 158 "menu.view.reloadService": "Ricarica Servizio",
156 "menu.view.resetZoom": "Dimensione Attuale", 159 "menu.view.resetZoom": "Dimensione Attuale",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Attiva/Disattiva Strumenti Sviluppo", 161 "menu.view.toggleDevTools": "Attiva/Disattiva Strumenti Sviluppo",
158 "menu.view.toggleFullScreen": "Attiva/Disattiva Schermo Intero", 162 "menu.view.toggleFullScreen": "Attiva/Disattiva Schermo Intero",
159 "menu.view.toggleServiceDevTools": "Attiva/Disattiva Strumenti per Sviluppatori di Servizi", 163 "menu.view.toggleServiceDevTools": "Attiva/Disattiva Strumenti per Sviluppatori di Servizi",
@@ -270,11 +274,13 @@
270 "settings.app.cacheInfo": "Ferdi sta utilizzando {size} di spazio su disco.", 274 "settings.app.cacheInfo": "Ferdi sta utilizzando {size} di spazio su disco.",
271 "settings.app.currentVersion": "Versione attuale:", 275 "settings.app.currentVersion": "Versione attuale:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Apri in background", 278 "settings.app.form.autoLaunchInBackground": "Apri in background",
275 "settings.app.form.autoLaunchOnStart": "Esegui Ferdi all'avvio", 279 "settings.app.form.autoLaunchOnStart": "Esegui Ferdi all'avvio",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Includi versioni beta", 281 "settings.app.form.beta": "Includi versioni beta",
277 "settings.app.form.darkMode": "Enable dark mode", 282 "settings.app.form.customTodoServer": "Custom Todo Server",
283 "settings.app.form.darkMode": "Attiva modalità scura",
278 "settings.app.form.enableGPUAcceleration": "Attiva Accelerazione GPU", 284 "settings.app.form.enableGPUAcceleration": "Attiva Accelerazione GPU",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
280 "settings.app.form.enableSpellchecking": "Attiva controllo ortografico", 286 "settings.app.form.enableSpellchecking": "Attiva controllo ortografico",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimizza Ferdi nell'area di notifica", 296 "settings.app.form.minimizeToSystemTray": "Minimizza Ferdi nell'area di notifica",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra", 301 "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Mostra schede servizi disattivati", 307 "settings.app.form.showDisabledServices": "Mostra schede servizi disattivati",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Impostazioni", 313 "settings.app.headline": "Impostazioni",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Aiutaci a tradurre Ferdi nella tua lingua.", 331 "settings.app.translationHelp": "Aiutaci a tradurre Ferdi nella tua lingua.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Aggiornamento disponibile, download in corso...", 333 "settings.app.updateStatusAvailable": "Aggiornamento disponibile, download in corso...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Attiva audio", 370 "settings.service.form.enableAudio": "Attiva audio",
368 "settings.service.form.enableBadge": "Mostra l'etichetta dei messaggi non letti", 371 "settings.service.form.enableBadge": "Mostra l'etichetta dei messaggi non letti",
369 "settings.service.form.enableDarkMode": "Attiva la modalità scura.", 372 "settings.service.form.enableDarkMode": "Attiva la modalità scura.",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Attiva le notifiche", 377 "settings.service.form.enableNotification": "Attiva le notifiche",
371 "settings.service.form.enableService": "Attiva il servizio", 378 "settings.service.form.enableService": "Attiva il servizio",
372 "settings.service.form.headlineBadges": "Etichetta dei messaggi non letti", 379 "settings.service.form.headlineBadges": "Etichetta dei messaggi non letti",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi per i Team", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "Ferdi per i Team ti dà la possibilità di invitare collaboratori al tuo team, invitandoli per email e gestendo la loro iscrizione all'interno delle preferenze del tuo account. Non perdere tempo impostando le iscrizioni di un singolo collaboratore individualmente, dimenticati di fatture multiple e cicli differenti di fatturazione - un team per comandarli tutti!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Gruppo", 423 "settings.team.headline": "Gruppo",
417 "settings.team.intro": "Tu e il tuo team usate Ferdi? Ora puoi gestire le sottoscrizioni Premium per tutti i colleghi, amici e famigliari che vuoi, tutto da un singolo account.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Gestisci il tuo Team su getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Aggiorna il tuo Account", 428 "settings.team.upgradeAction": "Aggiorna il tuo Account",
@@ -495,7 +502,7 @@
495 "webControls.back": "Back", 502 "webControls.back": "Back",
496 "webControls.forward": "Forward", 503 "webControls.forward": "Forward",
497 "webControls.goHome": "Home", 504 "webControls.goHome": "Home",
498 "webControls.openInBrowser": "Open in Browser", 505 "webControls.openInBrowser": "Apri nel Browser",
499 "webControls.reload": "Ricarica", 506 "webControls.reload": "Ricarica",
500 "welcome.loginButton": "Accedi al tuo account", 507 "welcome.loginButton": "Accedi al tuo account",
501 "welcome.signupButton": "Crea un account gratuito", 508 "welcome.signupButton": "Crea un account gratuito",
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index 0acb0153c..b7a7bbc7b 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -1,6 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "å†èª­ã¿è¾¼ã¿", 2 "app.errorHandler.action": "å†èª­ã¿è¾¼ã¿",
3 "app.errorHandler.headline": "é–“é•ãˆã¦ã„る部分ãŒã‚ã‚Šã¾ã™", 3 "app.errorHandler.headline": "é–“é•ãˆã¦ã„る部分ãŒã‚ã‚Šã¾ã™",
4 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "é€ä¿¡",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Ferdiã‚’ã™ãã«èµ·å‹•ã™ã‚‹ã«ã¯ã€Ferdi サãƒãƒ¼ã‚¿ãƒ¼ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’購入ã—ã¦ãã ã•ã„。", 9 "feature.delayApp.headline": "Ferdiã‚’ã™ãã«èµ·å‹•ã™ã‚‹ã«ã¯ã€Ferdi サãƒãƒ¼ã‚¿ãƒ¼ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’購入ã—ã¦ãã ã•ã„。",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "å†èµ·å‹•", 157 "menu.view.reloadFranz": "å†èµ·å‹•",
155 "menu.view.reloadService": "サービスをリロードã™ã‚‹", 158 "menu.view.reloadService": "サービスをリロードã™ã‚‹",
156 "menu.view.resetZoom": "å…ƒã®ã‚µã‚¤ã‚º", 159 "menu.view.resetZoom": "å…ƒã®ã‚µã‚¤ã‚º",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "開発者ツールを切り替ãˆ", 161 "menu.view.toggleDevTools": "開発者ツールを切り替ãˆ",
158 "menu.view.toggleFullScreen": "全画é¢è¡¨ç¤ºã®åˆ‡ã‚Šæ›¿ãˆ", 162 "menu.view.toggleFullScreen": "全画é¢è¡¨ç¤ºã®åˆ‡ã‚Šæ›¿ãˆ",
159 "menu.view.toggleServiceDevTools": "サービス開発者ツールを切り替ãˆ", 163 "menu.view.toggleServiceDevTools": "サービス開発者ツールを切り替ãˆ",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "ç¾åœ¨ã€Ferdiã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã¯ãƒ‡ã‚£ã‚¹ã‚¯ã®{size}分を使用ã—ã¦ã„ã¾ã™ã€‚", 274 "settings.app.cacheInfo": "ç¾åœ¨ã€Ferdiã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã¯ãƒ‡ã‚£ã‚¹ã‚¯ã®{size}分を使用ã—ã¦ã„ã¾ã™ã€‚",
271 "settings.app.currentVersion": "ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³:", 275 "settings.app.currentVersion": "ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹ã", 278 "settings.app.form.autoLaunchInBackground": "ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹ã",
275 "settings.app.form.autoLaunchOnStart": "システム起動時ã«Ferdiã‚’é–‹ã", 279 "settings.app.form.autoLaunchOnStart": "システム起動時ã«Ferdiã‚’é–‹ã",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Betaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å«ã‚ã‚‹", 281 "settings.app.form.beta": "Betaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å«ã‚ã‚‹",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "GPUアクセラレーションを有効ã«ã™ã‚‹", 284 "settings.app.form.enableGPUAcceleration": "GPUアクセラレーションを有効ã«ã™ã‚‹",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Ferdiをシステムトレイã«æœ€å°åŒ–ã™ã‚‹", 296 "settings.app.form.minimizeToSystemTray": "Ferdiをシステムトレイã«æœ€å°åŒ–ã™ã‚‹",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "ウインドウを閉ã˜ãŸéš›ã«Ferdiã‚’ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§å®Ÿè¡Œã•ã›ã¦ãŠã", 301 "settings.app.form.runInBackground": "ウインドウを閉ã˜ãŸéš›ã«Ferdiã‚’ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§å®Ÿè¡Œã•ã›ã¦ãŠã",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "無効化ã•ã‚ŒãŸã‚µãƒ¼ãƒ“スã®ã‚¿ãƒ–を表示ã™ã‚‹", 307 "settings.app.form.showDisabledServices": "無効化ã•ã‚ŒãŸã‚µãƒ¼ãƒ“スã®ã‚¿ãƒ–を表示ã™ã‚‹",
303 "settings.app.form.showMessagesBadgesWhenMuted": "通知ã®ç„¡åŠ¹æ™‚ã«æœªèª­ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ä»¶æ•°ã‚’表示ã™ã‚‹", 308 "settings.app.form.showMessagesBadgesWhenMuted": "通知ã®ç„¡åŠ¹æ™‚ã«æœªèª­ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ä»¶æ•°ã‚’表示ã™ã‚‹",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "設定", 313 "settings.app.headline": "設定",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "キャッシュ", 329 "settings.app.subheadlineCache": "キャッシュ",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Ferdiã®ç¿»è¨³ä½œæ¥­ã«ã”å”力をãŠé¡˜ã„ã—ã¾ã™ã€‚", 331 "settings.app.translationHelp": "Ferdiã®ç¿»è¨³ä½œæ¥­ã«ã”å”力をãŠé¡˜ã„ã—ã¾ã™ã€‚",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "æ›´æ–°ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚ダウンロードã—ã¦ã„ã¾ã™...", 333 "settings.app.updateStatusAvailable": "æ›´æ–°ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚ダウンロードã—ã¦ã„ã¾ã™...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "オーディオを有効ã«ã™ã‚‹", 370 "settings.service.form.enableAudio": "オーディオを有効ã«ã™ã‚‹",
368 "settings.service.form.enableBadge": "未読件数ã®é€šçŸ¥ãƒãƒƒã‚¸ã‚’表示ã™ã‚‹", 371 "settings.service.form.enableBadge": "未読件数ã®é€šçŸ¥ãƒãƒƒã‚¸ã‚’表示ã™ã‚‹",
369 "settings.service.form.enableDarkMode": "ダークモードを有効ã«ã™ã‚‹", 372 "settings.service.form.enableDarkMode": "ダークモードを有効ã«ã™ã‚‹",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "通知を有効ã«ã™ã‚‹", 377 "settings.service.form.enableNotification": "通知を有効ã«ã™ã‚‹",
371 "settings.service.form.enableService": "サービスを有効ã«ã™ã‚‹", 378 "settings.service.form.enableService": "サービスを有効ã«ã™ã‚‹",
372 "settings.service.form.headlineBadges": "未読件数ã®é€šçŸ¥ãƒãƒƒã‚¸", 379 "settings.service.form.headlineBadges": "未読件数ã®é€šçŸ¥ãƒãƒƒã‚¸",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "ãƒãƒ¼ãƒ ", 423 "settings.team.headline": "ãƒãƒ¼ãƒ ",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json
index 57479beba..2161bbc97 100644
--- a/src/i18n/locales/ka.json
+++ b/src/i18n/locales/ka.json
@@ -1,6 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ", 2 "app.errorHandler.action": "ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Something went wrong",
4 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "დáƒáƒ“áƒáƒ¡áƒ¢áƒ£áƒ áƒ”ბáƒ",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "áƒáƒ›áƒŸáƒáƒ›áƒ˜áƒœáƒ“ელი ვერსიáƒ:", 275 "settings.app.currentVersion": "áƒáƒ›áƒŸáƒáƒ›áƒ˜áƒœáƒ“ელი ვერსიáƒ:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "გáƒáƒ®áƒ¡áƒ”ნით ფáƒáƒœáƒ–ე", 278 "settings.app.form.autoLaunchInBackground": "გáƒáƒ®áƒ¡áƒ”ნით ფáƒáƒœáƒ–ე",
275 "settings.app.form.autoLaunchOnStart": "გáƒáƒ”შვáƒáƒ¡ Ferdi სისტემის ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვისáƒáƒ¡", 279 "settings.app.form.autoLaunchOnStart": "გáƒáƒ”შვáƒáƒ¡ Ferdi სისტემის ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვისáƒáƒ¡",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "ჩáƒáƒ áƒ—ეთ ბეტრვერსიები", 281 "settings.app.form.beta": "ჩáƒáƒ áƒ—ეთ ბეტრვერსიები",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "ჩáƒáƒ™áƒ”ცეთ Ferdi სისტემის უჯრáƒáƒ¨áƒ˜", 296 "settings.app.form.minimizeToSystemTray": "ჩáƒáƒ™áƒ”ცეთ Ferdi სისტემის უჯრáƒáƒ¨áƒ˜",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "დáƒáƒ¢áƒáƒ•áƒ”თ Ferdi გáƒáƒ¨áƒ•áƒ”ბული რáƒáƒ“ესáƒáƒª ფáƒáƒœáƒ¯áƒáƒ áƒ დáƒáƒ˜áƒ®áƒ£áƒ áƒ”ბáƒ", 301 "settings.app.form.runInBackground": "დáƒáƒ¢áƒáƒ•áƒ”თ Ferdi გáƒáƒ¨áƒ•áƒ”ბული რáƒáƒ“ესáƒáƒª ფáƒáƒœáƒ¯áƒáƒ áƒ დáƒáƒ˜áƒ®áƒ£áƒ áƒ”ბáƒ",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "პáƒáƒ áƒáƒ›áƒ”ტრები", 313 "settings.app.headline": "პáƒáƒ áƒáƒ›áƒ”ტრები",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "გáƒáƒœáƒáƒ®áƒšáƒ”ბრხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜áƒ, იწყებრგáƒáƒ“მáƒáƒ¬áƒ”რáƒ...", 333 "settings.app.updateStatusAvailable": "გáƒáƒœáƒáƒ®áƒšáƒ”ბრხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜áƒ, იწყებრგáƒáƒ“მáƒáƒ¬áƒ”რáƒ...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "შეტყáƒáƒ‘ინებების ჩáƒáƒ áƒ—ვáƒ", 377 "settings.service.form.enableNotification": "შეტყáƒáƒ‘ინებების ჩáƒáƒ áƒ—ვáƒ",
371 "settings.service.form.enableService": "სერვისის ჩáƒáƒ áƒ—ვáƒ", 378 "settings.service.form.enableService": "სერვისის ჩáƒáƒ áƒ—ვáƒ",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "გუნდი", 423 "settings.team.headline": "გუნდი",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json
index 7c293513b..fb02761b6 100644
--- a/src/i18n/locales/ko.json
+++ b/src/i18n/locales/ko.json
@@ -1,6 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "새로고침", 2 "app.errorHandler.action": "새로고침",
3 "app.errorHandler.headline": "문제가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.", 3 "app.errorHandler.headline": "문제가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.",
4 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Ferdi {version} 변경ì ", 7 "feature.announcements.changelog.headline": "Ferdi {version} 변경ì ",
5 "feature.debugger.title": "디버깅 정보 공개", 8 "feature.debugger.title": "디버깅 정보 공개",
6 "feature.delayApp.headline": "Ferdi Supporter License를 구매하여 ëŒ€ê¸°ì‹œê°„ì„ ìŠ¤í‚µí•˜ì„¸ìš”.", 9 "feature.delayApp.headline": "Ferdi Supporter License를 구매하여 ëŒ€ê¸°ì‹œê°„ì„ ìŠ¤í‚µí•˜ì„¸ìš”.",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index bacf7b6ec..46619f3e0 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Verzenden",
4 "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {versie}", 7 "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {versie}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Neem een Ferdi Supporter Licentie om niet meer te hoeven wachten", 9 "feature.delayApp.headline": "Neem een Ferdi Supporter Licentie om niet meer te hoeven wachten",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Ferdi Herladen", 157 "menu.view.reloadFranz": "Ferdi Herladen",
155 "menu.view.reloadService": "Service Herladen", 158 "menu.view.reloadService": "Service Herladen",
156 "menu.view.resetZoom": "Werkelijke Grootte", 159 "menu.view.resetZoom": "Werkelijke Grootte",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Ontwikkelaarstools Aan/Uit", 161 "menu.view.toggleDevTools": "Ontwikkelaarstools Aan/Uit",
158 "menu.view.toggleFullScreen": "Volledig Scherm Aan/Uit", 162 "menu.view.toggleFullScreen": "Volledig Scherm Aan/Uit",
159 "menu.view.toggleServiceDevTools": "Service Ontwikkelaarstools Aan/Uit", 163 "menu.view.toggleServiceDevTools": "Service Ontwikkelaarstools Aan/Uit",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache gebruikt momenteel {size} schijfruimte.", 274 "settings.app.cacheInfo": "Ferdi cache gebruikt momenteel {size} schijfruimte.",
271 "settings.app.currentVersion": "Huidige versie:", 275 "settings.app.currentVersion": "Huidige versie:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open op de achtergrond", 278 "settings.app.form.autoLaunchInBackground": "Open op de achtergrond",
275 "settings.app.form.autoLaunchOnStart": "Lanceer Ferdi bij opstarten", 279 "settings.app.form.autoLaunchOnStart": "Lanceer Ferdi bij opstarten",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Inclusief beta versies", 281 "settings.app.form.beta": "Inclusief beta versies",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "GPU Acceleratie Activeren", 284 "settings.app.form.enableGPUAcceleration": "GPU Acceleratie Activeren",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar de systeembalk", 296 "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar de systeembalk",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Houd Ferdi op de achtergrond wanneer het venster gesloten wordt", 301 "settings.app.form.runInBackground": "Houd Ferdi op de achtergrond wanneer het venster gesloten wordt",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Toon uitgeschakelde services", 307 "settings.app.form.showDisabledServices": "Toon uitgeschakelde services",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Instellingen", 313 "settings.app.headline": "Instellingen",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help ons om Ferdi te vertalen naar uw taal.", 331 "settings.app.translationHelp": "Help ons om Ferdi te vertalen naar uw taal.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update beschikbaar, downloaden...", 333 "settings.app.updateStatusAvailable": "Update beschikbaar, downloaden...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Audio inschakelen", 370 "settings.service.form.enableAudio": "Audio inschakelen",
368 "settings.service.form.enableBadge": "Toon badges met ongelezen berichten", 371 "settings.service.form.enableBadge": "Toon badges met ongelezen berichten",
369 "settings.service.form.enableDarkMode": "Dark Mode aanzetten", 372 "settings.service.form.enableDarkMode": "Dark Mode aanzetten",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Notificaties aanzetten", 377 "settings.service.form.enableNotification": "Notificaties aanzetten",
371 "settings.service.form.enableService": "Service aanzetten", 378 "settings.service.form.enableService": "Service aanzetten",
372 "settings.service.form.headlineBadges": "Ongelezen berichten badges", 379 "settings.service.form.headlineBadges": "Ongelezen berichten badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Frans voor Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "Ferdi voor Teams geeft je de mogelijkheid om collega's uit te nodigen voor je team door hen een e-mail te sturen en hun inschrijvingen te beheren in je accountvoorkeuren. Verspil geen tijd met het instellen van inschrijvingen voor elk teamlid apart, vergeet meerdere facturen en verschillende afrekeningsperiodes - één team regeert alles!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "settings.team.intro": "Gebruiken jij en je team Ferdi? Je kunt nu Premium inschrijvingen beheren voor zoveel collega's, vrienden, of familieleden als je wilt, allemaal vanaf één account.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Beheer je Team op getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade je Account", 428 "settings.team.upgradeAction": "Upgrade je Account",
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index 58cf063f0..3995f56f8 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Server wijzigen",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Verzenden",
4 "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Sponsor Ferdi om wachten over te slaan", 9 "feature.delayApp.headline": "Sponsor Ferdi om wachten over te slaan",
@@ -28,13 +31,13 @@
28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 31 "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.", 32 "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", 33 "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", 34 "feature.publishDebugInfo.privacy": "Privacybeleid",
32 "feature.publishDebugInfo.publish": "Accept and publish", 35 "feature.publishDebugInfo.publish": "Accepteren en publiceren",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 36 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Gebruiksvoorwaarden", 37 "feature.publishDebugInfo.terms": "Gebruiksvoorwaarden",
35 "feature.publishDebugInfo.title": "Publish debug information", 38 "feature.publishDebugInfo.title": "Publish debug information",
36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 39 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
37 "feature.quickSwitch.search": "Search...", 40 "feature.quickSwitch.search": "Zoeken...",
38 "feature.quickSwitch.title": "QuickSwitch", 41 "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.", 42 "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": "Verstuur als e-mail", 43 "feature.shareFranz.action.email": "Verstuur als e-mail",
@@ -87,8 +90,8 @@
87 "locked.submit.label": "Ontgrendelen", 90 "locked.submit.label": "Ontgrendelen",
88 "locked.touchId": "Unlock with Touch ID", 91 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID", 92 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password", 93 "locked.unlockWithPassword": "Ontgrendelen met wachtwoord",
91 "login.changeServer": "Change server", 94 "login.changeServer": "Server wijzigen",
92 "login.customServerQuestion": "Using a custom Ferdi server?", 95 "login.customServerQuestion": "Using a custom Ferdi server?",
93 "login.customServerSuggestion": "Try importing your Franz account", 96 "login.customServerSuggestion": "Try importing your Franz account",
94 "login.email.label": "E-mailadres", 97 "login.email.label": "E-mailadres",
@@ -104,7 +107,7 @@
104 "menu.Todoss.openTodosDrawer": "Open Todos drawer", 107 "menu.Todoss.openTodosDrawer": "Open Todos drawer",
105 "menu.app.about": "Over Ferdi", 108 "menu.app.about": "Over Ferdi",
106 "menu.app.announcement": "Wat is nieuw?", 109 "menu.app.announcement": "Wat is nieuw?",
107 "menu.app.autohideMenuBar": "Auto-hide menu bar", 110 "menu.app.autohideMenuBar": "Menubalk automatisch verbergen",
108 "menu.app.checkForUpdates": "Controleer op updates", 111 "menu.app.checkForUpdates": "Controleer op updates",
109 "menu.app.hide": "Verbergen", 112 "menu.app.hide": "Verbergen",
110 "menu.app.hideOthers": "Andere verbergen", 113 "menu.app.hideOthers": "Andere verbergen",
@@ -116,7 +119,7 @@
116 "menu.edit.cut": "Knippen", 119 "menu.edit.cut": "Knippen",
117 "menu.edit.delete": "Verwijderen", 120 "menu.edit.delete": "Verwijderen",
118 "menu.edit.emojiSymbols": "Emoji's en symbolen", 121 "menu.edit.emojiSymbols": "Emoji's en symbolen",
119 "menu.edit.findInPage": "Find in Page", 122 "menu.edit.findInPage": "Zoeken op pagina",
120 "menu.edit.paste": "Plakken", 123 "menu.edit.paste": "Plakken",
121 "menu.edit.pasteAndMatchStyle": "Plakken en stijl overeen laten komen", 124 "menu.edit.pasteAndMatchStyle": "Plakken en stijl overeen laten komen",
122 "menu.edit.redo": "Opnieuw doen", 125 "menu.edit.redo": "Opnieuw doen",
@@ -145,7 +148,7 @@
145 "menu.todos": "Todos", 148 "menu.todos": "Todos",
146 "menu.todos.enableTodos": "Enable Todos", 149 "menu.todos.enableTodos": "Enable Todos",
147 "menu.view": "Weergave", 150 "menu.view": "Weergave",
148 "menu.view.back": "Back", 151 "menu.view.back": "Terug",
149 "menu.view.enterFullScreen": "Gebruik volledig scherm", 152 "menu.view.enterFullScreen": "Gebruik volledig scherm",
150 "menu.view.exitFullScreen": "Volledig scherm verlaten", 153 "menu.view.exitFullScreen": "Volledig scherm verlaten",
151 "menu.view.forward": "Forward", 154 "menu.view.forward": "Forward",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Herlaad Ferdi", 157 "menu.view.reloadFranz": "Herlaad Ferdi",
155 "menu.view.reloadService": "Een service opnieuw laden", 158 "menu.view.reloadService": "Een service opnieuw laden",
156 "menu.view.resetZoom": "Werkelijke grootte", 159 "menu.view.resetZoom": "Werkelijke grootte",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Ontwikkelaarstools aan/uit", 161 "menu.view.toggleDevTools": "Ontwikkelaarstools aan/uit",
158 "menu.view.toggleFullScreen": "Volledig scherm aan/uit", 162 "menu.view.toggleFullScreen": "Volledig scherm aan/uit",
159 "menu.view.toggleServiceDevTools": "Service ontwikkelaarstools aan/uit", 163 "menu.view.toggleServiceDevTools": "Service ontwikkelaarstools aan/uit",
@@ -177,7 +181,7 @@
177 "password.successInfo": "Controleer je e-mail", 181 "password.successInfo": "Controleer je e-mail",
178 "premiumFeature.button.upgradeAccount": "Upgrade Account", 182 "premiumFeature.button.upgradeAccount": "Upgrade Account",
179 "pricing.features.accountSync": "Account Synchronisation", 183 "pricing.features.accountSync": "Account Synchronisation",
180 "pricing.features.adFree": "Forever ad-free", 184 "pricing.features.adFree": "Voor altijd reclamevrij",
181 "pricing.features.appDelays": "No Waiting Screens", 185 "pricing.features.appDelays": "No Waiting Screens",
182 "pricing.features.customWebsites": "Add Custom Websites", 186 "pricing.features.customWebsites": "Add Custom Websites",
183 "pricing.features.desktopNotifications": "Desktop Notifications", 187 "pricing.features.desktopNotifications": "Desktop Notifications",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi gebruikt op dit moment {size} schijfruimte aan tijdelijke bestanden.", 274 "settings.app.cacheInfo": "Ferdi gebruikt op dit moment {size} schijfruimte aan tijdelijke bestanden.",
271 "settings.app.currentVersion": "Huidige versie:", 275 "settings.app.currentVersion": "Huidige versie:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open op de achtergrond", 278 "settings.app.form.autoLaunchInBackground": "Open op de achtergrond",
275 "settings.app.form.autoLaunchOnStart": "Open Ferdi bij opstarten", 279 "settings.app.form.autoLaunchOnStart": "Open Ferdi bij opstarten",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Inclusief bètaversies", 281 "settings.app.form.beta": "Inclusief bètaversies",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Schakel videokaart-acceleratie in ", 284 "settings.app.form.enableGPUAcceleration": "Schakel videokaart-acceleratie in ",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Wachtwoord", 295 "settings.app.form.lockPassword": "Wachtwoord",
290 "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar systeemvak", 296 "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar systeemvak",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Toon geen bericht-inhoud in meldingen", 299 "settings.app.form.privateNotifications": "Toon geen bericht-inhoud in meldingen",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Houd Ferdi open op de achtergrond wanneer het venster gesloten wordt", 301 "settings.app.form.runInBackground": "Houd Ferdi open op de achtergrond wanneer het venster gesloten wordt",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Toon uitgeschakelde services", 307 "settings.app.form.showDisabledServices": "Toon uitgeschakelde services",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Instellingen", 313 "settings.app.headline": "Instellingen",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help ons om Ferdi uw taal te laten spreken.", 331 "settings.app.translationHelp": "Help ons om Ferdi uw taal te laten spreken.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update beschikbaar, downloaden...", 333 "settings.app.updateStatusAvailable": "Update beschikbaar, downloaden...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Audio inschakelen", 370 "settings.service.form.enableAudio": "Audio inschakelen",
368 "settings.service.form.enableBadge": "Toon badges met ongelezen berichten", 371 "settings.service.form.enableBadge": "Toon badges met ongelezen berichten",
369 "settings.service.form.enableDarkMode": "Dark mode aanzetten", 372 "settings.service.form.enableDarkMode": "Dark mode aanzetten",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Meldingen inschakelen", 377 "settings.service.form.enableNotification": "Meldingen inschakelen",
371 "settings.service.form.enableService": "Service inschakelen", 378 "settings.service.form.enableService": "Service inschakelen",
372 "settings.service.form.headlineBadges": "Ongelezen berichten badges", 379 "settings.service.form.headlineBadges": "Ongelezen berichten badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi voor Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "Ferdi voor Teams geeft je de mogelijkheid om collega's uit te nodigen voor je team door hen een e-mail te sturen en hun inschrijvingen te beheren in je accountvoorkeuren. Verspil geen tijd met het instellen van inschrijvingen voor elk individueel teamlid, vergeet meerdere facturen en verschillende afrekeningsperiodes - één team om alles te regelen!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "settings.team.intro": "Gebruiken jij en je team Ferdi? Je kunt nu Premium inschrijvingen beheren voor zoveel collega's, vrienden, of familieleden als je wilt. En dat alles vanuit één account.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Beheer je Team op getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Jouw Account opwaarderen", 428 "settings.team.upgradeAction": "Jouw Account opwaarderen",
@@ -492,7 +499,7 @@
492 "validation.oneRequired": "Minstens één vereist", 499 "validation.oneRequired": "Minstens één vereist",
493 "validation.required": "{field} is vereist", 500 "validation.required": "{field} is vereist",
494 "validation.url": "{field} is geen geldige URL", 501 "validation.url": "{field} is geen geldige URL",
495 "webControls.back": "Back", 502 "webControls.back": "Terug",
496 "webControls.forward": "Forward", 503 "webControls.forward": "Forward",
497 "webControls.goHome": "Home", 504 "webControls.goHome": "Home",
498 "webControls.openInBrowser": "Open in Browser", 505 "webControls.openInBrowser": "Open in Browser",
diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/no.json
+++ b/src/i18n/locales/no.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index dcb74e709..65ce1c1db 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Wyślij",
4 "feature.announcements.changelog.headline": "Zmiany we Ferdiie {version}", 7 "feature.announcements.changelog.headline": "Zmiany we Ferdiie {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Aby nie czekać, kup licencję Ferdi Supporter", 9 "feature.delayApp.headline": "Aby nie czekać, kup licencję Ferdi Supporter",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Przeładuj Ferdi", 157 "menu.view.reloadFranz": "Przeładuj Ferdi",
155 "menu.view.reloadService": "Przeładuj usługę", 158 "menu.view.reloadService": "Przeładuj usługę",
156 "menu.view.resetZoom": "Domyślny rozmiar", 159 "menu.view.resetZoom": "Domyślny rozmiar",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Pokaż narzędzia developerskie", 161 "menu.view.toggleDevTools": "Pokaż narzędzia developerskie",
158 "menu.view.toggleFullScreen": "Przełącz tryb pełnoekranowy", 162 "menu.view.toggleFullScreen": "Przełącz tryb pełnoekranowy",
159 "menu.view.toggleServiceDevTools": "Włącz narzędzia developerskie usługi", 163 "menu.view.toggleServiceDevTools": "Włącz narzędzia developerskie usługi",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Pamięć podręczna zajmuje obecnie {size} przestrzeni dyskowej", 274 "settings.app.cacheInfo": "Pamięć podręczna zajmuje obecnie {size} przestrzeni dyskowej",
271 "settings.app.currentVersion": "Aktualna wersja:", 275 "settings.app.currentVersion": "Aktualna wersja:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Otwórz w tle", 278 "settings.app.form.autoLaunchInBackground": "Otwórz w tle",
275 "settings.app.form.autoLaunchOnStart": "Uruchom Ferdi na poczÄ…tku", 279 "settings.app.form.autoLaunchOnStart": "Uruchom Ferdi na poczÄ…tku",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Uwzględnij wersje beta", 281 "settings.app.form.beta": "Uwzględnij wersje beta",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "WÅ‚Ä…cz akceleracjÄ™ GPU", 284 "settings.app.form.enableGPUAcceleration": "WÅ‚Ä…cz akceleracjÄ™ GPU",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Zminimalizuj aplikacjÄ™ Ferdi", 296 "settings.app.form.minimizeToSystemTray": "Zminimalizuj aplikacjÄ™ Ferdi",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Zachowaj aplikację Ferdi w tle po zamknięciu okna", 301 "settings.app.form.runInBackground": "Zachowaj aplikację Ferdi w tle po zamknięciu okna",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Wyłącz wyświetlanie zakładek z usługami", 307 "settings.app.form.showDisabledServices": "Wyłącz wyświetlanie zakładek z usługami",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Ustawienia", 313 "settings.app.headline": "Ustawienia",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Pamięć podręczna", 329 "settings.app.subheadlineCache": "Pamięć podręczna",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Pomóż nam tłumaczyć Ferdi na Twój język.", 331 "settings.app.translationHelp": "Pomóż nam tłumaczyć Ferdi na Twój język.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Dostępna aktualizacja, pobieram...", 333 "settings.app.updateStatusAvailable": "Dostępna aktualizacja, pobieram...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Włącz dźwięk", 370 "settings.service.form.enableAudio": "Włącz dźwięk",
368 "settings.service.form.enableBadge": "Pokaż znacznik nieprzeczytanych wiadomości", 371 "settings.service.form.enableBadge": "Pokaż znacznik nieprzeczytanych wiadomości",
369 "settings.service.form.enableDarkMode": "WÅ‚Ä…cz Ciemny motyw", 372 "settings.service.form.enableDarkMode": "WÅ‚Ä…cz Ciemny motyw",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Aktywuj powiadomienia", 377 "settings.service.form.enableNotification": "Aktywuj powiadomienia",
371 "settings.service.form.enableService": "Aktywuj usługę", 378 "settings.service.form.enableService": "Aktywuj usługę",
372 "settings.service.form.headlineBadges": "Znaczniki nieprzeczytanych wiadomości", 379 "settings.service.form.headlineBadges": "Znaczniki nieprzeczytanych wiadomości",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Zespoły Ferdi", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "Ferdi umożliwia zespołom opcję zapraszania pracowników do zespołu wysyłając im maila z zaproszeniem i pozwala zarządzać ich subskrypcją w ustawieniach konta. Nie trać czasu na ustawianie subskrypcji dla każdego zespołu osobno, zapomnij o wielu fakturach i różnych cyklicznych opłatach - jeden zespół do zarządzania wszystkim!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Zespół", 423 "settings.team.headline": "Zespół",
417 "settings.team.intro": "Czy Ty i zesół używacie programu Ferdi? Możesz teraz zarządzać subskrypcją Premium dla tylu kolegów, przyjaciół lub rodziny ilu chcesz, wszystko w obrębie jednego konta.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Zarządzaj zespołem na getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Ulepsz swoje konto", 428 "settings.team.upgradeAction": "Ulepsz swoje konto",
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index 711c2c831..cae5fa457 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -1,6 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "Recarregar", 2 "app.errorHandler.action": "Recarregar",
3 "app.errorHandler.headline": "Alguma coisa correu mal", 3 "app.errorHandler.headline": "Algo deu errado",
4 "changeserver.headline": "Alterar servidor",
5 "changeserver.label": "Servidor",
6 "changeserver.submit": "Submeter",
4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", 7 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}",
5 "feature.debugger.title": "Publicar informações de depuração", 8 "feature.debugger.title": "Publicar informações de depuração",
6 "feature.delayApp.headline": "Por favor compre uma licença Ferdi Supporter para saltar a fila de espera", 9 "feature.delayApp.headline": "Por favor compre uma licença Ferdi Supporter para saltar a fila de espera",
@@ -8,8 +11,8 @@
8 "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias", 11 "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias",
9 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", 12 "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", 13 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line",
11 "feature.delayApp.upgrade.action": "Faz parte do grupo de apoio do Ferdi", 14 "feature.delayApp.upgrade.action": "Faça parte do grupo de apoiadores do Ferdi",
12 "feature.delayApp.upgrade.actionShort": "Atualiza a tua conta", 15 "feature.delayApp.upgrade.actionShort": "Atualize sua conta",
13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", 16 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
14 "feature.planSelection.cta.stayOnFree": "Stay on Free", 17 "feature.planSelection.cta.stayOnFree": "Stay on Free",
15 "feature.planSelection.cta.trial": "Start my free 14-days Trial", 18 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
@@ -34,7 +37,7 @@
34 "feature.publishDebugInfo.terms": "Termos do Serviço", 37 "feature.publishDebugInfo.terms": "Termos do Serviço",
35 "feature.publishDebugInfo.title": "Publicar informações de depuração", 38 "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.", 39 "feature.quickSwitch.info": "Selecione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.",
37 "feature.quickSwitch.search": "Localizar...", 40 "feature.quickSwitch.search": "Buscar...",
38 "feature.quickSwitch.title": "Troca Rápida", 41 "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.", 42 "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.",
40 "feature.shareFranz.action.email": "Enviar por e-mail", 43 "feature.shareFranz.action.email": "Enviar por e-mail",
@@ -77,7 +80,7 @@
77 "invite.email.label": "Endereço de e-mail", 80 "invite.email.label": "Endereço de e-mail",
78 "invite.headline.friends": "Convide 3 amigos ou colegas", 81 "invite.headline.friends": "Convide 3 amigos ou colegas",
79 "invite.name.label": "Nome", 82 "invite.name.label": "Nome",
80 "invite.skip.label": "Pretendo fazer isto mais tarde", 83 "invite.skip.label": "Desejo fazer isto mais tarde",
81 "invite.submit.label": "Enviar convites", 84 "invite.submit.label": "Enviar convites",
82 "invite.successInfo": "Convites enviados com sucesso", 85 "invite.successInfo": "Convites enviados com sucesso",
83 "locked.headline": "Bloqueado", 86 "locked.headline": "Bloqueado",
@@ -89,11 +92,11 @@
89 "locked.touchIdPrompt": "desbloquear via Touch ID", 92 "locked.touchIdPrompt": "desbloquear via Touch ID",
90 "locked.unlockWithPassword": "Desbloquear com Senha", 93 "locked.unlockWithPassword": "Desbloquear com Senha",
91 "login.changeServer": "Alterar servidor", 94 "login.changeServer": "Alterar servidor",
92 "login.customServerQuestion": "Using a custom Ferdi server?", 95 "login.customServerQuestion": "Usando uma conta do Franz para entrar?",
93 "login.customServerSuggestion": "Try importing your Franz account", 96 "login.customServerSuggestion": "Tente importar sua conta Franz no Ferdi",
94 "login.email.label": "Endereço de e-mail", 97 "login.email.label": "Endereço de e-mail",
95 "login.headline": "Iniciar Sessão", 98 "login.headline": "Iniciar Sessão",
96 "login.invalidCredentials": "O email ou a palavra-passe estão incorrectos", 99 "login.invalidCredentials": "O email ou a palavra-passe incorretos",
97 "login.link.password": "Repor a minha palavra-passe", 100 "login.link.password": "Repor a minha palavra-passe",
98 "login.link.signup": "Criar uma conta gratuita", 101 "login.link.signup": "Criar uma conta gratuita",
99 "login.password.label": "Senha", 102 "login.password.label": "Senha",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Recarregar Ferdi", 157 "menu.view.reloadFranz": "Recarregar Ferdi",
155 "menu.view.reloadService": "Recarregar serviço", 158 "menu.view.reloadService": "Recarregar serviço",
156 "menu.view.resetZoom": "Tamanho Real", 159 "menu.view.resetZoom": "Tamanho Real",
160 "menu.view.toggleDarkMode": "Alternar Modo Escuro",
157 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento", 161 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento",
158 "menu.view.toggleFullScreen": "Ativar/Desativar Tela Cheia", 162 "menu.view.toggleFullScreen": "Ativar/Desativar Tela Cheia",
159 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços", 163 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços",
@@ -175,13 +179,13 @@
175 "password.noUser": "Não existe nenhuma conta associada a esse endereço de e-mail", 179 "password.noUser": "Não existe nenhuma conta associada a esse endereço de e-mail",
176 "password.submit.label": "Submeter", 180 "password.submit.label": "Submeter",
177 "password.successInfo": "Por favor verifique o seu endereço de e-mail", 181 "password.successInfo": "Por favor verifique o seu endereço de e-mail",
178 "premiumFeature.button.upgradeAccount": "Atualiza a tua conta", 182 "premiumFeature.button.upgradeAccount": "Atualize sua conta",
179 "pricing.features.accountSync": "Sincronização Automática", 183 "pricing.features.accountSync": "Sincronização Automática",
180 "pricing.features.adFree": "Sem publicidade para sempre", 184 "pricing.features.adFree": "Sem publicidade para sempre",
181 "pricing.features.appDelays": "Sem Telas de Espera", 185 "pricing.features.appDelays": "Sem Telas de Espera",
182 "pricing.features.customWebsites": "Adicionar Websites Personalizados", 186 "pricing.features.customWebsites": "Adicionar Websites Personalizados",
183 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho", 187 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho",
184 "pricing.features.onPremise": "On-premise & other Hosted Services", 188 "pricing.features.onPremise": "On-Premise & Outros serviços hospedados",
185 "pricing.features.recipes": "Escolha entre mais de 70 serviços", 189 "pricing.features.recipes": "Escolha entre mais de 70 serviços",
186 "pricing.features.serviceProxies": "Serviços de proxy", 190 "pricing.features.serviceProxies": "Serviços de proxy",
187 "pricing.features.spellchecker": "Suporte ao corretor ortográfico", 191 "pricing.features.spellchecker": "Suporte ao corretor ortográfico",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.", 274 "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.",
271 "settings.app.currentVersion": "Versão atual", 275 "settings.app.currentVersion": "Versão atual",
272 "settings.app.form.accentColor": "Cor de destaque", 276 "settings.app.form.accentColor": "Cor de destaque",
273 "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com as configurações do Mac", 277 "settings.app.form.adaptableDarkMode": "Sincronizar o modo escuro com a configuração de modo escuro do meu SO",
274 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", 278 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano",
275 "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador", 279 "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador",
280 "settings.app.form.automaticUpdates": "Habilitar atualizações",
276 "settings.app.form.beta": "Incluir versões instáveis (beta)", 281 "settings.app.form.beta": "Incluir versões instáveis (beta)",
282 "settings.app.form.customTodoServer": "Servidor de Todo personalizado",
277 "settings.app.form.darkMode": "Habilitar modo noturno", 283 "settings.app.form.darkMode": "Habilitar modo noturno",
278 "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU", 284 "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU",
279 "settings.app.form.enableLock": "Habilitar bloqueio por senha", 285 "settings.app.form.enableLock": "Habilitar bloqueio por senha",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Senha", 295 "settings.app.form.lockPassword": "Senha",
290 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema", 296 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema",
291 "settings.app.form.navigationBarBehaviour": "Comportamento da barra de navegação", 297 "settings.app.form.navigationBarBehaviour": "Comportamento da barra de navegação",
292 "settings.app.form.noUpdates": "Desativar atualizações", 298 "settings.app.form.predefinedTodoServer": "Servidor Todo",
293 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações", 299 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações",
294 "settings.app.form.reloadAfterResume": "Recarregar Ferdi após restabelecer o sistema", 300 "settings.app.form.reloadAfterResume": "Recarregar Ferdi após restabelecer o sistema",
295 "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela", 301 "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "Até", 303 "settings.app.form.scheduledDNDEnd": "Até",
298 "settings.app.form.scheduledDNDStart": "Desde", 304 "settings.app.form.scheduledDNDStart": "Desde",
299 "settings.app.form.sentry": "Enviar dados de telemetria", 305 "settings.app.form.sentry": "Enviar dados de telemetria",
300 "settings.app.form.server": "Servidor",
301 "settings.app.form.serviceRibbonWidth": "Largura da barra lateral", 306 "settings.app.form.serviceRibbonWidth": "Largura da barra lateral",
302 "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados", 307 "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas",
304 "settings.app.form.startMinimized": "Iniciar minimizado na bandeja", 309 "settings.app.form.showDragArea": "Mostrar área arrastável na janela",
305 "settings.app.form.todoServer": "Servidor das Tarefas", 310 "settings.app.form.startMinimized": "Iniciar minimizado",
306 "settings.app.form.universalDarkMode": "Habilitar modo noturno universal", 311 "settings.app.form.universalDarkMode": "Habilitar modo noturno universal",
307 "settings.app.form.useTouchIdToUnlock": "Permitir usar TouchID para desbloquear Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Permitir usar TouchID para desbloquear Ferdi",
308 "settings.app.headline": "Configurações", 313 "settings.app.headline": "Configurações",
@@ -314,17 +319,15 @@
314 "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.", 319 "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.",
315 "settings.app.inactivityLockInfo": "Minutos de inatividade, após este tempo Ferdi irá automaticamente bloquear. Utilize 0 para desabilitar", 320 "settings.app.inactivityLockInfo": "Minutos de inatividade, após este tempo Ferdi irá automaticamente bloquear. Utilize 0 para desabilitar",
316 "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.", 321 "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.",
317 "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.", 322 "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.",
318 "settings.app.lockedPassword": "Senha", 323 "settings.app.lockedPassword": "Senha",
319 "settings.app.lockedPasswordInfo": "Tenha certeza que a senha definida será lembrada.\\nCaso você esqueça a senha, será necessário reinstalar o Ferdi.", 324 "settings.app.lockedPasswordInfo": "Tenha certeza que a senha definida será lembrada.\nCaso você esqueça a senha, será necessário reinstalar o Ferdi.",
320 "settings.app.restartRequired": "Alterações requerem reinício", 325 "settings.app.restartRequired": "Alterações requerem reinício",
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "Aconselhamos que você efetue logout após alterar o servidor, pois suas configurações podem não serem salvas.",
325 "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.",
326 "settings.app.subheadlineCache": "Memória Cache", 329 "settings.app.subheadlineCache": "Memória Cache",
327 "settings.app.todoServerInfo": "Servidor utilizado para as Tarefas. (Padrão: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "Este servidor será usado para o recurso \"Ferdi Todo\".",
328 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.", 331 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.",
329 "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.", 332 "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.",
330 "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...", 333 "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...",
@@ -352,7 +355,7 @@
352 "settings.recipes.mostPopular": "Os mais populares", 355 "settings.recipes.mostPopular": "Os mais populares",
353 "settings.recipes.nothingFound": "Lamentamos, nenhum serviço corresponde ao termo pesquisado.", 356 "settings.recipes.nothingFound": "Lamentamos, nenhum serviço corresponde ao termo pesquisado.",
354 "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado com sucesso", 357 "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado com sucesso",
355 "settings.searchService": "Pesquisar erviço", 358 "settings.searchService": "Pesquisar serviço",
356 "settings.service.error.goBack": "Voltar aos serviços", 359 "settings.service.error.goBack": "Voltar aos serviços",
357 "settings.service.error.headline": "Erro", 360 "settings.service.error.headline": "Erro",
358 "settings.service.error.message": "Não foi possível carregar a receita do serviço.", 361 "settings.service.error.message": "Não foi possível carregar a receita do serviço.",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Ativar áudio", 370 "settings.service.form.enableAudio": "Ativar áudio",
368 "settings.service.form.enableBadge": "Mostrar emblemas de mensagens não lidas", 371 "settings.service.form.enableBadge": "Mostrar emblemas de mensagens não lidas",
369 "settings.service.form.enableDarkMode": "Ativar o Tema Escuro", 372 "settings.service.form.enableDarkMode": "Ativar o Tema Escuro",
373 "settings.service.form.darkReaderBrightness": "Brilho",
374 "settings.service.form.darkReaderContrast": "Contraste",
375 "settings.service.form.darkReaderSepia": "Sépia",
376 "settings.service.form.headlineDarkReaderSettings": "Configurações do Leitor Escuro",
370 "settings.service.form.enableNotification": "Ativar notificações", 377 "settings.service.form.enableNotification": "Ativar notificações",
371 "settings.service.form.enableService": "Ativar serviço", 378 "settings.service.form.enableService": "Ativar serviço",
372 "settings.service.form.headlineBadges": "Emblema de mensagem não lida", 379 "settings.service.form.headlineBadges": "Emblema de mensagem não lida",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Apoie o desenvolvimento no Open Collective", 418 "settings.supportFerdi.openCollective": "Apoie o desenvolvimento no Open Collective",
412 "settings.supportFerdi.share": "Compartilhe com seus amigos", 419 "settings.supportFerdi.share": "Compartilhe com seus amigos",
413 "settings.supportFerdi.title": "Gostou do Ferdi? Compartilhe!", 420 "settings.supportFerdi.title": "Gostou do Ferdi? Compartilhe!",
414 "settings.team.contentHeadline": "Ferdi para equipas", 421 "settings.team.contentHeadline": "Gerenciamento de Equipe Franz",
415 "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.", 422 "settings.team.copy": "O Gerenciamento de Equipes de Franz permite gerenciar assinaturas do Franz para múltiplos usuários. Por favor, entenda que ter uma assinatura Franz Premium não lhe dará nenhuma vantagem em usar o Ferdi. A única razão em manter o acesso ao Gerenciamento de Equipes é permitir o gerenciamento de suas equipes legadas e não perder nenhuma funcionalidade no gerenciamento da sua conta.",
416 "settings.team.headline": "Equipa", 423 "settings.team.headline": "Equipa",
417 "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.", 424 "settings.team.intro": "Atualmente você está utilizando os Servidores do Franz, o que permite a você ter acesso ao Gerenciamento de Equipes.",
418 "settings.team.manageAction": "Gerenciar sua Equipe em getferdi.com", 425 "settings.team.manageAction": "Gerencie sua Equipe em meetfranz.com",
419 "settings.team.teamsUnavailable": "A funcionalidade de Equipes está indisponível", 426 "settings.team.teamsUnavailable": "A funcionalidade de Equipes está indisponível",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Atualizar sua conta", 428 "settings.team.upgradeAction": "Atualizar sua conta",
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index b5904bb0a..ff2eb8889 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -1,15 +1,18 @@
1{ 1{
2 "app.errorHandler.action": "Actualizar", 2 "app.errorHandler.action": "Actualizar",
3 "app.errorHandler.headline": "Uoops! Algo correu mal", 3 "app.errorHandler.headline": "Alguma coisa correu mal",
4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", 4 "changeserver.headline": "Alterar servidor",
5 "feature.debugger.title": "Publish debugging information", 5 "changeserver.label": "Servidor",
6 "feature.delayApp.headline": "Por favor, adquira uma licença Ferdi para não ter tempo de espera", 6 "changeserver.submit": "Enviar",
7 "feature.announcements.changelog.headline": "Mudanças no Ferdi {version}",
8 "feature.debugger.title": "Publicar informações de debug",
9 "feature.delayApp.headline": "Por favor, adquira uma licença de apoiante Ferdi para não ficar à espera",
7 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.", 10 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.",
8 "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional", 11 "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional",
9 "feature.delayApp.trial.actionShort": "Ativar período de testes gratuito do Ferdi Professional", 12 "feature.delayApp.trial.actionShort": "Ativar período de testes gratuito do Ferdi Professional",
10 "feature.delayApp.trial.headline": "Empieza el periodo de prueba de Ferdi Profesional por 14 días y cruza la linea.", 13 "feature.delayApp.trial.headline": "Empieza el periodo de prueba de Ferdi Profesional por 14 días y cruza la linea.",
11 "feature.delayApp.upgrade.action": "Adquira uma licença de suporte Ferdi", 14 "feature.delayApp.upgrade.action": "Adquira uma licença de suporte Ferdi",
12 "feature.delayApp.upgrade.actionShort": "Atualizar conta", 15 "feature.delayApp.upgrade.actionShort": "Faça upgrade da conta",
13 "feature.planSelection.cta.ctaDowngradeFree": "Despromover para Gratuito", 16 "feature.planSelection.cta.ctaDowngradeFree": "Despromover para Gratuito",
14 "feature.planSelection.cta.stayOnFree": "Continuar em Gratuito", 17 "feature.planSelection.cta.stayOnFree": "Continuar em Gratuito",
15 "feature.planSelection.cta.trial": "Iniciar meu teste grátis de 14 dias", 18 "feature.planSelection.cta.trial": "Iniciar meu teste grátis de 14 dias",
@@ -26,13 +29,13 @@
26 "feature.planSelection.personal.text": "Mais serviços, sem espera - ideal para uso pessoal.", 29 "feature.planSelection.personal.text": "Mais serviços, sem espera - ideal para uso pessoal.",
27 "feature.planSelection.pricesBasedOnAnnualPayment": "Todos os preços são baseados no pagamento anual", 30 "feature.planSelection.pricesBasedOnAnnualPayment": "Todos os preços são baseados no pagamento anual",
28 "feature.planSelection.pro.text": "Serviços ilimitados e recursos profissionais para si - e para a sua equipa.", 31 "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.", 32 "feature.publishDebugInfo.error": "Houve um erro ao tentar publicar as informações de depuração. Por favor, tente novamente mais tarde ou visualize a consola para mais informações.",
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", 33 "feature.publishDebugInfo.info": "Publicar as suas informações de depuração ajuda-nos a encontrar problemas e erros no Ferdi. Ao publicar as suas informações de depuração, aceita a política de privacidade e termos de serviço do depurador Ferdi",
31 "feature.publishDebugInfo.privacy": "Privacy policy", 34 "feature.publishDebugInfo.privacy": "Política de Privacidade",
32 "feature.publishDebugInfo.publish": "Accept and publish", 35 "feature.publishDebugInfo.publish": "Aceitar e publicar",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 36 "feature.publishDebugInfo.published": "O seu registo de depuração foi publicado e está agora disponível em",
34 "feature.publishDebugInfo.terms": "Termos de serviço", 37 "feature.publishDebugInfo.terms": "Termos de serviço",
35 "feature.publishDebugInfo.title": "Publish debug information", 38 "feature.publishDebugInfo.title": "Publicar informações de depuração",
36 "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.", 39 "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.",
37 "feature.quickSwitch.search": "A procurar...", 40 "feature.quickSwitch.search": "A procurar...",
38 "feature.quickSwitch.title": "Troca Rápida", 41 "feature.quickSwitch.title": "Troca Rápida",
@@ -41,12 +44,12 @@
41 "feature.shareFranz.action.facebook": "Compartilhar no Facebook", 44 "feature.shareFranz.action.facebook": "Compartilhar no Facebook",
42 "feature.shareFranz.action.twitter": "Compartilhar no Twitter", 45 "feature.shareFranz.action.twitter": "Compartilhar no Twitter",
43 "feature.shareFranz.headline": "Ferdi é melhor em grupo!", 46 "feature.shareFranz.headline": "Ferdi é melhor em grupo!",
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", 47 "feature.shareFranz.shareText.email": "Eu adicionei {count} serviços ao Ferdi! Adquira a aplicação gratuita para WhatsApp, Messenger, Slack, Skype e mais em www.getferdi.com",
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", 48 "feature.shareFranz.shareText.twitter": "Adicionei {count} serviços no Ferdi! Faça o download da aplicação para WhatsApp, Messenger, Slack, Skype e outros em www.getferdi.com /cc @FerdiMessenger",
46 "feature.shareFranz.text": "Conte aos seus amigos e colegas o quanto incrível o Ferdi é e nos ajude a espalhar a mensagem. ", 49 "feature.shareFranz.text": "Diga aos seus amigos e colegas o quão incrível é Ferdi e ajude-nos a espalhar a mensagem.",
47 "feature.todos.premium.info": "As Listas de Tarefa do Ferdi estão disponíveis para usuários premium!", 50 "feature.todos.premium.info": "As Listas de Tarefas de Ferdi agora estão disponíveis para utilizadores premium!",
48 "feature.todos.premium.rollout": "As outras pessoas terão que esperar um pouquinho mais.", 51 "feature.todos.premium.rollout": "Todas as outras pessoas terão que esperar um pouco mais.",
49 "feature.todos.premium.upgrade": "Actualizar cuenta", 52 "feature.todos.premium.upgrade": "Faça upgrade da conta",
50 "feature.trialStatusBar.cta": "Promover agora", 53 "feature.trialStatusBar.cta": "Promover agora",
51 "feature.trialStatusBar.expired": "Seu teste grátis Ferdi {plan} expirou, por favor actualize sua conta.", 54 "feature.trialStatusBar.expired": "Seu teste grátis Ferdi {plan} expirou, por favor actualize sua conta.",
52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Despromover para Gratuito", 55 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Despromover para Gratuito",
@@ -54,58 +57,58 @@
54 "feature.trialStatusBar.fullscreen.dialog.message": "Você está prestes a fazer a despromoção para nossa conta gratuita. Você tem certeza? Clique aqui para obter mais serviços e funcionalidade por apenas {currency}{price} por mês.", 57 "feature.trialStatusBar.fullscreen.dialog.message": "Você está prestes a fazer a despromoção para nossa conta gratuita. Você tem certeza? Clique aqui para obter mais serviços e funcionalidade por apenas {currency}{price} por mês.",
55 "feature.trialStatusBar.fullscreen.dialog.title": "Despromover o seu Plano Ferdi", 58 "feature.trialStatusBar.fullscreen.dialog.title": "Despromover o seu Plano Ferdi",
56 "feature.trialStatusBar.restTime": "Seu teste grátis Ferdi {plan} termina em {time}.", 59 "feature.trialStatusBar.restTime": "Seu teste grátis Ferdi {plan} termina em {time}.",
57 "global.api.unhealthy": "Não foi possível conectar-se aos serviços on-line do Ferdi.", 60 "global.api.unhealthy": "Não é possível ligar aos serviços online de Ferdi",
58 "global.franzProRequired": "Se requiere una cuenta Ferdi Profesional", 61 "global.franzProRequired": "É necessária uma conta Ferdi Profissional",
59 "global.notConnectedToTheInternet": "Você não está conectado à internet", 62 "global.notConnectedToTheInternet": "Não está ligado à internet.",
60 "global.spellchecker.useDefault": "Use o padrão do sistema ({default})", 63 "global.spellchecker.useDefault": "Use o padrão de sistema ({default})",
61 "global.spellchecking.autodetect": "Detectar idioma automaticamente.", 64 "global.spellchecking.autodetect": "Detectar idioma automaticamente",
62 "global.spellchecking.autodetect.short": "Automático", 65 "global.spellchecking.autodetect.short": "Automático",
63 "global.spellchecking.language": "Idioma para verificação ortográfica", 66 "global.spellchecking.language": "Idioma para corrector ortográfico",
64 "global.upgradeButton.upgradeToPro": "Atualizar para o Ferdi Profissional", 67 "global.upgradeButton.upgradeToPro": "Faça upgrade para Ferdi Profissional",
65 "import.headline": "Importe seus serviços do Ferdi 4 ", 68 "import.headline": "Importe os seus serviços do Ferdi 4",
66 "import.notSupportedHeadline": "Serviços ainda não suportados pelo Ferdi 5 ", 69 "import.notSupportedHeadline": "Serviços ainda não são suportados por Ferdi 5",
67 "import.skip.label": "Quero adicionar serviços manualmente", 70 "import.skip.label": "Quero adicionar serviços manualmente",
68 "import.submit.label": "Importar serviços", 71 "import.submit.label": "Importar serviços",
69 "infobar.authRequestFailed": "Houve erros ao tentar autenticar. Por favor, tente desconectar e autenticar novamente se o erro persistir.", 72 "infobar.authRequestFailed": "Houve erros na autenticaçao. Se este erro persistir, por favor, tente desligar e autenticar novamente.",
70 "infobar.buttonChangelog": "O que há de novo?", 73 "infobar.buttonChangelog": "O que há de novo?",
71 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações ", 74 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações",
72 "infobar.buttonReloadServices": "Recarregar serviços", 75 "infobar.buttonReloadServices": "Reiniciar serviços",
73 "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações de usuário", 76 "infobar.requiredRequestsFailed": "Não foi possível reiniciar os serviços e informações de utilizador",
74 "infobar.servicesUpdated": "Seus serviços foram atualizados.", 77 "infobar.servicesUpdated": "Os seus serviços foram atualizados.",
75 "infobar.trialActivated": "O seu período de testes foi ativado com sucesso! Boas mensagens!", 78 "infobar.trialActivated": "O seu período de testes foi ativado com sucesso! Boas mensagens!",
76 "infobar.updateAvailable": "Uma nova atualização do Ferdi está disponível.", 79 "infobar.updateAvailable": "Está disponível uma nova atualização de Ferdi.",
77 "invite.email.label": "Endereço de E-mail", 80 "invite.email.label": "Endereço de E-mail",
78 "invite.headline.friends": "Convide 3 amigos ou colegas", 81 "invite.headline.friends": "Convide 3 dos seus amigos ou colegas",
79 "invite.name.label": "Nome", 82 "invite.name.label": "Nome",
80 "invite.skip.label": "Quero fazer isso depois", 83 "invite.skip.label": "Quero fazer isto depois",
81 "invite.submit.label": "Enviar convites", 84 "invite.submit.label": "Enviar convites",
82 "invite.successInfo": "Convites enviados com sucesso", 85 "invite.successInfo": "Convites enviados com sucesso",
83 "locked.headline": "Bloqueado", 86 "locked.headline": "Bloqueado",
84 "locked.info": "Ferdi está bloqueado no momento. Por favor, desbloqueie Ferdi com sua senha para ver suas mensagens.", 87 "locked.info": "Ferdi está bloqueado de momento. Por favor, desbloqueie Ferdi com sua palavra-passe para ver as suas mensagens.",
85 "locked.invalidCredentials": "Senha inválida", 88 "locked.invalidCredentials": "Palavra-passe inválida",
86 "locked.password.label": "Senha", 89 "locked.password.label": "Palavra-passe",
87 "locked.submit.label": "Desbloquear", 90 "locked.submit.label": "Desbloquear",
88 "locked.touchId": "Unlock with Touch ID", 91 "locked.touchId": "Desbloquear com Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID", 92 "locked.touchIdPrompt": "desbloquear via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password", 93 "locked.unlockWithPassword": "Desbloquear com palavra-passe",
91 "login.changeServer": "Alterar servidor", 94 "login.changeServer": "Alterar servidor",
92 "login.customServerQuestion": "Using a custom Ferdi server?", 95 "login.customServerQuestion": "Usa uma conta Franz para entrar?",
93 "login.customServerSuggestion": "Try importing your Franz account", 96 "login.customServerSuggestion": "Tente importar a sua conta Franz para Ferdi",
94 "login.email.label": "Endereço de E-mail", 97 "login.email.label": "Endereço de E-mail",
95 "login.headline": "Entrar", 98 "login.headline": "Entrar",
96 "login.invalidCredentials": "E-mail ou senha inválida", 99 "login.invalidCredentials": "E-mail ou palavra-passe inválidos",
97 "login.link.password": "Trocar a senha", 100 "login.link.password": "Redefinir palavra-passe",
98 "login.link.signup": "Criar uma conta gratuita", 101 "login.link.signup": "Criar uma conta gratuita",
99 "login.password.label": "Senha", 102 "login.password.label": "Palavra-passe",
100 "login.serverLogout": "Sua sessão expirou, faça o login novamente.", 103 "login.serverLogout": "A sua sessão expirou, faça login novamente.",
101 "login.submit.label": "Entrar", 104 "login.submit.label": "Entrar",
102 "login.tokenExpired": "Sua sessão expirou, faça o login novamente.", 105 "login.tokenExpired": "A sua sessão expirou, faça login novamente.",
103 "menu.Todoss.closeTodosDrawer": "Fechar a gaveta de Listas de Tarefa", 106 "menu.Todoss.closeTodosDrawer": "Fechar a barra de Tarefas",
104 "menu.Todoss.openTodosDrawer": "Abrir a gaveta de Listas de Tarefa", 107 "menu.Todoss.openTodosDrawer": "Abrir a barra de Tarefas",
105 "menu.app.about": "Sobre Ferdi", 108 "menu.app.about": "Acerca de Ferdi",
106 "menu.app.announcement": "Quais as novidades?", 109 "menu.app.announcement": "O que há de novo?",
107 "menu.app.autohideMenuBar": "Auto-ocultar barra de menu", 110 "menu.app.autohideMenuBar": "Ocultar barra de menu automaticamente",
108 "menu.app.checkForUpdates": "Verificar se há atualizações", 111 "menu.app.checkForUpdates": "Procurar atualizações",
109 "menu.app.hide": "Ocultar", 112 "menu.app.hide": "Ocultar",
110 "menu.app.hideOthers": "Ocultar Outros", 113 "menu.app.hideOthers": "Ocultar Outros",
111 "menu.app.quit": "Sair", 114 "menu.app.quit": "Sair",
@@ -114,80 +117,81 @@
114 "menu.edit": "Editar", 117 "menu.edit": "Editar",
115 "menu.edit.copy": "Copiar", 118 "menu.edit.copy": "Copiar",
116 "menu.edit.cut": "Cortar", 119 "menu.edit.cut": "Cortar",
117 "menu.edit.delete": "Excluir", 120 "menu.edit.delete": "Apagar",
118 "menu.edit.emojiSymbols": "Emoji & Símbolos", 121 "menu.edit.emojiSymbols": "Emoji & Símbolos",
119 "menu.edit.findInPage": "Find in Page", 122 "menu.edit.findInPage": "Localizar na página",
120 "menu.edit.paste": "Colar", 123 "menu.edit.paste": "Colar",
121 "menu.edit.pasteAndMatchStyle": "Colar e Corresponder ao Estilo", 124 "menu.edit.pasteAndMatchStyle": "Colar com a mesma formatação",
122 "menu.edit.redo": "Refazer", 125 "menu.edit.redo": "Refazer",
123 "menu.edit.selectAll": "Selecionar Tudo", 126 "menu.edit.selectAll": "Selecionar Tudo",
124 "menu.edit.speech": "Falar", 127 "menu.edit.speech": "Comando de voz",
125 "menu.edit.startDictation": "Iniciar Digitação", 128 "menu.edit.startDictation": "Iniciar Ditado",
126 "menu.edit.startSpeaking": "Começar a Falar", 129 "menu.edit.startSpeaking": "Começar a falar",
127 "menu.edit.stopSpeaking": "Parar de Falar", 130 "menu.edit.stopSpeaking": "Parar de Falar",
128 "menu.edit.undo": "Desfazer", 131 "menu.edit.undo": "Voltar",
129 "menu.file": "Arquivo", 132 "menu.file": "Ficheiro",
130 "menu.help": "Ajuda", 133 "menu.help": "Ajuda",
131 "menu.help.changelog": "Registro de Alterações ", 134 "menu.help.changelog": "Histórico de alterações",
132 "menu.help.debugInfo": "Copiar Informações de Depuração", 135 "menu.help.debugInfo": "Copiar Informações de Debug",
133 "menu.help.debugInfoCopiedBody": "As Informações de Depuração foram copiadas para a área de transferência.", 136 "menu.help.debugInfoCopiedBody": "As Informações de Debug foram copiadas para a área de transferência.",
134 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi", 137 "menu.help.debugInfoCopiedHeadline": "Informações de Debug de Ferdi",
135 "menu.help.learnMore": "Saiba Mais ", 138 "menu.help.learnMore": "Saiba Mais",
136 "menu.help.privacy": "Declaração de Privacidade ", 139 "menu.help.privacy": "Declaração de Privacidade",
137 "menu.help.publishDebugInfo": "Publish Debug Information", 140 "menu.help.publishDebugInfo": "Publicar informações de debug",
138 "menu.help.support": "Suporte", 141 "menu.help.support": "Suporte",
139 "menu.help.tos": "Termos de Serviço", 142 "menu.help.tos": "Termos de Serviço",
140 "menu.services": "Serviços", 143 "menu.services": "Serviços",
141 "menu.services.activatePreviousService": "Pular para serviço anterior", 144 "menu.services.activatePreviousService": "Ativar serviço anterior",
142 "menu.services.addNewService": "Adicionar Novo Serviço", 145 "menu.services.addNewService": "Adicionar Novo Serviço...",
143 "menu.services.goHome": "Início", 146 "menu.services.goHome": "Início",
144 "menu.services.setNextServiceActive": "Pular para próximo serviço", 147 "menu.services.setNextServiceActive": "Ativar próximo serviço",
145 "menu.todos": "Tareas pendientes", 148 "menu.todos": "Tarefas",
146 "menu.todos.enableTodos": "Habilitar Tareas pendientes", 149 "menu.todos.enableTodos": "Ativar Tarefas",
147 "menu.view": "Visualizar ", 150 "menu.view": "Visualizar",
148 "menu.view.back": "Anterior", 151 "menu.view.back": "Anterior",
149 "menu.view.enterFullScreen": "Modo Tela Cheia", 152 "menu.view.enterFullScreen": "Entrar em Ecrã Completo",
150 "menu.view.exitFullScreen": "Sair da Tela Cheia", 153 "menu.view.exitFullScreen": "Sair do modo ecrã completo",
151 "menu.view.forward": "Seguinte", 154 "menu.view.forward": "Seguinte",
152 "menu.view.lockFerdi": "Bloquear Ferdi", 155 "menu.view.lockFerdi": "Bloquear Ferdi",
153 "menu.view.openQuickSwitch": "Abrir Troca Rápida", 156 "menu.view.openQuickSwitch": "Abrir Troca Rápida",
154 "menu.view.reloadFranz": "Recarregar Ferdi", 157 "menu.view.reloadFranz": "Reiniciar Ferdi",
155 "menu.view.reloadService": "Reiniciar o Serviço", 158 "menu.view.reloadService": "Reiniciar serviço",
156 "menu.view.resetZoom": "Tamanho real", 159 "menu.view.resetZoom": "Tamanho real",
157 "menu.view.toggleDevTools": "Ferramentas de Desenvolvedor", 160 "menu.view.toggleDarkMode": "Ativar modo noturno",
158 "menu.view.toggleFullScreen": "Modo Tela Cheia", 161 "menu.view.toggleDevTools": "Ativar/desativar ferramentas de programador",
159 "menu.view.toggleServiceDevTools": "Ferramentas de Serviços de Desenvolvedor", 162 "menu.view.toggleFullScreen": "Ativar/desativar Ecrâ Completo",
160 "menu.view.toggleTodosDevTools": "Ativar as Ferramentas de Desenvolvedor das Listas de Tarefas ", 163 "menu.view.toggleServiceDevTools": "Ativar/desativar ferramentas de programador de serviço",
164 "menu.view.toggleTodosDevTools": "Ativar/desativar Ferramentas de Programador para Tarefas",
161 "menu.view.zoomIn": "Ampliar", 165 "menu.view.zoomIn": "Ampliar",
162 "menu.view.zoomOut": "Reduzir", 166 "menu.view.zoomOut": "Reduzir",
163 "menu.window": "Modo Janela", 167 "menu.window": "Janela",
164 "menu.window.close": "Fechar", 168 "menu.window.close": "Fechar",
165 "menu.window.minimize": "Minimizar", 169 "menu.window.minimize": "Minimizar",
166 "menu.workspaces": "Ãreas de trabalho", 170 "menu.workspaces": "Ãreas de trabalho",
167 "menu.workspaces.addNewWorkspace": "Adicionar nova área de trabalho...", 171 "menu.workspaces.addNewWorkspace": "Adicionar nova área de trabalho...",
168 "menu.workspaces.closeWorkspaceDrawer": "Fechar menu da área de trabalho", 172 "menu.workspaces.closeWorkspaceDrawer": "Fechar barra da área de trabalho",
169 "menu.workspaces.defaultWorkspace": "Todos os serviços", 173 "menu.workspaces.defaultWorkspace": "Todos os serviços",
170 "menu.workspaces.openWorkspaceDrawer": "Abrir o menu da área de trabalho", 174 "menu.workspaces.openWorkspaceDrawer": "Abrir a barra lateral da área de trabalho",
171 "password.email.label": "Endereço de E-mail", 175 "password.email.label": "Endereço de E-mail",
172 "password.headline": "Trocar a senha", 176 "password.headline": "Redefinir palavra-passe",
173 "password.link.login": "Fazer login na sua conta", 177 "password.link.login": "Entrar na sua conta",
174 "password.link.signup": "Criar uma conta gratuita", 178 "password.link.signup": "Criar uma conta gratuita",
175 "password.noUser": "Nenhum usuário com este e-mail foi encontrado", 179 "password.noUser": "Não foi encontrado nenhum utilizador com este e-mail",
176 "password.submit.label": "Enviar", 180 "password.submit.label": "Enviar",
177 "password.successInfo": "Por favor, verifique o seu e-mail", 181 "password.successInfo": "Por favor, verifique o seu e-mail",
178 "premiumFeature.button.upgradeAccount": "Atualizar conta", 182 "premiumFeature.button.upgradeAccount": "Faça upgrade da conta",
179 "pricing.features.accountSync": "Sincronização Automática", 183 "pricing.features.accountSync": "Sincronização de conta",
180 "pricing.features.adFree": "Sin anuncios para siempre!", 184 "pricing.features.adFree": "Sem anúncios para sempre",
181 "pricing.features.appDelays": "Sem Telas de Espera", 185 "pricing.features.appDelays": "Sem Ecrãs de Espera",
182 "pricing.features.customWebsites": "Adicionar Websites Personalizados", 186 "pricing.features.customWebsites": "Adicionar Websites Personalizados",
183 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho", 187 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho",
184 "pricing.features.onPremise": "En sitio y otros servicios alojados", 188 "pricing.features.onPremise": "En sitio y otros servicios alojados",
185 "pricing.features.recipes": "Escolha entre mais de 70 serviços", 189 "pricing.features.recipes": "Escolha entre mais de 70 serviços",
186 "pricing.features.serviceProxies": "Apoderados de Servicio", 190 "pricing.features.serviceProxies": "Proxies de Serviço",
187 "pricing.features.spellchecker": "Soporte de corrector ortográfico", 191 "pricing.features.spellchecker": "Suporte de correção ortográfica",
188 "pricing.features.teamManagement": "Gestão de Time", 192 "pricing.features.teamManagement": "Gestão de Equipa",
189 "pricing.features.thirdPartyServices": "Instalar servicios de terceros", 193 "pricing.features.thirdPartyServices": "Instalar serviços de terceiros",
190 "pricing.features.unlimitedServices": "Agregar servicios ilimitados", 194 "pricing.features.unlimitedServices": "Adicionar serviços ilimitados",
191 "pricing.features.upToSixServices": "Adicionar até 6 serviços", 195 "pricing.features.upToSixServices": "Adicionar até 6 serviços",
192 "pricing.features.upToThreeServices": "Adicionar até 3 serviços", 196 "pricing.features.upToThreeServices": "Adicionar até 3 serviços",
193 "pricing.features.workspaces": "Ãreas de trabalho", 197 "pricing.features.workspaces": "Ãreas de trabalho",
@@ -213,145 +217,144 @@
213 "pricing.trial.terms.noCreditCard": "No necesita tarjeta de crédito", 217 "pricing.trial.terms.noCreditCard": "No necesita tarjeta de crédito",
214 "pricing.trial.terms.trialWorth": "Teste gratuito (normalmente {currency}{price} por mês)", 218 "pricing.trial.terms.trialWorth": "Teste gratuito (normalmente {currency}{price} por mês)",
215 "service.crashHandler.action": "Recarregar {name}", 219 "service.crashHandler.action": "Recarregar {name}",
216 "service.crashHandler.autoReload": "Tentando reestabelecer {name} automaticamente em {seconds} segundos", 220 "service.crashHandler.autoReload": "A tentar restabelecer {name} automaticamente em {seconds} segundos",
217 "service.crashHandler.headline": "Ah, não!", 221 "service.crashHandler.headline": "Oh não!",
218 "service.crashHandler.text": "{name} causou um erro.", 222 "service.crashHandler.text": "{name} causou um erro.",
219 "service.disabledHandler.action": "Ativar {name}", 223 "service.disabledHandler.action": "Ativar {name}",
220 "service.disabledHandler.headline": "{name} está desativado", 224 "service.disabledHandler.headline": "{name} está desativado",
221 "service.errorHandler.action": "Recarregar {name}", 225 "service.errorHandler.action": "Recarregar {name}",
222 "service.errorHandler.editAction": "Editar {name}", 226 "service.errorHandler.editAction": "Editar {name}",
223 "service.errorHandler.headline": "Ah, não!", 227 "service.errorHandler.headline": "Oh não!",
224 "service.errorHandler.message": "Erro", 228 "service.errorHandler.message": "Erro",
225 "service.errorHandler.text": "{name} não pôde ser carregado.", 229 "service.errorHandler.text": "{name} não pôde ser iniciado.",
226 "service.restrictedHandler.action": "Actualizar cuenta", 230 "service.restrictedHandler.action": "Faça upgrade da conta",
227 "service.restrictedHandler.customUrl.headline": "Necesita el Plan Ferdi Profesional", 231 "service.restrictedHandler.customUrl.headline": "É necessária uma conta Ferdi Profissional",
228 "service.restrictedHandler.customUrl.text": "Por favor suscribase al Plan Ferdi Profesional para utilizar urls personalizadas y servicios auto alojados.", 232 "service.restrictedHandler.customUrl.text": "Por favor, faça o upgrade para o plano Ferdi Professional para usar Urls personalizadas e serviços auto-hospedados.",
229 "service.restrictedHandler.serviceLimit.headline": "Ha llegado al límite del servicio.", 233 "service.restrictedHandler.serviceLimit.headline": "Atingiu o seu limite de serviços.",
230 "service.restrictedHandler.serviceLimit.text": "Por favor mejore su cuenta para poder utilizar más de {count} servicios.", 234 "service.restrictedHandler.serviceLimit.text": "Por favor, faça o upgrade da sua conta para usar mais de {count} serviços.",
231 "service.webviewLoader.loading": "Loading {service}", 235 "service.webviewLoader.loading": "A iniciar {service}",
232 "services.getStarted": "Iniciar", 236 "services.getStarted": "Iniciar",
233 "services.login": "Por favor, inicie sua sessão para usar Ferdi.", 237 "services.login": "Por favor, inicie sua sessão para usar Ferdi.",
234 "services.serverInfo": "Opcionalmente, você pode mudar seu servidor Ferdi clicando no icon de roda dentada no canto inferior esquerdo.", 238 "services.serverInfo": "Opcionalmente, pode mudar o seu servidor Ferdi clicando no ícone da engrenagem no canto inferior esquerdo.",
235 "services.serverless": "Use Ferdi sem uma conta", 239 "services.serverless": "Use Ferdi sem conta",
236 "services.welcome": "Bem-vindo ao Ferdi!", 240 "services.welcome": "Bem-vindo ao Ferdi",
237 "settings.account.account.editButton": "Editar conta", 241 "settings.account.account.editButton": "Editar conta",
238 "settings.account.accountType.basic": "Conta Básica", 242 "settings.account.accountType.basic": "Conta Básica",
239 "settings.account.accountType.premium": "Conta Apoiador Premium", 243 "settings.account.accountType.premium": "Conta Apoiante Premium",
240 "settings.account.accountUnavailable": "Account is unavailable", 244 "settings.account.accountUnavailable": "Conta indisponível",
241 "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.", 245 "settings.account.accountUnavailableInfo": "Está a usar o Ferdi sem uma conta. Se deseja usar o Ferdi com uma conta e manter os seus serviços sincronizados entre instalações, por favor, selecione um servidor no separador Configurações e faça a autenticação.",
242 "settings.account.buttonSave": "Atualizar perfil", 246 "settings.account.buttonSave": "Atualizar perfil",
243 "settings.account.deleteAccount": "Excluir conta", 247 "settings.account.deleteAccount": "Apagar conta",
244 "settings.account.deleteEmailSent": "Você recebeu um e-mail com um link para confirmar a exclusão da sua conta. Atenção! Sua conta e dados não poderão ser restaurados!", 248 "settings.account.deleteEmailSent": "Recebeu um e-mail com um link para confirmar o cancelamento da sua conta. Atenção! A sua conta e dados não poderão ser restaurados!",
245 "settings.account.deleteInfo": "Se você não precisa mais de sua conta Ferdi, pode exclui-la juntamente com todos os dados relacionados, aqui.", 249 "settings.account.deleteInfo": "Se não precisa mais de sua conta Ferdi, pode apagá-la juntamente com toda a sua informação aqui.",
246 "settings.account.headline": "Conta", 250 "settings.account.headline": "Conta",
247 "settings.account.headlineAccount": "Informações de conta", 251 "settings.account.headlineAccount": "Informações de conta",
248 "settings.account.headlineDangerZone": "Zona de Perigo", 252 "settings.account.headlineDangerZone": "Zona Perigosa",
249 "settings.account.headlineInvoices": "Recibos", 253 "settings.account.headlineInvoices": "Recibos",
250 "settings.account.headlinePassword": "Mudar senha", 254 "settings.account.headlinePassword": "Mudar palavra-passe",
251 "settings.account.headlineProfile": "Atualizar perfil", 255 "settings.account.headlineProfile": "Atualizar perfil",
252 "settings.account.headlineSubscription": "Sua assinatura", 256 "settings.account.headlineSubscription": "A sua subscrição",
253 "settings.account.headlineTrialUpgrade": "Consiga 14 días de prueba gratis de Ferdi Profesional ", 257 "settings.account.headlineTrialUpgrade": "Consiga 14 días de prueba gratis de Ferdi Profesional ",
254 "settings.account.headlineUpgradeAccount": "Mejore su cuenta y reciba la experiencia completa de Ferdi", 258 "settings.account.headlineUpgradeAccount": "Faça um upgrade à sua conta e usufrua da experiência completa Ferdi",
255 "settings.account.invoiceDownload": "Baixar", 259 "settings.account.invoiceDownload": "Download",
256 "settings.account.manageSubscription.label": "Gerencie a sua assinatura", 260 "settings.account.manageSubscription.label": "Gerir assinatura",
257 "settings.account.successInfo": "Suas alterações foram gravadas", 261 "settings.account.successInfo": "As suas alterações foram gravadas",
258 "settings.account.trial": "Prueba Gratis", 262 "settings.account.trial": "Prueba Gratis",
259 "settings.account.trialEndsIn": "Su prueba gratis finaliza en {duration}.", 263 "settings.account.trialEndsIn": "Su prueba gratis finaliza en {duration}.",
260 "settings.account.trialUpdateBillingInfo": "Por favor actualice su información de facturación para continuar utilizando {license} luego del periodo de prueba.", 264 "settings.account.trialUpdateBillingInfo": "Por favor actualice su información de facturación para continuar utilizando {license} luego del periodo de prueba.",
261 "settings.account.tryReloadServices": "Tente novamente", 265 "settings.account.tryReloadServices": "Tente novamente",
262 "settings.account.tryReloadUserInfoRequest": "Tente novamente", 266 "settings.account.tryReloadUserInfoRequest": "Tente novamente",
263 "settings.account.upgradeToPro.label": "Atualizar para o Ferdi Profissional", 267 "settings.account.upgradeToPro.label": "Faça upgrade para Ferdi Profissional",
264 "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações do usuário", 268 "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações de utilizador",
265 "settings.account.yourLicense": "Su Licencia Ferdi", 269 "settings.account.yourLicense": "A sua licença Ferdi",
266 "settings.app.accentColorInfo": "Escreva sua cor de destaque em um formato compatível com CSS. (Padrão: #7367f0)", 270 "settings.app.accentColorInfo": "Defina a cor de destaque em formato CSS compatível. (Padrão: #7367f0)",
267 "settings.app.buttonClearAllCache": "Limpar cache", 271 "settings.app.buttonClearAllCache": "Limpar cache",
268 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações ", 272 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações",
269 "settings.app.buttonSearchForUpdate": "Verificar se há atualizações", 273 "settings.app.buttonSearchForUpdate": "Procurar atualizações",
270 "settings.app.cacheInfo": "O cache do Ferdi está usando {size} de espaço em disco atualmente.", 274 "settings.app.cacheInfo": "De momento, a cache de Ferdi está a usar {size} de espaço de disco.",
271 "settings.app.currentVersion": "Versão atual:", 275 "settings.app.currentVersion": "Versão atual:",
272 "settings.app.form.accentColor": "Cor de destaque", 276 "settings.app.form.accentColor": "Cor de destaque",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com a configuração modo noturno do sistema operativo",
274 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", 278 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano",
275 "settings.app.form.autoLaunchOnStart": "Abrir o Ferdi ao iniciar o sistema", 279 "settings.app.form.autoLaunchOnStart": "Abrir Ferdi ao iniciar o sistema",
280 "settings.app.form.automaticUpdates": "Ativar actualizações",
276 "settings.app.form.beta": "Incluir versões beta", 281 "settings.app.form.beta": "Incluir versões beta",
277 "settings.app.form.darkMode": "Enable dark mode", 282 "settings.app.form.customTodoServer": "Servidor Personalizado de Tarefas",
283 "settings.app.form.darkMode": "Ativar modo noturno",
278 "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU", 284 "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Ativar palavra-passe",
280 "settings.app.form.enableSpellchecking": "Ativar correção ortográfica", 286 "settings.app.form.enableSpellchecking": "Ativar correção ortográfica",
281 "settings.app.form.enableSystemTray": "Exibir o Ferdi na barra de sistema", 287 "settings.app.form.enableSystemTray": "Mostrar Ferdi na barra de sistema",
282 "settings.app.form.enableTodos": "Activar Ferdi Todos", 288 "settings.app.form.enableTodos": "Ativar Tarefas Ferdi",
283 "settings.app.form.hibernate": "Activar hibernação do serviço", 289 "settings.app.form.hibernate": "Ativar hibernação do serviço",
284 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação", 290 "settings.app.form.hibernationStrategy": "Estratégia de hibernação",
285 "settings.app.form.iconSize": "Service icon size", 291 "settings.app.form.iconSize": "Tamanho de ícone de serviço",
286 "settings.app.form.inactivityLock": "Lock after inactivity", 292 "settings.app.form.inactivityLock": "Bloquear após inatividade",
287 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Ãreas de trabajo cargadas", 293 "settings.app.form.keepAllWorkspacesLoaded": "Manter todas as áreas carregadas",
288 "settings.app.form.language": "Idioma", 294 "settings.app.form.language": "Idioma",
289 "settings.app.form.lockPassword": "Senha", 295 "settings.app.form.lockPassword": "Palavra-passe",
290 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a área de sistema", 296 "settings.app.form.minimizeToSystemTray": "Minimizar Ferdi para a área de sistema",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Comportamento da barra de navegação",
292 "settings.app.form.noUpdates": "Desactivar actualizações", 298 "settings.app.form.predefinedTodoServer": "Servidor das Tarefas",
293 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações", 299 "settings.app.form.privateNotifications": "Não mostrar o conteúdo de mensagens nas notificações",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reiniciar Ferdi após reinício de sistema",
295 "settings.app.form.runInBackground": "Manter o Ferdi no fundo quando fechar a janela", 301 "settings.app.form.runInBackground": "Manter Ferdi em segundo plano ao fechar a janela",
296 "settings.app.form.scheduledDNDEnabled": "Activar Não-Perturbar agendado", 302 "settings.app.form.scheduledDNDEnabled": "Activar o agendamento Não Incomodar\"",
297 "settings.app.form.scheduledDNDEnd": "Até", 303 "settings.app.form.scheduledDNDEnd": "Para",
298 "settings.app.form.scheduledDNDStart": "Desde", 304 "settings.app.form.scheduledDNDStart": "De",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Enviar dados de telemetria",
300 "settings.app.form.server": "Servidor", 306 "settings.app.form.serviceRibbonWidth": "Largura da barra lateral",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 307 "settings.app.form.showDisabledServices": "Mostrar separadores de serviços desativados",
302 "settings.app.form.showDisabledServices": "Mostrar abas de serviços desativados",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Mostrar área arrastável na janela",
305 "settings.app.form.todoServer": "Tarefa do Servidor", 310 "settings.app.form.startMinimized": "Iniciar minimizado",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Ativar o Modo Noturno Universal",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Permite usar o TouchID para desbloquear Ferdi",
308 "settings.app.headline": "Configurações", 313 "settings.app.headline": "Configurações",
309 "settings.app.headlineAdvanced": "Avançado", 314 "settings.app.headlineAdvanced": "Avançado",
310 "settings.app.headlineAppearance": "Aparência", 315 "settings.app.headlineAppearance": "Aparência",
311 "settings.app.headlineGeneral": "Geral", 316 "settings.app.headlineGeneral": "Geral",
312 "settings.app.headlineLanguage": "Idioma", 317 "settings.app.headlineLanguage": "Idioma",
313 "settings.app.headlineUpdates": "Atualizações", 318 "settings.app.headlineUpdates": "Atualizações",
314 "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.", 319 "settings.app.hibernateInfo": "Por princípio, Ferdi manterá todos os serviços abertos e carregados em segundo plano para que estejam prontos sempre que os quiser utilizar. A hibernação do serviço suspende os serviços após um determinado tempo. Isto é útil para conservar memória RAM ou impedir que os serviços afetem o desempenho do computador.",
315 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 320 "settings.app.inactivityLockInfo": "Minutos de inatividade, após os quais Ferdi bloqueará automaticamente. Use 0 para desativar",
316 "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.", 321 "settings.app.languageDisclaimer": "As traduções oficiais são Inglês e Alemão. Todas as outras traduções são feitas pela comunidade.",
317 "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.", 322 "settings.app.lockInfo": "O bloqueio de palavra-passe permite manter as suas mensagens protegidas.\nAo usar o bloqueio de palavra-passe, será solicitado que volte a digitar a sua palavra-passe sempre que reiniciar Ferdi. Pode bloquear Ferdi usando o símbolo de bloquear no canto inferior esquerdo ou o atalho CMD/CTRL+Shift+L.",
318 "settings.app.lockedPassword": "Senha", 323 "settings.app.lockedPassword": "Palavra-passe",
319 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 324 "settings.app.lockedPasswordInfo": "Por favor certifique-se de definir uma palavra-passe que se lembre.\nSe perder esta palavra-passe, terá que reinstalar Ferdi.",
320 "settings.app.restartRequired": "As mudanças exigem reiniciar o sistema", 325 "settings.app.restartRequired": "As mudanças requerem reinício de sistema",
321 "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.", 326 "settings.app.scheduledDNDInfo": "O Não Incomodar permite definir um período de tempo em que não quer receber notificações.",
322 "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.", 327 "settings.app.scheduledDNDTimeInfo": "Horas em formato 24h. Pode definir a hora do fim antes da hora de início (p. ex. início 17:00, fim 09:00) para ativar o modo \"Não incomodar\" durante a noite.",
323 "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.", 328 "settings.app.sentryInfo": "O envio de dados de telemetria permite que encontremos erros na Ferdi - não será enviada nenhuma informação pessoal como dados da sua mensagem! Mudar esta opção requer o reinício de Ferdi.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", 329 "settings.app.subheadlineCache": "Memória cache",
325 "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.", 330 "settings.app.todoServerInfo": "Este servidor será usado para a funcionalidade \"Tarefas Ferdi\".",
326 "settings.app.subheadlineCache": "memória cache", 331 "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para o seu idioma.",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 332 "settings.app.universalDarkModeInfo": "O Modo Noturno Universal tenta gerar dinamicamente os estilos do modo noturno para serviços que não o suportem de outra forma atualmente.",
328 "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para seu idioma.", 333 "settings.app.updateStatusAvailable": "Atualização disponível, a fazer download...",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 334 "settings.app.updateStatusSearching": "Está à procura de atualizações",
330 "settings.app.updateStatusAvailable": "Atualização disponível, baixando...", 335 "settings.app.updateStatusUpToDate": "Está a utilizar a versão mais recente de Ferdi",
331 "settings.app.updateStatusSearching": "Buscando atualizações",
332 "settings.app.updateStatusUpToDate": "Você está usando a última versão do Ferdi",
333 "settings.invite.headline": "Convidar Amigos", 336 "settings.invite.headline": "Convidar Amigos",
334 "settings.navigation.account": "Conta", 337 "settings.navigation.account": "Conta",
335 "settings.navigation.availableServices": "Serviços disponíveis", 338 "settings.navigation.availableServices": "Serviços disponíveis",
336 "settings.navigation.logout": "Sair", 339 "settings.navigation.logout": "Sair",
337 "settings.navigation.settings": "Configurações", 340 "settings.navigation.settings": "Configurações",
338 "settings.navigation.supportFerdi": "Support Ferdi", 341 "settings.navigation.supportFerdi": "Apoie Ferdi",
339 "settings.navigation.team": "Administrar a equipe", 342 "settings.navigation.team": "Gerir Equipa",
340 "settings.navigation.yourServices": "Seus serviços", 343 "settings.navigation.yourServices": "Os seus serviços",
341 "settings.navigation.yourWorkspaces": "Suas áreas de trabalho", 344 "settings.navigation.yourWorkspaces": "As suas áreas de trabalho",
342 "settings.recipes.all": "Todos os serviços", 345 "settings.recipes.all": "Todos os serviços",
343 "settings.recipes.custom": "Servicios Personalizados", 346 "settings.recipes.custom": "Serviços Personalizados",
344 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", 347 "settings.recipes.customService.headline.communityRecipes": "Receitas da comunidade de terceiros",
345 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 348 "settings.recipes.customService.headline.customRecipes": "Receitas personalizadas de terceiros",
346 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 349 "settings.recipes.customService.headline.devRecipes": "As suas Receitas de Serviço de Desenvolvimento",
347 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 350 "settings.recipes.customService.intro": "Para adicionar um serviço personalizado, copie a receita do serviço para:",
348 "settings.recipes.customService.openDevDocs": "Developer Documentation", 351 "settings.recipes.customService.openDevDocs": "Documentação para programadores",
349 "settings.recipes.customService.openFolder": "Open folder", 352 "settings.recipes.customService.openFolder": "Abrir pasta",
350 "settings.recipes.headline": "Serviços disponíveis", 353 "settings.recipes.headline": "Serviços disponíveis",
351 "settings.recipes.missingService": "Sentiu falta de algum serviço?", 354 "settings.recipes.missingService": "Sente falta de algum serviço?",
352 "settings.recipes.mostPopular": "Mais populares", 355 "settings.recipes.mostPopular": "Mais populares",
353 "settings.recipes.nothingFound": "Desculpe, mas nenhum serviço corresponde a sua pesquisa.", 356 "settings.recipes.nothingFound": "Desculpe mas nenhum serviço corresponde à sua pesquisa.",
354 "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado", 357 "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado com sucesso",
355 "settings.searchService": "Procurar serviço", 358 "settings.searchService": "Procurar serviço",
356 "settings.service.error.goBack": "Voltar aos serviços", 359 "settings.service.error.goBack": "Voltar aos serviços",
357 "settings.service.error.headline": "Erro", 360 "settings.service.error.headline": "Erro",
@@ -360,122 +363,126 @@
360 "settings.service.form.availableServices": "Serviços disponíveis", 363 "settings.service.form.availableServices": "Serviços disponíveis",
361 "settings.service.form.customUrl": "Servidor personalizado", 364 "settings.service.form.customUrl": "Servidor personalizado",
362 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Ferdi Premium.", 365 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Ferdi Premium.",
363 "settings.service.form.customUrlUpgradeAccount": "Atualize a sua conta", 366 "settings.service.form.customUrlUpgradeAccount": "Faça upgrade à sua conta",
364 "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor personalizado {name}.", 367 "settings.service.form.customUrlValidationError": "Não foi possível validar servidor personalizado {name}.",
365 "settings.service.form.deleteButton": "Apagar serviço", 368 "settings.service.form.deleteButton": "Apagar serviço",
366 "settings.service.form.editServiceHeadline": "Editar {name}", 369 "settings.service.form.editServiceHeadline": "Editar {name}",
367 "settings.service.form.enableAudio": "Ativar áudio", 370 "settings.service.form.enableAudio": "Ativar áudio",
368 "settings.service.form.enableBadge": "Mostrar aviso de mensagens não lidas", 371 "settings.service.form.enableBadge": "Mostrar aviso de mensagens não lidas",
369 "settings.service.form.enableDarkMode": "Ativar modo noturno", 372 "settings.service.form.enableDarkMode": "Ativar modo noturno",
373 "settings.service.form.darkReaderBrightness": "Luminosidade",
374 "settings.service.form.darkReaderContrast": "Contraste",
375 "settings.service.form.darkReaderSepia": "Sépia",
376 "settings.service.form.headlineDarkReaderSettings": "Configurações do leitor noturno",
370 "settings.service.form.enableNotification": "Ativar notificações", 377 "settings.service.form.enableNotification": "Ativar notificações",
371 "settings.service.form.enableService": "Ativar serviço", 378 "settings.service.form.enableService": "Ativar serviço",
372 "settings.service.form.headlineBadges": "Mensagens não lidas", 379 "settings.service.form.headlineBadges": "Notificações de Mensagens não lidas",
373 "settings.service.form.headlineGeneral": "Geral", 380 "settings.service.form.headlineGeneral": "Geral",
374 "settings.service.form.headlineNotifications": "Notificações", 381 "settings.service.form.headlineNotifications": "Notificações",
375 "settings.service.form.icon": "Ãcone personalizado", 382 "settings.service.form.icon": "Ãcone personalizado",
376 "settings.service.form.iconDelete": "Excluir", 383 "settings.service.form.iconDelete": "Apagar",
377 "settings.service.form.iconUpload": "Solte sua imagem ou clique aqui", 384 "settings.service.form.iconUpload": "Arraste a sua imagem ou clíque aqui",
378 "settings.service.form.indirectMessageInfo": "Você será notificado por todas as mensagens em um canal, não apenas @usuário, @channel, @here, ...", 385 "settings.service.form.indirectMessageInfo": "Será notificado acerca de todas as mensagens de um canal, não apenas @utilizador, @canal, @aqui, ...",
379 "settings.service.form.indirectMessages": "Mostrar avisos para todas as mensagens", 386 "settings.service.form.indirectMessages": "Mostrar avisos para todas as mensagens",
380 "settings.service.form.isMutedInfo": "Quando desativado, as notificações sonoras e áudios ficarão em silêncio", 387 "settings.service.form.isMutedInfo": "Quando desativado, as notificações sonoras e áudio serão silenciados",
381 "settings.service.form.name": "Nome", 388 "settings.service.form.name": "Nome",
382 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 389 "settings.service.form.openDarkmodeCss": "Abrir darkmode.css",
383 "settings.service.form.openUserCss": "Open user.css", 390 "settings.service.form.openUserCss": "Abrir user.css",
384 "settings.service.form.openUserJs": "Open user.js", 391 "settings.service.form.openUserJs": "Abrir user.js",
385 "settings.service.form.proxy.headline": "Configurações de HTTP/HTTPS Proxy", 392 "settings.service.form.proxy.headline": "Configurações de HTTP/HTTPS Proxy",
386 "settings.service.form.proxy.host": "Proxy Host/IP", 393 "settings.service.form.proxy.host": "Servidor/IP Proxy",
387 "settings.service.form.proxy.info": "As configurações de proxy não serão sincronizadas com os servidores do Ferdi.", 394 "settings.service.form.proxy.info": "As configurações de proxy não serão sincronizadas com os servidores de Ferdi.",
388 "settings.service.form.proxy.isEnabled": "Usar o Proxy", 395 "settings.service.form.proxy.isEnabled": "Usar Proxy",
389 "settings.service.form.proxy.password": "Senha (opcional)", 396 "settings.service.form.proxy.password": "Palavra-passe (opcional)",
390 "settings.service.form.proxy.port": "Porta", 397 "settings.service.form.proxy.port": "Porta",
391 "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdi após alterar as configurações de proxy.", 398 "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdi após alterar as configurações de proxy.",
392 "settings.service.form.proxy.user": "Usuário (opcional)", 399 "settings.service.form.proxy.user": "Utilizador (opcional)",
393 "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.", 400 "settings.service.form.recipeFileInfo": "Os seus ficheiros serão inseridos na página da web para que possa personalizar os serviços da maneira que desejar. Os ficheiros são apenas armazenados localmente e não são transferidos para outros computadores usando a mesma conta.",
394 "settings.service.form.saveButton": "Salvar serviço", 401 "settings.service.form.saveButton": "Gravar serviço",
395 "settings.service.form.tabHosted": "Hospedado", 402 "settings.service.form.tabHosted": "Alojado",
396 "settings.service.form.tabOnPremise": "Auto-hospedado â­ï¸", 403 "settings.service.form.tabOnPremise": "Auto-alojado â­ï¸",
397 "settings.service.form.team": "Equipe", 404 "settings.service.form.team": "Equipa",
398 "settings.service.form.useHostedService": "Use o serviço {name} hospedado.", 405 "settings.service.form.useHostedService": "Use o serviço alojado {name}.",
399 "settings.service.form.yourServices": "Seus serviços", 406 "settings.service.form.yourServices": "Os seus serviços",
400 "settings.services.deletedInfo": "Serviço excluído", 407 "settings.services.deletedInfo": "Serviço apagado",
401 "settings.services.discoverServices": "Descobrir serviços", 408 "settings.services.discoverServices": "Descobrir serviços",
402 "settings.services.headline": "Seus serviços", 409 "settings.services.headline": "Os seus serviços",
403 "settings.services.noServicesAdded": "Você ainda não adicionou nenhum serviço.", 410 "settings.services.noServicesAdded": "Ainda não adicionou nenhum serviço.",
404 "settings.services.servicesRequestFailed": "Não foi possível carregar os seus serviços", 411 "settings.services.servicesRequestFailed": "Não foi possível carregar os seus serviços",
405 "settings.services.tooltip.isDisabled": "O serviço está desativado", 412 "settings.services.tooltip.isDisabled": "O serviço está desativado",
406 "settings.services.tooltip.isMuted": "Sem som", 413 "settings.services.tooltip.isMuted": "Sem som",
407 "settings.services.tooltip.notificationsDisabled": "Notificações desativadas", 414 "settings.services.tooltip.notificationsDisabled": "Notificações desativadas",
408 "settings.services.updatedInfo": "Suas alterações foram gravadas", 415 "settings.services.updatedInfo": "As suas alterações foram gravadas",
409 "settings.supportFerdi.github": "Star on GitHub", 416 "settings.supportFerdi.github": "Adicione uma estrela no Github",
410 "settings.supportFerdi.headline": "Support Ferdi", 417 "settings.supportFerdi.headline": "Apoie Ferdi",
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Apoie o nosso Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Diga aos seus amigos",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Gosta de Ferdi? Espalhe o amor!",
414 "settings.team.contentHeadline": "Ferdi para Equipes", 421 "settings.team.contentHeadline": "Gestão de Equipas Franz",
415 "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.", 422 "settings.team.copy": "A Gestão de Equipas Franz permite gerir as assinaturas Franz para múltiplos utilizadores. Por favor, lembre-se que ter uma assinatura Franz Premium não lhe dará nenhuma vantagem ao usar Ferdi: a única razão pela qual ainda tem acesso à Gestão de Equipas é para que possa gerir as suas equipas antigas e para que não perca nenhuma funcionalidade na gestão da sua conta.",
416 "settings.team.headline": "Equipe", 423 "settings.team.headline": "Equipa",
417 "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.", 424 "settings.team.intro": "Atualmente não tem acesso ao Gestor de Equipas porque está a usar os Servidores Franz.",
418 "settings.team.manageAction": "Gerencie sua Equipe no getferdi.com", 425 "settings.team.manageAction": "Faça a gestão da sua Equipa em meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Equipas não estão disponíveis",
420 "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.", 427 "settings.team.teamsUnavailableInfo": "De momento, Equipas estão disponíveis apenas quando usar o Servidor Franz e após pagar o Franz Profissional. Por favor, altere o seu servidor para https://api.franzinfra.com para usar equipas.",
421 "settings.team.upgradeAction": "Atualize a sua conta para versão paga", 428 "settings.team.upgradeAction": "Faça upgrade à sua conta",
422 "settings.user.form.accountType.company": "Empresa", 429 "settings.user.form.accountType.company": "Empresa",
423 "settings.user.form.accountType.individual": "Pessoal", 430 "settings.user.form.accountType.individual": "Pessoal",
424 "settings.user.form.accountType.label": "Tipo de conta", 431 "settings.user.form.accountType.label": "Tipo de conta",
425 "settings.user.form.accountType.non-profit": "Sem fins lucrativos", 432 "settings.user.form.accountType.non-profit": "Sem fins lucrativos",
426 "settings.user.form.currentPassword": "Senha atual", 433 "settings.user.form.currentPassword": "Palavra-passe atual",
427 "settings.user.form.email": "E-mail", 434 "settings.user.form.email": "E-mail",
428 "settings.user.form.firstname": "Nome", 435 "settings.user.form.firstname": "Nome",
429 "settings.user.form.lastname": "Sobrenome", 436 "settings.user.form.lastname": "Apelido",
430 "settings.user.form.newPassword": "Nova senha", 437 "settings.user.form.newPassword": "Nova palavra-passe",
431 "settings.workspace.add.form.name": "Nome", 438 "settings.workspace.add.form.name": "Nome",
432 "settings.workspace.add.form.submitButton": "Criar workspace", 439 "settings.workspace.add.form.submitButton": "Criar área de trabalho",
433 "settings.workspace.form.buttonDelete": "Apagar workspace", 440 "settings.workspace.form.buttonDelete": "Apagar área de trabalho",
434 "settings.workspace.form.buttonSave": "Salvar workspace", 441 "settings.workspace.form.buttonSave": "Gravar área de trabalho",
435 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 442 "settings.workspace.form.keepLoaded": "Manter esta área de trabalho carregada*",
436 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 443 "settings.workspace.form.keepLoadedInfo": "*Esta opção será substituída pela opção global de \"Manter todos as áreas de trabalho carregadas\".",
437 "settings.workspace.form.name": "Nome", 444 "settings.workspace.form.name": "Nome",
438 "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços neste Workspace", 445 "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços nesta área de trabalho",
439 "settings.workspace.form.yourWorkspaces": "Suas áreas de trabalho", 446 "settings.workspace.form.yourWorkspaces": "As suas áreas de trabalho",
440 "settings.workspaces.deletedInfo": "Ãrea de trabalho deletada", 447 "settings.workspaces.deletedInfo": "Ãrea de trabalho foi apagada",
441 "settings.workspaces.headline": "Suas áreas de trabalho", 448 "settings.workspaces.headline": "As suas áreas de trabalho",
442 "settings.workspaces.noWorkspacesAdded": "Você não possui nenhuma área de trabalho adicionadas anteriormente.", 449 "settings.workspaces.noWorkspacesAdded": "Você não possui nenhuma área de trabalho adicionadas anteriormente.",
443 "settings.workspaces.tryReloadWorkspaces": "Tente novamente", 450 "settings.workspaces.tryReloadWorkspaces": "Tente novamente",
444 "settings.workspaces.updatedInfo": "Suas alterações foram gravadas", 451 "settings.workspaces.updatedInfo": "As suas alterações foram gravadas",
445 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo Workspaces do Ferdi", 452 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Apresentando áreas de trabalho Ferdi",
446 "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.", 453 "settings.workspaces.workspaceFeatureInfo": "As áreas de trabalho do Ferdi permitem que se concentre no que realmente é importante. Configure diferentes conjuntos de serviços e mude-os facilmente e a qualquer momento. Você decide quais os serviços que precisa e onde colocá-los, para que o possamos ajudar a estar no seu melhor. - Ou desligar do trabalho quando quiser.",
447 "settings.workspaces.workspacesRequestFailed": "Não foi possível carregar suas áreas de trabalho", 454 "settings.workspaces.workspacesRequestFailed": "Não foi possível carregar suas áreas de trabalho",
448 "sidebar.addNewService": "Adicionar novo serviço", 455 "sidebar.addNewService": "Adicionar novo serviço",
449 "sidebar.closeTodosDrawer": "Close Ferdi Todos", 456 "sidebar.closeTodosDrawer": "Fechar Tarefas Ferdi",
450 "sidebar.closeWorkspaceDrawer": "Fechar menu da área de trabalho", 457 "sidebar.closeWorkspaceDrawer": "Fechar barra da área de trabalho",
451 "sidebar.lockFerdi": "Bloquear Ferdi", 458 "sidebar.lockFerdi": "Bloquear Ferdi",
452 "sidebar.muteApp": "Desativar notificações e áudio", 459 "sidebar.muteApp": "Desativar notificações e áudio",
453 "sidebar.openTodosDrawer": "Open Ferdi Todos", 460 "sidebar.openTodosDrawer": "Abrir Tarefas Ferdi",
454 "sidebar.openWorkspaceDrawer": "Abrir o menu da área de trabalho", 461 "sidebar.openWorkspaceDrawer": "Abrir a barra lateral da área de trabalho",
455 "sidebar.settings": "Configurações", 462 "sidebar.settings": "Configurações",
456 "sidebar.unmuteApp": "Ativar notificações e áudio", 463 "sidebar.unmuteApp": "Ativar notificações e áudio",
457 "signup.email.label": "Endereço de E-mail", 464 "signup.email.label": "Endereço de E-mail",
458 "signup.emailDuplicate": "Já existe um usuário com este endereço de e-mail", 465 "signup.emailDuplicate": "Já existe um utilizador com este endereço de e-mail",
459 "signup.firstname.label": "Nome", 466 "signup.firstname.label": "Nome",
460 "signup.headline": "Cadastrar-se", 467 "signup.headline": "Entrar",
461 "signup.lastname.label": "Sobrenome", 468 "signup.lastname.label": "Apelido",
462 "signup.legal.info": "Ao criar uma conta Ferdi, você aceita os ", 469 "signup.legal.info": "Ao criar uma conta Ferdi, você aceita os",
463 "signup.legal.privacy": "Declaração de Privacidade ", 470 "signup.legal.privacy": "Declaração de Privacidade",
464 "signup.legal.terms": "Termos de serviço", 471 "signup.legal.terms": "Termos de serviço",
465 "signup.link.login": "Já tem uma conta?", 472 "signup.link.login": "Já tem uma conta, entrar?",
466 "signup.password.label": "Senha", 473 "signup.password.label": "Palavra-passe",
467 "signup.submit.label": "Criar uma conta", 474 "signup.submit.label": "Criar conta",
468 "subscription.bestValue": "Best value", 475 "subscription.bestValue": "Best value",
469 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 476 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
470 "subscription.cta.allOptions": "See all options", 477 "subscription.cta.allOptions": "Ver todas as opções",
471 "subscription.cta.choosePlan": "Choose your plan", 478 "subscription.cta.choosePlan": "Escolha o seu plano",
472 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", 479 "subscription.includedProFeatures": "O plano Ferdi Professional inclui:",
473 "subscription.interval.per": "per {interval}", 480 "subscription.interval.per": "por {interval}",
474 "subscription.interval.perMonth": "per month", 481 "subscription.interval.perMonth": "por mês",
475 "subscription.interval.perMonthPerUser": "por mês e por utilizador", 482 "subscription.interval.perMonthPerUser": "por mês e por utilizador",
476 "subscription.planItem.upgradeAccount": "Actualizar cuenta", 483 "subscription.planItem.upgradeAccount": "Faça upgrade da conta",
477 "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:", 484 "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:",
478 "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ê!", 485 "subscription.teaser.intro": "Ferdi 5 vem com uma grande variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas incluídas. Confira os nossos novos planos e encontre o que melhor serve as suas necessidades!",
479 "subscriptionPopup.buttonCancel": "Cancelar", 486 "subscriptionPopup.buttonCancel": "Cancelar",
480 "subscriptionPopup.buttonDone": "Feito", 487 "subscriptionPopup.buttonDone": "Feito",
481 "tabs.item.deleteService": "Apagar serviço", 488 "tabs.item.deleteService": "Apagar serviço",
@@ -487,27 +494,27 @@
487 "tabs.item.enableNotification": "Ativar notificações", 494 "tabs.item.enableNotification": "Ativar notificações",
488 "tabs.item.enableService": "Ativar serviço", 495 "tabs.item.enableService": "Ativar serviço",
489 "tabs.item.reload": "Actualizar", 496 "tabs.item.reload": "Actualizar",
490 "validation.email": "inválido", 497 "validation.email": "{field} é inválido",
491 "validation.minLength": "{campo} deve ter pelo menos {comprimento} mais caracteres ", 498 "validation.minLength": "{field} deve ter pelo menos {length} caracteres",
492 "validation.oneRequired": "Necessário pelo menos um", 499 "validation.oneRequired": "É necessário pelo menos um",
493 "validation.required": "{campo} obrigatório", 500 "validation.required": "{field} é obrigatório",
494 "validation.url": "{campo} essa URL não é válida", 501 "validation.url": "{field} não é um URL válido",
495 "webControls.back": "Anterior", 502 "webControls.back": "Anterior",
496 "webControls.forward": "Seguinte", 503 "webControls.forward": "Seguinte",
497 "webControls.goHome": "Início", 504 "webControls.goHome": "Início",
498 "webControls.openInBrowser": "Abrir no navegador", 505 "webControls.openInBrowser": "Abrir no Browser",
499 "webControls.reload": "Actualizar", 506 "webControls.reload": "Actualizar",
500 "welcome.loginButton": "Entrar na sua conta", 507 "welcome.loginButton": "Entrar na sua conta",
501 "welcome.signupButton": "Criar uma conta gratuita", 508 "welcome.signupButton": "Criar uma conta gratuita",
502 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar uma nova área de trabalho", 509 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar nova área de trabalho",
503 "workspaceDrawer.allServices": "Todos os serviços", 510 "workspaceDrawer.allServices": "Todos os serviços",
504 "workspaceDrawer.headline": "Ãreas de trabalho", 511 "workspaceDrawer.headline": "Ãreas de trabalho",
505 "workspaceDrawer.item.contextMenuEdit": "editar", 512 "workspaceDrawer.item.contextMenuEdit": "editar",
506 "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço adicionado anteriormente", 513 "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço adicionado",
507 "workspaceDrawer.premiumCtaButtonLabel": "Crie sua primeira área de trabalho", 514 "workspaceDrawer.premiumCtaButtonLabel": "Crie a sua primeira área de trabalho",
508 "workspaceDrawer.proFeatureBadge": "Vantagem paga oferecida aos assinantes", 515 "workspaceDrawer.proFeatureBadge": "Funcionalidade Premium",
509 "workspaceDrawer.reactivatePremiumAccountLabel": "Reative sua conta paga", 516 "workspaceDrawer.reactivatePremiumAccountLabel": "Reative conta premium",
510 "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>", 517 "workspaceDrawer.workspaceFeatureInfo": "<p>As áreas de trabalho do Ferdi permitem que se concentre no que realmente é importante. Configure diferentes conjuntos de serviços e mude-os facilmente e a qualquer momento.</p><p>Você decide quais os serviços que precisa e onde colocá-los, para que o possamos ajudar a estar no seu melhor. - Ou desligar do trabalho quando quiser.</p>",
511 "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho", 518 "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho",
512 "workspaces.switchingIndicator.switchingTo": "Mudando para" 519 "workspaces.switchingIndicator.switchingTo": "A mudar para"
513} 520}
diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/ro.json
+++ b/src/i18n/locales/ro.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 2bd7d3ebf..63eee53b5 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -1,6 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "Перезагрузить", 2 "app.errorHandler.action": "Перезагрузить",
3 "app.errorHandler.headline": "Что-то пошло не так", 3 "app.errorHandler.headline": "Что-то пошло не так",
4 "changeserver.headline": "Изменить Ñервер",
5 "changeserver.label": "Server",
6 "changeserver.submit": "ПринÑÑ‚ÑŒ",
4 "feature.announcements.changelog.headline": "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² верÑии Ferdi {version}", 7 "feature.announcements.changelog.headline": "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² верÑии Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "ПожалуйÑта приобретите лицензию Ferdi Supporter чтобы убрать ожидание", 9 "feature.delayApp.headline": "ПожалуйÑта приобретите лицензию Ferdi Supporter чтобы убрать ожидание",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Перезагрузить Ferdi", 157 "menu.view.reloadFranz": "Перезагрузить Ferdi",
155 "menu.view.reloadService": "ПерезапуÑтить ÑервиÑ", 158 "menu.view.reloadService": "ПерезапуÑтить ÑервиÑ",
156 "menu.view.resetZoom": "ФактичеÑкий размер", 159 "menu.view.resetZoom": "ФактичеÑкий размер",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Показать инÑтрументы разработчика", 161 "menu.view.toggleDevTools": "Показать инÑтрументы разработчика",
158 "menu.view.toggleFullScreen": "ПереключитьÑÑ Ð½Ð° полный Ñкран", 162 "menu.view.toggleFullScreen": "ПереключитьÑÑ Ð½Ð° полный Ñкран",
159 "menu.view.toggleServiceDevTools": "Показать инÑтрументы разработчика ÑервиÑа", 163 "menu.view.toggleServiceDevTools": "Показать инÑтрументы разработчика ÑервиÑа",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "КÑш занимает {size} на диÑке.", 274 "settings.app.cacheInfo": "КÑш занимает {size} на диÑке.",
271 "settings.app.currentVersion": "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ:", 275 "settings.app.currentVersion": "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Открывать в фоне", 278 "settings.app.form.autoLaunchInBackground": "Открывать в фоне",
275 "settings.app.form.autoLaunchOnStart": "ЗапуÑкать Ferdi при Ñтарте", 279 "settings.app.form.autoLaunchOnStart": "ЗапуÑкать Ferdi при Ñтарте",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±ÐµÑ‚Ð° верÑии", 281 "settings.app.form.beta": "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±ÐµÑ‚Ð° верÑии",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Включить уÑкорение GPU", 284 "settings.app.form.enableGPUAcceleration": "Включить уÑкорение GPU",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Пароль", 295 "settings.app.form.lockPassword": "Пароль",
290 "settings.app.form.minimizeToSystemTray": "Сворачивать Ferdi в ÑиÑтемный трей", 296 "settings.app.form.minimizeToSystemTray": "Сворачивать Ferdi в ÑиÑтемный трей",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "ОÑтавлÑÑ‚ÑŒ Ferdi в фоне при закрытии окна", 301 "settings.app.form.runInBackground": "ОÑтавлÑÑ‚ÑŒ Ferdi в фоне при закрытии окна",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Показывать вкладки отключённых Ñлужб", 307 "settings.app.form.showDisabledServices": "Показывать вкладки отключённых Ñлужб",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Показывать значок непрочитанного ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отключённых уведомлениÑÑ…", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Показывать значок непрочитанного ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отключённых уведомлениÑÑ…",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "ÐаÑтройки", 313 "settings.app.headline": "ÐаÑтройки",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "КÑш", 329 "settings.app.subheadlineCache": "КÑш",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Помогите нам перевеÑти Ferdi на ваш Ñзык.", 331 "settings.app.translationHelp": "Помогите нам перевеÑти Ferdi на ваш Ñзык.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "ДоÑтупно обновление, идёт загрузка...", 333 "settings.app.updateStatusAvailable": "ДоÑтупно обновление, идёт загрузка...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Включить звук", 370 "settings.service.form.enableAudio": "Включить звук",
368 "settings.service.form.enableBadge": "Показывать иконку непрочитанных Ñообщений", 371 "settings.service.form.enableBadge": "Показывать иконку непрочитанных Ñообщений",
369 "settings.service.form.enableDarkMode": "Включить Тёмный режим", 372 "settings.service.form.enableDarkMode": "Включить Тёмный режим",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Включить уведомлениÑ", 377 "settings.service.form.enableNotification": "Включить уведомлениÑ",
371 "settings.service.form.enableService": "Включить ÑервиÑ", 378 "settings.service.form.enableService": "Включить ÑервиÑ",
372 "settings.service.form.headlineBadges": "Значки непрочитанных Ñообщений", 379 "settings.service.form.headlineBadges": "Значки непрочитанных Ñообщений",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi Ð´Ð»Ñ ÐšÐ¾Ð¼Ð°Ð½Ð´", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "Ferdi Ð´Ð»Ñ ÐšÐ¾Ð¼Ð°Ð½Ð´ позволÑет приглаÑить коллег в вашу команду, отправив им емайл Ñ Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸ÐµÐ¼, а также управлÑÑ‚ÑŒ их подпиÑками в наÑтройках вашего аккаунта. Ðе тратьте Ð²Ñ€ÐµÐ¼Ñ Ð½Ð° наÑтройку подпиÑок Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ члена команды индивидуально, забудьте о многочиÑленных платежках и разных циклах оплаты - одна команда Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñеми!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Команда", 423 "settings.team.headline": "Команда",
417 "settings.team.intro": "Ð’Ñ‹ и ваша команда иÑпльзуете Ferdi? Ð’Ñ‹ теперь можете управлÑÑ‚ÑŒ Премиум подпиÑками любого количеÑтва коллег, друзей и членов Ñемьи, из одного и того же аккаунта.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "УправлÑйте вашей Командой на getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Улучшить ваш аккаунт", 428 "settings.team.upgradeAction": "Улучшить ваш аккаунт",
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json
index f347a8341..eff949a7a 100644
--- a/src/i18n/locales/sk.json
+++ b/src/i18n/locales/sk.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Odoslať",
4 "feature.announcements.changelog.headline": "Zmeny vo Ferdi {version}", 7 "feature.announcements.changelog.headline": "Zmeny vo Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Prosím, kúp si licenciu Ferdi Supporter a nebudeÅ¡ musieÅ¥ ÄakaÅ¥", 9 "feature.delayApp.headline": "Prosím, kúp si licenciu Ferdi Supporter a nebudeÅ¡ musieÅ¥ ÄakaÅ¥",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Obnoviť Ferdi", 157 "menu.view.reloadFranz": "Obnoviť Ferdi",
155 "menu.view.reloadService": "Obnoviť službu", 158 "menu.view.reloadService": "Obnoviť službu",
156 "menu.view.resetZoom": "Pôvodná veľkosť", 159 "menu.view.resetZoom": "Pôvodná veľkosť",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Prepnúť vývojárske nástroje", 161 "menu.view.toggleDevTools": "Prepnúť vývojárske nástroje",
158 "menu.view.toggleFullScreen": "Prepnúť na celú obrazovku", 162 "menu.view.toggleFullScreen": "Prepnúť na celú obrazovku",
159 "menu.view.toggleServiceDevTools": "Prepnúť vývojárske nástroje služby", 163 "menu.view.toggleServiceDevTools": "Prepnúť vývojárske nástroje služby",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Vyrovnávacia pamäť Ferdi momentálne používa {size} miesta na disku.", 274 "settings.app.cacheInfo": "Vyrovnávacia pamäť Ferdi momentálne používa {size} miesta na disku.",
271 "settings.app.currentVersion": "SúÄasná verzia:", 275 "settings.app.currentVersion": "SúÄasná verzia:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Otvoriť na pozadí", 278 "settings.app.form.autoLaunchInBackground": "Otvoriť na pozadí",
275 "settings.app.form.autoLaunchOnStart": "Spustiť Ferdi pri štarte", 279 "settings.app.form.autoLaunchOnStart": "Spustiť Ferdi pri štarte",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Vrátane beta verzií", 281 "settings.app.form.beta": "Vrátane beta verzií",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Zapnúť GPU zrýchlenie", 284 "settings.app.form.enableGPUAcceleration": "Zapnúť GPU zrýchlenie",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimalizovať Ferdi do systémovej lišty", 296 "settings.app.form.minimizeToSystemTray": "Minimalizovať Ferdi do systémovej lišty",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Po zatvorení okna ponechať Ferdi spustený na pozadí", 301 "settings.app.form.runInBackground": "Po zatvorení okna ponechať Ferdi spustený na pozadí",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Zobraziť záložky vypnutých služieb", 307 "settings.app.form.showDisabledServices": "Zobraziť záložky vypnutých služieb",
303 "settings.app.form.showMessagesBadgesWhenMuted": "ZobraziÅ¥ symbol pre nepreÄítané správy, keÄ sú vypnuté upozornenia", 308 "settings.app.form.showMessagesBadgesWhenMuted": "ZobraziÅ¥ symbol pre nepreÄítané správy, keÄ sú vypnuté upozornenia",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Nastavenia", 313 "settings.app.headline": "Nastavenia",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Vyrovnávacia pamäť", 329 "settings.app.subheadlineCache": "Vyrovnávacia pamäť",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Pomôžte nám preložiť Ferdi do svojho jazyka.", 331 "settings.app.translationHelp": "Pomôžte nám preložiť Ferdi do svojho jazyka.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Je dostupná aktualizácia, sťahuje sa...", 333 "settings.app.updateStatusAvailable": "Je dostupná aktualizácia, sťahuje sa...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Zapnúť zvuk", 370 "settings.service.form.enableAudio": "Zapnúť zvuk",
368 "settings.service.form.enableBadge": "ZobraziÅ¥ symboly nepreÄítaných správ", 371 "settings.service.form.enableBadge": "ZobraziÅ¥ symboly nepreÄítaných správ",
369 "settings.service.form.enableDarkMode": "Zapnúť Dark Mode", 372 "settings.service.form.enableDarkMode": "Zapnúť Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Povoliť oznámenia", 377 "settings.service.form.enableNotification": "Povoliť oznámenia",
371 "settings.service.form.enableService": "Povoliť službu", 378 "settings.service.form.enableService": "Povoliť službu",
372 "settings.service.form.headlineBadges": "Symboly nepreÄítaných správ", 379 "settings.service.form.headlineBadges": "Symboly nepreÄítaných správ",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi pre tímy", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "settings.team.copy": "Ferdi for Teams vám dáva možnosÅ¥ pozvaÅ¥ spolupracovníkov do vášho tímu odoslaním e-mailových pozvánok a spravovaním ich odberov v preferenciách vášho úÄtu. Nestrácajte Äas vytváraním predplatného pre každého Älena tímu jednotlivo, zabudnite na viac faktúr a rôzne fakturaÄné cykly - jeden tím bude pre vÅ¡etkých!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Tím", 423 "settings.team.headline": "Tím",
417 "settings.team.intro": "Vy a váš tím používate Ferdi? Teraz môžete spravovaÅ¥ prémiové predplatné pre toľko kolegov, priateľov alebo rodinných prísluÅ¡níkov, koľko chcete, vÅ¡etko z jedného úÄtu.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Spravujte svoj tím na adrese getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "VylepÅ¡ite svoj úÄet", 428 "settings.team.upgradeAction": "VylepÅ¡ite svoj úÄet",
diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/sl.json
+++ b/src/i18n/locales/sl.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json
index 96787a6da..f2e268058 100644
--- a/src/i18n/locales/sr.json
+++ b/src/i18n/locales/sr.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Pošalji",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Поново учитај Франз", 157 "menu.view.reloadFranz": "Поново учитај Франз",
155 "menu.view.reloadService": "Поново учирај уÑлугу", 158 "menu.view.reloadService": "Поново учирај уÑлугу",
156 "menu.view.resetZoom": "Стварна величина", 159 "menu.view.resetZoom": "Стварна величина",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Промени алатке за развој", 161 "menu.view.toggleDevTools": "Промени алатке за развој",
158 "menu.view.toggleFullScreen": "Преко целог екрана", 162 "menu.view.toggleFullScreen": "Преко целог екрана",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Франз кеш тренутно кориÑти {size} проÑтора на диÑку.", 274 "settings.app.cacheInfo": "Франз кеш тренутно кориÑти {size} проÑтора на диÑку.",
271 "settings.app.currentVersion": "Trenutna verzija:", 275 "settings.app.currentVersion": "Trenutna verzija:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Otvori u pozadini", 278 "settings.app.form.autoLaunchInBackground": "Otvori u pozadini",
275 "settings.app.form.autoLaunchOnStart": "Pokreni Ferdi sa sistemom", 279 "settings.app.form.autoLaunchOnStart": "Pokreni Ferdi sa sistemom",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Obuhvati i beta verzije", 281 "settings.app.form.beta": "Obuhvati i beta verzije",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Омогући убрзање графичке јединице", 284 "settings.app.form.enableGPUAcceleration": "Омогући убрзање графичке јединице",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku", 296 "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren", 301 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Prikaži ploÄe s onemogućenim servisima", 307 "settings.app.form.showDisabledServices": "Prikaži ploÄe s onemogućenim servisima",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Покажи беџ за непрочитане поруке када Ñу обавештења онемогућена", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Покажи беџ за непрочитане поруке када Ñу обавештења онемогућена",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Postavke", 313 "settings.app.headline": "Postavke",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Кеш", 329 "settings.app.subheadlineCache": "Кеш",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ", 331 "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Nadogradnja dostupna, preuzimanje...", 333 "settings.app.updateStatusAvailable": "Nadogradnja dostupna, preuzimanje...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Omogućite zvuk", 370 "settings.service.form.enableAudio": "Omogućite zvuk",
368 "settings.service.form.enableBadge": "Покажи беџеве за непрочитане поруке", 371 "settings.service.form.enableBadge": "Покажи беџеве за непрочитане поруке",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Omogućite obavijesti", 377 "settings.service.form.enableNotification": "Omogućite obavijesti",
371 "settings.service.form.enableService": "Omogućite usluge", 378 "settings.service.form.enableService": "Omogućite usluge",
372 "settings.service.form.headlineBadges": "Беџеви за непрочитане поруке", 379 "settings.service.form.headlineBadges": "Беџеви за непрочитане поруке",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Tim", 423 "settings.team.headline": "Tim",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json
index eedd34706..0d3e18a27 100644
--- a/src/i18n/locales/sv.json
+++ b/src/i18n/locales/sv.json
@@ -1,15 +1,18 @@
1{ 1{
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Ladda om",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "NÃ¥gonting gick snett",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "changeserver.headline": "Byt server",
5 "feature.debugger.title": "Publish debugging information", 5 "changeserver.label": "Server",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "changeserver.submit": "Skicka",
7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.announcements.changelog.headline": "Ändringar i Ferdi {version}",
8 "feature.debugger.title": "Skicka felsökningsinformation",
9 "feature.delayApp.headline": "Vänligen köp en Ferdi Supporter-licens för att slippa vänta",
10 "feature.delayApp.text": "Ferdi återupptas om {seconds} sekunder.",
8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 11 "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", 12 "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", 13 "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", 14 "feature.delayApp.upgrade.action": "Skaffa en Ferdi Supporter-licens",
12 "feature.delayApp.upgrade.actionShort": "Upgrade account", 15 "feature.delayApp.upgrade.actionShort": "Uppgradera konto",
13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", 16 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
14 "feature.planSelection.cta.stayOnFree": "Stay on Free", 17 "feature.planSelection.cta.stayOnFree": "Stay on Free",
15 "feature.planSelection.cta.trial": "Start my free 14-days Trial", 18 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
@@ -26,27 +29,27 @@
26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 29 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 30 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 31 "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.", 32 "feature.publishDebugInfo.error": "Ett fel uppstod när felsökningsinformationen skulle skickas. Försök igen senare eller se konsolen för mer 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", 33 "feature.publishDebugInfo.info": "Genom att skicka oss din felsökningsinformation hjälper du oss att hitta problem och fel i Ferdi. Genom att skicka din felsökningsinformation godkänner du Ferdi-debuggerns sekretesspolicy och användarvillkor",
31 "feature.publishDebugInfo.privacy": "Privacy policy", 34 "feature.publishDebugInfo.privacy": "Integritetspolicy",
32 "feature.publishDebugInfo.publish": "Accept and publish", 35 "feature.publishDebugInfo.publish": "Godkänn och skicka",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 36 "feature.publishDebugInfo.published": "Din felsökningslogg har skickats och finns nu tillgänglig på",
34 "feature.publishDebugInfo.terms": "Terms of service", 37 "feature.publishDebugInfo.terms": "Användarvillkor",
35 "feature.publishDebugInfo.title": "Publish debug information", 38 "feature.publishDebugInfo.title": "Skicka felsökningsinformation",
36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 39 "feature.quickSwitch.info": "Välj en tjänst med TAB, ↑ and ↓. Öppna en tjänst med ENTER.",
37 "feature.quickSwitch.search": "Search...", 40 "feature.quickSwitch.search": "Sök...",
38 "feature.quickSwitch.title": "QuickSwitch", 41 "feature.quickSwitch.title": "Snabbväxling",
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.", 42 "feature.serviceLimit.limitReached": "Du har lagt till {amount} av {limit} tjänster som ingår i ditt abonnemang. Uppgradera ditt konto för att lägga till fler tjänster.",
40 "feature.shareFranz.action.email": "Send as email", 43 "feature.shareFranz.action.email": "Skicka som e-post",
41 "feature.shareFranz.action.facebook": "Share on Facebook", 44 "feature.shareFranz.action.facebook": "Dela på Facebook",
42 "feature.shareFranz.action.twitter": "Share on Twitter", 45 "feature.shareFranz.action.twitter": "Dela på Twitter",
43 "feature.shareFranz.headline": "Ferdi is better together!", 46 "feature.shareFranz.headline": "Ferdi är bättre tillsammans!",
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", 47 "feature.shareFranz.shareText.email": "Jag har lagt till {count} tjänster till Ferdi! Skaffa en gratis app för WhatsApp, Messenger, Slack, Skype och många fler på 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", 48 "feature.shareFranz.shareText.twitter": "Jag har lagt till {count} tjänster till Ferdi! Skaffa en gratis app för WhatsApp, Messenger, Slack, Skype och många fler på 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.", 49 "feature.shareFranz.text": "Berätta för dina vänner och kollegor hur grymt Ferdi är och hjälp oss att sprida ordet.",
47 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!", 50 "feature.todos.premium.info": "Ferdi Todos är tillgängligt för premiumanvändare nu!",
48 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", 51 "feature.todos.premium.rollout": "Alla andra får lov att vänta lite längre.",
49 "feature.todos.premium.upgrade": "Upgrade Account", 52 "feature.todos.premium.upgrade": "Uppgradera konto",
50 "feature.trialStatusBar.cta": "Upgrade now", 53 "feature.trialStatusBar.cta": "Upgrade now",
51 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", 54 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 55 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
@@ -54,151 +57,152 @@
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.", 57 "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", 58 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
56 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", 59 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.",
57 "global.api.unhealthy": "Can't connect to Ferdi online services", 60 "global.api.unhealthy": "Kan inte ansluta till Ferdis onlinetjänster",
58 "global.franzProRequired": "Ferdi Professional Required", 61 "global.franzProRequired": "Ferdi Professional krävs",
59 "global.notConnectedToTheInternet": "You are not connected to the internet.", 62 "global.notConnectedToTheInternet": "Du är inte ansluten till Internet.",
60 "global.spellchecker.useDefault": "Use System Default ({default})", 63 "global.spellchecker.useDefault": "Använd systemstandard ({default})",
61 "global.spellchecking.autodetect": "Detect language automatically", 64 "global.spellchecking.autodetect": "Identifiera språk automatiskt",
62 "global.spellchecking.autodetect.short": "Automatic", 65 "global.spellchecking.autodetect.short": "Automatisk",
63 "global.spellchecking.language": "Spell checking language", 66 "global.spellchecking.language": "Rättstavningsspråk",
64 "global.upgradeButton.upgradeToPro": "Upgrade to Ferdi Professional", 67 "global.upgradeButton.upgradeToPro": "Uppgradera till Ferdi Professional",
65 "import.headline": "Import your Ferdi 4 services", 68 "import.headline": "Importera dina Ferdi 4-tjänster",
66 "import.notSupportedHeadline": "Services not yet supported in Ferdi 5", 69 "import.notSupportedHeadline": "Tjänster som ännu inte stöds i Ferdi 5",
67 "import.skip.label": "I want to add services manually", 70 "import.skip.label": "Jag vill lägga till tjänster manuellt",
68 "import.submit.label": "Import services", 71 "import.submit.label": "Importera tjänster",
69 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 72 "infobar.authRequestFailed": "Det uppstod fel vid försök då en autentiserad begäran utfördes. Prova att logga ut och in igen om felet kvarstår.",
70 "infobar.buttonChangelog": "What is new?", 73 "infobar.buttonChangelog": "Vad nytt har hänt?",
71 "infobar.buttonInstallUpdate": "Restart & install update", 74 "infobar.buttonInstallUpdate": "Starta om & installera uppdatering",
72 "infobar.buttonReloadServices": "Reload services", 75 "infobar.buttonReloadServices": "Ladda om tjänster",
73 "infobar.requiredRequestsFailed": "Could not load services and user information", 76 "infobar.requiredRequestsFailed": "Kunde inte ladda tjänster och användarinformation",
74 "infobar.servicesUpdated": "Your services have been updated.", 77 "infobar.servicesUpdated": "Dina tjänster har uppdaterats.",
75 "infobar.trialActivated": "Your trial was successfully activated. Happy messaging!", 78 "infobar.trialActivated": "Your trial was successfully activated. Happy messaging!",
76 "infobar.updateAvailable": "A new update for Ferdi is available.", 79 "infobar.updateAvailable": "En ny uppdatering för Ferdi finns tillgänglig.",
77 "invite.email.label": "Email address", 80 "invite.email.label": "E-postadress",
78 "invite.headline.friends": "Invite 3 of your friends or colleagues", 81 "invite.headline.friends": "Bjud in 3 av dina vänner eller kollegor",
79 "invite.name.label": "Name", 82 "invite.name.label": "Namn",
80 "invite.skip.label": "I want to do this later", 83 "invite.skip.label": "Jag gör det senare",
81 "invite.submit.label": "Send invites", 84 "invite.submit.label": "Skicka inbjudningar",
82 "invite.successInfo": "Invitations sent successfully", 85 "invite.successInfo": "Inbjudningar har skickats",
83 "locked.headline": "Locked", 86 "locked.headline": "LÃ¥st",
84 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 87 "locked.info": "Ferdi är för närvarande låst. Lås upp Ferdi med ditt lösenord för att se dina meddelanden.",
85 "locked.invalidCredentials": "Password invalid", 88 "locked.invalidCredentials": "Felaktigt lösenord",
86 "locked.password.label": "Password", 89 "locked.password.label": "Lösenord",
87 "locked.submit.label": "Unlock", 90 "locked.submit.label": "LÃ¥s upp",
88 "locked.touchId": "Unlock with Touch ID", 91 "locked.touchId": "LÃ¥s upp med Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID", 92 "locked.touchIdPrompt": "lås upp med Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password", 93 "locked.unlockWithPassword": "Lås upp med lösenord",
91 "login.changeServer": "Change server", 94 "login.changeServer": "Byt server",
92 "login.customServerQuestion": "Using a custom Ferdi server?", 95 "login.customServerQuestion": "Using a custom Ferdi server?",
93 "login.customServerSuggestion": "Try importing your Franz account", 96 "login.customServerSuggestion": "Try importing your Franz account",
94 "login.email.label": "Email address", 97 "login.email.label": "E-postadress",
95 "login.headline": "Sign in", 98 "login.headline": "Logga in",
96 "login.invalidCredentials": "Email or password not valid", 99 "login.invalidCredentials": "E-post eller lösenord är felaktigt",
97 "login.link.password": "Reset password", 100 "login.link.password": "Återställ lösenord",
98 "login.link.signup": "Create a free account", 101 "login.link.signup": "Skapa ett gratis konto",
99 "login.password.label": "Password", 102 "login.password.label": "Lösenord",
100 "login.serverLogout": "Your session expired, please login again.", 103 "login.serverLogout": "Din session har gått ut. Vänligen logga in på nytt.",
101 "login.submit.label": "Sign in", 104 "login.submit.label": "Logga in",
102 "login.tokenExpired": "Your session expired, please login again.", 105 "login.tokenExpired": "Din session har gått ut. Vänligen logga in på nytt.",
103 "menu.Todoss.closeTodosDrawer": "Close Todos drawer", 106 "menu.Todoss.closeTodosDrawer": "Stäng Todos-lådan",
104 "menu.Todoss.openTodosDrawer": "Open Todos drawer", 107 "menu.Todoss.openTodosDrawer": "Öppna Todos-lådan",
105 "menu.app.about": "About Ferdi", 108 "menu.app.about": "Om Ferdi",
106 "menu.app.announcement": "What's new?", 109 "menu.app.announcement": "Vad nytt har hänt?",
107 "menu.app.autohideMenuBar": "Auto-hide menu bar", 110 "menu.app.autohideMenuBar": "Dölj menyraden automatiskt",
108 "menu.app.checkForUpdates": "Check for updates", 111 "menu.app.checkForUpdates": "Sök efter uppdateringar",
109 "menu.app.hide": "Hide", 112 "menu.app.hide": "Dölj",
110 "menu.app.hideOthers": "Hide Others", 113 "menu.app.hideOthers": "Dölj övriga",
111 "menu.app.quit": "Quit", 114 "menu.app.quit": "Avsluta",
112 "menu.app.settings": "Settings", 115 "menu.app.settings": "Inställningar",
113 "menu.app.unhide": "Unhide", 116 "menu.app.unhide": "Sluta dölja",
114 "menu.edit": "Edit", 117 "menu.edit": "Redigera",
115 "menu.edit.copy": "Copy", 118 "menu.edit.copy": "Kopiera",
116 "menu.edit.cut": "Cut", 119 "menu.edit.cut": "Klipp ut",
117 "menu.edit.delete": "Delete", 120 "menu.edit.delete": "Radera",
118 "menu.edit.emojiSymbols": "Emoji & Symbols", 121 "menu.edit.emojiSymbols": "Emojis & symboler",
119 "menu.edit.findInPage": "Find in Page", 122 "menu.edit.findInPage": "Hitta på sidan",
120 "menu.edit.paste": "Paste", 123 "menu.edit.paste": "Klistra in",
121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 124 "menu.edit.pasteAndMatchStyle": "Klistra in och matcha stil",
122 "menu.edit.redo": "Redo", 125 "menu.edit.redo": "Gör om",
123 "menu.edit.selectAll": "Select All", 126 "menu.edit.selectAll": "Markera allt",
124 "menu.edit.speech": "Speech", 127 "menu.edit.speech": "Tal",
125 "menu.edit.startDictation": "Start Dictation", 128 "menu.edit.startDictation": "Börja diktera",
126 "menu.edit.startSpeaking": "Start Speaking", 129 "menu.edit.startSpeaking": "Börja tala",
127 "menu.edit.stopSpeaking": "Stop Speaking", 130 "menu.edit.stopSpeaking": "Sluta prata",
128 "menu.edit.undo": "Undo", 131 "menu.edit.undo": "Ã…ngra",
129 "menu.file": "File", 132 "menu.file": "Fil",
130 "menu.help": "Help", 133 "menu.help": "Hjälp",
131 "menu.help.changelog": "Changelog", 134 "menu.help.changelog": "Ändringslogg",
132 "menu.help.debugInfo": "Copy Debug Information", 135 "menu.help.debugInfo": "Kopiera felsökningsinformation",
133 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 136 "menu.help.debugInfoCopiedBody": "Din felsökningsinformation har kopierats till ditt urklipp.",
134 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 137 "menu.help.debugInfoCopiedHeadline": "Ferdi felsökningsinformation",
135 "menu.help.learnMore": "Learn More", 138 "menu.help.learnMore": "Läs mer",
136 "menu.help.privacy": "Privacy Statement", 139 "menu.help.privacy": "Integritetspolicy",
137 "menu.help.publishDebugInfo": "Publish Debug Information", 140 "menu.help.publishDebugInfo": "Skicka felsökningsinformation",
138 "menu.help.support": "Support", 141 "menu.help.support": "Support",
139 "menu.help.tos": "Terms of Service", 142 "menu.help.tos": "Användarvillkor",
140 "menu.services": "Services", 143 "menu.services": "Tjänster",
141 "menu.services.activatePreviousService": "Activate previous service", 144 "menu.services.activatePreviousService": "Aktivera föregående tjänst",
142 "menu.services.addNewService": "Add New Service...", 145 "menu.services.addNewService": "Lägg till ny tjänst...",
143 "menu.services.goHome": "Home", 146 "menu.services.goHome": "Hem",
144 "menu.services.setNextServiceActive": "Activate next service", 147 "menu.services.setNextServiceActive": "Aktivera nästa tjänst",
145 "menu.todos": "Todos", 148 "menu.todos": "Todos",
146 "menu.todos.enableTodos": "Enable Todos", 149 "menu.todos.enableTodos": "Aktivera Todos",
147 "menu.view": "View", 150 "menu.view": "Visa",
148 "menu.view.back": "Back", 151 "menu.view.back": "Tillbaka",
149 "menu.view.enterFullScreen": "Enter Full Screen", 152 "menu.view.enterFullScreen": "Helskärmsläge",
150 "menu.view.exitFullScreen": "Exit Full Screen", 153 "menu.view.exitFullScreen": "Lämna helskärmsläget",
151 "menu.view.forward": "Forward", 154 "menu.view.forward": "Framåt",
152 "menu.view.lockFerdi": "Lock Ferdi", 155 "menu.view.lockFerdi": "LÃ¥s Ferdi",
153 "menu.view.openQuickSwitch": "Open Quick Switch", 156 "menu.view.openQuickSwitch": "Öppna snabbväxling",
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Ladda om Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Ladda om tjänst",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Originalstorlek",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 160 "menu.view.toggleDarkMode": "Växla mörkt läge",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 161 "menu.view.toggleDevTools": "Växla utvecklarverktyg",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 162 "menu.view.toggleFullScreen": "Växla helskärmsläge",
160 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", 163 "menu.view.toggleServiceDevTools": "Växla tjänsteverktyg för utvecklare",
161 "menu.view.zoomIn": "Zoom In", 164 "menu.view.toggleTodosDevTools": "Växla Todos utvecklarverktyg",
162 "menu.view.zoomOut": "Zoom Out", 165 "menu.view.zoomIn": "Zooma in",
163 "menu.window": "Window", 166 "menu.view.zoomOut": "Zooma ut",
164 "menu.window.close": "Close", 167 "menu.window": "Fönster",
165 "menu.window.minimize": "Minimize", 168 "menu.window.close": "Stäng",
166 "menu.workspaces": "Workspaces", 169 "menu.window.minimize": "Minimera",
167 "menu.workspaces.addNewWorkspace": "Add New Workspace...", 170 "menu.workspaces": "Arbetsytor",
168 "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", 171 "menu.workspaces.addNewWorkspace": "Skapa ny arbetsyta...",
169 "menu.workspaces.defaultWorkspace": "All services", 172 "menu.workspaces.closeWorkspaceDrawer": "Stäng arbetsytan",
170 "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", 173 "menu.workspaces.defaultWorkspace": "Alla tjänster",
171 "password.email.label": "Email address", 174 "menu.workspaces.openWorkspaceDrawer": "Öppna arbetsytan",
172 "password.headline": "Reset password", 175 "password.email.label": "E-postadress",
173 "password.link.login": "Sign in to your account", 176 "password.headline": "Återställ lösenord",
174 "password.link.signup": "Create a free account", 177 "password.link.login": "Logga in på ditt konto",
175 "password.noUser": "No user with that email address was found", 178 "password.link.signup": "Skapa ett gratis konto",
176 "password.submit.label": "Submit", 179 "password.noUser": "Ingen användare med den e-postadressen hittades",
177 "password.successInfo": "Please check your email", 180 "password.submit.label": "Skicka",
178 "premiumFeature.button.upgradeAccount": "Upgrade account", 181 "password.successInfo": "Vänligen kontrollera din e-post",
179 "pricing.features.accountSync": "Account Synchronisation", 182 "premiumFeature.button.upgradeAccount": "Uppgradera konto",
180 "pricing.features.adFree": "Forever ad-free", 183 "pricing.features.accountSync": "Synkronisering av konto",
181 "pricing.features.appDelays": "No Waiting Screens", 184 "pricing.features.adFree": "Reklamfritt för alltid",
182 "pricing.features.customWebsites": "Add Custom Websites", 185 "pricing.features.appDelays": "Inga vänteskärmar",
183 "pricing.features.desktopNotifications": "Desktop Notifications", 186 "pricing.features.customWebsites": "Lägg till egna webbplatser",
184 "pricing.features.onPremise": "On-premise & other Hosted Services", 187 "pricing.features.desktopNotifications": "Skrivbordsaviseringar",
185 "pricing.features.recipes": "Choose from more than 70 Services", 188 "pricing.features.onPremise": "Lokala tjänster och andra värdtjänster",
186 "pricing.features.serviceProxies": "Service Proxies", 189 "pricing.features.recipes": "Välj mellan fler än 70 tjänster",
187 "pricing.features.spellchecker": "Spellchecker support", 190 "pricing.features.serviceProxies": "Tjänstens proxies",
188 "pricing.features.teamManagement": "Team Management", 191 "pricing.features.spellchecker": "Stöd för stavningskontroll",
189 "pricing.features.thirdPartyServices": "Install 3rd party services", 192 "pricing.features.teamManagement": "Hantera grupp",
190 "pricing.features.unlimitedServices": "Add unlimited services", 193 "pricing.features.thirdPartyServices": "Installera tjänster från tredje part",
191 "pricing.features.upToSixServices": "Add up to 6 services", 194 "pricing.features.unlimitedServices": "Lägg till obegränsat antal tjänster",
192 "pricing.features.upToThreeServices": "Add up to 3 services", 195 "pricing.features.upToSixServices": "Lägg till upp till 6 tjänster",
193 "pricing.features.workspaces": "Workspaces", 196 "pricing.features.upToThreeServices": "Lägg till upp till 3 tjänster",
197 "pricing.features.workspaces": "Arbetsytor",
194 "pricing.plan.free": "Ferdi Free", 198 "pricing.plan.free": "Ferdi Free",
195 "pricing.plan.legacy": "Ferdi Premium", 199 "pricing.plan.legacy": "Ferdi Premium",
196 "pricing.plan.personal": "Ferdi Personal", 200 "pricing.plan.personal": "Ferdi Personal",
197 "pricing.plan.personal-monthly": "Ferdi Personal Monthly", 201 "pricing.plan.personal-monthly": "Ferdi Personal månatlig",
198 "pricing.plan.personal-yearly": "Ferdi Personal Yearly", 202 "pricing.plan.personal-yearly": "Ferdi Professional årsvis",
199 "pricing.plan.pro": "Ferdi Professional", 203 "pricing.plan.pro": "Ferdi Professional",
200 "pricing.plan.pro-monthly": "Ferdi Professional Monthly", 204 "pricing.plan.pro-monthly": "Ferdi Professional månatlig",
201 "pricing.plan.pro-yearly": "Ferdi Professional Yearly", 205 "pricing.plan.pro-yearly": "Ferdi Professional årsvis",
202 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional", 206 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional",
203 "pricing.trial.cta.skip": "Continue to Ferdi", 207 "pricing.trial.cta.skip": "Continue to Ferdi",
204 "pricing.trial.cta.start": "Start using Ferdi", 208 "pricing.trial.cta.start": "Start using Ferdi",
@@ -212,302 +216,305 @@
212 "pricing.trial.terms.headline": "No strings attached", 216 "pricing.trial.terms.headline": "No strings attached",
213 "pricing.trial.terms.noCreditCard": "No credit card required", 217 "pricing.trial.terms.noCreditCard": "No credit card required",
214 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", 218 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
215 "service.crashHandler.action": "Reload {name}", 219 "service.crashHandler.action": "Ladda om {name}",
216 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", 220 "service.crashHandler.autoReload": "Försöker automatiskt återställa {name} om {seconds} sekunder",
217 "service.crashHandler.headline": "Oh no!", 221 "service.crashHandler.headline": "Ã…h nej!",
218 "service.crashHandler.text": "{name} has caused an error.", 222 "service.crashHandler.text": "{name} har orsakat ett fel.",
219 "service.disabledHandler.action": "Enable {name}", 223 "service.disabledHandler.action": "Aktivera {name}",
220 "service.disabledHandler.headline": "{name} is disabled", 224 "service.disabledHandler.headline": "{name} är inaktiverad",
221 "service.errorHandler.action": "Reload {name}", 225 "service.errorHandler.action": "Ladda om {name}",
222 "service.errorHandler.editAction": "Edit {name}", 226 "service.errorHandler.editAction": "Redigera {name}",
223 "service.errorHandler.headline": "Oh no!", 227 "service.errorHandler.headline": "Ã…h nej!",
224 "service.errorHandler.message": "Error", 228 "service.errorHandler.message": "Fel",
225 "service.errorHandler.text": "{name} has failed to load.", 229 "service.errorHandler.text": "{name} kunde inte laddas.",
226 "service.restrictedHandler.action": "Upgrade Account", 230 "service.restrictedHandler.action": "Uppgradera konto",
227 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required", 231 "service.restrictedHandler.customUrl.headline": "Ferdi Professional krävs",
228 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", 232 "service.restrictedHandler.customUrl.text": "Vänligen uppgradera till Ferdi Professional-abonnemanget för att använda anpassade webbadresser & själv-hostade tjänster.",
229 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", 233 "service.restrictedHandler.serviceLimit.headline": "Du har nått gränsen för antalet tjänster.",
230 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", 234 "service.restrictedHandler.serviceLimit.text": "Uppgradera ditt konto för att använda mer än {count} tjänster.",
231 "service.webviewLoader.loading": "Loading {service}", 235 "service.webviewLoader.loading": "Laddar {service}",
232 "services.getStarted": "Get started", 236 "services.getStarted": "Kom igång",
233 "services.login": "Please login to use Ferdi.", 237 "services.login": "Logga in för att använda Ferdi.",
234 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", 238 "services.serverInfo": "Om du vill kan du ändra din Ferdi-server genom att klicka på kugghjulet i det nedre vänstra hörnet.",
235 "services.serverless": "Use Ferdi without an Account", 239 "services.serverless": "Använd Ferdi utan ett konto",
236 "services.welcome": "Welcome to Ferdi", 240 "services.welcome": "Välkommen till Ferdi",
237 "settings.account.account.editButton": "Edit account", 241 "settings.account.account.editButton": "Redigera konto",
238 "settings.account.accountType.basic": "Basic Account", 242 "settings.account.accountType.basic": "Standardkonto",
239 "settings.account.accountType.premium": "Premium Supporter Account", 243 "settings.account.accountType.premium": "Premium Supporterkonto",
240 "settings.account.accountUnavailable": "Account is unavailable", 244 "settings.account.accountUnavailable": "Kontot är inte tillgängligt",
241 "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.", 245 "settings.account.accountUnavailableInfo": "Du använder Ferdi utan ett konto. Om du vill använda Ferdi med ett konto och hålla dina tjänster synkroniserade mellan installationer, välj en server i fliken Inställningar och logga in.",
242 "settings.account.buttonSave": "Update profile", 246 "settings.account.buttonSave": "Uppdatera profil",
243 "settings.account.deleteAccount": "Delete account", 247 "settings.account.deleteAccount": "Ta bort ditt användarkonto",
244 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 248 "settings.account.deleteEmailSent": "Du har fått ett e-postmeddelande med en länk för att bekräfta raderingen av ditt konto. Ditt konto och data kan inte återställas!",
245 "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.", 249 "settings.account.deleteInfo": "Om du inte behöver ditt Ferdi-konto längre, kan du ta bort ditt konto och all anknuten information här.",
246 "settings.account.headline": "Account", 250 "settings.account.headline": "Konto",
247 "settings.account.headlineAccount": "Account information", 251 "settings.account.headlineAccount": "Kontoinformation",
248 "settings.account.headlineDangerZone": "Danger Zone", 252 "settings.account.headlineDangerZone": "Högrisksområde",
249 "settings.account.headlineInvoices": "Invoices", 253 "settings.account.headlineInvoices": "Fakturor",
250 "settings.account.headlinePassword": "Change password", 254 "settings.account.headlinePassword": "Ändra lösenord",
251 "settings.account.headlineProfile": "Update profile", 255 "settings.account.headlineProfile": "Uppdatera profil",
252 "settings.account.headlineSubscription": "Your subscription", 256 "settings.account.headlineSubscription": "Ditt abonnemang",
253 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", 257 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial",
254 "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience", 258 "settings.account.headlineUpgradeAccount": "Uppgradera ditt konto för att få den hela Ferdi-upplevelsen",
255 "settings.account.invoiceDownload": "Download", 259 "settings.account.invoiceDownload": "Nerladdning",
256 "settings.account.manageSubscription.label": "Manage your subscription", 260 "settings.account.manageSubscription.label": "Hantera ditt abonnemang",
257 "settings.account.successInfo": "Your changes have been saved", 261 "settings.account.successInfo": "Dina ändringar har sparats",
258 "settings.account.trial": "Free Trial", 262 "settings.account.trial": "Free Trial",
259 "settings.account.trialEndsIn": "Your free trial ends in {duration}.", 263 "settings.account.trialEndsIn": "Your free trial ends in {duration}.",
260 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.", 264 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.",
261 "settings.account.tryReloadServices": "Try again", 265 "settings.account.tryReloadServices": "Försök igen",
262 "settings.account.tryReloadUserInfoRequest": "Try again", 266 "settings.account.tryReloadUserInfoRequest": "Försök igen",
263 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional", 267 "settings.account.upgradeToPro.label": "Uppgradera till Ferdi Professional",
264 "settings.account.userInfoRequestFailed": "Could not load user information", 268 "settings.account.userInfoRequestFailed": "Kunde inte ladda användarinformation",
265 "settings.account.yourLicense": "Your Ferdi License", 269 "settings.account.yourLicense": "Din Ferdi-licens",
266 "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)", 270 "settings.app.accentColorInfo": "Ange din accentfärg i ett CSS-kompatibelt format (standard: #7367f0).",
267 "settings.app.buttonClearAllCache": "Clear cache", 271 "settings.app.buttonClearAllCache": "Rensa cache",
268 "settings.app.buttonInstallUpdate": "Restart & install update", 272 "settings.app.buttonInstallUpdate": "Starta om & installera uppdatering",
269 "settings.app.buttonSearchForUpdate": "Check for updates", 273 "settings.app.buttonSearchForUpdate": "Sök efter uppdateringar",
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdis cache använder för närvarande {size} diskutrymme.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Nuvarande version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accentfärg",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synkronisera det mörka läget med operativsystemets inställning för mörkt läge",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Öppna i bakgrunden",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Starta Ferdi vid uppstart",
276 "settings.app.form.beta": "Include beta versions", 280 "settings.app.form.automaticUpdates": "Aktivera uppdateringar",
277 "settings.app.form.darkMode": "Enable dark mode", 281 "settings.app.form.beta": "Inkludera betaversioner",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 282 "settings.app.form.customTodoServer": "Anpassad Todo-server",
279 "settings.app.form.enableLock": "Enable Password Lock", 283 "settings.app.form.darkMode": "Aktivera mörkt läge",
280 "settings.app.form.enableSpellchecking": "Enable spell checking", 284 "settings.app.form.enableGPUAcceleration": "Aktivera GPU-hårdvaruacceleration",
281 "settings.app.form.enableSystemTray": "Show Ferdi in system tray", 285 "settings.app.form.enableLock": "Aktivera lösenordslås",
282 "settings.app.form.enableTodos": "Enable Ferdi Todos", 286 "settings.app.form.enableSpellchecking": "Aktivera stavningskontroll",
283 "settings.app.form.hibernate": "Enable service hibernation", 287 "settings.app.form.enableSystemTray": "Visa Ferdi i systemfältet",
284 "settings.app.form.hibernationStrategy": "Hibernation strategy", 288 "settings.app.form.enableTodos": "Aktivera Ferdi Todos",
285 "settings.app.form.iconSize": "Service icon size", 289 "settings.app.form.hibernate": "Sätt tjänst i vila",
286 "settings.app.form.inactivityLock": "Lock after inactivity", 290 "settings.app.form.hibernationStrategy": "Strategi för vila",
287 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 291 "settings.app.form.iconSize": "Ikonstorlek för tjänster",
288 "settings.app.form.language": "Language", 292 "settings.app.form.inactivityLock": "LÃ¥s efter inaktivitet",
289 "settings.app.form.lockPassword": "Password", 293 "settings.app.form.keepAllWorkspacesLoaded": "HÃ¥ll alla arbetsytor laddade",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 294 "settings.app.form.language": "Språk",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 295 "settings.app.form.lockPassword": "Lösenord",
292 "settings.app.form.noUpdates": "Disable updates", 296 "settings.app.form.minimizeToSystemTray": "Minimera Ferdi till systemfältet",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 297 "settings.app.form.navigationBarBehaviour": "Navigeringsfältets beteende",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 298 "settings.app.form.predefinedTodoServer": "Todo-server",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 299 "settings.app.form.privateNotifications": "Visa inte meddelandeinnehåll i aviseringar",
296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 300 "settings.app.form.reloadAfterResume": "Ladda om Ferdi efter datorn väckts från vila",
297 "settings.app.form.scheduledDNDEnd": "To", 301 "settings.app.form.runInBackground": "Kör Ferdi i bakgrunden när fönstret stängts",
298 "settings.app.form.scheduledDNDStart": "From", 302 "settings.app.form.scheduledDNDEnabled": "Aktivera schemalagt Stör ej-läge",
299 "settings.app.form.sentry": "Send telemetry data", 303 "settings.app.form.scheduledDNDEnd": "Till",
300 "settings.app.form.server": "Server", 304 "settings.app.form.scheduledDNDStart": "Från",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 305 "settings.app.form.sentry": "Skicka telemetridata",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 306 "settings.app.form.serviceRibbonWidth": "Sidofältets bredd",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 307 "settings.app.form.showDisabledServices": "Visa flikar för inaktiverade tjänster",
304 "settings.app.form.startMinimized": "Start minimized in tray", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Visa antal olästa meddelanden när aviseringar är inaktiverade",
305 "settings.app.form.todoServer": "Todo Server", 309 "settings.app.form.showDragArea": "Visa dragbart område i fönstret",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 310 "settings.app.form.startMinimized": "Starta i minimerat läge",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 311 "settings.app.form.universalDarkMode": "Aktivera globalt mörkt läge",
308 "settings.app.headline": "Settings", 312 "settings.app.form.useTouchIdToUnlock": "Tillåt att TouchID används för att låsa upp Ferdi",
309 "settings.app.headlineAdvanced": "Advanced", 313 "settings.app.headline": "Inställningar",
310 "settings.app.headlineAppearance": "Appearance", 314 "settings.app.headlineAdvanced": "Avancerat",
311 "settings.app.headlineGeneral": "General", 315 "settings.app.headlineAppearance": "Utseende",
312 "settings.app.headlineLanguage": "Language", 316 "settings.app.headlineGeneral": "Allmänt",
313 "settings.app.headlineUpdates": "Updates", 317 "settings.app.headlineLanguage": "Språk",
314 "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.", 318 "settings.app.headlineUpdates": "Uppdateringar",
315 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 319 "settings.app.hibernateInfo": "Som standard kommer Ferdi att hålla alla dina tjänster öppna och laddade i bakgrunden så att de är redo när du vill använda dem. Viloläget kommer att stänga dina tjänster efter ett angivet belopp. Detta är användbart för att spara på arbetsminne eller se till att tjänster inte saktar ner datorn.",
316 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 320 "settings.app.inactivityLockInfo": "Antal minuter av inaktivitet, varefter Ferdi låses automatiskt. Ange 0 för att inaktivera",
317 "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.", 321 "settings.app.languageDisclaimer": "Engelska och tyska är officella översättningar. Övriga språk har översatts av gemenskapen.",
318 "settings.app.lockedPassword": "Password", 322 "settings.app.lockInfo": "Lösenordslås låter dig skydda dina meddelanden.\nMed lösenordslås kommer du bli ombedd att ange ditt lösenord varje gång du startar Ferdi. Du kan också låsa Ferdi själv med hjälp av låssymbolen i det nedre vänstra hörnet eller med kortkommandot CMD/CTRL+Shift+L.",
319 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 323 "settings.app.lockedPassword": "Lösenord",
320 "settings.app.restartRequired": "Changes require restart", 324 "settings.app.lockedPasswordInfo": "Se till att du anger ett lösenord du kommer att komma ihåg.\nOm du tappar bort detta lösenord måste du installera om Ferdi.",
321 "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.", 325 "settings.app.restartRequired": "Ändringar kräver omstart",
322 "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.", 326 "settings.app.scheduledDNDInfo": "Schemalagd \"Stör ej\" låter dig definiera en tidsperiod inom vilken du inte vill få meddelanden från Ferdi.",
323 "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.", 327 "settings.app.scheduledDNDTimeInfo": "Tid i 24-timmarsformat. Sluttid kan vara före starttid (t.ex. start 17:00, slut 09:00) för att aktivera \"Stör ej\" över natten.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", 328 "settings.app.sentryInfo": "Genom att skicka telemetridata kan vi hitta buggar i Ferdi - vi kommer inte att skicka någon personlig information (som dina meddelandedata)! Att ändra detta alternativ kräver en omstart av Ferdi.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "Denna server kommer att användas för \"Ferdi Todo\"-funktionen.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Hjälp oss att översätta Ferdi till ditt språk.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Globalt mörkt läge försöker att dynamiskt generera en mörk stil för tjänster som ännu inte stöds.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Uppdatering tillgänglig, laddar ner...",
331 "settings.app.updateStatusSearching": "Is searching for update", 334 "settings.app.updateStatusSearching": "Söker efter uppdatering",
332 "settings.app.updateStatusUpToDate": "You are using the latest version of Ferdi", 335 "settings.app.updateStatusUpToDate": "Du använder den senaste versionen av Ferdi",
333 "settings.invite.headline": "Invite Friends", 336 "settings.invite.headline": "Bjud in vänner",
334 "settings.navigation.account": "Account", 337 "settings.navigation.account": "Konto",
335 "settings.navigation.availableServices": "Available services", 338 "settings.navigation.availableServices": "Tillgängliga tjänster",
336 "settings.navigation.logout": "Logout", 339 "settings.navigation.logout": "Logga ut",
337 "settings.navigation.settings": "Settings", 340 "settings.navigation.settings": "Inställningar",
338 "settings.navigation.supportFerdi": "Support Ferdi", 341 "settings.navigation.supportFerdi": "Stöd Ferdi",
339 "settings.navigation.team": "Manage Team", 342 "settings.navigation.team": "Hantera grupp",
340 "settings.navigation.yourServices": "Your services", 343 "settings.navigation.yourServices": "Dina tjänster",
341 "settings.navigation.yourWorkspaces": "Your workspaces", 344 "settings.navigation.yourWorkspaces": "Dina arbetsytor",
342 "settings.recipes.all": "All services", 345 "settings.recipes.all": "Alla tjänster",
343 "settings.recipes.custom": "Custom Services", 346 "settings.recipes.custom": "Anpassade tjänster",
344 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", 347 "settings.recipes.customService.headline.communityRecipes": "Tredjepartsrecept från gemenskapen",
345 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 348 "settings.recipes.customService.headline.customRecipes": "Egna tredjepartsrecept",
346 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 349 "settings.recipes.customService.headline.devRecipes": "Dina recept för utvecklingsservice",
347 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 350 "settings.recipes.customService.intro": "För att lägga till en anpassad tjänst, kopiera receptet för tjänsten till:",
348 "settings.recipes.customService.openDevDocs": "Developer Documentation", 351 "settings.recipes.customService.openDevDocs": "Dokumentation för utvecklare",
349 "settings.recipes.customService.openFolder": "Open folder", 352 "settings.recipes.customService.openFolder": "Öppna mapp",
350 "settings.recipes.headline": "Available services", 353 "settings.recipes.headline": "Tillgängliga tjänster",
351 "settings.recipes.missingService": "Missing a service?", 354 "settings.recipes.missingService": "Saknar du en tjänst?",
352 "settings.recipes.mostPopular": "Most popular", 355 "settings.recipes.mostPopular": "Mest populära",
353 "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", 356 "settings.recipes.nothingFound": "Tyvärr, men ingen tjänst matchade din sökterm.",
354 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", 357 "settings.recipes.servicesSuccessfulAddedInfo": "Tjänsten har lagts till",
355 "settings.searchService": "Search service", 358 "settings.searchService": "Sök efter tjänst",
356 "settings.service.error.goBack": "Back to services", 359 "settings.service.error.goBack": "Tillbaka till tjänster",
357 "settings.service.error.headline": "Error", 360 "settings.service.error.headline": "Fel",
358 "settings.service.error.message": "Could not load service recipe.", 361 "settings.service.error.message": "Kunde inte ladda servicerecept.",
359 "settings.service.form.addServiceHeadline": "Add {name}", 362 "settings.service.form.addServiceHeadline": "Lägg till {name}",
360 "settings.service.form.availableServices": "Available services", 363 "settings.service.form.availableServices": "Tillgängliga tjänster",
361 "settings.service.form.customUrl": "Custom server", 364 "settings.service.form.customUrl": "Anpassad server",
362 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.", 365 "settings.service.form.customUrlPremiumInfo": "För att lägga till egna tjänster behöver du ett Ferdi Premium supporter-konto.",
363 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", 366 "settings.service.form.customUrlUpgradeAccount": "Uppgradera ditt konto",
364 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", 367 "settings.service.form.customUrlValidationError": "Kunde inte validera anpassad {name} -server.",
365 "settings.service.form.deleteButton": "Delete service", 368 "settings.service.form.deleteButton": "Ta bort tjänst",
366 "settings.service.form.editServiceHeadline": "Edit {name}", 369 "settings.service.form.editServiceHeadline": "Redigera {name}",
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Aktivera ljud",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Visa olästa meddelandemärken",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Aktivera mörkt läge",
370 "settings.service.form.enableNotification": "Enable notifications", 373 "settings.service.form.darkReaderBrightness": "Brightness",
371 "settings.service.form.enableService": "Enable service", 374 "settings.service.form.darkReaderContrast": "Contrast",
372 "settings.service.form.headlineBadges": "Unread message badges", 375 "settings.service.form.darkReaderSepia": "Sepia",
373 "settings.service.form.headlineGeneral": "General", 376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
374 "settings.service.form.headlineNotifications": "Notifications", 377 "settings.service.form.enableNotification": "Aktivera aviseringar",
375 "settings.service.form.icon": "Custom icon", 378 "settings.service.form.enableService": "Aktivera tjänst",
376 "settings.service.form.iconDelete": "Delete", 379 "settings.service.form.headlineBadges": "Olästa meddelandemärken",
377 "settings.service.form.iconUpload": "Drop your image, or click here", 380 "settings.service.form.headlineGeneral": "Allmänt",
378 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 381 "settings.service.form.headlineNotifications": "Aviseringar",
379 "settings.service.form.indirectMessages": "Show message badge for all new messages", 382 "settings.service.form.icon": "Anpassad ikon",
380 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 383 "settings.service.form.iconDelete": "Radera",
381 "settings.service.form.name": "Name", 384 "settings.service.form.iconUpload": "Släpp din bild, eller klicka här",
382 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 385 "settings.service.form.indirectMessageInfo": "Du kommer att aviseras om alla nya meddelanden i en kanal, inte bara @username, @channel, @here, ...",
383 "settings.service.form.openUserCss": "Open user.css", 386 "settings.service.form.indirectMessages": "Visa meddelandemärke för alla nya meddelanden",
384 "settings.service.form.openUserJs": "Open user.js", 387 "settings.service.form.isMutedInfo": "Om inaktiverad kommer alla aviseringsljud och ljuduppspelning att tystas",
385 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 388 "settings.service.form.name": "Namn",
386 "settings.service.form.proxy.host": "Proxy Host/IP", 389 "settings.service.form.openDarkmodeCss": "Öppna darkmode.css",
387 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 390 "settings.service.form.openUserCss": "Öppna user.css",
388 "settings.service.form.proxy.isEnabled": "Use Proxy", 391 "settings.service.form.openUserJs": "Öppna user.js",
389 "settings.service.form.proxy.password": "Password (optional)", 392 "settings.service.form.proxy.headline": "Inställningar för HTTP/HTTPS-proxy",
393 "settings.service.form.proxy.host": "Proxy-värd/IP",
394 "settings.service.form.proxy.info": "Proxyinställningar kommer inte att synkroniseras med Ferdi-servrarna.",
395 "settings.service.form.proxy.isEnabled": "Använd proxy",
396 "settings.service.form.proxy.password": "Lösenord (frivilligt)",
390 "settings.service.form.proxy.port": "Port", 397 "settings.service.form.proxy.port": "Port",
391 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 398 "settings.service.form.proxy.restartInfo": "Vänligen starta om Ferdi efter att du ändrat proxyinställningar.",
392 "settings.service.form.proxy.user": "User (optional)", 399 "settings.service.form.proxy.user": "Användare (valfritt)",
393 "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.", 400 "settings.service.form.recipeFileInfo": "Dina användarfiler kommer att infogas i webbsidan så att du kan anpassa tjänsterna hur du vill. Användarfiler lagras endast lokalt och överförs inte till andra datorer som använer samma konto.",
394 "settings.service.form.saveButton": "Save service", 401 "settings.service.form.saveButton": "Spara tjänst",
395 "settings.service.form.tabHosted": "Hosted", 402 "settings.service.form.tabHosted": "Värd",
396 "settings.service.form.tabOnPremise": "Self hosted â­ï¸", 403 "settings.service.form.tabOnPremise": "Self-hosted â­",
397 "settings.service.form.team": "Team", 404 "settings.service.form.team": "Grupp",
398 "settings.service.form.useHostedService": "Use the hosted {name} service.", 405 "settings.service.form.useHostedService": "Använd den värd-baserade tjänsten {name}.",
399 "settings.service.form.yourServices": "Your services", 406 "settings.service.form.yourServices": "Dina tjänster",
400 "settings.services.deletedInfo": "Service has been deleted", 407 "settings.services.deletedInfo": "Tjänsten har tagits bort",
401 "settings.services.discoverServices": "Discover services", 408 "settings.services.discoverServices": "Upptäck tjänster",
402 "settings.services.headline": "Your services", 409 "settings.services.headline": "Dina tjänster",
403 "settings.services.noServicesAdded": "You haven't added any services yet.", 410 "settings.services.noServicesAdded": "Du har inte lagt till några tjänster än.",
404 "settings.services.servicesRequestFailed": "Could not load your services", 411 "settings.services.servicesRequestFailed": "Kunde inte ladda dina tjänster",
405 "settings.services.tooltip.isDisabled": "Service is disabled", 412 "settings.services.tooltip.isDisabled": "Tjänsten är inaktiverad",
406 "settings.services.tooltip.isMuted": "All sounds are muted", 413 "settings.services.tooltip.isMuted": "Alla ljud är avstängda",
407 "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", 414 "settings.services.tooltip.notificationsDisabled": "Aviseringar är inaktiverade",
408 "settings.services.updatedInfo": "Your changes have been saved", 415 "settings.services.updatedInfo": "Dina ändringar har sparats",
409 "settings.supportFerdi.github": "Star on GitHub", 416 "settings.supportFerdi.github": "Stjärnmarkera på GitHub",
410 "settings.supportFerdi.headline": "Support Ferdi", 417 "settings.supportFerdi.headline": "Stöd Ferdi",
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Stöd vårt öppna kollektiv",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tipsa dina vänner om oss",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Gillar du Ferdi? Sprid order!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Hantera Franz-grupp",
415 "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!", 422 "settings.team.copy": "Grupphanteringen i Franz låter dig hantera Franz-abonnemang för flera användare. Observera att ett Franz Premium-abonnemang inte ger dig några extra funktioner i Ferdi: Den enda anledningen till att du fortfarande har tillgång till grupphanteringen är att du kan hantera dina äldre Franz-grupper så att du inte förlorar någon funktionalitet i hanteringen av ditt konto.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Grupp",
417 "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.", 424 "settings.team.intro": "Du använder för närvarande Franz servrar, vilket är anledningen till att du har tillgång till grupphanteringen.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Hantera din grupp på meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Grupper är inte tillgängliga",
420 "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.", 427 "settings.team.teamsUnavailableInfo": "Grupper är för närvarande endast tillgängliga när du använder Franz Server och har betalat för Franz Professional. Vänligen ändra din server till https://api.franzinfra.com för att använda gruppfunktionalitet.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Uppgradera ditt konto",
422 "settings.user.form.accountType.company": "Company", 429 "settings.user.form.accountType.company": "Företag",
423 "settings.user.form.accountType.individual": "Individual", 430 "settings.user.form.accountType.individual": "Privatperson",
424 "settings.user.form.accountType.label": "Account type", 431 "settings.user.form.accountType.label": "Kontotyp",
425 "settings.user.form.accountType.non-profit": "Non-Profit", 432 "settings.user.form.accountType.non-profit": "Ideell organisation",
426 "settings.user.form.currentPassword": "Current password", 433 "settings.user.form.currentPassword": "Nuvarande lösenord",
427 "settings.user.form.email": "Email", 434 "settings.user.form.email": "E-post",
428 "settings.user.form.firstname": "First Name", 435 "settings.user.form.firstname": "Förnamn",
429 "settings.user.form.lastname": "Last Name", 436 "settings.user.form.lastname": "Efternamn",
430 "settings.user.form.newPassword": "New password", 437 "settings.user.form.newPassword": "Nytt lösenord",
431 "settings.workspace.add.form.name": "Name", 438 "settings.workspace.add.form.name": "Namn",
432 "settings.workspace.add.form.submitButton": "Create workspace", 439 "settings.workspace.add.form.submitButton": "Skapa arbetsyta",
433 "settings.workspace.form.buttonDelete": "Delete workspace", 440 "settings.workspace.form.buttonDelete": "Ta bort arbetsyta",
434 "settings.workspace.form.buttonSave": "Save workspace", 441 "settings.workspace.form.buttonSave": "Spara arbetsyta",
435 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 442 "settings.workspace.form.keepLoaded": "HÃ¥ll denna arbetsyta laddad*",
436 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 443 "settings.workspace.form.keepLoadedInfo": "*Detta alternativ kommer att skrivas över av det globala alternativet \"Håll alla arbetsytor laddade\".",
437 "settings.workspace.form.name": "Name", 444 "settings.workspace.form.name": "Namn",
438 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", 445 "settings.workspace.form.servicesInWorkspaceHeadline": "Tjänster i denna arbetsyta",
439 "settings.workspace.form.yourWorkspaces": "Your workspaces", 446 "settings.workspace.form.yourWorkspaces": "Dina arbetsytor",
440 "settings.workspaces.deletedInfo": "Workspace has been deleted", 447 "settings.workspaces.deletedInfo": "Arbetsytan har tagits bort",
441 "settings.workspaces.headline": "Your workspaces", 448 "settings.workspaces.headline": "Dina arbetsytor",
442 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", 449 "settings.workspaces.noWorkspacesAdded": "Du har inte lagt till några arbetsytor än.",
443 "settings.workspaces.tryReloadWorkspaces": "Try again", 450 "settings.workspaces.tryReloadWorkspaces": "Försök igen",
444 "settings.workspaces.updatedInfo": "Your changes have been saved", 451 "settings.workspaces.updatedInfo": "Dina ändringar har sparats",
445 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", 452 "settings.workspaces.workspaceFeatureHeadline": "\"Less is more\": Vi presenterar Ferdi-arbetsytor",
446 "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.", 453 "settings.workspaces.workspaceFeatureInfo": "Ferdi-arbetsytor låter dig fokusera på det som är viktigt just nu. Konfigurera olika uppsättningar av tjänster och växla enkelt mellan dem när som helst. Du bestämmer vilka tjänster du behöver när och var, så att vi kan hjälpa dig att hålla koll på läget - eller enkelt koppla bort från jobbet när du vill.",
447 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", 454 "settings.workspaces.workspacesRequestFailed": "Kunde inte ladda dina arbetsytor",
448 "sidebar.addNewService": "Add new service", 455 "sidebar.addNewService": "Lägg till ny tjänst",
449 "sidebar.closeTodosDrawer": "Close Ferdi Todos", 456 "sidebar.closeTodosDrawer": "Stäng Ferdi Todos",
450 "sidebar.closeWorkspaceDrawer": "Close workspace drawer", 457 "sidebar.closeWorkspaceDrawer": "Stäng arbetsytan",
451 "sidebar.lockFerdi": "Lock Ferdi", 458 "sidebar.lockFerdi": "LÃ¥s Ferdi",
452 "sidebar.muteApp": "Disable notifications & audio", 459 "sidebar.muteApp": "Inaktivera notifikationer och ljud",
453 "sidebar.openTodosDrawer": "Open Ferdi Todos", 460 "sidebar.openTodosDrawer": "Öppna Ferdi Todos",
454 "sidebar.openWorkspaceDrawer": "Open workspace drawer", 461 "sidebar.openWorkspaceDrawer": "Öppna arbetsytan",
455 "sidebar.settings": "Settings", 462 "sidebar.settings": "Inställningar",
456 "sidebar.unmuteApp": "Enable notifications & audio", 463 "sidebar.unmuteApp": "Aktivera aviseringar och ljud",
457 "signup.email.label": "Email address", 464 "signup.email.label": "E-postadress",
458 "signup.emailDuplicate": "A user with that email address already exists", 465 "signup.emailDuplicate": "En användare med den e-postadressen finns redan",
459 "signup.firstname.label": "First Name", 466 "signup.firstname.label": "Förnamn",
460 "signup.headline": "Sign up", 467 "signup.headline": "Registrera dig",
461 "signup.lastname.label": "Last Name", 468 "signup.lastname.label": "Efternamn",
462 "signup.legal.info": "By creating a Ferdi account you accept the", 469 "signup.legal.info": "Genom att skapa ett Ferdi konto accepterar du",
463 "signup.legal.privacy": "Privacy Statement", 470 "signup.legal.privacy": "Integritetspolicy",
464 "signup.legal.terms": "Terms of service", 471 "signup.legal.terms": "Användarvillkor",
465 "signup.link.login": "Already have an account, sign in?", 472 "signup.link.login": "Har du redan ett konto? Logga in",
466 "signup.password.label": "Password", 473 "signup.password.label": "Lösenord",
467 "signup.submit.label": "Create account", 474 "signup.submit.label": "Skapa konto",
468 "subscription.bestValue": "Best value", 475 "subscription.bestValue": "Best value",
469 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 476 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
470 "subscription.cta.allOptions": "See all options", 477 "subscription.cta.allOptions": "Se alla alternativ",
471 "subscription.cta.choosePlan": "Choose your plan", 478 "subscription.cta.choosePlan": "Välj abonnemang",
472 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", 479 "subscription.includedProFeatures": "I Ferdi Professional-abonnemanget ingår:",
473 "subscription.interval.per": "per {interval}", 480 "subscription.interval.per": "per {interval}",
474 "subscription.interval.perMonth": "per month", 481 "subscription.interval.perMonth": "per månad",
475 "subscription.interval.perMonthPerUser": "per month & user", 482 "subscription.interval.perMonthPerUser": "per månad & användare",
476 "subscription.planItem.upgradeAccount": "Upgrade Account", 483 "subscription.planItem.upgradeAccount": "Uppgradera konto",
477 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", 484 "subscription.teaser.includedFeatures": "De avgiftsbelagda Ferdi-abonnemangen inkluderar:",
478 "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!", 485 "subscription.teaser.intro": "Ferdi 5 kommer med ett brett utbud av nya funktioner för att förbättra din dagliga kommunikation. Kolla in våra nya abonnemang och ta reda på vilket av dem som passar dig bäst!",
479 "subscriptionPopup.buttonCancel": "Cancel", 486 "subscriptionPopup.buttonCancel": "Avbryt",
480 "subscriptionPopup.buttonDone": "Done", 487 "subscriptionPopup.buttonDone": "Klar",
481 "tabs.item.deleteService": "Delete service", 488 "tabs.item.deleteService": "Ta bort tjänst",
482 "tabs.item.disableAudio": "Disable audio", 489 "tabs.item.disableAudio": "Inaktivera ljud",
483 "tabs.item.disableNotifications": "Disable notifications", 490 "tabs.item.disableNotifications": "Inaktivera aviseringar",
484 "tabs.item.disableService": "Disable service", 491 "tabs.item.disableService": "Inaktivera tjänst",
485 "tabs.item.edit": "Edit", 492 "tabs.item.edit": "Redigera",
486 "tabs.item.enableAudio": "Enable audio", 493 "tabs.item.enableAudio": "Aktivera ljud",
487 "tabs.item.enableNotification": "Enable notifications", 494 "tabs.item.enableNotification": "Aktivera aviseringar",
488 "tabs.item.enableService": "Enable service", 495 "tabs.item.enableService": "Aktivera tjänst",
489 "tabs.item.reload": "Reload", 496 "tabs.item.reload": "Ladda om",
490 "validation.email": "{field} is not valid", 497 "validation.email": "{field} är felaktig",
491 "validation.minLength": "{field} should be at least {length} characters long", 498 "validation.minLength": "{field} bör vara minst {length} tecken lång",
492 "validation.oneRequired": "At least one is required", 499 "validation.oneRequired": "Minst en krävs",
493 "validation.required": "{field} is required", 500 "validation.required": "{field} är obligatoriskt",
494 "validation.url": "{field} is not a valid URL", 501 "validation.url": "{field} är inte en giltig URL",
495 "webControls.back": "Back", 502 "webControls.back": "Tillbaka",
496 "webControls.forward": "Forward", 503 "webControls.forward": "Framåt",
497 "webControls.goHome": "Home", 504 "webControls.goHome": "Hem",
498 "webControls.openInBrowser": "Open in Browser", 505 "webControls.openInBrowser": "Öppna i webbläsare",
499 "webControls.reload": "Reload", 506 "webControls.reload": "Ladda om",
500 "welcome.loginButton": "Login to your account", 507 "welcome.loginButton": "Logga in på ditt konto",
501 "welcome.signupButton": "Create a free account", 508 "welcome.signupButton": "Skapa ett gratis konto",
502 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 509 "workspaceDrawer.addNewWorkspaceLabel": "Skapa ny arbetsyta",
503 "workspaceDrawer.allServices": "All services", 510 "workspaceDrawer.allServices": "Alla tjänster",
504 "workspaceDrawer.headline": "Workspaces", 511 "workspaceDrawer.headline": "Arbetsytor",
505 "workspaceDrawer.item.contextMenuEdit": "edit", 512 "workspaceDrawer.item.contextMenuEdit": "redigera",
506 "workspaceDrawer.item.noServicesAddedYet": "No services added yet", 513 "workspaceDrawer.item.noServicesAddedYet": "Inga tjänster har lagts till",
507 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", 514 "workspaceDrawer.premiumCtaButtonLabel": "Skapa din första arbetsyta",
508 "workspaceDrawer.proFeatureBadge": "Premium feature", 515 "workspaceDrawer.proFeatureBadge": "Premium-funktion",
509 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", 516 "workspaceDrawer.reactivatePremiumAccountLabel": "Ã…teraktivera premiumkonto",
510 "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>", 517 "workspaceDrawer.workspaceFeatureInfo": "<p>Ferdi-arbetsytor låter dig fokusera på det som är viktigt just nu. Konfigurera olika uppsättningar av tjänster och växla enkelt mellan dem när som helst.</p><p>Du bestämmer vilka tjänster du behöver när och var, så att vi kan hjälpa dig att hålla koll på läget - eller enkelt koppla bort från jobbet när du vill.</p>",
511 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", 518 "workspaceDrawer.workspacesSettingsTooltip": "Redigera inställningar för arbetsytor",
512 "workspaces.switchingIndicator.switchingTo": "Switching to" 519 "workspaces.switchingIndicator.switchingTo": "Byter till"
513} 520}
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json
index 45b91e2cf..54515f6fe 100644
--- a/src/i18n/locales/tr.json
+++ b/src/i18n/locales/tr.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Sunucuyu deÄŸiÅŸtir",
5 "changeserver.label": "Sunucu",
6 "changeserver.submit": "Gönder",
4 "feature.announcements.changelog.headline": "Ferdi {version} Sürümündeki Değişiklikler", 7 "feature.announcements.changelog.headline": "Ferdi {version} Sürümündeki Değişiklikler",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Beklememek için Ferdi Destek Lisansı'nı satın alın", 9 "feature.delayApp.headline": "Beklememek için Ferdi Destek Lisansı'nı satın alın",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Ferdi'ı Yeniden Yükle", 157 "menu.view.reloadFranz": "Ferdi'ı Yeniden Yükle",
155 "menu.view.reloadService": "Servisi Tekrar Yükle", 158 "menu.view.reloadService": "Servisi Tekrar Yükle",
156 "menu.view.resetZoom": "Orijinal Boyut", 159 "menu.view.resetZoom": "Orijinal Boyut",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Geliştirici Araçlarına Geç", 161 "menu.view.toggleDevTools": "Geliştirici Araçlarına Geç",
158 "menu.view.toggleFullScreen": "Tam Ekrana Geç", 162 "menu.view.toggleFullScreen": "Tam Ekrana Geç",
159 "menu.view.toggleServiceDevTools": "Hizmet Geliştirici Araçlarını Değiştir", 163 "menu.view.toggleServiceDevTools": "Hizmet Geliştirici Araçlarını Değiştir",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi önbelleği şu anda {size} disk alanı kullanıyor.", 274 "settings.app.cacheInfo": "Ferdi önbelleği şu anda {size} disk alanı kullanıyor.",
271 "settings.app.currentVersion": "Geçerli sürüm:", 275 "settings.app.currentVersion": "Geçerli sürüm:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Arka planda aç", 278 "settings.app.form.autoLaunchInBackground": "Arka planda aç",
275 "settings.app.form.autoLaunchOnStart": "Ferdi'ı başlangıçta aç", 279 "settings.app.form.autoLaunchOnStart": "Ferdi'ı başlangıçta aç",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Beta versiyonları dahil et", 281 "settings.app.form.beta": "Beta versiyonları dahil et",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Grafik İşlemci Ünitesi (GPU) Hızlandırıcısını Aktif et", 284 "settings.app.form.enableGPUAcceleration": "Grafik İşlemci Ünitesi (GPU) Hızlandırıcısını Aktif et",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Åžifre", 295 "settings.app.form.lockPassword": "Åžifre",
290 "settings.app.form.minimizeToSystemTray": "Ferdi'ı sistem tepsisine küçült", 296 "settings.app.form.minimizeToSystemTray": "Ferdi'ı sistem tepsisine küçült",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Pencereyi kapatırken Ferdi'ı arka planda tut", 301 "settings.app.form.runInBackground": "Pencereyi kapatırken Ferdi'ı arka planda tut",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "Kime:", 303 "settings.app.form.scheduledDNDEnd": "Kime:",
298 "settings.app.form.scheduledDNDStart": "Kimden:", 304 "settings.app.form.scheduledDNDStart": "Kimden:",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Sunucu",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Devre dışı bırakılan servis sekmelerini göster", 307 "settings.app.form.showDisabledServices": "Devre dışı bırakılan servis sekmelerini göster",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Bildirimler kapalı iken okunmamış mesaj sayısını göster", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Bildirimler kapalı iken okunmamış mesaj sayısını göster",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Ayarlar", 313 "settings.app.headline": "Ayarlar",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Önbellek", 329 "settings.app.subheadlineCache": "Önbellek",
327 "settings.app.todoServerInfo": "Bu sunucu \"Ferdi Yapılacaklar Listesi\" özelliği için kullanılacakdır. (varsayılan: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Ferdi'ı senin diline tercüme etmemiz için yardım et.", 331 "settings.app.translationHelp": "Ferdi'ı senin diline tercüme etmemiz için yardım et.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Güncelleme mevcut, indiriliyor...", 333 "settings.app.updateStatusAvailable": "Güncelleme mevcut, indiriliyor...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Sesi etkinleÅŸtirin", 370 "settings.service.form.enableAudio": "Sesi etkinleÅŸtirin",
368 "settings.service.form.enableBadge": "Okunmamış mesajları göster", 371 "settings.service.form.enableBadge": "Okunmamış mesajları göster",
369 "settings.service.form.enableDarkMode": "Karanlık modu aç", 372 "settings.service.form.enableDarkMode": "Karanlık modu aç",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Bildirimleri etkinleÅŸtir", 377 "settings.service.form.enableNotification": "Bildirimleri etkinleÅŸtir",
371 "settings.service.form.enableService": "Servisi etkinleÅŸtir", 378 "settings.service.form.enableService": "Servisi etkinleÅŸtir",
372 "settings.service.form.headlineBadges": "Okunmamış mesajlar", 379 "settings.service.form.headlineBadges": "Okunmamış mesajlar",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Arkadaşlarınla Paylaş", 419 "settings.supportFerdi.share": "Arkadaşlarınla Paylaş",
413 "settings.supportFerdi.title": "Ferdi'yi seviyor musun? Hayat paylaştıkça güzel!", 420 "settings.supportFerdi.title": "Ferdi'yi seviyor musun? Hayat paylaştıkça güzel!",
414 "settings.team.contentHeadline": "Ekipler için Ferdi", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Takım", 423 "settings.team.headline": "Takım",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "getferdi.com adresinden Ekibini yönet", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json
index 2cfbdb501..c6acfb4e9 100644
--- a/src/i18n/locales/uk.json
+++ b/src/i18n/locales/uk.json
@@ -1,7 +1,10 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Подати",
7 "feature.announcements.changelog.headline": "Зміни у Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Будь лаÑка, придбайте ліцензію Ferdi Supporter аби пропуÑтити очікуваннÑ", 9 "feature.delayApp.headline": "Будь лаÑка, придбайте ліцензію Ferdi Supporter аби пропуÑтити очікуваннÑ",
7 "feature.delayApp.text": "Ferdi відновить роботу за {seconds} Ñекунд", 10 "feature.delayApp.text": "Ferdi відновить роботу за {seconds} Ñекунд",
@@ -77,13 +80,13 @@
77 "invite.email.label": "Email адреÑа", 80 "invite.email.label": "Email адреÑа",
78 "invite.headline.friends": "ЗапроÑÑ–Ñ‚ÑŒ 3-Ñ… ваших друзів або колег", 81 "invite.headline.friends": "ЗапроÑÑ–Ñ‚ÑŒ 3-Ñ… ваших друзів або колег",
79 "invite.name.label": "Ім'Ñ", 82 "invite.name.label": "Ім'Ñ",
80 "invite.skip.label": "Я хочу зробити це пізніше", 83 "invite.skip.label": "Я зроблю це пізніше",
81 "invite.submit.label": "ВідпÑавити запрошеннÑ", 84 "invite.submit.label": "ÐадіÑлати запрошеннÑ",
82 "invite.successInfo": "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ ÑƒÑпішно надіÑлані", 85 "invite.successInfo": "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ ÑƒÑпішно надіÑлані",
83 "locked.headline": "Locked", 86 "locked.headline": "Locked",
84 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 87 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
85 "locked.invalidCredentials": "Password invalid", 88 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 89 "locked.password.label": "Пароль",
87 "locked.submit.label": "Unlock", 90 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID", 91 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID", 92 "locked.touchIdPrompt": "unlock via Touch ID",
@@ -96,7 +99,7 @@
96 "login.invalidCredentials": "Email або пароль некоректні", 99 "login.invalidCredentials": "Email або пароль некоректні",
97 "login.link.password": "Скинути пароль", 100 "login.link.password": "Скинути пароль",
98 "login.link.signup": "Створити безплатний акаунт", 101 "login.link.signup": "Створити безплатний акаунт",
99 "login.password.label": "Password", 102 "login.password.label": "Пароль",
100 "login.serverLogout": "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, увійдіть знову.", 103 "login.serverLogout": "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, увійдіть знову.",
101 "login.submit.label": "Увійти", 104 "login.submit.label": "Увійти",
102 "login.tokenExpired": "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, увійдіть знову.", 105 "login.tokenExpired": "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, увійдіть знову.",
@@ -154,19 +157,20 @@
154 "menu.view.reloadFranz": "Перезавантажити Ferdi", 157 "menu.view.reloadFranz": "Перезавантажити Ferdi",
155 "menu.view.reloadService": "Перезавантажити ÑервіÑ", 158 "menu.view.reloadService": "Перезавантажити ÑервіÑ",
156 "menu.view.resetZoom": "Фактичний розмір", 159 "menu.view.resetZoom": "Фактичний розмір",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Переключити інÑтрумент розробника", 161 "menu.view.toggleDevTools": "Переключити інÑтрумент розробника",
158 "menu.view.toggleFullScreen": "ПереключитиÑÑ Ð½Ð° повний екран", 162 "menu.view.toggleFullScreen": "ПереключитиÑÑ Ð½Ð° повний екран",
159 "menu.view.toggleServiceDevTools": "Переключити інÑтрументи розробника ÑервіÑу", 163 "menu.view.toggleServiceDevTools": "Переключити інÑтрументи розробника ÑервіÑу",
160 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", 164 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools",
161 "menu.view.zoomIn": "Збільшити маÑштаб", 165 "menu.view.zoomIn": "Збільшити маÑштаб",
162 "menu.view.zoomOut": "Зменьшити маÑштаб", 166 "menu.view.zoomOut": "Зменшити маÑштаб",
163 "menu.window": "Вікно", 167 "menu.window": "Вікно",
164 "menu.window.close": "Закрити", 168 "menu.window.close": "Закрити",
165 "menu.window.minimize": "Згорнути", 169 "menu.window.minimize": "Згорнути",
166 "menu.workspaces": "Workspaces", 170 "menu.workspaces": "Workspaces",
167 "menu.workspaces.addNewWorkspace": "Add New Workspace...", 171 "menu.workspaces.addNewWorkspace": "Add New Workspace...",
168 "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", 172 "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer",
169 "menu.workspaces.defaultWorkspace": "ÐÑÑ– ÑервіÑи", 173 "menu.workspaces.defaultWorkspace": "УÑÑ– ÑервіÑи",
170 "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", 174 "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer",
171 "password.email.label": "Email адреÑа", 175 "password.email.label": "Email адреÑа",
172 "password.headline": "Скинути пароль", 176 "password.headline": "Скинути пароль",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Кеш, Ñкий викориÑтовує Ferdi, займає {size} диÑкового проÑтору.", 274 "settings.app.cacheInfo": "Кеш, Ñкий викориÑтовує Ferdi, займає {size} диÑкового проÑтору.",
271 "settings.app.currentVersion": "Поточна верÑÑ–Ñ:", 275 "settings.app.currentVersion": "Поточна верÑÑ–Ñ:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Відкрити у фоновому режимі", 278 "settings.app.form.autoLaunchInBackground": "Відкрити у фоновому режимі",
275 "settings.app.form.autoLaunchOnStart": "ЗапуÑкати Ferdi на початку", 279 "settings.app.form.autoLaunchOnStart": "ЗапуÑкати Ferdi на початку",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Включити бета-верÑÑ–Ñ—", 281 "settings.app.form.beta": "Включити бета-верÑÑ–Ñ—",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Ввімкнути приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ GPU", 284 "settings.app.form.enableGPUAcceleration": "Ввімкнути приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ GPU",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -286,10 +292,10 @@
286 "settings.app.form.inactivityLock": "Lock after inactivity", 292 "settings.app.form.inactivityLock": "Lock after inactivity",
287 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 293 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
288 "settings.app.form.language": "Мова", 294 "settings.app.form.language": "Мова",
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Пароль",
290 "settings.app.form.minimizeToSystemTray": "Мінімізувати Ferdi до ÑиÑтемного лотка", 296 "settings.app.form.minimizeToSystemTray": "Мінімізувати Ferdi до ÑиÑтемного лотка",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна", 301 "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Показати вкладку вимкнених ÑервіÑів", 307 "settings.app.form.showDisabledServices": "Показати вкладку вимкнених ÑервіÑів",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Показувати значок непрочитаних повідомлень коли ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ñ–", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Показувати значок непрочитаних повідомлень коли ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ñ–",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "ÐалаштуваннÑ", 313 "settings.app.headline": "ÐалаштуваннÑ",
@@ -315,16 +320,14 @@
315 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 320 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
316 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 321 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.",
317 "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.", 322 "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.",
318 "settings.app.lockedPassword": "Password", 323 "settings.app.lockedPassword": "Пароль",
319 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 324 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
320 "settings.app.restartRequired": "Зміни потребують перезапуÑку", 325 "settings.app.restartRequired": "Зміни потребують перезапуÑку",
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Кеш", 329 "settings.app.subheadlineCache": "Кеш",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Допоможіть переклаÑти Ferdi на Вашу мову.", 331 "settings.app.translationHelp": "Допоможіть переклаÑти Ferdi на Вашу мову.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ñтупне, завантаженнÑ...", 333 "settings.app.updateStatusAvailable": "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ñтупне, завантаженнÑ...",
@@ -339,7 +342,7 @@
339 "settings.navigation.team": "Manage Team", 342 "settings.navigation.team": "Manage Team",
340 "settings.navigation.yourServices": "Ваші ÑервіÑи", 343 "settings.navigation.yourServices": "Ваші ÑервіÑи",
341 "settings.navigation.yourWorkspaces": "Your workspaces", 344 "settings.navigation.yourWorkspaces": "Your workspaces",
342 "settings.recipes.all": "ÐÑÑ– ÑервіÑи", 345 "settings.recipes.all": "УÑÑ– ÑервіÑи",
343 "settings.recipes.custom": "Custom Services", 346 "settings.recipes.custom": "Custom Services",
344 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", 347 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes",
345 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 348 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Увімкнути звук", 370 "settings.service.form.enableAudio": "Увімкнути звук",
368 "settings.service.form.enableBadge": "Показувати непрочитані повідомленнÑ", 371 "settings.service.form.enableBadge": "Показувати непрочитані повідомленнÑ",
369 "settings.service.form.enableDarkMode": "Переходь на Темну Сторону", 372 "settings.service.form.enableDarkMode": "Переходь на Темну Сторону",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Увімкнути ÑповіщеннÑ", 377 "settings.service.form.enableNotification": "Увімкнути ÑповіщеннÑ",
371 "settings.service.form.enableService": "Увімкнути ÑервіÑ", 378 "settings.service.form.enableService": "Увімкнути ÑервіÑ",
372 "settings.service.form.headlineBadges": "Значки непрочитаних повідомлень", 379 "settings.service.form.headlineBadges": "Значки непрочитаних повідомлень",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Команда", 423 "settings.team.headline": "Команда",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
@@ -463,7 +470,7 @@
463 "signup.legal.privacy": "ЗаÑва про конфіденційніÑÑ‚ÑŒ", 470 "signup.legal.privacy": "ЗаÑва про конфіденційніÑÑ‚ÑŒ",
464 "signup.legal.terms": "Умови викориÑтаннÑ", 471 "signup.legal.terms": "Умови викориÑтаннÑ",
465 "signup.link.login": "У Ð²Ð°Ñ Ð²Ð¶Ðµ Ñ” обліковий запиÑ, увійти?", 472 "signup.link.login": "У Ð²Ð°Ñ Ð²Ð¶Ðµ Ñ” обліковий запиÑ, увійти?",
466 "signup.password.label": "Password", 473 "signup.password.label": "Пароль",
467 "signup.submit.label": "Створити акаунт", 474 "signup.submit.label": "Створити акаунт",
468 "subscription.bestValue": "Best value", 475 "subscription.bestValue": "Best value",
469 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 476 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
@@ -500,7 +507,7 @@
500 "welcome.loginButton": "Увійдіть до Ñвого акаунту", 507 "welcome.loginButton": "Увійдіть до Ñвого акаунту",
501 "welcome.signupButton": "Створити безплатний акаунт", 508 "welcome.signupButton": "Створити безплатний акаунт",
502 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 509 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace",
503 "workspaceDrawer.allServices": "ÐÑÑ– ÑервіÑи", 510 "workspaceDrawer.allServices": "УÑÑ– ÑервіÑи",
504 "workspaceDrawer.headline": "Workspaces", 511 "workspaceDrawer.headline": "Workspaces",
505 "workspaceDrawer.item.contextMenuEdit": "edit", 512 "workspaceDrawer.item.contextMenuEdit": "edit",
506 "workspaceDrawer.item.noServicesAddedYet": "No services added yet", 513 "workspaceDrawer.item.noServicesAddedYet": "No services added yet",
diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json
index eedd34706..65b0edbfa 100644
--- a/src/i18n/locales/vi.json
+++ b/src/i18n/locales/vi.json
@@ -1,6 +1,9 @@
1{ 1{
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 "changeserver.headline": "Change server",
5 "changeserver.label": "Server",
6 "changeserver.submit": "Submit",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 7 "feature.announcements.changelog.headline": "Changes in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 8 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "Reload Service",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "Settings",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json
index c852ebe60..b617f7e0a 100644
--- a/src/i18n/locales/zh-CN.json
+++ b/src/i18n/locales/zh-CN.json
@@ -266,7 +266,7 @@
266 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 266 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
267 "settings.app.currentVersion": "Current version:", 267 "settings.app.currentVersion": "Current version:",
268 "settings.app.form.accentColor": "Accent color", 268 "settings.app.form.accentColor": "Accent color",
269 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 269 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
270 "settings.app.form.autoLaunchInBackground": "Open in background", 270 "settings.app.form.autoLaunchInBackground": "Open in background",
271 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 271 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
272 "settings.app.form.beta": "Include beta versions", 272 "settings.app.form.beta": "Include beta versions",
diff --git a/src/i18n/locales/zh-HANT.json b/src/i18n/locales/zh-HANT.json
index 5a35d4cf8..026df56c3 100644
--- a/src/i18n/locales/zh-HANT.json
+++ b/src/i18n/locales/zh-HANT.json
@@ -1,6 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "é‡æ–°åŠ è¼‰", 2 "app.errorHandler.action": "é‡æ–°åŠ è¼‰",
3 "app.errorHandler.headline": "出ç¾éŒ¯èª¤", 3 "app.errorHandler.headline": "出ç¾éŒ¯èª¤",
4 "changeserver.headline": "切æ›æœå‹™å™¨",
5 "changeserver.label": "伺æœå™¨",
6 "changeserver.submit": "é€å‡º",
4 "feature.announcements.changelog.headline": "Ferdi 有了更新 {version}", 7 "feature.announcements.changelog.headline": "Ferdi 有了更新 {version}",
5 "feature.debugger.title": "發布除錯訊æ¯", 8 "feature.debugger.title": "發布除錯訊æ¯",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 9 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
@@ -154,6 +157,7 @@
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "é‡æ–°è¼‰å…¥", 158 "menu.view.reloadService": "é‡æ–°è¼‰å…¥",
156 "menu.view.resetZoom": "實際大å°", 159 "menu.view.resetZoom": "實際大å°",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "切æ›é–‹ç™¼äººå“¡å·¥å…·", 161 "menu.view.toggleDevTools": "切æ›é–‹ç™¼äººå“¡å·¥å…·",
158 "menu.view.toggleFullScreen": "切æ›å…¨èž¢å¹•", 162 "menu.view.toggleFullScreen": "切æ›å…¨èž¢å¹•",
159 "menu.view.toggleServiceDevTools": "切æ›é–‹ç™¼äººå“¡æœå‹™å·¥å…·", 163 "menu.view.toggleServiceDevTools": "切æ›é–‹ç™¼äººå“¡æœå‹™å·¥å…·",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "當å‰ç‰ˆæœ¬ï¼š", 275 "settings.app.currentVersion": "當å‰ç‰ˆæœ¬ï¼š",
272 "settings.app.form.accentColor": "強調é¡è‰²", 276 "settings.app.form.accentColor": "強調é¡è‰²",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "背景啟動", 278 "settings.app.form.autoLaunchInBackground": "背景啟動",
275 "settings.app.form.autoLaunchOnStart": "開機時啟動", 279 "settings.app.form.autoLaunchOnStart": "開機時啟動",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "包å«é–‹ç™¼ä¸­ç‰ˆæœ¬", 281 "settings.app.form.beta": "包å«é–‹ç™¼ä¸­ç‰ˆæœ¬",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "啟用夜間模å¼", 283 "settings.app.form.darkMode": "啟用夜間模å¼",
278 "settings.app.form.enableGPUAcceleration": "開啟顯示å¡ï¼ˆGPU)加速", 284 "settings.app.form.enableGPUAcceleration": "開啟顯示å¡ï¼ˆGPU)加速",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "密碼", 295 "settings.app.form.lockPassword": "密碼",
290 "settings.app.form.minimizeToSystemTray": "最å°åŒ–至系統匣", 296 "settings.app.form.minimizeToSystemTray": "最å°åŒ–至系統匣",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "å–消更新", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "關閉時ä¿æŒåœ¨èƒŒæ™¯é‹ä½œ", 301 "settings.app.form.runInBackground": "關閉時ä¿æŒåœ¨èƒŒæ™¯é‹ä½œ",
@@ -297,12 +303,11 @@
297 "settings.app.form.scheduledDNDEnd": "至", 303 "settings.app.form.scheduledDNDEnd": "至",
298 "settings.app.form.scheduledDNDStart": "從", 304 "settings.app.form.scheduledDNDStart": "從",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "伺æœå™¨",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "開始時最å°åŒ–到系統匣", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "設置", 313 "settings.app.headline": "設置",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "有å¯ç”¨æ›´æ–°ï¼Œä¸‹è¼‰ä¸­...", 333 "settings.app.updateStatusAvailable": "有å¯ç”¨æ›´æ–°ï¼Œä¸‹è¼‰ä¸­...",
@@ -367,6 +370,10 @@
367 "settings.service.form.enableAudio": "啟用音效", 370 "settings.service.form.enableAudio": "啟用音效",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "啟用夜間模å¼", 372 "settings.service.form.enableDarkMode": "啟用夜間模å¼",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "啟用通知", 377 "settings.service.form.enableNotification": "啟用通知",
371 "settings.service.form.enableService": "啟用æœå‹™", 378 "settings.service.form.enableService": "啟用æœå‹™",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "告訴你的朋å‹", 419 "settings.supportFerdi.share": "告訴你的朋å‹",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "團隊", 423 "settings.team.headline": "團隊",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json
index eedd34706..f70b2c837 100644
--- a/src/i18n/locales/zh.json
+++ b/src/i18n/locales/zh.json
@@ -1,15 +1,18 @@
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 "changeserver.headline": "Change server",
5 "feature.debugger.title": "Publish debugging information", 5 "changeserver.label": "æœåŠ¡å™¨ï¼š",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "changeserver.submit": "Submit",
7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.announcements.changelog.headline": "Ferdiçš„å˜åŒ–",
8 "feature.debugger.title": "å‘布调试信æ¯",
9 "feature.delayApp.headline": "请购买Ferdi 支æŒè€…许å¯è¯æ¥è·³è¿‡ç­‰å¾…",
10 "feature.delayApp.text": "Ferdi将在 {seconds} 秒åŽç»§ç»­ã€‚",
8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 11 "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", 12 "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", 13 "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", 14 "feature.delayApp.upgrade.action": "获得Ferdi 支æŒè€…许å¯è¯",
12 "feature.delayApp.upgrade.actionShort": "Upgrade account", 15 "feature.delayApp.upgrade.actionShort": "å‡çº§è´¦æˆ·",
13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", 16 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
14 "feature.planSelection.cta.stayOnFree": "Stay on Free", 17 "feature.planSelection.cta.stayOnFree": "Stay on Free",
15 "feature.planSelection.cta.trial": "Start my free 14-days Trial", 18 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
@@ -26,20 +29,20 @@
26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 29 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 30 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 31 "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.", 32 "feature.publishDebugInfo.error": "å‘布调试信æ¯æ—¶å‡ºé”™ã€‚请ç¨åŽå†è¯•æˆ–查看控制å°ä»¥èŽ·å–更多信æ¯ã€‚",
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", 33 "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", 34 "feature.publishDebugInfo.privacy": "éšç§æƒæ”¿ç­–",
32 "feature.publishDebugInfo.publish": "Accept and publish", 35 "feature.publishDebugInfo.publish": "接å—并å‘布",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 36 "feature.publishDebugInfo.published": "您的调试日志已ç»å‘布,现在å¯ç”¨äºŽ",
34 "feature.publishDebugInfo.terms": "Terms of service", 37 "feature.publishDebugInfo.terms": "Terms of service",
35 "feature.publishDebugInfo.title": "Publish debug information", 38 "feature.publishDebugInfo.title": "å‘布调试信æ¯",
36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 39 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
37 "feature.quickSwitch.search": "Search...", 40 "feature.quickSwitch.search": "æœç´¢...",
38 "feature.quickSwitch.title": "QuickSwitch", 41 "feature.quickSwitch.title": "快速切æ¢",
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.", 42 "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", 43 "feature.shareFranz.action.email": "以邮件形å¼å‘é€",
41 "feature.shareFranz.action.facebook": "Share on Facebook", 44 "feature.shareFranz.action.facebook": "在 Facebook 上分享",
42 "feature.shareFranz.action.twitter": "Share on Twitter", 45 "feature.shareFranz.action.twitter": "在Twitter上分享",
43 "feature.shareFranz.headline": "Ferdi is better together!", 46 "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", 47 "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", 48 "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",
@@ -55,7 +58,7 @@
55 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan", 58 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
56 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", 59 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.",
57 "global.api.unhealthy": "Can't connect to Ferdi online services", 60 "global.api.unhealthy": "Can't connect to Ferdi online services",
58 "global.franzProRequired": "Ferdi Professional Required", 61 "global.franzProRequired": "需è¦Ferdi 专业版",
59 "global.notConnectedToTheInternet": "You are not connected to the internet.", 62 "global.notConnectedToTheInternet": "You are not connected to the internet.",
60 "global.spellchecker.useDefault": "Use System Default ({default})", 63 "global.spellchecker.useDefault": "Use System Default ({default})",
61 "global.spellchecking.autodetect": "Detect language automatically", 64 "global.spellchecking.autodetect": "Detect language automatically",
@@ -80,7 +83,7 @@
80 "invite.skip.label": "I want to do this later", 83 "invite.skip.label": "I want to do this later",
81 "invite.submit.label": "Send invites", 84 "invite.submit.label": "Send invites",
82 "invite.successInfo": "Invitations sent successfully", 85 "invite.successInfo": "Invitations sent successfully",
83 "locked.headline": "Locked", 86 "locked.headline": "å·²é”定",
84 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 87 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
85 "locked.invalidCredentials": "Password invalid", 88 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 89 "locked.password.label": "Password",
@@ -103,57 +106,58 @@
103 "menu.Todoss.closeTodosDrawer": "Close Todos drawer", 106 "menu.Todoss.closeTodosDrawer": "Close Todos drawer",
104 "menu.Todoss.openTodosDrawer": "Open Todos drawer", 107 "menu.Todoss.openTodosDrawer": "Open Todos drawer",
105 "menu.app.about": "About Ferdi", 108 "menu.app.about": "About Ferdi",
106 "menu.app.announcement": "What's new?", 109 "menu.app.announcement": "新功能",
107 "menu.app.autohideMenuBar": "Auto-hide menu bar", 110 "menu.app.autohideMenuBar": "Auto-hide menu bar",
108 "menu.app.checkForUpdates": "Check for updates", 111 "menu.app.checkForUpdates": "Check for updates",
109 "menu.app.hide": "Hide", 112 "menu.app.hide": "éšè—",
110 "menu.app.hideOthers": "Hide Others", 113 "menu.app.hideOthers": "éšè—其它",
111 "menu.app.quit": "Quit", 114 "menu.app.quit": "退出",
112 "menu.app.settings": "Settings", 115 "menu.app.settings": "设置",
113 "menu.app.unhide": "Unhide", 116 "menu.app.unhide": "å–消éšè—",
114 "menu.edit": "Edit", 117 "menu.edit": "编辑",
115 "menu.edit.copy": "Copy", 118 "menu.edit.copy": "å¤åˆ¶",
116 "menu.edit.cut": "Cut", 119 "menu.edit.cut": "剪切",
117 "menu.edit.delete": "Delete", 120 "menu.edit.delete": "删除",
118 "menu.edit.emojiSymbols": "Emoji & Symbols", 121 "menu.edit.emojiSymbols": "Emoji 和符å·",
119 "menu.edit.findInPage": "Find in Page", 122 "menu.edit.findInPage": "页内æœç´¢",
120 "menu.edit.paste": "Paste", 123 "menu.edit.paste": "粘贴",
121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 124 "menu.edit.pasteAndMatchStyle": "粘贴和匹é…æ ·å¼",
122 "menu.edit.redo": "Redo", 125 "menu.edit.redo": "é‡åš",
123 "menu.edit.selectAll": "Select All", 126 "menu.edit.selectAll": "选择所有",
124 "menu.edit.speech": "Speech", 127 "menu.edit.speech": "语音",
125 "menu.edit.startDictation": "Start Dictation", 128 "menu.edit.startDictation": "Start Dictation",
126 "menu.edit.startSpeaking": "Start Speaking", 129 "menu.edit.startSpeaking": "开始说è¯",
127 "menu.edit.stopSpeaking": "Stop Speaking", 130 "menu.edit.stopSpeaking": "åœæ­¢è¯´è¯",
128 "menu.edit.undo": "Undo", 131 "menu.edit.undo": "撤销",
129 "menu.file": "File", 132 "menu.file": "文件",
130 "menu.help": "Help", 133 "menu.help": "帮助",
131 "menu.help.changelog": "Changelog", 134 "menu.help.changelog": "更新日志",
132 "menu.help.debugInfo": "Copy Debug Information", 135 "menu.help.debugInfo": "å¤åˆ¶è°ƒè¯•ä¿¡æ¯",
133 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 136 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.",
134 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 137 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
135 "menu.help.learnMore": "Learn More", 138 "menu.help.learnMore": "Learn More",
136 "menu.help.privacy": "Privacy Statement", 139 "menu.help.privacy": "Privacy Statement",
137 "menu.help.publishDebugInfo": "Publish Debug Information", 140 "menu.help.publishDebugInfo": "å‘布调试信æ¯",
138 "menu.help.support": "Support", 141 "menu.help.support": "支æŒ",
139 "menu.help.tos": "Terms of Service", 142 "menu.help.tos": "æœåŠ¡æ¡æ¬¾",
140 "menu.services": "Services", 143 "menu.services": "æœåŠ¡",
141 "menu.services.activatePreviousService": "Activate previous service", 144 "menu.services.activatePreviousService": "激活以å‰çš„æœåŠ¡",
142 "menu.services.addNewService": "Add New Service...", 145 "menu.services.addNewService": "添加新æœåŠ¡",
143 "menu.services.goHome": "Home", 146 "menu.services.goHome": "主页",
144 "menu.services.setNextServiceActive": "Activate next service", 147 "menu.services.setNextServiceActive": "激活下一个æœåŠ¡",
145 "menu.todos": "Todos", 148 "menu.todos": "待办事项",
146 "menu.todos.enableTodos": "Enable Todos", 149 "menu.todos.enableTodos": "å¯ç”¨å¾…办事项",
147 "menu.view": "View", 150 "menu.view": "查看",
148 "menu.view.back": "Back", 151 "menu.view.back": "返回",
149 "menu.view.enterFullScreen": "Enter Full Screen", 152 "menu.view.enterFullScreen": "进入全å±",
150 "menu.view.exitFullScreen": "Exit Full Screen", 153 "menu.view.exitFullScreen": "退出全å±",
151 "menu.view.forward": "Forward", 154 "menu.view.forward": "Forward",
152 "menu.view.lockFerdi": "Lock Ferdi", 155 "menu.view.lockFerdi": "Lock Ferdi",
153 "menu.view.openQuickSwitch": "Open Quick Switch", 156 "menu.view.openQuickSwitch": "Open Quick Switch",
154 "menu.view.reloadFranz": "Reload Ferdi", 157 "menu.view.reloadFranz": "Reload Ferdi",
155 "menu.view.reloadService": "Reload Service", 158 "menu.view.reloadService": "é‡æ–°åŠ è½½æœåŠ¡",
156 "menu.view.resetZoom": "Actual Size", 159 "menu.view.resetZoom": "Actual Size",
160 "menu.view.toggleDarkMode": "Toggle Dark Mode",
157 "menu.view.toggleDevTools": "Toggle Developer Tools", 161 "menu.view.toggleDevTools": "Toggle Developer Tools",
158 "menu.view.toggleFullScreen": "Toggle Full Screen", 162 "menu.view.toggleFullScreen": "Toggle Full Screen",
159 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 163 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
@@ -175,7 +179,7 @@
175 "password.noUser": "No user with that email address was found", 179 "password.noUser": "No user with that email address was found",
176 "password.submit.label": "Submit", 180 "password.submit.label": "Submit",
177 "password.successInfo": "Please check your email", 181 "password.successInfo": "Please check your email",
178 "premiumFeature.button.upgradeAccount": "Upgrade account", 182 "premiumFeature.button.upgradeAccount": "å‡çº§è´¦æˆ·",
179 "pricing.features.accountSync": "Account Synchronisation", 183 "pricing.features.accountSync": "Account Synchronisation",
180 "pricing.features.adFree": "Forever ad-free", 184 "pricing.features.adFree": "Forever ad-free",
181 "pricing.features.appDelays": "No Waiting Screens", 185 "pricing.features.appDelays": "No Waiting Screens",
@@ -270,10 +274,12 @@
270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 274 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
271 "settings.app.currentVersion": "Current version:", 275 "settings.app.currentVersion": "Current version:",
272 "settings.app.form.accentColor": "Accent color", 276 "settings.app.form.accentColor": "Accent color",
273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 277 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting",
274 "settings.app.form.autoLaunchInBackground": "Open in background", 278 "settings.app.form.autoLaunchInBackground": "Open in background",
275 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 279 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start",
280 "settings.app.form.automaticUpdates": "Enable updates",
276 "settings.app.form.beta": "Include beta versions", 281 "settings.app.form.beta": "Include beta versions",
282 "settings.app.form.customTodoServer": "Custom Todo Server",
277 "settings.app.form.darkMode": "Enable dark mode", 283 "settings.app.form.darkMode": "Enable dark mode",
278 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 284 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
279 "settings.app.form.enableLock": "Enable Password Lock", 285 "settings.app.form.enableLock": "Enable Password Lock",
@@ -289,7 +295,7 @@
289 "settings.app.form.lockPassword": "Password", 295 "settings.app.form.lockPassword": "Password",
290 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 296 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 297 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
292 "settings.app.form.noUpdates": "Disable updates", 298 "settings.app.form.predefinedTodoServer": "Todo Server",
293 "settings.app.form.privateNotifications": "Don't show message content in notifications", 299 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 300 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 301 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
@@ -297,15 +303,14 @@
297 "settings.app.form.scheduledDNDEnd": "To", 303 "settings.app.form.scheduledDNDEnd": "To",
298 "settings.app.form.scheduledDNDStart": "From", 304 "settings.app.form.scheduledDNDStart": "From",
299 "settings.app.form.sentry": "Send telemetry data", 305 "settings.app.form.sentry": "Send telemetry data",
300 "settings.app.form.server": "Server",
301 "settings.app.form.serviceRibbonWidth": "Sidebar width", 306 "settings.app.form.serviceRibbonWidth": "Sidebar width",
302 "settings.app.form.showDisabledServices": "Display disabled services tabs", 307 "settings.app.form.showDisabledServices": "Display disabled services tabs",
303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 308 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
304 "settings.app.form.startMinimized": "Start minimized in tray", 309 "settings.app.form.showDragArea": "Show draggable area on window",
305 "settings.app.form.todoServer": "Todo Server", 310 "settings.app.form.startMinimized": "Start minimized",
306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 311 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 312 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Settings", 313 "settings.app.headline": "设置",
309 "settings.app.headlineAdvanced": "Advanced", 314 "settings.app.headlineAdvanced": "Advanced",
310 "settings.app.headlineAppearance": "Appearance", 315 "settings.app.headlineAppearance": "Appearance",
311 "settings.app.headlineGeneral": "General", 316 "settings.app.headlineGeneral": "General",
@@ -321,10 +326,8 @@
321 "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.", 326 "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.",
322 "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.", 327 "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.",
323 "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.", 328 "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.",
324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
325 "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.",
326 "settings.app.subheadlineCache": "Cache", 329 "settings.app.subheadlineCache": "Cache",
327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 330 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
328 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 331 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 332 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
330 "settings.app.updateStatusAvailable": "Update available, downloading...", 333 "settings.app.updateStatusAvailable": "Update available, downloading...",
@@ -334,7 +337,7 @@
334 "settings.navigation.account": "Account", 337 "settings.navigation.account": "Account",
335 "settings.navigation.availableServices": "Available services", 338 "settings.navigation.availableServices": "Available services",
336 "settings.navigation.logout": "Logout", 339 "settings.navigation.logout": "Logout",
337 "settings.navigation.settings": "Settings", 340 "settings.navigation.settings": "设置",
338 "settings.navigation.supportFerdi": "Support Ferdi", 341 "settings.navigation.supportFerdi": "Support Ferdi",
339 "settings.navigation.team": "Manage Team", 342 "settings.navigation.team": "Manage Team",
340 "settings.navigation.yourServices": "Your services", 343 "settings.navigation.yourServices": "Your services",
@@ -367,13 +370,17 @@
367 "settings.service.form.enableAudio": "Enable audio", 370 "settings.service.form.enableAudio": "Enable audio",
368 "settings.service.form.enableBadge": "Show unread message badges", 371 "settings.service.form.enableBadge": "Show unread message badges",
369 "settings.service.form.enableDarkMode": "Enable Dark Mode", 372 "settings.service.form.enableDarkMode": "Enable Dark Mode",
373 "settings.service.form.darkReaderBrightness": "Brightness",
374 "settings.service.form.darkReaderContrast": "Contrast",
375 "settings.service.form.darkReaderSepia": "Sepia",
376 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
370 "settings.service.form.enableNotification": "Enable notifications", 377 "settings.service.form.enableNotification": "Enable notifications",
371 "settings.service.form.enableService": "Enable service", 378 "settings.service.form.enableService": "Enable service",
372 "settings.service.form.headlineBadges": "Unread message badges", 379 "settings.service.form.headlineBadges": "Unread message badges",
373 "settings.service.form.headlineGeneral": "General", 380 "settings.service.form.headlineGeneral": "General",
374 "settings.service.form.headlineNotifications": "Notifications", 381 "settings.service.form.headlineNotifications": "Notifications",
375 "settings.service.form.icon": "Custom icon", 382 "settings.service.form.icon": "Custom icon",
376 "settings.service.form.iconDelete": "Delete", 383 "settings.service.form.iconDelete": "删除",
377 "settings.service.form.iconUpload": "Drop your image, or click here", 384 "settings.service.form.iconUpload": "Drop your image, or click here",
378 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 385 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
379 "settings.service.form.indirectMessages": "Show message badge for all new messages", 386 "settings.service.form.indirectMessages": "Show message badge for all new messages",
@@ -411,11 +418,11 @@
411 "settings.supportFerdi.openCollective": "Support our Open Collective", 418 "settings.supportFerdi.openCollective": "Support our Open Collective",
412 "settings.supportFerdi.share": "Tell your Friends", 419 "settings.supportFerdi.share": "Tell your Friends",
413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 420 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
414 "settings.team.contentHeadline": "Ferdi for Teams", 421 "settings.team.contentHeadline": "Franz Team Management",
415 "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!", 422 "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
416 "settings.team.headline": "Team", 423 "settings.team.headline": "Team",
417 "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.", 424 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
418 "settings.team.manageAction": "Manage your Team on getferdi.com", 425 "settings.team.manageAction": "Manage your Team on meetfranz.com",
419 "settings.team.teamsUnavailable": "Teams are unavailable", 426 "settings.team.teamsUnavailable": "Teams are unavailable",
420 "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.", 427 "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.",
421 "settings.team.upgradeAction": "Upgrade your Account", 428 "settings.team.upgradeAction": "Upgrade your Account",
@@ -452,7 +459,7 @@
452 "sidebar.muteApp": "Disable notifications & audio", 459 "sidebar.muteApp": "Disable notifications & audio",
453 "sidebar.openTodosDrawer": "Open Ferdi Todos", 460 "sidebar.openTodosDrawer": "Open Ferdi Todos",
454 "sidebar.openWorkspaceDrawer": "Open workspace drawer", 461 "sidebar.openWorkspaceDrawer": "Open workspace drawer",
455 "sidebar.settings": "Settings", 462 "sidebar.settings": "设置",
456 "sidebar.unmuteApp": "Enable notifications & audio", 463 "sidebar.unmuteApp": "Enable notifications & audio",
457 "signup.email.label": "Email address", 464 "signup.email.label": "Email address",
458 "signup.emailDuplicate": "A user with that email address already exists", 465 "signup.emailDuplicate": "A user with that email address already exists",
@@ -482,21 +489,21 @@
482 "tabs.item.disableAudio": "Disable audio", 489 "tabs.item.disableAudio": "Disable audio",
483 "tabs.item.disableNotifications": "Disable notifications", 490 "tabs.item.disableNotifications": "Disable notifications",
484 "tabs.item.disableService": "Disable service", 491 "tabs.item.disableService": "Disable service",
485 "tabs.item.edit": "Edit", 492 "tabs.item.edit": "编辑",
486 "tabs.item.enableAudio": "Enable audio", 493 "tabs.item.enableAudio": "Enable audio",
487 "tabs.item.enableNotification": "Enable notifications", 494 "tabs.item.enableNotification": "Enable notifications",
488 "tabs.item.enableService": "Enable service", 495 "tabs.item.enableService": "Enable service",
489 "tabs.item.reload": "Reload", 496 "tabs.item.reload": "é‡æ–°åŠ è½½",
490 "validation.email": "{field} is not valid", 497 "validation.email": "{field} is not valid",
491 "validation.minLength": "{field} should be at least {length} characters long", 498 "validation.minLength": "{field} should be at least {length} characters long",
492 "validation.oneRequired": "At least one is required", 499 "validation.oneRequired": "At least one is required",
493 "validation.required": "{field} is required", 500 "validation.required": "{field} is required",
494 "validation.url": "{field} is not a valid URL", 501 "validation.url": "{field} is not a valid URL",
495 "webControls.back": "Back", 502 "webControls.back": "返回",
496 "webControls.forward": "Forward", 503 "webControls.forward": "Forward",
497 "webControls.goHome": "Home", 504 "webControls.goHome": "主页",
498 "webControls.openInBrowser": "Open in Browser", 505 "webControls.openInBrowser": "Open in Browser",
499 "webControls.reload": "Reload", 506 "webControls.reload": "é‡æ–°åŠ è½½",
500 "welcome.loginButton": "Login to your account", 507 "welcome.loginButton": "Login to your account",
501 "welcome.signupButton": "Create a free account", 508 "welcome.signupButton": "Create a free account",
502 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 509 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace",
diff --git a/src/i18n/messages/src/components/auth/ChangeServer.json b/src/i18n/messages/src/components/auth/ChangeServer.json
new file mode 100644
index 000000000..3a122d50c
--- /dev/null
+++ b/src/i18n/messages/src/components/auth/ChangeServer.json
@@ -0,0 +1,41 @@
1[
2 {
3 "id": "changeserver.headline",
4 "defaultMessage": "!!!Change server",
5 "file": "src/components/auth/ChangeServer.js",
6 "start": {
7 "line": 11,
8 "column": 12
9 },
10 "end": {
11 "line": 14,
12 "column": 3
13 }
14 },
15 {
16 "id": "changeserver.label",
17 "defaultMessage": "!!!Server",
18 "file": "src/components/auth/ChangeServer.js",
19 "start": {
20 "line": 15,
21 "column": 9
22 },
23 "end": {
24 "line": 18,
25 "column": 3
26 }
27 },
28 {
29 "id": "changeserver.submit",
30 "defaultMessage": "!!!Submit",
31 "file": "src/components/auth/ChangeServer.js",
32 "start": {
33 "line": 19,
34 "column": 10
35 },
36 "end": {
37 "line": 22,
38 "column": 3
39 }
40 }
41] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/content/ConnectionBanner.json b/src/i18n/messages/src/components/services/content/ConnectionBanner.json
new file mode 100644
index 000000000..1047c28b5
--- /dev/null
+++ b/src/i18n/messages/src/components/services/content/ConnectionBanner.json
@@ -0,0 +1,67 @@
1[
2 {
3 "id": "webControls.goHome",
4 "defaultMessage": "!!!Home",
5 "file": "src/components/services/content/ConnectionBanner.js",
6 "start": {
7 "line": 13,
8 "column": 10
9 },
10 "end": {
11 "line": 16,
12 "column": 3
13 }
14 },
15 {
16 "id": "webControls.openInBrowser",
17 "defaultMessage": "!!!Open in Browser",
18 "file": "src/components/services/content/ConnectionBanner.js",
19 "start": {
20 "line": 17,
21 "column": 17
22 },
23 "end": {
24 "line": 20,
25 "column": 3
26 }
27 },
28 {
29 "id": "webControls.back",
30 "defaultMessage": "!!!Back",
31 "file": "src/components/services/content/ConnectionBanner.js",
32 "start": {
33 "line": 21,
34 "column": 8
35 },
36 "end": {
37 "line": 24,
38 "column": 3
39 }
40 },
41 {
42 "id": "webControls.forward",
43 "defaultMessage": "!!!Forward",
44 "file": "src/components/services/content/ConnectionBanner.js",
45 "start": {
46 "line": 25,
47 "column": 11
48 },
49 "end": {
50 "line": 28,
51 "column": 3
52 }
53 },
54 {
55 "id": "webControls.reload",
56 "defaultMessage": "!!!Reload",
57 "file": "src/components/services/content/ConnectionBanner.js",
58 "start": {
59 "line": 29,
60 "column": 10
61 },
62 "end": {
63 "line": 32,
64 "column": 3
65 }
66 }
67] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/content/ConnectionLost.json b/src/i18n/messages/src/components/services/content/ConnectionLost.json
new file mode 100644
index 000000000..ee3f7a4ba
--- /dev/null
+++ b/src/i18n/messages/src/components/services/content/ConnectionLost.json
@@ -0,0 +1,67 @@
1[
2 {
3 "id": "webControls.goHome",
4 "defaultMessage": "!!!Home",
5 "file": "src/components/services/content/ConnectionLost.js",
6 "start": {
7 "line": 13,
8 "column": 10
9 },
10 "end": {
11 "line": 16,
12 "column": 3
13 }
14 },
15 {
16 "id": "webControls.openInBrowser",
17 "defaultMessage": "!!!Open in Browser",
18 "file": "src/components/services/content/ConnectionLost.js",
19 "start": {
20 "line": 17,
21 "column": 17
22 },
23 "end": {
24 "line": 20,
25 "column": 3
26 }
27 },
28 {
29 "id": "webControls.back",
30 "defaultMessage": "!!!Back",
31 "file": "src/components/services/content/ConnectionLost.js",
32 "start": {
33 "line": 21,
34 "column": 8
35 },
36 "end": {
37 "line": 24,
38 "column": 3
39 }
40 },
41 {
42 "id": "webControls.forward",
43 "defaultMessage": "!!!Forward",
44 "file": "src/components/services/content/ConnectionLost.js",
45 "start": {
46 "line": 25,
47 "column": 11
48 },
49 "end": {
50 "line": 28,
51 "column": 3
52 }
53 },
54 {
55 "id": "webControls.reload",
56 "defaultMessage": "!!!Reload",
57 "file": "src/components/services/content/ConnectionLost.js",
58 "start": {
59 "line": 29,
60 "column": 10
61 },
62 "end": {
63 "line": 32,
64 "column": 3
65 }
66 }
67] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/content/ConnectionLostBanner.json b/src/i18n/messages/src/components/services/content/ConnectionLostBanner.json
new file mode 100644
index 000000000..fd7019f41
--- /dev/null
+++ b/src/i18n/messages/src/components/services/content/ConnectionLostBanner.json
@@ -0,0 +1,41 @@
1[
2 {
3 "id": "connectionLostBanner.message",
4 "defaultMessage": "!!!Oh no! Franz lost the connection to {name}.",
5 "file": "src/components/services/content/ConnectionLostBanner.js",
6 "start": {
7 "line": 15,
8 "column": 8
9 },
10 "end": {
11 "line": 18,
12 "column": 3
13 }
14 },
15 {
16 "id": "connectionLostBanner.informationLink",
17 "defaultMessage": "!!!What happened?",
18 "file": "src/components/services/content/ConnectionLostBanner.js",
19 "start": {
20 "line": 19,
21 "column": 19
22 },
23 "end": {
24 "line": 22,
25 "column": 3
26 }
27 },
28 {
29 "id": "connectionLostBanner.cta",
30 "defaultMessage": "!!!Reload Service",
31 "file": "src/components/services/content/ConnectionLostBanner.js",
32 "start": {
33 "line": 23,
34 "column": 7
35 },
36 "end": {
37 "line": 26,
38 "column": 3
39 }
40 }
41] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/content/WebControls.json b/src/i18n/messages/src/components/services/content/WebControls.json
new file mode 100644
index 000000000..5af5143d0
--- /dev/null
+++ b/src/i18n/messages/src/components/services/content/WebControls.json
@@ -0,0 +1,67 @@
1[
2 {
3 "id": "webControls.goHome",
4 "defaultMessage": "!!!Home",
5 "file": "src/components/services/content/WebControls.js",
6 "start": {
7 "line": 13,
8 "column": 10
9 },
10 "end": {
11 "line": 16,
12 "column": 3
13 }
14 },
15 {
16 "id": "webControls.openInBrowser",
17 "defaultMessage": "!!!Open in Browser",
18 "file": "src/components/services/content/WebControls.js",
19 "start": {
20 "line": 17,
21 "column": 17
22 },
23 "end": {
24 "line": 20,
25 "column": 3
26 }
27 },
28 {
29 "id": "webControls.back",
30 "defaultMessage": "!!!Back",
31 "file": "src/components/services/content/WebControls.js",
32 "start": {
33 "line": 21,
34 "column": 8
35 },
36 "end": {
37 "line": 24,
38 "column": 3
39 }
40 },
41 {
42 "id": "webControls.forward",
43 "defaultMessage": "!!!Forward",
44 "file": "src/components/services/content/WebControls.js",
45 "start": {
46 "line": 25,
47 "column": 11
48 },
49 "end": {
50 "line": 28,
51 "column": 3
52 }
53 },
54 {
55 "id": "webControls.reload",
56 "defaultMessage": "!!!Reload",
57 "file": "src/components/services/content/WebControls.js",
58 "start": {
59 "line": 29,
60 "column": 10
61 },
62 "end": {
63 "line": 32,
64 "column": 3
65 }
66 }
67] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/services/EditServiceForm.json b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
index df64c8a5f..811c49498 100644
--- a/src/i18n/messages/src/components/settings/services/EditServiceForm.json
+++ b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
@@ -234,15 +234,28 @@
234 } 234 }
235 }, 235 },
236 { 236 {
237 "id": "settings.service.form.disableHibernationInfo",
238 "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.",
239 "file": "src/components/settings/services/EditServiceForm.js",
240 "start": {
241 "line": 96,
242 "column": 26
243 },
244 "end": {
245 "line": 99,
246 "column": 3
247 }
248 },
249 {
237 "id": "settings.service.form.headlineNotifications", 250 "id": "settings.service.form.headlineNotifications",
238 "defaultMessage": "!!!Notifications", 251 "defaultMessage": "!!!Notifications",
239 "file": "src/components/settings/services/EditServiceForm.js", 252 "file": "src/components/settings/services/EditServiceForm.js",
240 "start": { 253 "start": {
241 "line": 96, 254 "line": 100,
242 "column": 25 255 "column": 25
243 }, 256 },
244 "end": { 257 "end": {
245 "line": 99, 258 "line": 103,
246 "column": 3 259 "column": 3
247 } 260 }
248 }, 261 },
@@ -251,11 +264,11 @@
251 "defaultMessage": "!!!Unread message badges", 264 "defaultMessage": "!!!Unread message badges",
252 "file": "src/components/settings/services/EditServiceForm.js", 265 "file": "src/components/settings/services/EditServiceForm.js",
253 "start": { 266 "start": {
254 "line": 100, 267 "line": 104,
255 "column": 18 268 "column": 18
256 }, 269 },
257 "end": { 270 "end": {
258 "line": 103, 271 "line": 107,
259 "column": 3 272 "column": 3
260 } 273 }
261 }, 274 },
@@ -264,11 +277,11 @@
264 "defaultMessage": "!!!General", 277 "defaultMessage": "!!!General",
265 "file": "src/components/settings/services/EditServiceForm.js", 278 "file": "src/components/settings/services/EditServiceForm.js",
266 "start": { 279 "start": {
267 "line": 104, 280 "line": 108,
268 "column": 19 281 "column": 19
269 }, 282 },
270 "end": { 283 "end": {
271 "line": 107, 284 "line": 111,
272 "column": 3 285 "column": 3
273 } 286 }
274 }, 287 },
@@ -277,11 +290,11 @@
277 "defaultMessage": "!!!Delete", 290 "defaultMessage": "!!!Delete",
278 "file": "src/components/settings/services/EditServiceForm.js", 291 "file": "src/components/settings/services/EditServiceForm.js",
279 "start": { 292 "start": {
280 "line": 108, 293 "line": 112,
281 "column": 14 294 "column": 14
282 }, 295 },
283 "end": { 296 "end": {
284 "line": 111, 297 "line": 115,
285 "column": 3 298 "column": 3
286 } 299 }
287 }, 300 },
@@ -290,11 +303,11 @@
290 "defaultMessage": "!!!Drop your image, or click here", 303 "defaultMessage": "!!!Drop your image, or click here",
291 "file": "src/components/settings/services/EditServiceForm.js", 304 "file": "src/components/settings/services/EditServiceForm.js",
292 "start": { 305 "start": {
293 "line": 112, 306 "line": 116,
294 "column": 14 307 "column": 14
295 }, 308 },
296 "end": { 309 "end": {
297 "line": 115, 310 "line": 119,
298 "column": 3 311 "column": 3
299 } 312 }
300 }, 313 },
@@ -303,11 +316,11 @@
303 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", 316 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings",
304 "file": "src/components/settings/services/EditServiceForm.js", 317 "file": "src/components/settings/services/EditServiceForm.js",
305 "start": { 318 "start": {
306 "line": 116, 319 "line": 120,
307 "column": 17 320 "column": 17
308 }, 321 },
309 "end": { 322 "end": {
310 "line": 119, 323 "line": 123,
311 "column": 3 324 "column": 3
312 } 325 }
313 }, 326 },
@@ -316,11 +329,11 @@
316 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", 329 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.",
317 "file": "src/components/settings/services/EditServiceForm.js", 330 "file": "src/components/settings/services/EditServiceForm.js",
318 "start": { 331 "start": {
319 "line": 120, 332 "line": 124,
320 "column": 20 333 "column": 20
321 }, 334 },
322 "end": { 335 "end": {
323 "line": 123, 336 "line": 127,
324 "column": 3 337 "column": 3
325 } 338 }
326 }, 339 },
@@ -329,11 +342,11 @@
329 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", 342 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.",
330 "file": "src/components/settings/services/EditServiceForm.js", 343 "file": "src/components/settings/services/EditServiceForm.js",
331 "start": { 344 "start": {
332 "line": 124, 345 "line": 128,
333 "column": 13 346 "column": 13
334 }, 347 },
335 "end": { 348 "end": {
336 "line": 127, 349 "line": 131,
337 "column": 3 350 "column": 3
338 } 351 }
339 } 352 }
diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
index 994bb4fa5..cdc6ded7e 100644
--- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
+++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Settings", 4 "defaultMessage": "!!!Settings",
5 "file": "src/components/settings/settings/EditSettingsForm.js", 5 "file": "src/components/settings/settings/EditSettingsForm.js",
6 "start": { 6 "start": {
7 "line": 31, 7 "line": 22,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 34, 11 "line": 25,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!General", 17 "defaultMessage": "!!!General",
18 "file": "src/components/settings/settings/EditSettingsForm.js", 18 "file": "src/components/settings/settings/EditSettingsForm.js",
19 "start": { 19 "start": {
20 "line": 35, 20 "line": 26,
21 "column": 19 21 "column": 19
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 38, 24 "line": 29,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!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.", 30 "defaultMessage": "!!!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.",
31 "file": "src/components/settings/settings/EditSettingsForm.js", 31 "file": "src/components/settings/settings/EditSettingsForm.js",
32 "start": { 32 "start": {
33 "line": 39, 33 "line": 30,
34 "column": 14 34 "column": 14
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 42, 37 "line": 33,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!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.", 43 "defaultMessage": "!!!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.",
44 "file": "src/components/settings/settings/EditSettingsForm.js", 44 "file": "src/components/settings/settings/EditSettingsForm.js",
45 "start": { 45 "start": {
46 "line": 43, 46 "line": 34,
47 "column": 17 47 "column": 17
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 46, 50 "line": 37,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,37 +56,11 @@
56 "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 56 "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
57 "file": "src/components/settings/settings/EditSettingsForm.js", 57 "file": "src/components/settings/settings/EditSettingsForm.js",
58 "start": { 58 "start": {
59 "line": 47, 59 "line": 38,
60 "column": 22 60 "column": 22
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 50, 63 "line": 41,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.app.serverInfo",
69 "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.",
70 "file": "src/components/settings/settings/EditSettingsForm.js",
71 "start": {
72 "line": 51,
73 "column": 14
74 },
75 "end": {
76 "line": 54,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.app.serverMoneyInfo",
82 "defaultMessage": "!!!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.",
83 "file": "src/components/settings/settings/EditSettingsForm.js",
84 "start": {
85 "line": 55,
86 "column": 19
87 },
88 "end": {
89 "line": 58,
90 "column": 3 64 "column": 3
91 } 65 }
92 }, 66 },
@@ -95,11 +69,11 @@
95 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", 69 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)",
96 "file": "src/components/settings/settings/EditSettingsForm.js", 70 "file": "src/components/settings/settings/EditSettingsForm.js",
97 "start": { 71 "start": {
98 "line": 59, 72 "line": 42,
99 "column": 18 73 "column": 18
100 }, 74 },
101 "end": { 75 "end": {
102 "line": 62, 76 "line": 45,
103 "column": 3 77 "column": 3
104 } 78 }
105 }, 79 },
@@ -108,11 +82,11 @@
108 "defaultMessage": "!!!Password", 82 "defaultMessage": "!!!Password",
109 "file": "src/components/settings/settings/EditSettingsForm.js", 83 "file": "src/components/settings/settings/EditSettingsForm.js",
110 "start": { 84 "start": {
111 "line": 63, 85 "line": 46,
112 "column": 18 86 "column": 18
113 }, 87 },
114 "end": { 88 "end": {
115 "line": 66, 89 "line": 49,
116 "column": 3 90 "column": 3
117 } 91 }
118 }, 92 },
@@ -121,11 +95,11 @@
121 "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 95 "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
122 "file": "src/components/settings/settings/EditSettingsForm.js", 96 "file": "src/components/settings/settings/EditSettingsForm.js",
123 "start": { 97 "start": {
124 "line": 67, 98 "line": 50,
125 "column": 22 99 "column": 22
126 }, 100 },
127 "end": { 101 "end": {
128 "line": 70, 102 "line": 53,
129 "column": 3 103 "column": 3
130 } 104 }
131 }, 105 },
@@ -134,11 +108,11 @@
134 "defaultMessage": "!!!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.", 108 "defaultMessage": "!!!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.",
135 "file": "src/components/settings/settings/EditSettingsForm.js", 109 "file": "src/components/settings/settings/EditSettingsForm.js",
136 "start": { 110 "start": {
137 "line": 71, 111 "line": 54,
138 "column": 12 112 "column": 12
139 }, 113 },
140 "end": { 114 "end": {
141 "line": 74, 115 "line": 57,
142 "column": 3 116 "column": 3
143 } 117 }
144 }, 118 },
@@ -147,11 +121,11 @@
147 "defaultMessage": "!!!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.", 121 "defaultMessage": "!!!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.",
148 "file": "src/components/settings/settings/EditSettingsForm.js", 122 "file": "src/components/settings/settings/EditSettingsForm.js",
149 "start": { 123 "start": {
150 "line": 75, 124 "line": 58,
151 "column": 24 125 "column": 24
152 }, 126 },
153 "end": { 127 "end": {
154 "line": 78, 128 "line": 61,
155 "column": 3 129 "column": 3
156 } 130 }
157 }, 131 },
@@ -160,11 +134,11 @@
160 "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", 134 "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.",
161 "file": "src/components/settings/settings/EditSettingsForm.js", 135 "file": "src/components/settings/settings/EditSettingsForm.js",
162 "start": { 136 "start": {
163 "line": 79, 137 "line": 62,
164 "column": 20 138 "column": 20
165 }, 139 },
166 "end": { 140 "end": {
167 "line": 82, 141 "line": 65,
168 "column": 3 142 "column": 3
169 } 143 }
170 }, 144 },
@@ -173,11 +147,11 @@
173 "defaultMessage": "!!!Language", 147 "defaultMessage": "!!!Language",
174 "file": "src/components/settings/settings/EditSettingsForm.js", 148 "file": "src/components/settings/settings/EditSettingsForm.js",
175 "start": { 149 "start": {
176 "line": 83, 150 "line": 66,
177 "column": 20 151 "column": 20
178 }, 152 },
179 "end": { 153 "end": {
180 "line": 86, 154 "line": 69,
181 "column": 3 155 "column": 3
182 } 156 }
183 }, 157 },
@@ -186,11 +160,11 @@
186 "defaultMessage": "!!!Updates", 160 "defaultMessage": "!!!Updates",
187 "file": "src/components/settings/settings/EditSettingsForm.js", 161 "file": "src/components/settings/settings/EditSettingsForm.js",
188 "start": { 162 "start": {
189 "line": 87, 163 "line": 70,
190 "column": 19 164 "column": 19
191 }, 165 },
192 "end": { 166 "end": {
193 "line": 90, 167 "line": 73,
194 "column": 3 168 "column": 3
195 } 169 }
196 }, 170 },
@@ -199,11 +173,11 @@
199 "defaultMessage": "!!!Appearance", 173 "defaultMessage": "!!!Appearance",
200 "file": "src/components/settings/settings/EditSettingsForm.js", 174 "file": "src/components/settings/settings/EditSettingsForm.js",
201 "start": { 175 "start": {
202 "line": 91, 176 "line": 74,
203 "column": 22 177 "column": 22
204 }, 178 },
205 "end": { 179 "end": {
206 "line": 94, 180 "line": 77,
207 "column": 3 181 "column": 3
208 } 182 }
209 }, 183 },
@@ -212,11 +186,11 @@
212 "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 186 "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
213 "file": "src/components/settings/settings/EditSettingsForm.js", 187 "file": "src/components/settings/settings/EditSettingsForm.js",
214 "start": { 188 "start": {
215 "line": 95, 189 "line": 78,
216 "column": 25 190 "column": 25
217 }, 191 },
218 "end": { 192 "end": {
219 "line": 98, 193 "line": 81,
220 "column": 3 194 "column": 3
221 } 195 }
222 }, 196 },
@@ -225,11 +199,11 @@
225 "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", 199 "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)",
226 "file": "src/components/settings/settings/EditSettingsForm.js", 200 "file": "src/components/settings/settings/EditSettingsForm.js",
227 "start": { 201 "start": {
228 "line": 99, 202 "line": 82,
229 "column": 19 203 "column": 19
230 }, 204 },
231 "end": { 205 "end": {
232 "line": 102, 206 "line": 85,
233 "column": 3 207 "column": 3
234 } 208 }
235 }, 209 },
@@ -238,11 +212,11 @@
238 "defaultMessage": "!!!Advanced", 212 "defaultMessage": "!!!Advanced",
239 "file": "src/components/settings/settings/EditSettingsForm.js", 213 "file": "src/components/settings/settings/EditSettingsForm.js",
240 "start": { 214 "start": {
241 "line": 103, 215 "line": 86,
242 "column": 20 216 "column": 20
243 }, 217 },
244 "end": { 218 "end": {
245 "line": 106, 219 "line": 89,
246 "column": 3 220 "column": 3
247 } 221 }
248 }, 222 },
@@ -251,11 +225,11 @@
251 "defaultMessage": "!!!Help us to translate Ferdi into your language.", 225 "defaultMessage": "!!!Help us to translate Ferdi into your language.",
252 "file": "src/components/settings/settings/EditSettingsForm.js", 226 "file": "src/components/settings/settings/EditSettingsForm.js",
253 "start": { 227 "start": {
254 "line": 107, 228 "line": 90,
255 "column": 19 229 "column": 19
256 }, 230 },
257 "end": { 231 "end": {
258 "line": 110, 232 "line": 93,
259 "column": 3 233 "column": 3
260 } 234 }
261 }, 235 },
@@ -264,11 +238,11 @@
264 "defaultMessage": "!!!Cache", 238 "defaultMessage": "!!!Cache",
265 "file": "src/components/settings/settings/EditSettingsForm.js", 239 "file": "src/components/settings/settings/EditSettingsForm.js",
266 "start": { 240 "start": {
267 "line": 111, 241 "line": 94,
268 "column": 20 242 "column": 20
269 }, 243 },
270 "end": { 244 "end": {
271 "line": 114, 245 "line": 97,
272 "column": 3 246 "column": 3
273 } 247 }
274 }, 248 },
@@ -277,11 +251,11 @@
277 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", 251 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
278 "file": "src/components/settings/settings/EditSettingsForm.js", 252 "file": "src/components/settings/settings/EditSettingsForm.js",
279 "start": { 253 "start": {
280 "line": 115, 254 "line": 98,
281 "column": 13 255 "column": 13
282 }, 256 },
283 "end": { 257 "end": {
284 "line": 118, 258 "line": 101,
285 "column": 3 259 "column": 3
286 } 260 }
287 }, 261 },
@@ -290,11 +264,11 @@
290 "defaultMessage": "!!!Clear cache", 264 "defaultMessage": "!!!Clear cache",
291 "file": "src/components/settings/settings/EditSettingsForm.js", 265 "file": "src/components/settings/settings/EditSettingsForm.js",
292 "start": { 266 "start": {
293 "line": 119, 267 "line": 102,
294 "column": 23 268 "column": 23
295 }, 269 },
296 "end": { 270 "end": {
297 "line": 122, 271 "line": 105,
298 "column": 3 272 "column": 3
299 } 273 }
300 }, 274 },
@@ -303,11 +277,11 @@
303 "defaultMessage": "!!!Check for updates", 277 "defaultMessage": "!!!Check for updates",
304 "file": "src/components/settings/settings/EditSettingsForm.js", 278 "file": "src/components/settings/settings/EditSettingsForm.js",
305 "start": { 279 "start": {
306 "line": 123, 280 "line": 106,
307 "column": 25 281 "column": 25
308 }, 282 },
309 "end": { 283 "end": {
310 "line": 126, 284 "line": 109,
311 "column": 3 285 "column": 3
312 } 286 }
313 }, 287 },
@@ -316,11 +290,11 @@
316 "defaultMessage": "!!!Restart & install update", 290 "defaultMessage": "!!!Restart & install update",
317 "file": "src/components/settings/settings/EditSettingsForm.js", 291 "file": "src/components/settings/settings/EditSettingsForm.js",
318 "start": { 292 "start": {
319 "line": 127, 293 "line": 110,
320 "column": 23 294 "column": 23
321 }, 295 },
322 "end": { 296 "end": {
323 "line": 130, 297 "line": 113,
324 "column": 3 298 "column": 3
325 } 299 }
326 }, 300 },
@@ -329,11 +303,11 @@
329 "defaultMessage": "!!!Is searching for update", 303 "defaultMessage": "!!!Is searching for update",
330 "file": "src/components/settings/settings/EditSettingsForm.js", 304 "file": "src/components/settings/settings/EditSettingsForm.js",
331 "start": { 305 "start": {
332 "line": 131, 306 "line": 114,
333 "column": 25 307 "column": 25
334 }, 308 },
335 "end": { 309 "end": {
336 "line": 134, 310 "line": 117,
337 "column": 3 311 "column": 3
338 } 312 }
339 }, 313 },
@@ -342,11 +316,11 @@
342 "defaultMessage": "!!!Update available, downloading...", 316 "defaultMessage": "!!!Update available, downloading...",
343 "file": "src/components/settings/settings/EditSettingsForm.js", 317 "file": "src/components/settings/settings/EditSettingsForm.js",
344 "start": { 318 "start": {
345 "line": 135, 319 "line": 118,
346 "column": 25 320 "column": 25
347 }, 321 },
348 "end": { 322 "end": {
349 "line": 138, 323 "line": 121,
350 "column": 3 324 "column": 3
351 } 325 }
352 }, 326 },
@@ -355,11 +329,11 @@
355 "defaultMessage": "!!!You are using the latest version of Ferdi", 329 "defaultMessage": "!!!You are using the latest version of Ferdi",
356 "file": "src/components/settings/settings/EditSettingsForm.js", 330 "file": "src/components/settings/settings/EditSettingsForm.js",
357 "start": { 331 "start": {
358 "line": 139, 332 "line": 122,
359 "column": 24 333 "column": 24
360 }, 334 },
361 "end": { 335 "end": {
362 "line": 142, 336 "line": 125,
363 "column": 3 337 "column": 3
364 } 338 }
365 }, 339 },
@@ -368,11 +342,11 @@
368 "defaultMessage": "!!!Current version:", 342 "defaultMessage": "!!!Current version:",
369 "file": "src/components/settings/settings/EditSettingsForm.js", 343 "file": "src/components/settings/settings/EditSettingsForm.js",
370 "start": { 344 "start": {
371 "line": 143, 345 "line": 126,
372 "column": 18 346 "column": 18
373 }, 347 },
374 "end": { 348 "end": {
375 "line": 146, 349 "line": 129,
376 "column": 3 350 "column": 3
377 } 351 }
378 }, 352 },
@@ -381,11 +355,11 @@
381 "defaultMessage": "!!!Changes require restart", 355 "defaultMessage": "!!!Changes require restart",
382 "file": "src/components/settings/settings/EditSettingsForm.js", 356 "file": "src/components/settings/settings/EditSettingsForm.js",
383 "start": { 357 "start": {
384 "line": 147, 358 "line": 130,
385 "column": 29 359 "column": 29
386 }, 360 },
387 "end": { 361 "end": {
388 "line": 150, 362 "line": 133,
389 "column": 3 363 "column": 3
390 } 364 }
391 }, 365 },
@@ -394,11 +368,11 @@
394 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", 368 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.",
395 "file": "src/components/settings/settings/EditSettingsForm.js", 369 "file": "src/components/settings/settings/EditSettingsForm.js",
396 "start": { 370 "start": {
397 "line": 151, 371 "line": 134,
398 "column": 22 372 "column": 22
399 }, 373 },
400 "end": { 374 "end": {
401 "line": 154, 375 "line": 137,
402 "column": 3 376 "column": 3
403 } 377 }
404 } 378 }
diff --git a/src/i18n/messages/src/components/settings/team/TeamDashboard.json b/src/i18n/messages/src/components/settings/team/TeamDashboard.json
index bbf362087..c980b5b7e 100644
--- a/src/i18n/messages/src/components/settings/team/TeamDashboard.json
+++ b/src/i18n/messages/src/components/settings/team/TeamDashboard.json
@@ -14,7 +14,7 @@
14 }, 14 },
15 { 15 {
16 "id": "settings.team.contentHeadline", 16 "id": "settings.team.contentHeadline",
17 "defaultMessage": "!!!Ferdi for Teams", 17 "defaultMessage": "!!!Franz Team Management",
18 "file": "src/components/settings/team/TeamDashboard.js", 18 "file": "src/components/settings/team/TeamDashboard.js",
19 "start": { 19 "start": {
20 "line": 21, 20 "line": 21,
@@ -27,7 +27,7 @@
27 }, 27 },
28 { 28 {
29 "id": "settings.team.intro", 29 "id": "settings.team.intro",
30 "defaultMessage": "!!!You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 30 "defaultMessage": "!!!Your are currently using Franz Servers, which is why you have access to Team Management.",
31 "file": "src/components/settings/team/TeamDashboard.js", 31 "file": "src/components/settings/team/TeamDashboard.js",
32 "start": { 32 "start": {
33 "line": 25, 33 "line": 25,
@@ -40,7 +40,7 @@
40 }, 40 },
41 { 41 {
42 "id": "settings.team.copy", 42 "id": "settings.team.copy",
43 "defaultMessage": "!!!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!", 43 "defaultMessage": "!!!Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.",
44 "file": "src/components/settings/team/TeamDashboard.js", 44 "file": "src/components/settings/team/TeamDashboard.js",
45 "start": { 45 "start": {
46 "line": 29, 46 "line": 29,
diff --git a/src/i18n/messages/src/components/ui/FeatureList.json b/src/i18n/messages/src/components/ui/FeatureList.json
index 3201115b3..8d1dc4360 100644
--- a/src/i18n/messages/src/components/ui/FeatureList.json
+++ b/src/i18n/messages/src/components/ui/FeatureList.json
@@ -193,5 +193,18 @@
193 "line": 68, 193 "line": 68,
194 "column": 3 194 "column": 3
195 } 195 }
196 },
197 {
198 "id": "pricing.features.appDelaysEnabled",
199 "defaultMessage": "!!!Occasional Waiting Screens",
200 "file": "src/components/ui/FeatureList.js",
201 "start": {
202 "line": 69,
203 "column": 19
204 },
205 "end": {
206 "line": 72,
207 "column": 3
208 }
196 } 209 }
197] \ No newline at end of file 210] \ No newline at end of file
diff --git a/src/i18n/messages/src/containers/settings/EditServiceScreen.json b/src/i18n/messages/src/containers/settings/EditServiceScreen.json
index 9b46a1e6f..36937ebf8 100644
--- a/src/i18n/messages/src/containers/settings/EditServiceScreen.json
+++ b/src/i18n/messages/src/containers/settings/EditServiceScreen.json
@@ -26,8 +26,8 @@
26 } 26 }
27 }, 27 },
28 { 28 {
29 "id": "settings.service.form.enableNotification", 29 "id": "settings.service.form.disableHibernation",
30 "defaultMessage": "!!!Enable Notifications", 30 "defaultMessage": "!!!Disable hibernation",
31 "file": "src/containers/settings/EditServiceScreen.js", 31 "file": "src/containers/settings/EditServiceScreen.js",
32 "start": { 32 "start": {
33 "line": 36, 33 "line": 36,
@@ -39,15 +39,28 @@
39 } 39 }
40 }, 40 },
41 { 41 {
42 "id": "settings.service.form.enableNotification",
43 "defaultMessage": "!!!Enable Notifications",
44 "file": "src/containers/settings/EditServiceScreen.js",
45 "start": {
46 "line": 40,
47 "column": 22
48 },
49 "end": {
50 "line": 43,
51 "column": 3
52 }
53 },
54 {
42 "id": "settings.service.form.enableBadge", 55 "id": "settings.service.form.enableBadge",
43 "defaultMessage": "!!!Show unread message badges", 56 "defaultMessage": "!!!Show unread message badges",
44 "file": "src/containers/settings/EditServiceScreen.js", 57 "file": "src/containers/settings/EditServiceScreen.js",
45 "start": { 58 "start": {
46 "line": 40, 59 "line": 44,
47 "column": 15 60 "column": 15
48 }, 61 },
49 "end": { 62 "end": {
50 "line": 43, 63 "line": 47,
51 "column": 3 64 "column": 3
52 } 65 }
53 }, 66 },
@@ -56,11 +69,11 @@
56 "defaultMessage": "!!!Enable audio", 69 "defaultMessage": "!!!Enable audio",
57 "file": "src/containers/settings/EditServiceScreen.js", 70 "file": "src/containers/settings/EditServiceScreen.js",
58 "start": { 71 "start": {
59 "line": 44, 72 "line": 48,
60 "column": 15 73 "column": 15
61 }, 74 },
62 "end": { 75 "end": {
63 "line": 47, 76 "line": 51,
64 "column": 3 77 "column": 3
65 } 78 }
66 }, 79 },
@@ -69,11 +82,11 @@
69 "defaultMessage": "!!!Team", 82 "defaultMessage": "!!!Team",
70 "file": "src/containers/settings/EditServiceScreen.js", 83 "file": "src/containers/settings/EditServiceScreen.js",
71 "start": { 84 "start": {
72 "line": 48, 85 "line": 52,
73 "column": 8 86 "column": 8
74 }, 87 },
75 "end": { 88 "end": {
76 "line": 51, 89 "line": 55,
77 "column": 3 90 "column": 3
78 } 91 }
79 }, 92 },
@@ -82,11 +95,11 @@
82 "defaultMessage": "!!!Service URL", 95 "defaultMessage": "!!!Service URL",
83 "file": "src/containers/settings/EditServiceScreen.js", 96 "file": "src/containers/settings/EditServiceScreen.js",
84 "start": { 97 "start": {
85 "line": 52, 98 "line": 56,
86 "column": 13 99 "column": 13
87 }, 100 },
88 "end": { 101 "end": {
89 "line": 55, 102 "line": 59,
90 "column": 3 103 "column": 3
91 } 104 }
92 }, 105 },
@@ -95,11 +108,11 @@
95 "defaultMessage": "!!!Show message badge for all new messages", 108 "defaultMessage": "!!!Show message badge for all new messages",
96 "file": "src/containers/settings/EditServiceScreen.js", 109 "file": "src/containers/settings/EditServiceScreen.js",
97 "start": { 110 "start": {
98 "line": 56, 111 "line": 60,
99 "column": 20 112 "column": 20
100 }, 113 },
101 "end": { 114 "end": {
102 "line": 59, 115 "line": 63,
103 "column": 3 116 "column": 3
104 } 117 }
105 }, 118 },
@@ -108,11 +121,11 @@
108 "defaultMessage": "!!!Custom icon", 121 "defaultMessage": "!!!Custom icon",
109 "file": "src/containers/settings/EditServiceScreen.js", 122 "file": "src/containers/settings/EditServiceScreen.js",
110 "start": { 123 "start": {
111 "line": 60, 124 "line": 64,
112 "column": 8 125 "column": 8
113 }, 126 },
114 "end": { 127 "end": {
115 "line": 63, 128 "line": 67,
116 "column": 3 129 "column": 3
117 } 130 }
118 }, 131 },
@@ -121,11 +134,11 @@
121 "defaultMessage": "!!!Enable Dark Mode", 134 "defaultMessage": "!!!Enable Dark Mode",
122 "file": "src/containers/settings/EditServiceScreen.js", 135 "file": "src/containers/settings/EditServiceScreen.js",
123 "start": { 136 "start": {
124 "line": 64, 137 "line": 68,
125 "column": 18 138 "column": 18
126 }, 139 },
127 "end": { 140 "end": {
128 "line": 67, 141 "line": 71,
129 "column": 3 142 "column": 3
130 } 143 }
131 }, 144 },
@@ -134,11 +147,11 @@
134 "defaultMessage": "!!!Use Proxy", 147 "defaultMessage": "!!!Use Proxy",
135 "file": "src/containers/settings/EditServiceScreen.js", 148 "file": "src/containers/settings/EditServiceScreen.js",
136 "start": { 149 "start": {
137 "line": 68, 150 "line": 72,
138 "column": 15 151 "column": 15
139 }, 152 },
140 "end": { 153 "end": {
141 "line": 71, 154 "line": 75,
142 "column": 3 155 "column": 3
143 } 156 }
144 }, 157 },
@@ -147,11 +160,11 @@
147 "defaultMessage": "!!!Proxy Host/IP", 160 "defaultMessage": "!!!Proxy Host/IP",
148 "file": "src/containers/settings/EditServiceScreen.js", 161 "file": "src/containers/settings/EditServiceScreen.js",
149 "start": { 162 "start": {
150 "line": 72, 163 "line": 76,
151 "column": 13 164 "column": 13
152 }, 165 },
153 "end": { 166 "end": {
154 "line": 75, 167 "line": 79,
155 "column": 3 168 "column": 3
156 } 169 }
157 }, 170 },
@@ -160,11 +173,11 @@
160 "defaultMessage": "!!!Port", 173 "defaultMessage": "!!!Port",
161 "file": "src/containers/settings/EditServiceScreen.js", 174 "file": "src/containers/settings/EditServiceScreen.js",
162 "start": { 175 "start": {
163 "line": 76, 176 "line": 80,
164 "column": 13 177 "column": 13
165 }, 178 },
166 "end": { 179 "end": {
167 "line": 79, 180 "line": 83,
168 "column": 3 181 "column": 3
169 } 182 }
170 }, 183 },
@@ -173,11 +186,11 @@
173 "defaultMessage": "!!!User", 186 "defaultMessage": "!!!User",
174 "file": "src/containers/settings/EditServiceScreen.js", 187 "file": "src/containers/settings/EditServiceScreen.js",
175 "start": { 188 "start": {
176 "line": 80, 189 "line": 84,
177 "column": 13 190 "column": 13
178 }, 191 },
179 "end": { 192 "end": {
180 "line": 83, 193 "line": 87,
181 "column": 3 194 "column": 3
182 } 195 }
183 }, 196 },
@@ -186,11 +199,11 @@
186 "defaultMessage": "!!!Password", 199 "defaultMessage": "!!!Password",
187 "file": "src/containers/settings/EditServiceScreen.js", 200 "file": "src/containers/settings/EditServiceScreen.js",
188 "start": { 201 "start": {
189 "line": 84, 202 "line": 88,
190 "column": 17 203 "column": 17
191 }, 204 },
192 "end": { 205 "end": {
193 "line": 87, 206 "line": 91,
194 "column": 3 207 "column": 3
195 } 208 }
196 } 209 }
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
index 0d3265c51..42199503b 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": 31, 7 "line": 29,
8 "column": 21 8 "column": 21
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 34, 11 "line": 32,
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": 35, 20 "line": 33,
21 "column": 26 21 "column": 26
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 38, 24 "line": 36,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,24 +30,24 @@
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": 39, 33 "line": 37,
34 "column": 19 34 "column": 19
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 42, 37 "line": 40,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
41 { 41 {
42 "id": "settings.app.form.startMinimized", 42 "id": "settings.app.form.startMinimized",
43 "defaultMessage": "!!!Start minimized in tray", 43 "defaultMessage": "!!!Start minimized",
44 "file": "src/containers/settings/EditSettingsScreen.js", 44 "file": "src/containers/settings/EditSettingsScreen.js",
45 "start": { 45 "start": {
46 "line": 43, 46 "line": 41,
47 "column": 18 47 "column": 18
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 46, 50 "line": 44,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Always 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": 47, 59 "line": 45,
60 "column": 20 60 "column": 20
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 50, 63 "line": 48,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Reload Ferdi after system resume", 69 "defaultMessage": "!!!Reload Ferdi after system resume",
70 "file": "src/containers/settings/EditSettingsScreen.js", 70 "file": "src/containers/settings/EditSettingsScreen.js",
71 "start": { 71 "start": {
72 "line": 51, 72 "line": 49,
73 "column": 21 73 "column": 21
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 54, 76 "line": 52,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!Minimize Ferdi to system tray", 82 "defaultMessage": "!!!Minimize Ferdi to system tray",
83 "file": "src/containers/settings/EditSettingsScreen.js", 83 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": { 84 "start": {
85 "line": 55, 85 "line": 53,
86 "column": 24 86 "column": 24
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 58, 89 "line": 56,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
@@ -95,11 +95,11 @@
95 "defaultMessage": "!!!Don't show message content in notifications", 95 "defaultMessage": "!!!Don't show message content in notifications",
96 "file": "src/containers/settings/EditSettingsScreen.js", 96 "file": "src/containers/settings/EditSettingsScreen.js",
97 "start": { 97 "start": {
98 "line": 59, 98 "line": 57,
99 "column": 24 99 "column": 24
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 62, 102 "line": 60,
103 "column": 3 103 "column": 3
104 } 104 }
105 }, 105 },
@@ -108,11 +108,11 @@
108 "defaultMessage": "!!!Navigation bar behaviour", 108 "defaultMessage": "!!!Navigation bar behaviour",
109 "file": "src/containers/settings/EditSettingsScreen.js", 109 "file": "src/containers/settings/EditSettingsScreen.js",
110 "start": { 110 "start": {
111 "line": 63, 111 "line": 61,
112 "column": 26 112 "column": 26
113 }, 113 },
114 "end": { 114 "end": {
115 "line": 66, 115 "line": 64,
116 "column": 3 116 "column": 3
117 } 117 }
118 }, 118 },
@@ -121,11 +121,11 @@
121 "defaultMessage": "!!!Send telemetry data", 121 "defaultMessage": "!!!Send telemetry data",
122 "file": "src/containers/settings/EditSettingsScreen.js", 122 "file": "src/containers/settings/EditSettingsScreen.js",
123 "start": { 123 "start": {
124 "line": 67, 124 "line": 65,
125 "column": 10 125 "column": 10
126 }, 126 },
127 "end": { 127 "end": {
128 "line": 70, 128 "line": 68,
129 "column": 3 129 "column": 3
130 } 130 }
131 }, 131 },
@@ -134,11 +134,11 @@
134 "defaultMessage": "!!!Enable service hibernation", 134 "defaultMessage": "!!!Enable service hibernation",
135 "file": "src/containers/settings/EditSettingsScreen.js", 135 "file": "src/containers/settings/EditSettingsScreen.js",
136 "start": { 136 "start": {
137 "line": 71, 137 "line": 69,
138 "column": 13 138 "column": 13
139 }, 139 },
140 "end": { 140 "end": {
141 "line": 74, 141 "line": 72,
142 "column": 3 142 "column": 3
143 } 143 }
144 }, 144 },
@@ -147,37 +147,37 @@
147 "defaultMessage": "!!!Hibernation strategy", 147 "defaultMessage": "!!!Hibernation strategy",
148 "file": "src/containers/settings/EditSettingsScreen.js", 148 "file": "src/containers/settings/EditSettingsScreen.js",
149 "start": { 149 "start": {
150 "line": 75, 150 "line": 73,
151 "column": 23 151 "column": 23
152 }, 152 },
153 "end": { 153 "end": {
154 "line": 78, 154 "line": 76,
155 "column": 3 155 "column": 3
156 } 156 }
157 }, 157 },
158 { 158 {
159 "id": "settings.app.form.server", 159 "id": "settings.app.form.predefinedTodoServer",
160 "defaultMessage": "!!!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": 79, 163 "line": 77,
164 "column": 10 164 "column": 24
165 }, 165 },
166 "end": { 166 "end": {
167 "line": 82, 167 "line": 80,
168 "column": 3 168 "column": 3
169 } 169 }
170 }, 170 },
171 { 171 {
172 "id": "settings.app.form.todoServer", 172 "id": "settings.app.form.customTodoServer",
173 "defaultMessage": "!!!Todo Server", 173 "defaultMessage": "!!!Custom TodoServer",
174 "file": "src/containers/settings/EditSettingsScreen.js", 174 "file": "src/containers/settings/EditSettingsScreen.js",
175 "start": { 175 "start": {
176 "line": 83, 176 "line": 81,
177 "column": 14 177 "column": 20
178 }, 178 },
179 "end": { 179 "end": {
180 "line": 86, 180 "line": 84,
181 "column": 3 181 "column": 3
182 } 182 }
183 }, 183 },
@@ -186,11 +186,11 @@
186 "defaultMessage": "!!!Enable Password Lock", 186 "defaultMessage": "!!!Enable Password Lock",
187 "file": "src/containers/settings/EditSettingsScreen.js", 187 "file": "src/containers/settings/EditSettingsScreen.js",
188 "start": { 188 "start": {
189 "line": 87, 189 "line": 85,
190 "column": 14 190 "column": 14
191 }, 191 },
192 "end": { 192 "end": {
193 "line": 90, 193 "line": 88,
194 "column": 3 194 "column": 3
195 } 195 }
196 }, 196 },
@@ -199,11 +199,11 @@
199 "defaultMessage": "!!!Password", 199 "defaultMessage": "!!!Password",
200 "file": "src/containers/settings/EditSettingsScreen.js", 200 "file": "src/containers/settings/EditSettingsScreen.js",
201 "start": { 201 "start": {
202 "line": 91, 202 "line": 89,
203 "column": 16 203 "column": 16
204 }, 204 },
205 "end": { 205 "end": {
206 "line": 94, 206 "line": 92,
207 "column": 3 207 "column": 3
208 } 208 }
209 }, 209 },
@@ -212,11 +212,11 @@
212 "defaultMessage": "!!!Allow using Touch ID to unlock", 212 "defaultMessage": "!!!Allow using Touch ID to unlock",
213 "file": "src/containers/settings/EditSettingsScreen.js", 213 "file": "src/containers/settings/EditSettingsScreen.js",
214 "start": { 214 "start": {
215 "line": 95, 215 "line": 93,
216 "column": 22 216 "column": 22
217 }, 217 },
218 "end": { 218 "end": {
219 "line": 98, 219 "line": 96,
220 "column": 3 220 "column": 3
221 } 221 }
222 }, 222 },
@@ -225,11 +225,11 @@
225 "defaultMessage": "!!!Lock after inactivity", 225 "defaultMessage": "!!!Lock after inactivity",
226 "file": "src/containers/settings/EditSettingsScreen.js", 226 "file": "src/containers/settings/EditSettingsScreen.js",
227 "start": { 227 "start": {
228 "line": 99, 228 "line": 97,
229 "column": 18 229 "column": 18
230 }, 230 },
231 "end": { 231 "end": {
232 "line": 102, 232 "line": 100,
233 "column": 3 233 "column": 3
234 } 234 }
235 }, 235 },
@@ -238,11 +238,11 @@
238 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 238 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
239 "file": "src/containers/settings/EditSettingsScreen.js", 239 "file": "src/containers/settings/EditSettingsScreen.js",
240 "start": { 240 "start": {
241 "line": 103, 241 "line": 101,
242 "column": 23 242 "column": 23
243 }, 243 },
244 "end": { 244 "end": {
245 "line": 106, 245 "line": 104,
246 "column": 3 246 "column": 3
247 } 247 }
248 }, 248 },
@@ -251,11 +251,11 @@
251 "defaultMessage": "!!!From", 251 "defaultMessage": "!!!From",
252 "file": "src/containers/settings/EditSettingsScreen.js", 252 "file": "src/containers/settings/EditSettingsScreen.js",
253 "start": { 253 "start": {
254 "line": 107, 254 "line": 105,
255 "column": 21 255 "column": 21
256 }, 256 },
257 "end": { 257 "end": {
258 "line": 110, 258 "line": 108,
259 "column": 3 259 "column": 3
260 } 260 }
261 }, 261 },
@@ -264,11 +264,11 @@
264 "defaultMessage": "!!!To", 264 "defaultMessage": "!!!To",
265 "file": "src/containers/settings/EditSettingsScreen.js", 265 "file": "src/containers/settings/EditSettingsScreen.js",
266 "start": { 266 "start": {
267 "line": 111, 267 "line": 109,
268 "column": 19 268 "column": 19
269 }, 269 },
270 "end": { 270 "end": {
271 "line": 114, 271 "line": 112,
272 "column": 3 272 "column": 3
273 } 273 }
274 }, 274 },
@@ -277,11 +277,11 @@
277 "defaultMessage": "!!!Language", 277 "defaultMessage": "!!!Language",
278 "file": "src/containers/settings/EditSettingsScreen.js", 278 "file": "src/containers/settings/EditSettingsScreen.js",
279 "start": { 279 "start": {
280 "line": 115, 280 "line": 113,
281 "column": 12 281 "column": 12
282 }, 282 },
283 "end": { 283 "end": {
284 "line": 118, 284 "line": 116,
285 "column": 3 285 "column": 3
286 } 286 }
287 }, 287 },
@@ -290,24 +290,24 @@
290 "defaultMessage": "!!!Dark Mode", 290 "defaultMessage": "!!!Dark Mode",
291 "file": "src/containers/settings/EditSettingsScreen.js", 291 "file": "src/containers/settings/EditSettingsScreen.js",
292 "start": { 292 "start": {
293 "line": 119, 293 "line": 117,
294 "column": 12 294 "column": 12
295 }, 295 },
296 "end": { 296 "end": {
297 "line": 122, 297 "line": 120,
298 "column": 3 298 "column": 3
299 } 299 }
300 }, 300 },
301 { 301 {
302 "id": "settings.app.form.adaptableDarkMode", 302 "id": "settings.app.form.adaptableDarkMode",
303 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", 303 "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting",
304 "file": "src/containers/settings/EditSettingsScreen.js", 304 "file": "src/containers/settings/EditSettingsScreen.js",
305 "start": { 305 "start": {
306 "line": 123, 306 "line": 121,
307 "column": 21 307 "column": 21
308 }, 308 },
309 "end": { 309 "end": {
310 "line": 126, 310 "line": 124,
311 "column": 3 311 "column": 3
312 } 312 }
313 }, 313 },
@@ -316,11 +316,11 @@
316 "defaultMessage": "!!!Enable universal Dark Mode", 316 "defaultMessage": "!!!Enable universal Dark Mode",
317 "file": "src/containers/settings/EditSettingsScreen.js", 317 "file": "src/containers/settings/EditSettingsScreen.js",
318 "start": { 318 "start": {
319 "line": 127, 319 "line": 125,
320 "column": 21 320 "column": 21
321 }, 321 },
322 "end": { 322 "end": {
323 "line": 130, 323 "line": 128,
324 "column": 3 324 "column": 3
325 } 325 }
326 }, 326 },
@@ -329,11 +329,11 @@
329 "defaultMessage": "!!!Sidebar width", 329 "defaultMessage": "!!!Sidebar width",
330 "file": "src/containers/settings/EditSettingsScreen.js", 330 "file": "src/containers/settings/EditSettingsScreen.js",
331 "start": { 331 "start": {
332 "line": 131, 332 "line": 129,
333 "column": 22 333 "column": 22
334 }, 334 },
335 "end": { 335 "end": {
336 "line": 134, 336 "line": 132,
337 "column": 3 337 "column": 3
338 } 338 }
339 }, 339 },
@@ -342,11 +342,11 @@
342 "defaultMessage": "!!!Service icon size", 342 "defaultMessage": "!!!Service icon size",
343 "file": "src/containers/settings/EditSettingsScreen.js", 343 "file": "src/containers/settings/EditSettingsScreen.js",
344 "start": { 344 "start": {
345 "line": 135, 345 "line": 133,
346 "column": 12 346 "column": 12
347 }, 347 },
348 "end": { 348 "end": {
349 "line": 138, 349 "line": 136,
350 "column": 3 350 "column": 3
351 } 351 }
352 }, 352 },
@@ -355,11 +355,11 @@
355 "defaultMessage": "!!!Accent color", 355 "defaultMessage": "!!!Accent color",
356 "file": "src/containers/settings/EditSettingsScreen.js", 356 "file": "src/containers/settings/EditSettingsScreen.js",
357 "start": { 357 "start": {
358 "line": 139, 358 "line": 137,
359 "column": 15 359 "column": 15
360 }, 360 },
361 "end": { 361 "end": {
362 "line": 142, 362 "line": 140,
363 "column": 3 363 "column": 3
364 } 364 }
365 }, 365 },
@@ -368,11 +368,11 @@
368 "defaultMessage": "!!!Display disabled services tabs", 368 "defaultMessage": "!!!Display disabled services tabs",
369 "file": "src/containers/settings/EditSettingsScreen.js", 369 "file": "src/containers/settings/EditSettingsScreen.js",
370 "start": { 370 "start": {
371 "line": 143, 371 "line": 141,
372 "column": 24 372 "column": 24
373 }, 373 },
374 "end": { 374 "end": {
375 "line": 146, 375 "line": 144,
376 "column": 3 376 "column": 3
377 } 377 }
378 }, 378 },
@@ -381,11 +381,24 @@
381 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 381 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
382 "file": "src/containers/settings/EditSettingsScreen.js", 382 "file": "src/containers/settings/EditSettingsScreen.js",
383 "start": { 383 "start": {
384 "line": 147, 384 "line": 145,
385 "column": 29 385 "column": 29
386 }, 386 },
387 "end": { 387 "end": {
388 "line": 150, 388 "line": 148,
389 "column": 3
390 }
391 },
392 {
393 "id": "settings.app.form.showDragArea",
394 "defaultMessage": "!!!Show draggable area on window",
395 "file": "src/containers/settings/EditSettingsScreen.js",
396 "start": {
397 "line": 149,
398 "column": 16
399 },
400 "end": {
401 "line": 152,
389 "column": 3 402 "column": 3
390 } 403 }
391 }, 404 },
@@ -394,11 +407,11 @@
394 "defaultMessage": "!!!Enable spell checking", 407 "defaultMessage": "!!!Enable spell checking",
395 "file": "src/containers/settings/EditSettingsScreen.js", 408 "file": "src/containers/settings/EditSettingsScreen.js",
396 "start": { 409 "start": {
397 "line": 151, 410 "line": 153,
398 "column": 23 411 "column": 23
399 }, 412 },
400 "end": { 413 "end": {
401 "line": 154, 414 "line": 156,
402 "column": 3 415 "column": 3
403 } 416 }
404 }, 417 },
@@ -407,11 +420,11 @@
407 "defaultMessage": "!!!Enable GPU Acceleration", 420 "defaultMessage": "!!!Enable GPU Acceleration",
408 "file": "src/containers/settings/EditSettingsScreen.js", 421 "file": "src/containers/settings/EditSettingsScreen.js",
409 "start": { 422 "start": {
410 "line": 155, 423 "line": 157,
411 "column": 25 424 "column": 25
412 }, 425 },
413 "end": { 426 "end": {
414 "line": 158, 427 "line": 160,
415 "column": 3 428 "column": 3
416 } 429 }
417 }, 430 },
@@ -420,24 +433,24 @@
420 "defaultMessage": "!!!Include beta versions", 433 "defaultMessage": "!!!Include beta versions",
421 "file": "src/containers/settings/EditSettingsScreen.js", 434 "file": "src/containers/settings/EditSettingsScreen.js",
422 "start": { 435 "start": {
423 "line": 159, 436 "line": 161,
424 "column": 8 437 "column": 8
425 }, 438 },
426 "end": { 439 "end": {
427 "line": 162, 440 "line": 164,
428 "column": 3 441 "column": 3
429 } 442 }
430 }, 443 },
431 { 444 {
432 "id": "settings.app.form.noUpdates", 445 "id": "settings.app.form.automaticUpdates",
433 "defaultMessage": "!!!Disable updates", 446 "defaultMessage": "!!!Enable updates",
434 "file": "src/containers/settings/EditSettingsScreen.js", 447 "file": "src/containers/settings/EditSettingsScreen.js",
435 "start": { 448 "start": {
436 "line": 163, 449 "line": 165,
437 "column": 13 450 "column": 20
438 }, 451 },
439 "end": { 452 "end": {
440 "line": 166, 453 "line": 168,
441 "column": 3 454 "column": 3
442 } 455 }
443 }, 456 },
@@ -446,11 +459,11 @@
446 "defaultMessage": "!!!Enable Franz Todos", 459 "defaultMessage": "!!!Enable Franz Todos",
447 "file": "src/containers/settings/EditSettingsScreen.js", 460 "file": "src/containers/settings/EditSettingsScreen.js",
448 "start": { 461 "start": {
449 "line": 167, 462 "line": 169,
450 "column": 15 463 "column": 15
451 }, 464 },
452 "end": { 465 "end": {
453 "line": 170, 466 "line": 172,
454 "column": 3 467 "column": 3
455 } 468 }
456 }, 469 },
@@ -459,11 +472,11 @@
459 "defaultMessage": "!!!Keep all workspaces loaded", 472 "defaultMessage": "!!!Keep all workspaces loaded",
460 "file": "src/containers/settings/EditSettingsScreen.js", 473 "file": "src/containers/settings/EditSettingsScreen.js",
461 "start": { 474 "start": {
462 "line": 171, 475 "line": 173,
463 "column": 27 476 "column": 27
464 }, 477 },
465 "end": { 478 "end": {
466 "line": 174, 479 "line": 176,
467 "column": 3 480 "column": 3
468 } 481 }
469 } 482 }
diff --git a/src/i18n/messages/src/features/recipeConnectionLost/components/WebControls.json b/src/i18n/messages/src/features/recipeConnectionLost/components/WebControls.json
new file mode 100644
index 000000000..f3bcaf345
--- /dev/null
+++ b/src/i18n/messages/src/features/recipeConnectionLost/components/WebControls.json
@@ -0,0 +1,67 @@
1[
2 {
3 "id": "webControls.goHome",
4 "defaultMessage": "!!!Home",
5 "file": "src/features/recipeConnectionLost/components/WebControls.js",
6 "start": {
7 "line": 13,
8 "column": 10
9 },
10 "end": {
11 "line": 16,
12 "column": 3
13 }
14 },
15 {
16 "id": "webControls.openInBrowser",
17 "defaultMessage": "!!!Open in Browser",
18 "file": "src/features/recipeConnectionLost/components/WebControls.js",
19 "start": {
20 "line": 17,
21 "column": 17
22 },
23 "end": {
24 "line": 20,
25 "column": 3
26 }
27 },
28 {
29 "id": "webControls.back",
30 "defaultMessage": "!!!Back",
31 "file": "src/features/recipeConnectionLost/components/WebControls.js",
32 "start": {
33 "line": 21,
34 "column": 8
35 },
36 "end": {
37 "line": 24,
38 "column": 3
39 }
40 },
41 {
42 "id": "webControls.forward",
43 "defaultMessage": "!!!Forward",
44 "file": "src/features/recipeConnectionLost/components/WebControls.js",
45 "start": {
46 "line": 25,
47 "column": 11
48 },
49 "end": {
50 "line": 28,
51 "column": 3
52 }
53 },
54 {
55 "id": "webControls.reload",
56 "defaultMessage": "!!!Reload",
57 "file": "src/features/recipeConnectionLost/components/WebControls.js",
58 "start": {
59 "line": 29,
60 "column": 10
61 },
62 "end": {
63 "line": 32,
64 "column": 3
65 }
66 }
67] \ No newline at end of file
diff --git a/src/i18n/messages/src/features/todos/components/TodosWebview.json b/src/i18n/messages/src/features/todos/components/TodosWebview.json
index 19ea81171..173389570 100644
--- a/src/i18n/messages/src/features/todos/components/TodosWebview.json
+++ b/src/i18n/messages/src/features/todos/components/TodosWebview.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Franz Todos are available to premium users now!", 4 "defaultMessage": "!!!Franz Todos are available to premium users now!",
5 "file": "src/features/todos/components/TodosWebview.js", 5 "file": "src/features/todos/components/TodosWebview.js",
6 "start": { 6 "start": {
7 "line": 17, 7 "line": 27,
8 "column": 15 8 "column": 15
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 20, 11 "line": 30,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Upgrade Account", 17 "defaultMessage": "!!!Upgrade Account",
18 "file": "src/features/todos/components/TodosWebview.js", 18 "file": "src/features/todos/components/TodosWebview.js",
19 "start": { 19 "start": {
20 "line": 21, 20 "line": 31,
21 "column": 14 21 "column": 14
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 24, 24 "line": 34,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Everyone else will have to wait a little longer.", 30 "defaultMessage": "!!!Everyone else will have to wait a little longer.",
31 "file": "src/features/todos/components/TodosWebview.js", 31 "file": "src/features/todos/components/TodosWebview.js",
32 "start": { 32 "start": {
33 "line": 25, 33 "line": 35,
34 "column": 15 34 "column": 15
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 28, 37 "line": 38,
38 "column": 3 38 "column": 3
39 } 39 }
40 } 40 }
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json
index 15f5ff75f..08028032d 100644
--- a/src/i18n/messages/src/lib/Menu.json
+++ b/src/i18n/messages/src/lib/Menu.json
@@ -312,8 +312,8 @@
312 } 312 }
313 }, 313 },
314 { 314 {
315 "id": "menu.view.toggleDevTools", 315 "id": "menu.view.toggleDarkMode",
316 "defaultMessage": "!!!Toggle Developer Tools", 316 "defaultMessage": "!!!Toggle Dark Mode",
317 "file": "src/lib/Menu.js", 317 "file": "src/lib/Menu.js",
318 "start": { 318 "start": {
319 "line": 114, 319 "line": 114,
@@ -325,15 +325,28 @@
325 } 325 }
326 }, 326 },
327 { 327 {
328 "id": "menu.view.toggleDevTools",
329 "defaultMessage": "!!!Toggle Developer Tools",
330 "file": "src/lib/Menu.js",
331 "start": {
332 "line": 118,
333 "column": 18
334 },
335 "end": {
336 "line": 121,
337 "column": 3
338 }
339 },
340 {
328 "id": "menu.view.toggleTodosDevTools", 341 "id": "menu.view.toggleTodosDevTools",
329 "defaultMessage": "!!!Toggle Todos Developer Tools", 342 "defaultMessage": "!!!Toggle Todos Developer Tools",
330 "file": "src/lib/Menu.js", 343 "file": "src/lib/Menu.js",
331 "start": { 344 "start": {
332 "line": 118, 345 "line": 122,
333 "column": 23 346 "column": 23
334 }, 347 },
335 "end": { 348 "end": {
336 "line": 121, 349 "line": 125,
337 "column": 3 350 "column": 3
338 } 351 }
339 }, 352 },
@@ -342,11 +355,11 @@
342 "defaultMessage": "!!!Toggle Service Developer Tools", 355 "defaultMessage": "!!!Toggle Service Developer Tools",
343 "file": "src/lib/Menu.js", 356 "file": "src/lib/Menu.js",
344 "start": { 357 "start": {
345 "line": 122, 358 "line": 126,
346 "column": 25 359 "column": 25
347 }, 360 },
348 "end": { 361 "end": {
349 "line": 125, 362 "line": 129,
350 "column": 3 363 "column": 3
351 } 364 }
352 }, 365 },
@@ -355,11 +368,11 @@
355 "defaultMessage": "!!!Reload Service", 368 "defaultMessage": "!!!Reload Service",
356 "file": "src/lib/Menu.js", 369 "file": "src/lib/Menu.js",
357 "start": { 370 "start": {
358 "line": 126, 371 "line": 130,
359 "column": 17 372 "column": 17
360 }, 373 },
361 "end": { 374 "end": {
362 "line": 129, 375 "line": 133,
363 "column": 3 376 "column": 3
364 } 377 }
365 }, 378 },
@@ -368,11 +381,11 @@
368 "defaultMessage": "!!!Reload Ferdi", 381 "defaultMessage": "!!!Reload Ferdi",
369 "file": "src/lib/Menu.js", 382 "file": "src/lib/Menu.js",
370 "start": { 383 "start": {
371 "line": 130, 384 "line": 134,
372 "column": 15 385 "column": 15
373 }, 386 },
374 "end": { 387 "end": {
375 "line": 133, 388 "line": 137,
376 "column": 3 389 "column": 3
377 } 390 }
378 }, 391 },
@@ -381,11 +394,11 @@
381 "defaultMessage": "!!!Lock Ferdi", 394 "defaultMessage": "!!!Lock Ferdi",
382 "file": "src/lib/Menu.js", 395 "file": "src/lib/Menu.js",
383 "start": { 396 "start": {
384 "line": 134, 397 "line": 138,
385 "column": 13 398 "column": 13
386 }, 399 },
387 "end": { 400 "end": {
388 "line": 137, 401 "line": 141,
389 "column": 3 402 "column": 3
390 } 403 }
391 }, 404 },
@@ -394,11 +407,11 @@
394 "defaultMessage": "!!!Minimize", 407 "defaultMessage": "!!!Minimize",
395 "file": "src/lib/Menu.js", 408 "file": "src/lib/Menu.js",
396 "start": { 409 "start": {
397 "line": 138, 410 "line": 142,
398 "column": 12 411 "column": 12
399 }, 412 },
400 "end": { 413 "end": {
401 "line": 141, 414 "line": 145,
402 "column": 3 415 "column": 3
403 } 416 }
404 }, 417 },
@@ -407,11 +420,11 @@
407 "defaultMessage": "!!!Close", 420 "defaultMessage": "!!!Close",
408 "file": "src/lib/Menu.js", 421 "file": "src/lib/Menu.js",
409 "start": { 422 "start": {
410 "line": 142, 423 "line": 146,
411 "column": 9 424 "column": 9
412 }, 425 },
413 "end": { 426 "end": {
414 "line": 145, 427 "line": 149,
415 "column": 3 428 "column": 3
416 } 429 }
417 }, 430 },
@@ -420,11 +433,11 @@
420 "defaultMessage": "!!!Learn More", 433 "defaultMessage": "!!!Learn More",
421 "file": "src/lib/Menu.js", 434 "file": "src/lib/Menu.js",
422 "start": { 435 "start": {
423 "line": 146, 436 "line": 150,
424 "column": 13 437 "column": 13
425 }, 438 },
426 "end": { 439 "end": {
427 "line": 149, 440 "line": 153,
428 "column": 3 441 "column": 3
429 } 442 }
430 }, 443 },
@@ -433,11 +446,11 @@
433 "defaultMessage": "!!!Changelog", 446 "defaultMessage": "!!!Changelog",
434 "file": "src/lib/Menu.js", 447 "file": "src/lib/Menu.js",
435 "start": { 448 "start": {
436 "line": 150, 449 "line": 154,
437 "column": 13 450 "column": 13
438 }, 451 },
439 "end": { 452 "end": {
440 "line": 153, 453 "line": 157,
441 "column": 3 454 "column": 3
442 } 455 }
443 }, 456 },
@@ -446,11 +459,11 @@
446 "defaultMessage": "!!!Support", 459 "defaultMessage": "!!!Support",
447 "file": "src/lib/Menu.js", 460 "file": "src/lib/Menu.js",
448 "start": { 461 "start": {
449 "line": 154, 462 "line": 158,
450 "column": 11 463 "column": 11
451 }, 464 },
452 "end": { 465 "end": {
453 "line": 157, 466 "line": 161,
454 "column": 3 467 "column": 3
455 } 468 }
456 }, 469 },
@@ -459,11 +472,11 @@
459 "defaultMessage": "!!!Copy Debug Information", 472 "defaultMessage": "!!!Copy Debug Information",
460 "file": "src/lib/Menu.js", 473 "file": "src/lib/Menu.js",
461 "start": { 474 "start": {
462 "line": 158, 475 "line": 162,
463 "column": 13 476 "column": 13
464 }, 477 },
465 "end": { 478 "end": {
466 "line": 161, 479 "line": 165,
467 "column": 3 480 "column": 3
468 } 481 }
469 }, 482 },
@@ -472,11 +485,11 @@
472 "defaultMessage": "!!!Publish Debug Information", 485 "defaultMessage": "!!!Publish Debug Information",
473 "file": "src/lib/Menu.js", 486 "file": "src/lib/Menu.js",
474 "start": { 487 "start": {
475 "line": 162, 488 "line": 166,
476 "column": 20 489 "column": 20
477 }, 490 },
478 "end": { 491 "end": {
479 "line": 165, 492 "line": 169,
480 "column": 3 493 "column": 3
481 } 494 }
482 }, 495 },
@@ -485,11 +498,11 @@
485 "defaultMessage": "!!!Ferdi Debug Information", 498 "defaultMessage": "!!!Ferdi Debug Information",
486 "file": "src/lib/Menu.js", 499 "file": "src/lib/Menu.js",
487 "start": { 500 "start": {
488 "line": 166, 501 "line": 170,
489 "column": 27 502 "column": 27
490 }, 503 },
491 "end": { 504 "end": {
492 "line": 169, 505 "line": 173,
493 "column": 3 506 "column": 3
494 } 507 }
495 }, 508 },
@@ -498,11 +511,11 @@
498 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 511 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
499 "file": "src/lib/Menu.js", 512 "file": "src/lib/Menu.js",
500 "start": { 513 "start": {
501 "line": 170, 514 "line": 174,
502 "column": 23 515 "column": 23
503 }, 516 },
504 "end": { 517 "end": {
505 "line": 173, 518 "line": 177,
506 "column": 3 519 "column": 3
507 } 520 }
508 }, 521 },
@@ -511,11 +524,11 @@
511 "defaultMessage": "!!!Unlock with Touch ID", 524 "defaultMessage": "!!!Unlock with Touch ID",
512 "file": "src/lib/Menu.js", 525 "file": "src/lib/Menu.js",
513 "start": { 526 "start": {
514 "line": 174, 527 "line": 178,
515 "column": 11 528 "column": 11
516 }, 529 },
517 "end": { 530 "end": {
518 "line": 177, 531 "line": 181,
519 "column": 3 532 "column": 3
520 } 533 }
521 }, 534 },
@@ -524,11 +537,11 @@
524 "defaultMessage": "!!!unlock via Touch ID", 537 "defaultMessage": "!!!unlock via Touch ID",
525 "file": "src/lib/Menu.js", 538 "file": "src/lib/Menu.js",
526 "start": { 539 "start": {
527 "line": 178, 540 "line": 182,
528 "column": 17 541 "column": 17
529 }, 542 },
530 "end": { 543 "end": {
531 "line": 181, 544 "line": 185,
532 "column": 3 545 "column": 3
533 } 546 }
534 }, 547 },
@@ -537,11 +550,11 @@
537 "defaultMessage": "!!!Terms of Service", 550 "defaultMessage": "!!!Terms of Service",
538 "file": "src/lib/Menu.js", 551 "file": "src/lib/Menu.js",
539 "start": { 552 "start": {
540 "line": 182, 553 "line": 186,
541 "column": 7 554 "column": 7
542 }, 555 },
543 "end": { 556 "end": {
544 "line": 185, 557 "line": 189,
545 "column": 3 558 "column": 3
546 } 559 }
547 }, 560 },
@@ -550,11 +563,11 @@
550 "defaultMessage": "!!!Privacy Statement", 563 "defaultMessage": "!!!Privacy Statement",
551 "file": "src/lib/Menu.js", 564 "file": "src/lib/Menu.js",
552 "start": { 565 "start": {
553 "line": 186, 566 "line": 190,
554 "column": 11 567 "column": 11
555 }, 568 },
556 "end": { 569 "end": {
557 "line": 189, 570 "line": 193,
558 "column": 3 571 "column": 3
559 } 572 }
560 }, 573 },
@@ -563,11 +576,11 @@
563 "defaultMessage": "!!!File", 576 "defaultMessage": "!!!File",
564 "file": "src/lib/Menu.js", 577 "file": "src/lib/Menu.js",
565 "start": { 578 "start": {
566 "line": 190, 579 "line": 194,
567 "column": 8 580 "column": 8
568 }, 581 },
569 "end": { 582 "end": {
570 "line": 193, 583 "line": 197,
571 "column": 3 584 "column": 3
572 } 585 }
573 }, 586 },
@@ -576,11 +589,11 @@
576 "defaultMessage": "!!!View", 589 "defaultMessage": "!!!View",
577 "file": "src/lib/Menu.js", 590 "file": "src/lib/Menu.js",
578 "start": { 591 "start": {
579 "line": 194, 592 "line": 198,
580 "column": 8 593 "column": 8
581 }, 594 },
582 "end": { 595 "end": {
583 "line": 197, 596 "line": 201,
584 "column": 3 597 "column": 3
585 } 598 }
586 }, 599 },
@@ -589,11 +602,11 @@
589 "defaultMessage": "!!!Services", 602 "defaultMessage": "!!!Services",
590 "file": "src/lib/Menu.js", 603 "file": "src/lib/Menu.js",
591 "start": { 604 "start": {
592 "line": 198, 605 "line": 202,
593 "column": 12 606 "column": 12
594 }, 607 },
595 "end": { 608 "end": {
596 "line": 201, 609 "line": 205,
597 "column": 3 610 "column": 3
598 } 611 }
599 }, 612 },
@@ -602,11 +615,11 @@
602 "defaultMessage": "!!!Window", 615 "defaultMessage": "!!!Window",
603 "file": "src/lib/Menu.js", 616 "file": "src/lib/Menu.js",
604 "start": { 617 "start": {
605 "line": 202, 618 "line": 206,
606 "column": 10 619 "column": 10
607 }, 620 },
608 "end": { 621 "end": {
609 "line": 205, 622 "line": 209,
610 "column": 3 623 "column": 3
611 } 624 }
612 }, 625 },
@@ -615,11 +628,11 @@
615 "defaultMessage": "!!!Help", 628 "defaultMessage": "!!!Help",
616 "file": "src/lib/Menu.js", 629 "file": "src/lib/Menu.js",
617 "start": { 630 "start": {
618 "line": 206, 631 "line": 210,
619 "column": 8 632 "column": 8
620 }, 633 },
621 "end": { 634 "end": {
622 "line": 209, 635 "line": 213,
623 "column": 3 636 "column": 3
624 } 637 }
625 }, 638 },
@@ -628,11 +641,11 @@
628 "defaultMessage": "!!!About Ferdi", 641 "defaultMessage": "!!!About Ferdi",
629 "file": "src/lib/Menu.js", 642 "file": "src/lib/Menu.js",
630 "start": { 643 "start": {
631 "line": 210, 644 "line": 214,
632 "column": 9 645 "column": 9
633 }, 646 },
634 "end": { 647 "end": {
635 "line": 213, 648 "line": 217,
636 "column": 3 649 "column": 3
637 } 650 }
638 }, 651 },
@@ -641,11 +654,11 @@
641 "defaultMessage": "!!!What's new?", 654 "defaultMessage": "!!!What's new?",
642 "file": "src/lib/Menu.js", 655 "file": "src/lib/Menu.js",
643 "start": { 656 "start": {
644 "line": 214, 657 "line": 218,
645 "column": 16 658 "column": 16
646 }, 659 },
647 "end": { 660 "end": {
648 "line": 217, 661 "line": 221,
649 "column": 3 662 "column": 3
650 } 663 }
651 }, 664 },
@@ -654,11 +667,11 @@
654 "defaultMessage": "!!!Settings", 667 "defaultMessage": "!!!Settings",
655 "file": "src/lib/Menu.js", 668 "file": "src/lib/Menu.js",
656 "start": { 669 "start": {
657 "line": 218, 670 "line": 222,
658 "column": 12 671 "column": 12
659 }, 672 },
660 "end": { 673 "end": {
661 "line": 221, 674 "line": 225,
662 "column": 3 675 "column": 3
663 } 676 }
664 }, 677 },
@@ -667,11 +680,11 @@
667 "defaultMessage": "!!!Check for updates", 680 "defaultMessage": "!!!Check for updates",
668 "file": "src/lib/Menu.js", 681 "file": "src/lib/Menu.js",
669 "start": { 682 "start": {
670 "line": 222, 683 "line": 226,
671 "column": 19 684 "column": 19
672 }, 685 },
673 "end": { 686 "end": {
674 "line": 225, 687 "line": 229,
675 "column": 3 688 "column": 3
676 } 689 }
677 }, 690 },
@@ -680,11 +693,11 @@
680 "defaultMessage": "!!!Hide", 693 "defaultMessage": "!!!Hide",
681 "file": "src/lib/Menu.js", 694 "file": "src/lib/Menu.js",
682 "start": { 695 "start": {
683 "line": 226, 696 "line": 230,
684 "column": 8 697 "column": 8
685 }, 698 },
686 "end": { 699 "end": {
687 "line": 229, 700 "line": 233,
688 "column": 3 701 "column": 3
689 } 702 }
690 }, 703 },
@@ -693,11 +706,11 @@
693 "defaultMessage": "!!!Hide Others", 706 "defaultMessage": "!!!Hide Others",
694 "file": "src/lib/Menu.js", 707 "file": "src/lib/Menu.js",
695 "start": { 708 "start": {
696 "line": 230, 709 "line": 234,
697 "column": 14 710 "column": 14
698 }, 711 },
699 "end": { 712 "end": {
700 "line": 233, 713 "line": 237,
701 "column": 3 714 "column": 3
702 } 715 }
703 }, 716 },
@@ -706,11 +719,11 @@
706 "defaultMessage": "!!!Unhide", 719 "defaultMessage": "!!!Unhide",
707 "file": "src/lib/Menu.js", 720 "file": "src/lib/Menu.js",
708 "start": { 721 "start": {
709 "line": 234, 722 "line": 238,
710 "column": 10 723 "column": 10
711 }, 724 },
712 "end": { 725 "end": {
713 "line": 237, 726 "line": 241,
714 "column": 3 727 "column": 3
715 } 728 }
716 }, 729 },
@@ -719,11 +732,11 @@
719 "defaultMessage": "!!!Auto-hide menu bar", 732 "defaultMessage": "!!!Auto-hide menu bar",
720 "file": "src/lib/Menu.js", 733 "file": "src/lib/Menu.js",
721 "start": { 734 "start": {
722 "line": 238, 735 "line": 242,
723 "column": 19 736 "column": 19
724 }, 737 },
725 "end": { 738 "end": {
726 "line": 241, 739 "line": 245,
727 "column": 3 740 "column": 3
728 } 741 }
729 }, 742 },
@@ -732,11 +745,11 @@
732 "defaultMessage": "!!!Quit", 745 "defaultMessage": "!!!Quit",
733 "file": "src/lib/Menu.js", 746 "file": "src/lib/Menu.js",
734 "start": { 747 "start": {
735 "line": 242, 748 "line": 246,
736 "column": 8 749 "column": 8
737 }, 750 },
738 "end": { 751 "end": {
739 "line": 245, 752 "line": 249,
740 "column": 3 753 "column": 3
741 } 754 }
742 }, 755 },
@@ -745,11 +758,11 @@
745 "defaultMessage": "!!!Add New Service...", 758 "defaultMessage": "!!!Add New Service...",
746 "file": "src/lib/Menu.js", 759 "file": "src/lib/Menu.js",
747 "start": { 760 "start": {
748 "line": 246, 761 "line": 250,
749 "column": 17 762 "column": 17
750 }, 763 },
751 "end": { 764 "end": {
752 "line": 249, 765 "line": 253,
753 "column": 3 766 "column": 3
754 } 767 }
755 }, 768 },
@@ -758,11 +771,11 @@
758 "defaultMessage": "!!!Add New Workspace...", 771 "defaultMessage": "!!!Add New Workspace...",
759 "file": "src/lib/Menu.js", 772 "file": "src/lib/Menu.js",
760 "start": { 773 "start": {
761 "line": 250, 774 "line": 254,
762 "column": 19 775 "column": 19
763 }, 776 },
764 "end": { 777 "end": {
765 "line": 253, 778 "line": 257,
766 "column": 3 779 "column": 3
767 } 780 }
768 }, 781 },
@@ -771,11 +784,11 @@
771 "defaultMessage": "!!!Open workspace drawer", 784 "defaultMessage": "!!!Open workspace drawer",
772 "file": "src/lib/Menu.js", 785 "file": "src/lib/Menu.js",
773 "start": { 786 "start": {
774 "line": 254, 787 "line": 258,
775 "column": 23 788 "column": 23
776 }, 789 },
777 "end": { 790 "end": {
778 "line": 257, 791 "line": 261,
779 "column": 3 792 "column": 3
780 } 793 }
781 }, 794 },
@@ -784,11 +797,11 @@
784 "defaultMessage": "!!!Close workspace drawer", 797 "defaultMessage": "!!!Close workspace drawer",
785 "file": "src/lib/Menu.js", 798 "file": "src/lib/Menu.js",
786 "start": { 799 "start": {
787 "line": 258, 800 "line": 262,
788 "column": 24 801 "column": 24
789 }, 802 },
790 "end": { 803 "end": {
791 "line": 261, 804 "line": 265,
792 "column": 3 805 "column": 3
793 } 806 }
794 }, 807 },
@@ -797,11 +810,11 @@
797 "defaultMessage": "!!!Activate next service...", 810 "defaultMessage": "!!!Activate next service...",
798 "file": "src/lib/Menu.js", 811 "file": "src/lib/Menu.js",
799 "start": { 812 "start": {
800 "line": 262, 813 "line": 266,
801 "column": 23 814 "column": 23
802 }, 815 },
803 "end": { 816 "end": {
804 "line": 265, 817 "line": 269,
805 "column": 3 818 "column": 3
806 } 819 }
807 }, 820 },
@@ -810,11 +823,11 @@
810 "defaultMessage": "!!!Activate previous service...", 823 "defaultMessage": "!!!Activate previous service...",
811 "file": "src/lib/Menu.js", 824 "file": "src/lib/Menu.js",
812 "start": { 825 "start": {
813 "line": 266, 826 "line": 270,
814 "column": 27 827 "column": 27
815 }, 828 },
816 "end": { 829 "end": {
817 "line": 269, 830 "line": 273,
818 "column": 3 831 "column": 3
819 } 832 }
820 }, 833 },
@@ -823,11 +836,11 @@
823 "defaultMessage": "!!!Disable notifications & audio", 836 "defaultMessage": "!!!Disable notifications & audio",
824 "file": "src/lib/Menu.js", 837 "file": "src/lib/Menu.js",
825 "start": { 838 "start": {
826 "line": 270, 839 "line": 274,
827 "column": 11 840 "column": 11
828 }, 841 },
829 "end": { 842 "end": {
830 "line": 273, 843 "line": 277,
831 "column": 3 844 "column": 3
832 } 845 }
833 }, 846 },
@@ -836,11 +849,11 @@
836 "defaultMessage": "!!!Enable notifications & audio", 849 "defaultMessage": "!!!Enable notifications & audio",
837 "file": "src/lib/Menu.js", 850 "file": "src/lib/Menu.js",
838 "start": { 851 "start": {
839 "line": 274, 852 "line": 278,
840 "column": 13 853 "column": 13
841 }, 854 },
842 "end": { 855 "end": {
843 "line": 277, 856 "line": 281,
844 "column": 3 857 "column": 3
845 } 858 }
846 }, 859 },
@@ -849,11 +862,11 @@
849 "defaultMessage": "!!!Workspaces", 862 "defaultMessage": "!!!Workspaces",
850 "file": "src/lib/Menu.js", 863 "file": "src/lib/Menu.js",
851 "start": { 864 "start": {
852 "line": 278, 865 "line": 282,
853 "column": 14 866 "column": 14
854 }, 867 },
855 "end": { 868 "end": {
856 "line": 281, 869 "line": 285,
857 "column": 3 870 "column": 3
858 } 871 }
859 }, 872 },
@@ -862,11 +875,11 @@
862 "defaultMessage": "!!!Default", 875 "defaultMessage": "!!!Default",
863 "file": "src/lib/Menu.js", 876 "file": "src/lib/Menu.js",
864 "start": { 877 "start": {
865 "line": 282, 878 "line": 286,
866 "column": 20 879 "column": 20
867 }, 880 },
868 "end": { 881 "end": {
869 "line": 285, 882 "line": 289,
870 "column": 3 883 "column": 3
871 } 884 }
872 }, 885 },
@@ -875,11 +888,11 @@
875 "defaultMessage": "!!!Todos", 888 "defaultMessage": "!!!Todos",
876 "file": "src/lib/Menu.js", 889 "file": "src/lib/Menu.js",
877 "start": { 890 "start": {
878 "line": 286, 891 "line": 290,
879 "column": 9 892 "column": 9
880 }, 893 },
881 "end": { 894 "end": {
882 "line": 289, 895 "line": 293,
883 "column": 3 896 "column": 3
884 } 897 }
885 }, 898 },
@@ -888,11 +901,11 @@
888 "defaultMessage": "!!!Open Todos drawer", 901 "defaultMessage": "!!!Open Todos drawer",
889 "file": "src/lib/Menu.js", 902 "file": "src/lib/Menu.js",
890 "start": { 903 "start": {
891 "line": 290, 904 "line": 294,
892 "column": 19 905 "column": 19
893 }, 906 },
894 "end": { 907 "end": {
895 "line": 293, 908 "line": 297,
896 "column": 3 909 "column": 3
897 } 910 }
898 }, 911 },
@@ -901,11 +914,11 @@
901 "defaultMessage": "!!!Close Todos drawer", 914 "defaultMessage": "!!!Close Todos drawer",
902 "file": "src/lib/Menu.js", 915 "file": "src/lib/Menu.js",
903 "start": { 916 "start": {
904 "line": 294, 917 "line": 298,
905 "column": 20 918 "column": 20
906 }, 919 },
907 "end": { 920 "end": {
908 "line": 297, 921 "line": 301,
909 "column": 3 922 "column": 3
910 } 923 }
911 }, 924 },
@@ -914,11 +927,11 @@
914 "defaultMessage": "!!!Enable Todos", 927 "defaultMessage": "!!!Enable Todos",
915 "file": "src/lib/Menu.js", 928 "file": "src/lib/Menu.js",
916 "start": { 929 "start": {
917 "line": 298, 930 "line": 302,
918 "column": 15 931 "column": 15
919 }, 932 },
920 "end": { 933 "end": {
921 "line": 301, 934 "line": 305,
922 "column": 3 935 "column": 3
923 } 936 }
924 }, 937 },
@@ -927,11 +940,11 @@
927 "defaultMessage": "!!!Home", 940 "defaultMessage": "!!!Home",
928 "file": "src/lib/Menu.js", 941 "file": "src/lib/Menu.js",
929 "start": { 942 "start": {
930 "line": 302, 943 "line": 306,
931 "column": 17 944 "column": 17
932 }, 945 },
933 "end": { 946 "end": {
934 "line": 305, 947 "line": 309,
935 "column": 3 948 "column": 3
936 } 949 }
937 } 950 }
diff --git a/src/index.js b/src/index.js
index 167d3897a..e5f678759 100644
--- a/src/index.js
+++ b/src/index.js
@@ -37,6 +37,7 @@ import Tray from './lib/Tray';
37import Settings from './electron/Settings'; 37import Settings from './electron/Settings';
38import handleDeepLink from './electron/deepLinking'; 38import handleDeepLink from './electron/deepLinking';
39import { isPositionValid } from './electron/windowUtils'; 39import { isPositionValid } from './electron/windowUtils';
40// import askFormacOSPermissions from './electron/macOSPermissions';
40import { appId } from './package.json'; // eslint-disable-line import/no-unresolved 41import { appId } from './package.json'; // eslint-disable-line import/no-unresolved
41import './electron/exception'; 42import './electron/exception';
42 43
@@ -46,10 +47,14 @@ import {
46} from './config'; 47} from './config';
47import { asarPath } from './helpers/asar-helpers'; 48import { asarPath } from './helpers/asar-helpers';
48import { isValidExternalURL } from './helpers/url-helpers'; 49import { isValidExternalURL } from './helpers/url-helpers';
49/* eslint-enable import/first */ 50import userAgent from './helpers/userAgent-helpers';
50 51
51const debug = require('debug')('Ferdi:App'); 52const debug = require('debug')('Ferdi:App');
52 53
54// Globally set useragent to fix user agent override in service workers
55debug('Set userAgent to ', userAgent());
56app.userAgentFallback = userAgent();
57
53// Keep a global reference of the window object, if you don't, the window will 58// Keep a global reference of the window object, if you don't, the window will
54// be closed automatically when the JavaScript object is garbage collected. 59// be closed automatically when the JavaScript object is garbage collected.
55let mainWindow; 60let mainWindow;
@@ -182,6 +187,7 @@ const createWindow = () => {
182 nodeIntegration: true, 187 nodeIntegration: true,
183 webviewTag: true, 188 webviewTag: true,
184 preload: path.join(__dirname, 'sentry.js'), 189 preload: path.join(__dirname, 'sentry.js'),
190 enableRemoteModule: true,
185 }, 191 },
186 }); 192 });
187 193
@@ -291,8 +297,13 @@ const createWindow = () => {
291 } 297 }
292 }); 298 });
293 299
300 // Asking for permissions like this currently crashes Ferdi
301 // if (isMac) {
302 // askFormacOSPermissions();
303 // }
304
294 mainWindow.on('show', () => { 305 mainWindow.on('show', () => {
295 debug('Skip taskbar: false'); 306 debug('Skip taskbar: true');
296 mainWindow.setSkipTaskbar(false); 307 mainWindow.setSkipTaskbar(false);
297 }); 308 });
298 309
@@ -308,7 +319,9 @@ const createWindow = () => {
308 } 319 }
309 }); 320 });
310 321
311 if (!(settings.get('enableSystemTray') && settings.get('startMinimized'))) { 322 if (settings.get('startMinimized')) {
323 mainWindow.hide();
324 } else {
312 mainWindow.show(); 325 mainWindow.show();
313 } 326 }
314}; 327};
diff --git a/src/internal-server b/src/internal-server
Subproject 3ad266e1371075612ce866332472595bfd89a5d Subproject 95ae59926dbd88d55a5377be997558a9e112ab4
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index 4547e84f9..07a29a224 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -111,6 +111,10 @@ const menuItems = defineMessages({
111 id: 'menu.view.toggleFullScreen', 111 id: 'menu.view.toggleFullScreen',
112 defaultMessage: '!!!Toggle Full Screen', 112 defaultMessage: '!!!Toggle Full Screen',
113 }, 113 },
114 toggleDarkMode: {
115 id: 'menu.view.toggleDarkMode',
116 defaultMessage: '!!!Toggle Dark Mode',
117 },
114 toggleDevTools: { 118 toggleDevTools: {
115 id: 'menu.view.toggleDevTools', 119 id: 'menu.view.toggleDevTools',
116 defaultMessage: '!!!Toggle Developer Tools', 120 defaultMessage: '!!!Toggle Developer Tools',
@@ -457,6 +461,20 @@ const _templateFactory = (intl, locked) => [
457 : intl.formatMessage(menuItems.enterFullScreen), 461 : intl.formatMessage(menuItems.enterFullScreen),
458 role: 'togglefullscreen', 462 role: 'togglefullscreen',
459 }, 463 },
464 {
465 label: intl.formatMessage(menuItems.toggleDarkMode),
466 type: 'checkbox',
467 accelerator: `${cmdKey}+Shift+D`,
468 checked: window.ferdi.stores.settings.app.darkMode,
469 click: () => {
470 window.ferdi.actions.settings.update({
471 type: 'app',
472 data: {
473 darkMode: !window.ferdi.stores.settings.app.darkMode,
474 },
475 });
476 },
477 },
460 ], 478 ],
461 }, 479 },
462 { 480 {
@@ -690,6 +708,20 @@ const _titleBarTemplateFactory = (intl, locked) => [
690 }, 708 },
691 }, 709 },
692 { 710 {
711 label: intl.formatMessage(menuItems.toggleDarkMode),
712 type: 'checkbox',
713 accelerator: `${cmdKey}+Shift+D`,
714 checked: window.ferdi.stores.settings.app.darkMode,
715 click: () => {
716 window.ferdi.actions.settings.update({
717 type: 'app',
718 data: {
719 darkMode: !window.ferdi.stores.settings.app.darkMode,
720 },
721 });
722 },
723 },
724 {
693 label: intl.formatMessage(menuItems.autohideMenuBar), 725 label: intl.formatMessage(menuItems.autohideMenuBar),
694 type: 'checkbox', 726 type: 'checkbox',
695 checked: window.ferdi.stores.settings.app.autohideMenuBar, 727 checked: window.ferdi.stores.settings.app.autohideMenuBar,
diff --git a/src/lib/Tray.js b/src/lib/Tray.js
index 84ee8e3bb..3700cca27 100644
--- a/src/lib/Tray.js
+++ b/src/lib/Tray.js
@@ -1,5 +1,5 @@
1import { 1import {
2 app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, 2 app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, ipcMain,
3} from 'electron'; 3} from 'electron';
4import path from 'path'; 4import path from 'path';
5 5
@@ -14,29 +14,55 @@ export default class TrayIcon {
14 14
15 themeChangeSubscriberId = null; 15 themeChangeSubscriberId = null;
16 16
17 trayMenu = null;
18
19 trayMenuTemplate = [
20 {
21 label: 'Show Ferdi',
22 click() {
23 if (app.mainWindow.isMinimized()) {
24 app.mainWindow.restore();
25 }
26 app.mainWindow.show();
27 app.mainWindow.focus();
28 },
29 },
30 {
31 label: 'Disable Notifications & Audio',
32 click() {
33 app.mainWindow.webContents.send('muteApp');
34 },
35 },
36 {
37 label: 'Quit Ferdi',
38 click() {
39 app.quit();
40 },
41 },
42 ];
43
44 _updateTrayMenu(appSettings) {
45 if (appSettings.type === 'app') {
46 const { isAppMuted } = appSettings.data;
47 this.trayMenuTemplate[1].label = isAppMuted ? 'Enable Notifications && Audio' : 'Disable Notifications && Audio';
48 this.trayMenu = Menu.buildFromTemplate(this.trayMenuTemplate);
49 }
50 }
51
17 show() { 52 show() {
18 if (this.trayIcon) return; 53 if (this.trayIcon) return;
19 54
20 this.trayIcon = new Tray(this._getAsset('tray', INDICATOR_TRAY_PLAIN)); 55 this.trayIcon = new Tray(this._getAsset('tray', INDICATOR_TRAY_PLAIN));
21 const trayMenuTemplate = [
22 {
23 label: 'Show Ferdi',
24 click() {
25 if (app.mainWindow.isMinimized()) {
26 app.mainWindow.restore();
27 }
28 app.mainWindow.show();
29 app.mainWindow.focus();
30 },
31 }, {
32 label: 'Quit Ferdi',
33 click() {
34 app.quit();
35 },
36 },
37 ];
38 56
39 const trayMenu = Menu.buildFromTemplate(trayMenuTemplate); 57 this.trayMenu = Menu.buildFromTemplate(this.trayMenuTemplate);
58
59 ipcMain.on('initialAppSettings', (event, appSettings) => {
60 this._updateTrayMenu(appSettings);
61 });
62
63 ipcMain.on('updateAppSettings', (event, appSettings) => {
64 this._updateTrayMenu(appSettings);
65 });
40 66
41 this.trayIcon.on('click', () => { 67 this.trayIcon.on('click', () => {
42 if (app.mainWindow.isMinimized()) { 68 if (app.mainWindow.isMinimized()) {
@@ -50,7 +76,7 @@ export default class TrayIcon {
50 }); 76 });
51 77
52 this.trayIcon.on('right-click', () => { 78 this.trayIcon.on('right-click', () => {
53 this.trayIcon.popUpContextMenu(trayMenu); 79 this.trayIcon.popUpContextMenu(this.trayMenu);
54 }); 80 });
55 81
56 if (process.platform === 'darwin') { 82 if (process.platform === 'darwin') {
diff --git a/src/models/Recipe.js b/src/models/Recipe.js
index 6655f8310..dcb998a19 100644
--- a/src/models/Recipe.js
+++ b/src/models/Recipe.js
@@ -38,6 +38,8 @@ export default class Recipe {
38 38
39 disablewebsecurity = false; 39 disablewebsecurity = false;
40 40
41 autoHibernate = false;
42
41 constructor(data) { 43 constructor(data) {
42 if (!data) { 44 if (!data) {
43 throw Error('Recipe config not valid'); 45 throw Error('Recipe config not valid');
@@ -78,6 +80,8 @@ export default class Recipe {
78 80
79 this.disablewebsecurity = data.config.disablewebsecurity || this.disablewebsecurity; 81 this.disablewebsecurity = data.config.disablewebsecurity || this.disablewebsecurity;
80 82
83 this.autoHibernate = data.config.autoHibernate || this.autoHibernate;
84
81 this.message = data.config.message || this.message; 85 this.message = data.config.message || this.message;
82 } 86 }
83 87
diff --git a/src/models/Service.js b/src/models/Service.js
index 12a2d4af9..dc8febe0b 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -2,6 +2,8 @@ import { autorun, computed, observable } from 'mobx';
2import normalizeUrl from 'normalize-url'; 2import normalizeUrl from 'normalize-url';
3import path from 'path'; 3import path from 'path';
4 4
5import userAgent from '../helpers/userAgent-helpers';
6
5const debug = require('debug')('Ferdi:Service'); 7const debug = require('debug')('Ferdi:Service');
6 8
7export const RESTRICTION_TYPES = { 9export const RESTRICTION_TYPES = {
@@ -56,6 +58,8 @@ export default class Service {
56 58
57 @observable isDarkModeEnabled = false; 59 @observable isDarkModeEnabled = false;
58 60
61 @observable darkReaderSettings = { brightness: 100, contrast: 90, sepia: 10 };
62
59 @observable spellcheckerLanguage = null; 63 @observable spellcheckerLanguage = null;
60 64
61 @observable isFirstLoad = true; 65 @observable isFirstLoad = true;
@@ -72,6 +76,20 @@ export default class Service {
72 76
73 @observable restrictionType = null; 77 @observable restrictionType = null;
74 78
79 @observable isHibernationEnabled = false;
80
81 @observable lastUsed = Date.now(); // timestamp
82
83 @observable lastPoll = null;
84
85 @observable lastPollAnswer = null;
86
87 @observable lostRecipeConnection = false;
88
89 @observable lostRecipeReloadAttempt = 0;
90
91 @observable chromelessUserAgent = false;
92
75 constructor(data, recipe) { 93 constructor(data, recipe) {
76 if (!data) { 94 if (!data) {
77 console.error('Service config not valid'); 95 console.error('Service config not valid');
@@ -109,12 +127,16 @@ export default class Service {
109 127
110 this.isDarkModeEnabled = data.isDarkModeEnabled !== undefined ? data.isDarkModeEnabled : this.isDarkModeEnabled; 128 this.isDarkModeEnabled = data.isDarkModeEnabled !== undefined ? data.isDarkModeEnabled : this.isDarkModeEnabled;
111 129
130 this.darkReaderSettings = data.darkReaderSettings !== undefined ? data.darkReaderSettings : this.darkReaderSettings;
131
112 this.hasCustomUploadedIcon = data.hasCustomIcon !== undefined ? data.hasCustomIcon : this.hasCustomUploadedIcon; 132 this.hasCustomUploadedIcon = data.hasCustomIcon !== undefined ? data.hasCustomIcon : this.hasCustomUploadedIcon;
113 133
114 this.proxy = data.proxy !== undefined ? data.proxy : this.proxy; 134 this.proxy = data.proxy !== undefined ? data.proxy : this.proxy;
115 135
116 this.spellcheckerLanguage = data.spellcheckerLanguage !== undefined ? data.spellcheckerLanguage : this.spellcheckerLanguage; 136 this.spellcheckerLanguage = data.spellcheckerLanguage !== undefined ? data.spellcheckerLanguage : this.spellcheckerLanguage;
117 137
138 this.isHibernationEnabled = data.isHibernationEnabled !== undefined ? data.isHibernationEnabled : this.isHibernationEnabled;
139
118 this.recipe = recipe; 140 this.recipe = recipe;
119 141
120 autorun(() => { 142 autorun(() => {
@@ -136,6 +158,7 @@ export default class Service {
136 id: this.id, 158 id: this.id,
137 spellcheckerLanguage: this.spellcheckerLanguage, 159 spellcheckerLanguage: this.spellcheckerLanguage,
138 isDarkModeEnabled: this.isDarkModeEnabled, 160 isDarkModeEnabled: this.isDarkModeEnabled,
161 darkReaderSettings: this.darkReaderSettings,
139 team: this.team, 162 team: this.team,
140 url: this.url, 163 url: this.url,
141 hasCustomIcon: this.hasCustomIcon, 164 hasCustomIcon: this.hasCustomIcon,
@@ -182,21 +205,34 @@ export default class Service {
182 } 205 }
183 206
184 @computed get userAgent() { 207 @computed get userAgent() {
185 let { userAgent } = window.navigator; 208 let ua = userAgent(this.chromelessUserAgent);
186 if (typeof this.recipe.overrideUserAgent === 'function') { 209 if (typeof this.recipe.overrideUserAgent === 'function') {
187 userAgent = this.recipe.overrideUserAgent(); 210 ua = this.recipe.overrideUserAgent();
188 } 211 }
189 212
190 // Remove Ferdi as it can cause incompatabilities with services. 213 return ua;
191 // This way, Ferdi will look like a normal Chrome instance
192 userAgent = userAgent.replace(/(Ferdi|Electron)([^\s]+\s)/g, '');
193
194 return userAgent;
195 } 214 }
196 215
197 initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) { 216 initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) {
198 const webContents = this.webview.getWebContents(); 217 const webContents = this.webview.getWebContents();
199 218
219 const handleUserAgent = (url, forwardingHack = false) => {
220 if (url.startsWith('https://accounts.google.com')) {
221 if (!this.chromelessUserAgent) {
222 debug('Setting user agent to chromeless for url', url);
223 this.webview.setUserAgent(userAgent(true));
224 if (forwardingHack) {
225 this.webview.loadURL(url);
226 }
227 this.chromelessUserAgent = true;
228 }
229 } else if (this.chromelessUserAgent) {
230 debug('Setting user agent to contain chrome');
231 this.webview.setUserAgent(this.userAgent);
232 this.chromelessUserAgent = false;
233 }
234 };
235
200 this.webview.addEventListener('ipc-message', e => handleIPCMessage({ 236 this.webview.addEventListener('ipc-message', e => handleIPCMessage({
201 serviceId: this.id, 237 serviceId: this.id,
202 channel: e.channel, 238 channel: e.channel,
@@ -204,7 +240,6 @@ export default class Service {
204 })); 240 }));
205 241
206 this.webview.addEventListener('new-window', (event, url, frameName, options) => { 242 this.webview.addEventListener('new-window', (event, url, frameName, options) => {
207 console.log('open window', event, url, frameName, options);
208 openWindow({ 243 openWindow({
209 event, 244 event,
210 url, 245 url,
@@ -213,6 +248,9 @@ export default class Service {
213 }); 248 });
214 }); 249 });
215 250
251
252 this.webview.addEventListener('will-navigate', event => handleUserAgent(event.url, true));
253
216 this.webview.addEventListener('did-start-loading', (event) => { 254 this.webview.addEventListener('did-start-loading', (event) => {
217 debug('Did start load', this.name, event); 255 debug('Did start load', this.name, event);
218 256
@@ -230,7 +268,10 @@ export default class Service {
230 }; 268 };
231 269
232 this.webview.addEventListener('did-frame-finish-load', didLoad.bind(this)); 270 this.webview.addEventListener('did-frame-finish-load', didLoad.bind(this));
233 this.webview.addEventListener('did-navigate', didLoad.bind(this)); 271 this.webview.addEventListener('did-navigate', (event) => {
272 handleUserAgent(event.url);
273 didLoad();
274 });
234 275
235 this.webview.addEventListener('did-fail-load', (event) => { 276 this.webview.addEventListener('did-fail-load', (event) => {
236 debug('Service failed to load', this.name, event); 277 debug('Service failed to load', this.name, event);
diff --git a/src/scripts/add-crowdin-contributors.js b/src/scripts/add-crowdin-contributors.js
index 7ad3df0ed..efe981b6e 100644
--- a/src/scripts/add-crowdin-contributors.js
+++ b/src/scripts/add-crowdin-contributors.js
@@ -22,7 +22,7 @@ membersEl.forEach((el) => {
22 let picture = el.querySelector('img').getAttribute('src'); 22 let picture = el.querySelector('img').getAttribute('src');
23 picture = picture.replace(/\?.+/, ''); 23 picture = picture.replace(/\?.+/, '');
24 24
25 // Check if the text includes a seperate username 25 // Check if the text includes a separate username
26 if (text.includes('(')) { 26 if (text.includes('(')) {
27 const username = /(?<=\()\w*(?=\))/.exec(text)[0]; 27 const username = /(?<=\()\w*(?=\))/.exec(text)[0];
28 const name = /^.*(?= \()/.exec(text)[0]; 28 const name = /^.*(?= \()/.exec(text)[0];
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js
index 593bf341e..da6055e5f 100644
--- a/src/stores/AppStore.js
+++ b/src/stores/AppStore.js
@@ -52,7 +52,7 @@ export default class AppStore extends Store {
52 52
53 @observable getAppCacheSizeRequest = new Request(this.api.local, 'getAppCacheSize'); 53 @observable getAppCacheSizeRequest = new Request(this.api.local, 'getAppCacheSize');
54 54
55 @observable clearAppCacheRequest = new Request(this.api.local, 'clearAppCache'); 55 @observable clearAppCacheRequest = new Request(this.api.local, 'clearCache');
56 56
57 @observable autoLaunchOnStart = true; 57 @observable autoLaunchOnStart = true;
58 58
@@ -179,6 +179,10 @@ export default class AppStore extends Store {
179 this.stores.router.push(url); 179 this.stores.router.push(url);
180 }); 180 });
181 181
182 ipcRenderer.on('muteApp', () => {
183 this._toggleMuteApp();
184 });
185
182 this.locale = this._getDefaultLocale(); 186 this.locale = this._getDefaultLocale();
183 187
184 setTimeout(() => { 188 setTimeout(() => {
@@ -214,13 +218,16 @@ export default class AppStore extends Store {
214 // macOS catalina notifications hack 218 // macOS catalina notifications hack
215 // notifications got stuck after upgrade but forcing a notification 219 // notifications got stuck after upgrade but forcing a notification
216 // via `new Notification` triggered the permission request 220 // via `new Notification` triggered the permission request
217 if (isMac && !localStorage.getItem(CATALINA_NOTIFICATION_HACK_KEY)) { 221 if (isMac) {
218 // eslint-disable-next-line no-new 222 if (!localStorage.getItem(CATALINA_NOTIFICATION_HACK_KEY)) {
219 new window.Notification('Welcome to Franz 5', { 223 debug('Triggering macOS Catalina notification permission trigger');
220 body: 'Have a wonderful day & happy messaging.', 224 // eslint-disable-next-line no-new
221 }); 225 new window.Notification('Welcome to Franz 5', {
226 body: 'Have a wonderful day & happy messaging.',
227 });
222 228
223 localStorage.setItem(CATALINA_NOTIFICATION_HACK_KEY, true); 229 localStorage.setItem(CATALINA_NOTIFICATION_HACK_KEY, true);
230 }
224 } 231 }
225 } 232 }
226 233
@@ -374,8 +381,11 @@ export default class AppStore extends Store {
374 const allServiceIds = await getServiceIdsFromPartitions(); 381 const allServiceIds = await getServiceIdsFromPartitions();
375 const allOrphanedServiceIds = allServiceIds.filter(id => !this.stores.services.all.find(s => id.replace('service-', '') === s.id)); 382 const allOrphanedServiceIds = allServiceIds.filter(id => !this.stores.services.all.find(s => id.replace('service-', '') === s.id));
376 383
377 await Promise.all(allOrphanedServiceIds.map(id => removeServicePartitionDirectory(id))); 384 try {
378 385 await Promise.all(allOrphanedServiceIds.map(id => removeServicePartitionDirectory(id)));
386 } catch (ex) {
387 console.log('Error while deleting service partition directory - ', ex);
388 }
379 await Promise.all(this.stores.services.all.map(s => this.actions.service.clearCache({ serviceId: s.id }))); 389 await Promise.all(this.stores.services.all.map(s => this.actions.service.clearCache({ serviceId: s.id })));
380 390
381 await clearAppCache._promise; 391 await clearAppCache._promise;
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index 985887d2d..80c7d7e81 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -5,7 +5,7 @@ import {
5 computed, 5 computed,
6 observable, 6 observable,
7} from 'mobx'; 7} from 'mobx';
8import { remove } from 'lodash'; 8import { debounce, remove } from 'lodash';
9import ms from 'ms'; 9import ms from 'ms';
10import fs from 'fs-extra'; 10import fs from 'fs-extra';
11import path from 'path'; 11import path from 'path';
@@ -127,6 +127,60 @@ export default class ServicesStore extends Store {
127 ); 127 );
128 } 128 }
129 129
130 initialize() {
131 super.initialize();
132
133 // Check services to become hibernated
134 this.serviceMaintenanceTick();
135 }
136
137 teardown() {
138 super.teardown();
139
140 // Stop checking services for hibernation
141 this.serviceMaintenanceTick.cancel();
142 }
143
144 /**
145 * Сheck for services to become hibernated.
146 */
147 serviceMaintenanceTick = debounce(() => {
148 this._serviceMaintenance();
149 this.serviceMaintenanceTick();
150 debug('Service maintenance tick');
151 }, ms('10s'));
152
153 /**
154 * Run various maintenance tasks on services
155 */
156 _serviceMaintenance() {
157 this.all.forEach((service) => {
158 // Defines which services should be hibernated.
159 if (!service.isActive && (Date.now() - service.lastUsed > ms('5m'))) {
160 // If service is stale for 5 min, hibernate it.
161 this._hibernate({ serviceId: service.id });
162 }
163
164 if (service.lastPoll && (service.lastPoll) - service.lastPollAnswer > ms('30s')) {
165 // If service did not reply for more than 30s try to reload.
166 if (!service.isActive) {
167 if (this.stores.app.isOnline && service.lostRecipeReloadAttempt < 3) {
168 service.webview.reload();
169 service.lostRecipeReloadAttempt += 1;
170
171 service.lostRecipeConnection = false;
172 }
173 } else {
174 service.lostRecipeConnection = true;
175 }
176 } else {
177 service.lostRecipeConnection = false;
178 service.lostRecipeReloadAttempt = 0;
179 }
180 });
181 }
182
183 // Computed props
130 @computed get all() { 184 @computed get all() {
131 if (this.stores.user.isLoggedIn) { 185 if (this.stores.user.isLoggedIn) {
132 const services = this.allServicesRequest.execute().result; 186 const services = this.allServicesRequest.execute().result;
@@ -351,7 +405,17 @@ export default class ServicesStore extends Store {
351 405
352 // Create and open file 406 // Create and open file
353 const filePath = path.join(directory, file); 407 const filePath = path.join(directory, file);
354 await fs.ensureFile(filePath); 408 if (file === 'user.js') {
409 if (!await fs.exists(filePath)) {
410 await fs.writeFile(filePath, `module.exports = (config, Ferdi) => {
411 // Write your scripts here
412 console.log("Hello, World!", config);
413}
414`);
415 }
416 } else {
417 await fs.ensureFile(filePath);
418 }
355 shell.showItemInFolder(filePath); 419 shell.showItemInFolder(filePath);
356 } 420 }
357 421
@@ -369,6 +433,7 @@ export default class ServicesStore extends Store {
369 this.all[index].isActive = false; 433 this.all[index].isActive = false;
370 }); 434 });
371 service.isActive = true; 435 service.isActive = true;
436 service.lastUsed = Date.now();
372 437
373 // Update list of last used services 438 // Update list of last used services
374 this.lastUsedServices = this.lastUsedServices.filter(id => id !== serviceId); 439 this.lastUsedServices = this.lastUsedServices.filter(id => id !== serviceId);
@@ -465,10 +530,16 @@ export default class ServicesStore extends Store {
465 const service = this.one(serviceId); 530 const service = this.one(serviceId);
466 531
467 if (channel === 'hello') { 532 if (channel === 'hello') {
533 debug('Received hello event from', serviceId);
534
468 this._initRecipePolling(service.id); 535 this._initRecipePolling(service.id);
469 this._initializeServiceRecipeInWebview(serviceId); 536 this._initializeServiceRecipeInWebview(serviceId);
470 this._shareSettingsWithServiceProcess(); 537 this._shareSettingsWithServiceProcess();
538 } else if (channel === 'alive') {
539 service.lastPollAnswer = Date.now();
471 } else if (channel === 'messages') { 540 } else if (channel === 'messages') {
541 debug(`Received unread message info from '${serviceId}'`, args[0]);
542
472 this.actions.service.setUnreadMessageCount({ 543 this.actions.service.setUnreadMessageCount({
473 serviceId, 544 serviceId,
474 count: { 545 count: {
@@ -590,6 +661,7 @@ export default class ServicesStore extends Store {
590 if (!service.isEnabled) return; 661 if (!service.isEnabled) return;
591 662
592 service.resetMessageCount(); 663 service.resetMessageCount();
664 service.lostRecipeConnection = false;
593 665
594 // service.webview.loadURL(service.url); 666 // service.webview.loadURL(service.url);
595 service.webview.reload(); 667 service.webview.reload();
@@ -699,6 +771,7 @@ export default class ServicesStore extends Store {
699 const service = this.active; 771 const service = this.active;
700 if (service) { 772 if (service) {
701 this.actions.service.focusService({ serviceId: service.id }); 773 this.actions.service.focusService({ serviceId: service.id });
774 document.title = `Ferdi - ${service.name}`;
702 } 775 }
703 } 776 }
704 777
@@ -766,7 +839,7 @@ export default class ServicesStore extends Store {
766 const isMuted = isAppMuted || service.isMuted; 839 const isMuted = isAppMuted || service.isMuted;
767 840
768 if (isAttached) { 841 if (isAttached) {
769 service.webview.setAudioMuted(isMuted); 842 service.webview.audioMuted = isMuted;
770 } 843 }
771 }); 844 });
772 } 845 }
@@ -852,6 +925,7 @@ export default class ServicesStore extends Store {
852 service.webview.send('poll'); 925 service.webview.send('poll');
853 926
854 service.timer = setTimeout(loop, delay); 927 service.timer = setTimeout(loop, delay);
928 service.lastPoll = Date.now();
855 }; 929 };
856 930
857 loop(); 931 loop();
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js
index 71d4e1702..227eb2145 100644
--- a/src/stores/SettingsStore.js
+++ b/src/stores/SettingsStore.js
@@ -110,6 +110,7 @@ export default class SettingsStore extends Store {
110 } 110 }
111 debug('Get appSettings resolves', resp.type, resp.data); 111 debug('Get appSettings resolves', resp.type, resp.data);
112 Object.assign(this._fileSystemSettingsCache[resp.type], resp.data); 112 Object.assign(this._fileSystemSettingsCache[resp.type], resp.data);
113 ipcRenderer.send('initialAppSettings', resp);
113 }); 114 });
114 115
115 this.fileSystemSettingsTypes.forEach((type) => { 116 this.fileSystemSettingsTypes.forEach((type) => {
@@ -263,5 +264,42 @@ export default class SettingsStore extends Store {
263 }, 264 },
264 }); 265 });
265 } 266 }
267
268 if (!this.all.migration['5.4.4-beta.4-settings']) {
269 this.actions.settings.update({
270 type: 'app',
271 data: {
272 todoServer: 'isUsingCustomTodoService',
273 customTodoServer: legacySettings.todoServer,
274 },
275 });
276
277 this.actions.settings.update({
278 type: 'migration',
279 data: {
280 '5.4.4-beta.4-settings': true,
281 },
282 });
283
284 debug('Migrated old todo setting to new custom todo setting');
285 }
286
287 if (!this.all.migration['5.4.4-beta.4-settings']) {
288 this.actions.settings.update({
289 type: 'app',
290 data: {
291 automaticUpdates: !(legacySettings.noUpdates),
292 },
293 });
294
295 this.actions.settings.update({
296 type: 'migration',
297 data: {
298 '5.4.4-beta.4-settings': true,
299 },
300 });
301
302 debug('Migrated updates settings');
303 }
266 } 304 }
267} 305}
diff --git a/src/stores/UIStore.js b/src/stores/UIStore.js
index 6941cf086..f6e059bfb 100644
--- a/src/stores/UIStore.js
+++ b/src/stores/UIStore.js
@@ -5,14 +5,14 @@ import { theme } from '@meetfranz/theme';
5import { remote } from 'electron'; 5import { remote } from 'electron';
6 6
7import Store from './lib/Store'; 7import Store from './lib/Store';
8import { isMac } from '../environment'; 8import { isMac, isWindows } from '../environment';
9 9
10const { nativeTheme, systemPreferences } = remote; 10const { nativeTheme, systemPreferences } = remote;
11 11
12export default class UIStore extends Store { 12export default class UIStore extends Store {
13 @observable showServicesUpdatedInfoBar = false; 13 @observable showServicesUpdatedInfoBar = false;
14 14
15 @observable isOsDarkThemeActive = isMac 15 @observable isOsDarkThemeActive = (isMac || isWindows)
16 ? nativeTheme.shouldUseDarkColors 16 ? nativeTheme.shouldUseDarkColors
17 : false; 17 : false;
18 18
@@ -36,6 +36,13 @@ export default class UIStore extends Store {
36 }, 36 },
37 ); 37 );
38 } 38 }
39
40 if (isWindows) {
41 nativeTheme.on('updated', () => {
42 this.isOsDarkThemeActive = nativeTheme.shouldUseDarkColors;
43 this.actions.service.shareSettingsWithServiceProcess();
44 });
45 }
39 } 46 }
40 47
41 setup() { 48 setup() {
@@ -56,16 +63,16 @@ export default class UIStore extends Store {
56 } 63 }
57 64
58 @computed get isDarkThemeActive() { 65 @computed get isDarkThemeActive() {
59 const isMacWithAdaptableInDarkMode = isMac 66 const isMacOrWindowsWithAdaptableInDarkMode = (isMac || isWindows)
60 && this.stores.settings.all.app.adaptableDarkMode 67 && this.stores.settings.all.app.adaptableDarkMode
61 && this.isOsDarkThemeActive; 68 && this.isOsDarkThemeActive;
62 const isMacWithoutAdaptableInDarkMode = isMac 69 const isMacOrWindowsWithoutAdaptableInDarkMode = (isMac || isWindows)
63 && this.stores.settings.all.app.darkMode 70 && this.stores.settings.all.app.darkMode
64 && !this.stores.settings.all.app.adaptableDarkMode; 71 && !this.stores.settings.all.app.adaptableDarkMode;
65 const isNotMacInDarkMode = !isMac && this.stores.settings.all.app.darkMode; 72 const isMacOrWindowsNotInDarkMode = !(isMac || isWindows) && this.stores.settings.all.app.darkMode;
66 return !!(isMacWithAdaptableInDarkMode 73 return !!(isMacOrWindowsWithAdaptableInDarkMode
67 || isMacWithoutAdaptableInDarkMode 74 || isMacOrWindowsWithoutAdaptableInDarkMode
68 || isNotMacInDarkMode); 75 || isMacOrWindowsNotInDarkMode);
69 } 76 }
70 77
71 @computed get theme() { 78 @computed get theme() {
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js
index ec0b0cf8d..3a53d150d 100644
--- a/src/stores/UserStore.js
+++ b/src/stores/UserStore.js
@@ -34,6 +34,8 @@ export default class UserStore extends Store {
34 34
35 PASSWORD_ROUTE = `${this.BASE_ROUTE}/password`; 35 PASSWORD_ROUTE = `${this.BASE_ROUTE}/password`;
36 36
37 CHANGE_SERVER_ROUTE = `${this.BASE_ROUTE}/server`;
38
37 @observable loginRequest = new Request(this.api.user, 'login'); 39 @observable loginRequest = new Request(this.api.user, 'login');
38 40
39 @observable signupRequest = new Request(this.api.user, 'signup'); 41 @observable signupRequest = new Request(this.api.user, 'signup');
@@ -97,7 +99,7 @@ export default class UserStore extends Store {
97 99
98 // Reactions 100 // Reactions
99 this.registerReactions([ 101 this.registerReactions([
100 // this._requireAuthenticatedUser, 102 this._requireAuthenticatedUser,
101 this._getUserData.bind(this), 103 this._getUserData.bind(this),
102 this._resetTrialActivationState.bind(this), 104 this._resetTrialActivationState.bind(this),
103 ]); 105 ]);
@@ -137,6 +139,10 @@ export default class UserStore extends Store {
137 return this.PASSWORD_ROUTE; 139 return this.PASSWORD_ROUTE;
138 } 140 }
139 141
142 get changeServerRoute() {
143 return this.CHANGE_SERVER_ROUTE;
144 }
145
140 // Data 146 // Data
141 @computed get isLoggedIn() { 147 @computed get isLoggedIn() {
142 return Boolean(localStorage.getItem('authToken')); 148 return Boolean(localStorage.getItem('authToken'));
diff --git a/src/styles/layout.scss b/src/styles/layout.scss
index c09d69f6c..de00c01b4 100644
--- a/src/styles/layout.scss
+++ b/src/styles/layout.scss
@@ -90,7 +90,7 @@ body.win32:not(.isFullScreen) .app .app__content {
90.electron-app-title-bar { z-index: 99999999; } 90.electron-app-title-bar { z-index: 99999999; }
91 91
92.window-draggable { 92.window-draggable {
93 height: 35px; 93 height: 22px;
94 left: 0; 94 left: 0;
95 pointer-events: none; 95 pointer-events: none;
96 position: absolute; 96 position: absolute;
diff --git a/src/styles/main.scss b/src/styles/main.scss
index 1e9ed5714..ceec4a95e 100644
--- a/src/styles/main.scss
+++ b/src/styles/main.scss
@@ -40,3 +40,4 @@ $mdi-font-path: '../node_modules/mdi/fonts';
40@import './searchInput.scss'; 40@import './searchInput.scss';
41@import './select.scss'; 41@import './select.scss';
42@import './image-upload.scss'; 42@import './image-upload.scss';
43@import './slider.scss'; \ No newline at end of file
diff --git a/src/styles/slider.scss b/src/styles/slider.scss
new file mode 100644
index 000000000..36e0638c4
--- /dev/null
+++ b/src/styles/slider.scss
@@ -0,0 +1,54 @@
1@import './config.scss';
2
3.theme__dark .franz-form .franz-form__slider-wrapper .slider {
4 border: 1px solid $dark-theme-gray;
5 background: $dark-theme-gray;
6
7}
8
9
10.franz-form {
11 .franz-form__slider-wrapper {
12 display: flex;
13 flex-direction: row;
14
15 .franz-form__label { margin-left: 20px; }
16
17 .slider-container {
18 width: 100%; /* Width of the outside container */
19 }
20
21 /* The slider itself */
22 .slider {
23 -webkit-appearance: none;
24 width: 100%;
25 height: 14px;
26 border-radius: $theme-border-radius;
27 background: $theme-gray-lighter;
28 outline: none;
29 opacity: 1.0;
30 -webkit-transition: .2s;
31 transition: opacity .2s;
32 }
33
34 .slider::-webkit-slider-thumb {
35 -webkit-appearance: none;
36 appearance: none;
37 width: 14px;
38 height: 14px;
39 border-radius: 50%;
40 background: $theme-brand-primary;
41 box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
42 cursor: pointer;
43 }
44
45 .slider::-moz-range-thumb {
46 width: 14px;
47 height: 14px;
48 border-radius: 50%;
49 background: $theme-brand-primary;
50 box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
51 cursor: pointer;
52 }
53 }
54}
diff --git a/src/webview/lib/RecipeWebview.js b/src/webview/lib/RecipeWebview.js
index 4fac21c55..add5fffa6 100644
--- a/src/webview/lib/RecipeWebview.js
+++ b/src/webview/lib/RecipeWebview.js
@@ -14,6 +14,10 @@ class RecipeWebview {
14 this.loopFunc(); 14 this.loopFunc();
15 15
16 debug('Poll event'); 16 debug('Poll event');
17
18 // This event is for checking if the service recipe is still actively
19 // communicating with the client
20 ipcRenderer.sendToHost('alive');
17 }); 21 });
18 } 22 }
19 23
diff --git a/src/webview/lib/Userscript.js b/src/webview/lib/Userscript.js
new file mode 100644
index 000000000..2043d9fff
--- /dev/null
+++ b/src/webview/lib/Userscript.js
@@ -0,0 +1,132 @@
1import { ipcRenderer } from 'electron';
2
3export default class Userscript {
4 // Current ./lib/RecipeWebview instance
5 recipe = null;
6
7 // Current ./recipe.js instance
8 controller = null;
9
10 // Service configuration
11 config = {};
12
13 // Ferdi and service settings
14 settings = {};
15
16 settingsUpdateHandler = null;
17
18 constructor(recipe, controller, config) {
19 this.recipe = recipe;
20 this.controller = controller;
21 this.internal_setSettings(controller.settings);
22 this.config = config;
23 }
24
25 /**
26 * Set internal copy of Ferdi's settings.
27 * This is only used internally and can not be used to change any settings
28 *
29 * @param {*} settings
30 */
31 // eslint-disable-next-line
32 internal_setSettings(settings) {
33 // This is needed to get a clean JS object from the settings itself to provide better accessibility
34 // Otherwise this will be a mobX instance
35 this.settings = JSON.parse(JSON.stringify(settings));
36
37 if (typeof this.settingsUpdateHandler === 'function') {
38 this.settingsUpdateHandler();
39 }
40 }
41
42 /**
43 * Register a settings handler to be executed when the settings change
44 *
45 * @param {function} handler
46 */
47 onSettingsUpdate(handler) {
48 this.settingsUpdateHandler = handler;
49 }
50
51 /**
52 * Set badge count for the current service
53 * @param {*} direct Direct messages
54 * @param {*} indirect Indirect messages
55 */
56 setBadge(direct = 0, indirect = 0) {
57 if (this.recipe && this.recipe.setBadge) {
58 this.recipe.setBadge(direct, indirect);
59 }
60 }
61
62 /**
63 * Inject CSS files into the current page
64 *
65 * @param {...string} files
66 */
67 injectCSSFiles(...files) {
68 if (this.recipe && this.recipe.injectCSS) {
69 this.recipe.injectCSS(...files);
70 }
71 }
72
73 /**
74 * Inject a CSS string into the page
75 *
76 * @param {string} css
77 */
78 injectCSS(css) {
79 const style = document.createElement('style');
80 style.textContent = css;
81 document.head.append(style);
82 }
83
84 /**
85 * Open "Find in Page" popup
86 */
87 openFindInPage() {
88 this.controller.openFindInPage();
89 }
90
91 /**
92 * Set or update value in storage
93 *
94 * @param {*} key
95 * @param {*} value
96 */
97 set(key, value) {
98 window.localStorage.setItem(
99 `ferdi-user-${key}`, JSON.stringify(value),
100 );
101 }
102
103 /**
104 * Get value from storage
105 *
106 * @param {*} key
107 * @return Value of the key
108 */
109 get(key) {
110 return JSON.parse(window.localStorage.getItem(
111 `ferdi-user-${key}`,
112 ));
113 }
114
115 /**
116 * Open a URL in an external browser
117 *
118 * @param {*} url
119 */
120 externalOpen(url) {
121 ipcRenderer.sendToHost('new-window', url);
122 }
123
124 /**
125 * Open a URL in the current service
126 *
127 * @param {*} url
128 */
129 internalOpen(url) {
130 window.location.href = url;
131 }
132}
diff --git a/src/webview/recipe.js b/src/webview/recipe.js
index bad5a93b2..8125ec064 100644
--- a/src/webview/recipe.js
+++ b/src/webview/recipe.js
@@ -21,6 +21,7 @@ import ignoreList from './darkmode/ignore';
21import customDarkModeCss from './darkmode/custom'; 21import customDarkModeCss from './darkmode/custom';
22 22
23import RecipeWebview from './lib/RecipeWebview'; 23import RecipeWebview from './lib/RecipeWebview';
24import Userscript from './lib/Userscript';
24 25
25import spellchecker, { switchDict, disable as disableSpellchecker, getSpellcheckerLocaleByFuzzyIdentifier } from './spellchecker'; 26import spellchecker, { switchDict, disable as disableSpellchecker, getSpellcheckerLocaleByFuzzyIdentifier } from './spellchecker';
26import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode'; 27import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode';
@@ -55,6 +56,8 @@ class RecipeController {
55 56
56 recipe = null; 57 recipe = null;
57 58
59 userscript = null;
60
58 hasUpdatedBeforeRecipeLoaded = false; 61 hasUpdatedBeforeRecipeLoaded = false;
59 62
60 constructor() { 63 constructor() {
@@ -130,7 +133,8 @@ class RecipeController {
130 const userJsModule = require(userJs); 133 const userJsModule = require(userJs);
131 134
132 if (typeof userJsModule === 'function') { 135 if (typeof userJsModule === 'function') {
133 userJsModule(config); 136 this.userscript = new Userscript(this.recipe, this, config);
137 userJsModule(config, this.userscript);
134 } 138 }
135 }; 139 };
136 140
@@ -153,6 +157,11 @@ class RecipeController {
153 debug('isDarkModeEnabled', this.settings.service.isDarkModeEnabled); 157 debug('isDarkModeEnabled', this.settings.service.isDarkModeEnabled);
154 debug('System spellcheckerLanguage', this.settings.app.spellcheckerLanguage); 158 debug('System spellcheckerLanguage', this.settings.app.spellcheckerLanguage);
155 debug('Service spellcheckerLanguage', this.settings.service.spellcheckerLanguage); 159 debug('Service spellcheckerLanguage', this.settings.service.spellcheckerLanguage);
160 debug('darkReaderSettigs', this.settings.service.darkReaderSettings);
161
162 if (this.userscript && this.userscript.internal_setSettings) {
163 this.userscript.internal_setSettings(this.settings);
164 }
156 165
157 if (this.settings.app.enableSpellchecking) { 166 if (this.settings.app.enableSpellchecking) {
158 debug('Setting spellchecker language to', this.spellcheckerLanguage); 167 debug('Setting spellchecker language to', this.spellcheckerLanguage);
@@ -225,7 +234,8 @@ class RecipeController {
225 console.log('Injecting DarkReader'); 234 console.log('Injecting DarkReader');
226 235
227 // Use darkreader instead 236 // Use darkreader instead
228 enableDarkMode({}, { 237 const { brightness, contrast, sepia } = this.settings.service.darkReaderSettings;
238 enableDarkMode({ brightness, contrast, sepia }, {
229 css: customDarkModeCss[window.location.host] || '', 239 css: customDarkModeCss[window.location.host] || '',
230 }); 240 });
231 this.universalDarkModeInjected = true; 241 this.universalDarkModeInjected = true;
@@ -322,7 +332,6 @@ new RecipeController();
322// Patching window.open 332// Patching window.open
323const originalWindowOpen = window.open; 333const originalWindowOpen = window.open;
324 334
325
326window.open = (url, frameName, features) => { 335window.open = (url, frameName, features) => {
327 if (!url && !frameName && !features) { 336 if (!url && !frameName && !features) {
328 // The service hasn't yet supplied a URL (as used in Skype). 337 // The service hasn't yet supplied a URL (as used in Skype).