aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Bennett <hello@vantezzen.io>2020-09-17 10:06:44 +0200
committerLibravatar Bennett <hello@vantezzen.io>2020-09-17 10:06:44 +0200
commit5a3037063aaaae419003598ca4db7598c8e9df4e (patch)
treefe2a15754b3b7eb9b2ca6a107eed3189f93fb0c4
parentUpdate submodules (diff)
parentAdd Norwegian (diff)
downloadferdium-app-5.6.0-beta.3.tar.gz
ferdium-app-5.6.0-beta.3.tar.zst
ferdium-app-5.6.0-beta.3.zip
Merge branch 'develop' into release5.6.0-beta.3
-rw-r--r--.all-contributorsrc9
-rw-r--r--README.md19
-rw-r--r--package-lock.json779
-rw-r--r--package.json11
-rw-r--r--src/components/settings/services/EditServiceForm.js20
-rw-r--r--src/components/settings/services/ServicesDashboard.js7
-rw-r--r--src/components/settings/settings/EditSettingsForm.js11
-rw-r--r--src/components/ui/FAB.js72
-rw-r--r--src/components/ui/Select.js44
-rw-r--r--src/config.js2
-rw-r--r--src/containers/settings/EditSettingsScreen.js2
-rw-r--r--src/electron/ipc-api/settings.js4
-rw-r--r--src/electron/webview-ime-focus.js3
-rw-r--r--src/i18n/languages.js1
-rw-r--r--src/i18n/locales/af.json1
-rw-r--r--src/i18n/locales/ar.json1
-rw-r--r--src/i18n/locales/bs.json1
-rw-r--r--src/i18n/locales/ca.json1
-rw-r--r--src/i18n/locales/cs.json1
-rw-r--r--src/i18n/locales/da.json89
-rw-r--r--src/i18n/locales/de.json51
-rw-r--r--src/i18n/locales/defaultMessages.json205
-rw-r--r--src/i18n/locales/el.json1
-rw-r--r--src/i18n/locales/en-US.json1
-rw-r--r--src/i18n/locales/es.json31
-rw-r--r--src/i18n/locales/fi.json1
-rw-r--r--src/i18n/locales/fr.json1
-rw-r--r--src/i18n/locales/ga.json1
-rw-r--r--src/i18n/locales/he.json1
-rw-r--r--src/i18n/locales/hr.json1
-rw-r--r--src/i18n/locales/hu.json5
-rw-r--r--src/i18n/locales/id.json1
-rw-r--r--src/i18n/locales/it.json143
-rw-r--r--src/i18n/locales/ja.json1
-rw-r--r--src/i18n/locales/ka.json1
-rw-r--r--src/i18n/locales/ko.json253
-rw-r--r--src/i18n/locales/nl-BE.json1
-rw-r--r--src/i18n/locales/nl.json1
-rw-r--r--src/i18n/locales/no.json947
-rw-r--r--src/i18n/locales/pl.json1
-rw-r--r--src/i18n/locales/pt-BR.json29
-rw-r--r--src/i18n/locales/pt.json39
-rw-r--r--src/i18n/locales/ro.json21
-rw-r--r--src/i18n/locales/ru.json1
-rw-r--r--src/i18n/locales/sk.json1
-rw-r--r--src/i18n/locales/sl.json1
-rw-r--r--src/i18n/locales/sr.json1
-rw-r--r--src/i18n/locales/sv.json5
-rw-r--r--src/i18n/locales/tr.json1
-rw-r--r--src/i18n/locales/uk.json1
-rw-r--r--src/i18n/locales/vi.json11
-rw-r--r--src/i18n/locales/zh-HANT.json1
-rw-r--r--src/i18n/locales/zh.json1
-rw-r--r--src/i18n/messages/src/components/auth/Locked.json32
-rw-r--r--src/i18n/messages/src/components/settings/services/EditServiceForm.json112
-rw-r--r--src/i18n/messages/src/components/settings/services/ServicesDashboard.json36
-rw-r--r--src/i18n/messages/src/components/settings/settings/EditSettingsForm.json61
-rw-r--r--src/i18n/messages/src/features/todos/components/TodosWebview.json12
-rw-r--r--src/models/Service.js4
-rw-r--r--src/stores/ServicesStore.js13
-rw-r--r--src/stores/UserStore.js4
-rw-r--r--src/styles/button.scss29
-rw-r--r--src/webview/contextMenu.js48
-rw-r--r--src/webview/contextMenuBuilder.js446
-rw-r--r--src/webview/recipe.js24
-rw-r--r--src/webview/spellchecker.js50
66 files changed, 2206 insertions, 1504 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 0c891c555..34b808b06 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -749,6 +749,15 @@
749 "contributions": [ 749 "contributions": [
750 "code" 750 "code"
751 ] 751 ]
752 },
753 {
754 "login": "raicerk",
755 "name": "Juan Mora",
756 "avatar_url": "https://avatars0.githubusercontent.com/u/4575267?v=4",
757 "profile": "https://cl.linkedin.com/in/juanvalentinmoraruiz",
758 "contributions": [
759 "code"
760 ]
752 } 761 }
753 ], 762 ],
754 "contributorsPerLine": 6, 763 "contributorsPerLine": 6,
diff --git a/README.md b/README.md
index dd9fc3d72..a1be1b812 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-75-default.svg?logo=github' alt='Contributors'/></a> 17<a href='#contributors-'><img src='https://img.shields.io/badge/contributors-76-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>
@@ -49,6 +49,7 @@
49 - [Contributors ✨](#contributors-) 49 - [Contributors ✨](#contributors-)
50 - [Backers via OpenCollective](#backers-via-opencollective) 50 - [Backers via OpenCollective](#backers-via-opencollective)
51 - [Sponsors via OpenCollective](#sponsors-via-opencollective) 51 - [Sponsors via OpenCollective](#sponsors-via-opencollective)
52 - [Other Sponsors](#other-sponsors)
52</details> 53</details>
53 54
54### What is Ferdi? 55### What is Ferdi?
@@ -418,6 +419,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
418 <td align="center"><a href="https://github.com/dandelionadia"><img src="https://avatars0.githubusercontent.com/u/33199975?v=4" width="40px;" alt=""/><br /><sub><b>Nadiia Ridko</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=dandelionadia" title="Code">💻</a></td> 419 <td align="center"><a href="https://github.com/dandelionadia"><img src="https://avatars0.githubusercontent.com/u/33199975?v=4" width="40px;" alt=""/><br /><sub><b>Nadiia Ridko</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=dandelionadia" title="Code">💻</a></td>
419 <td align="center"><a href="https://hohner.dev"><img src="https://avatars0.githubusercontent.com/u/649895?v=4" width="40px;" alt=""/><br /><sub><b>Jan Hohner</b></sub></a><br /><a href="#userTesting-janhohner" title="User Testing">📓</a></td> 420 <td align="center"><a href="https://hohner.dev"><img src="https://avatars0.githubusercontent.com/u/649895?v=4" width="40px;" alt=""/><br /><sub><b>Jan Hohner</b></sub></a><br /><a href="#userTesting-janhohner" title="User Testing">📓</a></td>
420 <td align="center"><a href="https://marussy.com"><img src="https://avatars1.githubusercontent.com/u/38888?v=4" width="40px;" alt=""/><br /><sub><b>Kristóf Marussy</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=kris7t" title="Code">💻</a></td> 421 <td align="center"><a href="https://marussy.com"><img src="https://avatars1.githubusercontent.com/u/38888?v=4" width="40px;" alt=""/><br /><sub><b>Kristóf Marussy</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=kris7t" title="Code">💻</a></td>
422 <td align="center"><a href="https://cl.linkedin.com/in/juanvalentinmoraruiz"><img src="https://avatars0.githubusercontent.com/u/4575267?v=4" width="40px;" alt=""/><br /><sub><b>Juan Mora</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=raicerk" title="Code">💻</a></td>
421 </tr> 423 </tr>
422</table> 424</table>
423 425
@@ -431,6 +433,21 @@ This project follows the [all-contributors](https://github.com/all-contributors/
431 433
432<a href="https://opencollective.com/getferdi#section-contribute" target="_blank"><img src="https://opencollective.com/getferdi/backers.svg?width=890"></a> 434<a href="https://opencollective.com/getferdi#section-contribute" target="_blank"><img src="https://opencollective.com/getferdi/backers.svg?width=890"></a>
433 435
436Mention to the individuals backing us via [GitHub Sponsors](https://github.com/sponsors/getferdi) as well.
437
434## Sponsors via OpenCollective 438## Sponsors via OpenCollective
435 439
436<a href="https://opencollective.com/getferdi#section-contribute" target="_blank"><img src="https://opencollective.com/getferdi/sponsors.svg?width=890"></a> 440<a href="https://opencollective.com/getferdi#section-contribute" target="_blank"><img src="https://opencollective.com/getferdi/sponsors.svg?width=890"></a>
441
442## Other Sponsors
443
444<p>
445 <a href="https://www.digitalocean.com/">
446 <img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px">
447 </a>
448</p>
449<p>
450 <a href="https://www.parallels.com/">
451 <img src="https://user-images.githubusercontent.com/412895/87706297-3025e380-c797-11ea-94c4-bf8414b0b5ab.png" height="32px">
452 </a>
453</p> \ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index c3d3e2474..d5d198e5b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
1{ 1{
2 "name": "ferdi", 2 "name": "ferdi",
3 "version": "5.5.1-nightly.13", 3 "version": "5.6.0-beta.1",
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
@@ -10,52 +10,6 @@
10 "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", 10 "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==",
11 "dev": true 11 "dev": true
12 }, 12 },
13 "@aabuhijleh/electron-remote": {
14 "version": "1.4.0",
15 "resolved": "https://registry.npmjs.org/@aabuhijleh/electron-remote/-/electron-remote-1.4.0.tgz",
16 "integrity": "sha512-EG4ZXxqbFY4lpX55vctwz14mFrEOcOHFCMLH5z5lOl6fiviTqscy86tSlKwEE3/o3ExtdPr2tECgCogYYL7d+g==",
17 "requires": {
18 "debug": "^2.5.1",
19 "hashids": "^1.1.1",
20 "lodash.get": "^4.4.2",
21 "pify": "^2.3.0",
22 "rxjs": "^5.0.0-beta.12",
23 "xmlhttprequest": "^1.8.0"
24 },
25 "dependencies": {
26 "debug": {
27 "version": "2.6.9",
28 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
29 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
30 "requires": {
31 "ms": "2.0.0"
32 }
33 },
34 "ms": {
35 "version": "2.0.0",
36 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
37 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
38 },
39 "pify": {
40 "version": "2.3.0",
41 "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
42 "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
43 },
44 "rxjs": {
45 "version": "5.5.12",
46 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
47 "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
48 "requires": {
49 "symbol-observable": "1.0.1"
50 }
51 },
52 "symbol-observable": {
53 "version": "1.0.1",
54 "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
55 "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
56 }
57 }
58 },
59 "@adlk/misty": { 13 "@adlk/misty": {
60 "version": "0.2.0", 14 "version": "0.2.0",
61 "resolved": "https://registry.npmjs.org/@adlk/misty/-/misty-0.2.0.tgz", 15 "resolved": "https://registry.npmjs.org/@adlk/misty/-/misty-0.2.0.tgz",
@@ -2592,9 +2546,9 @@
2592 } 2546 }
2593 }, 2547 },
2594 "@electron/get": { 2548 "@electron/get": {
2595 "version": "1.10.0", 2549 "version": "1.12.2",
2596 "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.10.0.tgz", 2550 "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz",
2597 "integrity": "sha512-hlueNXU51c3CwQjBw/i5fwt+VfQgSQVUTdicpCHkhEjNZaa4CXJ5W1GaxSwtLE2dvRmAHjpIjUMHTqJ53uojfg==", 2551 "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==",
2598 "dev": true, 2552 "dev": true,
2599 "requires": { 2553 "requires": {
2600 "debug": "^4.1.1", 2554 "debug": "^4.1.1",
@@ -2747,14 +2701,6 @@
2747 } 2701 }
2748 } 2702 }
2749 }, 2703 },
2750 "@felixrieseberg/spellchecker": {
2751 "version": "4.0.12",
2752 "resolved": "https://registry.npmjs.org/@felixrieseberg/spellchecker/-/spellchecker-4.0.12.tgz",
2753 "integrity": "sha512-jLAPnRALB1I6Un8ldHVJfJid7m2R1qXoafFF/95sdm7R5VPOsZ3xTreZ/wLKO5x9AdsD2t9zpOcjDFTsCf3VzQ==",
2754 "requires": {
2755 "nan": "^2.14.0"
2756 }
2757 },
2758 "@fimbul/bifrost": { 2704 "@fimbul/bifrost": {
2759 "version": "0.21.0", 2705 "version": "0.21.0",
2760 "resolved": "https://registry.npmjs.org/@fimbul/bifrost/-/bifrost-0.21.0.tgz", 2706 "resolved": "https://registry.npmjs.org/@fimbul/bifrost/-/bifrost-0.21.0.tgz",
@@ -4353,7 +4299,6 @@
4353 "requires": { 4299 "requires": {
4354 "@mdi/js": "^3.3.92", 4300 "@mdi/js": "^3.3.92",
4355 "@mdi/react": "^1.1.0", 4301 "@mdi/react": "^1.1.0",
4356 "@meetfranz/theme": "^1.0.14",
4357 "react-html-attributes": "^1.4.3", 4302 "react-html-attributes": "^1.4.3",
4358 "react-loader": "^2.4.5" 4303 "react-loader": "^2.4.5"
4359 }, 4304 },
@@ -4376,7 +4321,6 @@
4376 "requires": { 4321 "requires": {
4377 "@mdi/js": "^3.3.92", 4322 "@mdi/js": "^3.3.92",
4378 "@mdi/react": "^1.1.0", 4323 "@mdi/react": "^1.1.0",
4379 "@meetfranz/theme": "^1.0.14",
4380 "react-loader": "^2.4.5" 4324 "react-loader": "^2.4.5"
4381 }, 4325 },
4382 "dependencies": { 4326 "dependencies": {
@@ -4516,57 +4460,85 @@
4516 } 4460 }
4517 }, 4461 },
4518 "@sentry/apm": { 4462 "@sentry/apm": {
4519 "version": "5.10.2", 4463 "version": "5.13.2",
4520 "resolved": "https://registry.npmjs.org/@sentry/apm/-/apm-5.10.2.tgz", 4464 "resolved": "https://registry.npmjs.org/@sentry/apm/-/apm-5.13.2.tgz",
4521 "integrity": "sha512-rPeAFsD/6ontvs7bsuHh+XAg1ohWo04ms08SNWqEvLRQJx7WfiWnjziyC0S3dXIYZDGdhruSsqQJPJN8r6Aj5g==", 4465 "integrity": "sha512-Pv6PRVkcmmYYIT422gXm968F8YQyf5uN1RSHOFBjWsxI3Ke/uRgeEdIVKPDo78GklBfETyRN6GyLEZ555jRe6g==",
4522 "requires": { 4466 "requires": {
4523 "@sentry/hub": "5.10.2", 4467 "@sentry/browser": "5.13.2",
4524 "@sentry/minimal": "5.10.2", 4468 "@sentry/hub": "5.13.2",
4525 "@sentry/types": "5.10.0", 4469 "@sentry/minimal": "5.13.2",
4526 "@sentry/utils": "5.10.2", 4470 "@sentry/types": "5.13.2",
4471 "@sentry/utils": "5.13.2",
4527 "tslib": "^1.9.3" 4472 "tslib": "^1.9.3"
4528 } 4473 }
4529 }, 4474 },
4530 "@sentry/browser": { 4475 "@sentry/browser": {
4531 "version": "5.10.2", 4476 "version": "5.13.2",
4532 "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.10.2.tgz", 4477 "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.13.2.tgz",
4533 "integrity": "sha512-r3eyBu2ln7odvWtXARCZPzpuGrKsD6U9F3gKTu4xdFkA0swSLUvS7AC2FUksj/1BE23y+eB/zzPT+RYJ58tidA==", 4478 "integrity": "sha512-4MeauHs8Rf1c2FF6n84wrvA4LexEL1K/Tg3r+1vigItiqyyyYBx1sPjHGZeKeilgBi+6IEV5O8sy30QIrA/NsQ==",
4534 "requires": { 4479 "requires": {
4535 "@sentry/core": "5.10.2", 4480 "@sentry/core": "5.13.2",
4536 "@sentry/types": "5.10.0", 4481 "@sentry/types": "5.13.2",
4537 "@sentry/utils": "5.10.2", 4482 "@sentry/utils": "5.13.2",
4538 "tslib": "^1.9.3" 4483 "tslib": "^1.9.3"
4539 } 4484 }
4540 }, 4485 },
4541 "@sentry/core": { 4486 "@sentry/core": {
4542 "version": "5.10.2", 4487 "version": "5.13.2",
4543 "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.10.2.tgz", 4488 "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.13.2.tgz",
4544 "integrity": "sha512-sKVeFH3v8K8xw2vM5MKMnnyAAwih+JSE3pbNL0CcCCA+/SwX+3jeAo2BhgXev2SAR/TjWW+wmeC9TdIW7KyYbg==", 4489 "integrity": "sha512-iB7CQSt9e0EJhSmcNOCjzJ/u7E7qYJ3mI3h44GO83n7VOmxBXKSvtUl9FpKFypbWrsdrDz8HihLgAZZoMLWpPA==",
4545 "requires": { 4490 "requires": {
4546 "@sentry/hub": "5.10.2", 4491 "@sentry/hub": "5.13.2",
4547 "@sentry/minimal": "5.10.2", 4492 "@sentry/minimal": "5.13.2",
4548 "@sentry/types": "5.10.0", 4493 "@sentry/types": "5.13.2",
4549 "@sentry/utils": "5.10.2", 4494 "@sentry/utils": "5.13.2",
4550 "tslib": "^1.9.3" 4495 "tslib": "^1.9.3"
4551 } 4496 }
4552 }, 4497 },
4553 "@sentry/electron": { 4498 "@sentry/electron": {
4554 "version": "1.1.0", 4499 "version": "1.3.0",
4555 "resolved": "https://registry.npmjs.org/@sentry/electron/-/electron-1.1.0.tgz", 4500 "resolved": "https://registry.npmjs.org/@sentry/electron/-/electron-1.3.0.tgz",
4556 "integrity": "sha512-ot6nYOhZOjylSlK2LEaBuqzPEEcmRn76SDf+VZpujOxig5Jv/LIbgwha/xou/mggOD2y3a5cM2o8ubbs5U5Bfg==", 4501 "integrity": "sha512-9oNJg371A/Djk03KVBHj9BgqYCscKxzScYKlM4AYR+BxYQ3LLsZLLeD9Mkdc0hGnOszCRmO5jXRjBVYz1JkJcA==",
4557 "requires": { 4502 "requires": {
4558 "@sentry/browser": "~5.10.0", 4503 "@sentry/browser": "~5.13.2",
4559 "@sentry/core": "~5.10.0", 4504 "@sentry/core": "~5.13.2",
4560 "@sentry/minimal": "~5.10.0", 4505 "@sentry/minimal": "~5.13.2",
4561 "@sentry/node": "~5.10.0", 4506 "@sentry/node": "~5.13.2",
4562 "@sentry/types": "~5.10.0", 4507 "@sentry/types": "~5.13.2",
4563 "@sentry/utils": "~5.10.0", 4508 "@sentry/utils": "~5.13.2",
4509 "electron-fetch": "^1.4.0",
4564 "form-data": "2.5.1", 4510 "form-data": "2.5.1",
4565 "node-fetch": "^2.6.0", 4511 "util.promisify": "1.0.1"
4566 "util.promisify": "1.0.0",
4567 "win-ca": "^3.1.1"
4568 }, 4512 },
4569 "dependencies": { 4513 "dependencies": {
4514 "es-abstract": {
4515 "version": "1.17.5",
4516 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
4517 "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
4518 "requires": {
4519 "es-to-primitive": "^1.2.1",
4520 "function-bind": "^1.1.1",
4521 "has": "^1.0.3",
4522 "has-symbols": "^1.0.1",
4523 "is-callable": "^1.1.5",
4524 "is-regex": "^1.0.5",
4525 "object-inspect": "^1.7.0",
4526 "object-keys": "^1.1.1",
4527 "object.assign": "^4.1.0",
4528 "string.prototype.trimleft": "^2.1.1",
4529 "string.prototype.trimright": "^2.1.1"
4530 }
4531 },
4532 "es-to-primitive": {
4533 "version": "1.2.1",
4534 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
4535 "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
4536 "requires": {
4537 "is-callable": "^1.1.4",
4538 "is-date-object": "^1.0.1",
4539 "is-symbol": "^1.0.2"
4540 }
4541 },
4570 "form-data": { 4542 "form-data": {
4571 "version": "2.5.1", 4543 "version": "2.5.1",
4572 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", 4544 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
@@ -4576,75 +4548,135 @@
4576 "combined-stream": "^1.0.6", 4548 "combined-stream": "^1.0.6",
4577 "mime-types": "^2.1.12" 4549 "mime-types": "^2.1.12"
4578 } 4550 }
4551 },
4552 "has-symbols": {
4553 "version": "1.0.1",
4554 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
4555 "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
4556 },
4557 "is-callable": {
4558 "version": "1.2.0",
4559 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
4560 "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw=="
4561 },
4562 "is-regex": {
4563 "version": "1.1.0",
4564 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
4565 "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
4566 "requires": {
4567 "has-symbols": "^1.0.1"
4568 }
4569 },
4570 "object-inspect": {
4571 "version": "1.7.0",
4572 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
4573 "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
4574 },
4575 "object.getownpropertydescriptors": {
4576 "version": "2.1.0",
4577 "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
4578 "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
4579 "requires": {
4580 "define-properties": "^1.1.3",
4581 "es-abstract": "^1.17.0-next.1"
4582 }
4583 },
4584 "string.prototype.trimleft": {
4585 "version": "2.1.2",
4586 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
4587 "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
4588 "requires": {
4589 "define-properties": "^1.1.3",
4590 "es-abstract": "^1.17.5",
4591 "string.prototype.trimstart": "^1.0.0"
4592 }
4593 },
4594 "string.prototype.trimright": {
4595 "version": "2.1.2",
4596 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
4597 "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
4598 "requires": {
4599 "define-properties": "^1.1.3",
4600 "es-abstract": "^1.17.5",
4601 "string.prototype.trimend": "^1.0.0"
4602 }
4603 },
4604 "util.promisify": {
4605 "version": "1.0.1",
4606 "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
4607 "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
4608 "requires": {
4609 "define-properties": "^1.1.3",
4610 "es-abstract": "^1.17.2",
4611 "has-symbols": "^1.0.1",
4612 "object.getownpropertydescriptors": "^2.1.0"
4613 }
4579 } 4614 }
4580 } 4615 }
4581 }, 4616 },
4582 "@sentry/hub": { 4617 "@sentry/hub": {
4583 "version": "5.10.2", 4618 "version": "5.13.2",
4584 "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.10.2.tgz", 4619 "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.13.2.tgz",
4585 "integrity": "sha512-hSlZIiu3hcR/I5yEhlpN9C0nip+U7hiRzRzUQaBiHO4YG4TC58NqnOPR89D/ekiuHIXzFpjW9OQmqtAMRoSUYA==", 4620 "integrity": "sha512-/U7yq3DTuRz8SRpZVKAaenW9sD2F5wbj12kDVPxPnGspyqhy0wBWKs9j0YJfBiDXMKOwp3HX964O3ygtwjnfAw==",
4586 "requires": { 4621 "requires": {
4587 "@sentry/types": "5.10.0", 4622 "@sentry/types": "5.13.2",
4588 "@sentry/utils": "5.10.2", 4623 "@sentry/utils": "5.13.2",
4589 "tslib": "^1.9.3" 4624 "tslib": "^1.9.3"
4590 } 4625 }
4591 }, 4626 },
4592 "@sentry/minimal": { 4627 "@sentry/minimal": {
4593 "version": "5.10.2", 4628 "version": "5.13.2",
4594 "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.10.2.tgz", 4629 "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.13.2.tgz",
4595 "integrity": "sha512-GalixiM9sckYfompH5HHTp9XT2BcjawBkcl1DMEKUBEi37+kUq0bivOBmnN1G/I4/wWOUdnAI/kagDWaWpbZPg==", 4630 "integrity": "sha512-VV0eA3HgrnN3mac1XVPpSCLukYsU+QxegbmpnZ8UL8eIQSZ/ZikYxagDNlZbdnmXHUpOEUeag2gxVntSCo5UcA==",
4596 "requires": { 4631 "requires": {
4597 "@sentry/hub": "5.10.2", 4632 "@sentry/hub": "5.13.2",
4598 "@sentry/types": "5.10.0", 4633 "@sentry/types": "5.13.2",
4599 "tslib": "^1.9.3" 4634 "tslib": "^1.9.3"
4600 } 4635 }
4601 }, 4636 },
4602 "@sentry/node": { 4637 "@sentry/node": {
4603 "version": "5.10.2", 4638 "version": "5.13.2",
4604 "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.10.2.tgz", 4639 "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.13.2.tgz",
4605 "integrity": "sha512-1ib1hAhVtmfXOThpcCfR4S6wFopd6lHqgOMrAUPo9saHy8zseZPRC7iTWGoSPy2RMwjrURAk54VvFnLe7G+PdQ==", 4640 "integrity": "sha512-LwNOUvc0+28jYfI0o4HmkDTEYdY3dWvSCnL5zggO12buon7Wc+jirXZbEQAx84HlXu7sGSjtKCTzUQOphv7sPw==",
4606 "requires": { 4641 "requires": {
4607 "@sentry/apm": "5.10.2", 4642 "@sentry/apm": "5.13.2",
4608 "@sentry/core": "5.10.2", 4643 "@sentry/core": "5.13.2",
4609 "@sentry/hub": "5.10.2", 4644 "@sentry/hub": "5.13.2",
4610 "@sentry/types": "5.10.0", 4645 "@sentry/types": "5.13.2",
4611 "@sentry/utils": "5.10.2", 4646 "@sentry/utils": "5.13.2",
4612 "cookie": "^0.3.1", 4647 "cookie": "^0.3.1",
4613 "https-proxy-agent": "^3.0.0", 4648 "https-proxy-agent": "^4.0.0",
4614 "lru_map": "^0.3.3", 4649 "lru_map": "^0.3.3",
4615 "tslib": "^1.9.3" 4650 "tslib": "^1.9.3"
4616 }, 4651 },
4617 "dependencies": { 4652 "dependencies": {
4618 "debug": { 4653 "agent-base": {
4619 "version": "3.2.6", 4654 "version": "5.1.1",
4620 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 4655 "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
4621 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 4656 "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g=="
4622 "requires": {
4623 "ms": "^2.1.1"
4624 }
4625 }, 4657 },
4626 "https-proxy-agent": { 4658 "https-proxy-agent": {
4627 "version": "3.0.1", 4659 "version": "4.0.0",
4628 "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", 4660 "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
4629 "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", 4661 "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
4630 "requires": { 4662 "requires": {
4631 "agent-base": "^4.3.0", 4663 "agent-base": "5",
4632 "debug": "^3.1.0" 4664 "debug": "4"
4633 } 4665 }
4634 } 4666 }
4635 } 4667 }
4636 }, 4668 },
4637 "@sentry/types": { 4669 "@sentry/types": {
4638 "version": "5.10.0", 4670 "version": "5.13.2",
4639 "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.10.0.tgz", 4671 "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.13.2.tgz",
4640 "integrity": "sha512-TW20GzkCWsP6uAxR2JIpIkiitCKyIOfkyDsKBeLqYj4SaZjfvBPnzgNCcYR0L0UsP1/Es6oHooZfIGSkp6GGxQ==" 4672 "integrity": "sha512-mgAEQyc77PYBnAjnslSXUz6aKgDlunlg2c2qSK/ivKlEkTgTWWW/dE76++qVdrqM8SupnqQoiXyPDL0wUNdB3g=="
4641 }, 4673 },
4642 "@sentry/utils": { 4674 "@sentry/utils": {
4643 "version": "5.10.2", 4675 "version": "5.13.2",
4644 "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.10.2.tgz", 4676 "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.13.2.tgz",
4645 "integrity": "sha512-UcbbaFpYrGSV448lQ16Cr+W/MPuKUflQQUdrMCt5vgaf5+M7kpozlcji4GGGZUCXIA7oRP93ABoXj55s1OM9zw==", 4677 "integrity": "sha512-LwPQl6WRMKEnd16kg35HS3yE+VhBc8vN4+BBIlrgs7X0aoT+AbEd/sQLMisDgxNboCF44Ho3RCKtztiPb9blqg==",
4646 "requires": { 4678 "requires": {
4647 "@sentry/types": "5.10.0", 4679 "@sentry/types": "5.13.2",
4648 "tslib": "^1.9.3" 4680 "tslib": "^1.9.3"
4649 } 4681 }
4650 }, 4682 },
@@ -5247,6 +5279,7 @@
5247 "version": "4.3.0", 5279 "version": "4.3.0",
5248 "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", 5280 "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
5249 "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", 5281 "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
5282 "dev": true,
5250 "requires": { 5283 "requires": {
5251 "es6-promisify": "^5.0.0" 5284 "es6-promisify": "^5.0.0"
5252 } 5285 }
@@ -6556,11 +6589,6 @@
6556 "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I=", 6589 "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I=",
6557 "dev": true 6590 "dev": true
6558 }, 6591 },
6559 "bcp47": {
6560 "version": "1.1.2",
6561 "resolved": "https://registry.npmjs.org/bcp47/-/bcp47-1.1.2.tgz",
6562 "integrity": "sha1-NUvjMH/9CEM6ePXh4glYRfifx/4="
6563 },
6564 "bcrypt-pbkdf": { 6592 "bcrypt-pbkdf": {
6565 "version": "1.0.2", 6593 "version": "1.0.2",
6566 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 6594 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
@@ -7635,31 +7663,6 @@
7635 "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", 7663 "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
7636 "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" 7664 "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
7637 }, 7665 },
7638 "cld": {
7639 "version": "2.5.1",
7640 "resolved": "https://registry.npmjs.org/cld/-/cld-2.5.1.tgz",
7641 "integrity": "sha512-DwdvvcFVizwDdPCocoPPReFk3BwLEaTZ3RzFgJ4jLzsBzJKUC3cTna0ZmAZG4tFtMmQdl0ciso3+ijkH3OPZPA==",
7642 "requires": {
7643 "glob": "^5.0.10",
7644 "nan": "^2.9.2",
7645 "rimraf": "^2.4.0",
7646 "underscore": "^1.6.0"
7647 },
7648 "dependencies": {
7649 "glob": {
7650 "version": "5.0.15",
7651 "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
7652 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
7653 "requires": {
7654 "inflight": "^1.0.4",
7655 "inherits": "2",
7656 "minimatch": "2 || 3",
7657 "once": "^1.3.0",
7658 "path-is-absolute": "^1.0.0"
7659 }
7660 }
7661 }
7662 },
7663 "cld3-asm": { 7666 "cld3-asm": {
7664 "version": "1.0.1", 7667 "version": "1.0.1",
7665 "resolved": "https://registry.npmjs.org/cld3-asm/-/cld3-asm-1.0.1.tgz", 7668 "resolved": "https://registry.npmjs.org/cld3-asm/-/cld3-asm-1.0.1.tgz",
@@ -7694,9 +7697,9 @@
7694 } 7697 }
7695 }, 7698 },
7696 "cli-spinners": { 7699 "cli-spinners": {
7697 "version": "2.2.0", 7700 "version": "2.3.0",
7698 "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", 7701 "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz",
7699 "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", 7702 "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==",
7700 "dev": true 7703 "dev": true
7701 }, 7704 },
7702 "cli-table": { 7705 "cli-table": {
@@ -9692,8 +9695,7 @@
9692 "duplexer": { 9695 "duplexer": {
9693 "version": "0.1.1", 9696 "version": "0.1.1",
9694 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", 9697 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
9695 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", 9698 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E="
9696 "dev": true
9697 }, 9699 },
9698 "duplexer2": { 9700 "duplexer2": {
9699 "version": "0.0.2", 9701 "version": "0.0.2",
@@ -9851,9 +9853,9 @@
9851 "dev": true 9853 "dev": true
9852 }, 9854 },
9853 "electron": { 9855 "electron": {
9854 "version": "8.2.3", 9856 "version": "9.0.3",
9855 "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.3.tgz", 9857 "resolved": "https://registry.npmjs.org/electron/-/electron-9.0.3.tgz",
9856 "integrity": "sha512-FJUp103c8yJBoAaj/QM/OBde57iJh95u1yGJBytMUXmLFSsx78LmNE03QN4XCODyzi76IEcasvUcK6scogRLbQ==", 9858 "integrity": "sha512-rY59wy50z0oWp/q69zq0UIzvtcM5j2BJbLAwEoLfVNS3DLt9wDZqRqSIBvLEBl+xWbafCnRA9haEqi7ssM94GA==",
9857 "dev": true, 9859 "dev": true,
9858 "requires": { 9860 "requires": {
9859 "@electron/get": "^1.0.1", 9861 "@electron/get": "^1.0.1",
@@ -10268,9 +10270,9 @@
10268 } 10270 }
10269 }, 10271 },
10270 "electron-rebuild": { 10272 "electron-rebuild": {
10271 "version": "1.10.0", 10273 "version": "1.11.0",
10272 "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.10.0.tgz", 10274 "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.11.0.tgz",
10273 "integrity": "sha512-n10i30GJg7JH8yZL3ZY3x80YtKmSYuuN8cl+3Feljm+sQDU4rUW1jbnYGu0eUHlK3kPOiNWPtW7srGcwZ9p1zQ==", 10275 "integrity": "sha512-cn6AqZBQBVtaEyj5jZW1/LOezZZ22PA1HvhEP7asvYPJ8PDF4i4UFt9be4i9T7xJKiSiomXvY5Fd+dSq3FXZxA==",
10274 "dev": true, 10276 "dev": true,
10275 "requires": { 10277 "requires": {
10276 "colors": "^1.3.3", 10278 "colors": "^1.3.3",
@@ -10354,9 +10356,9 @@
10354 } 10356 }
10355 }, 10357 },
10356 "nopt": { 10358 "nopt": {
10357 "version": "4.0.1", 10359 "version": "4.0.3",
10358 "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", 10360 "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
10359 "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", 10361 "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
10360 "dev": true, 10362 "dev": true,
10361 "requires": { 10363 "requires": {
10362 "abbrev": "1", 10364 "abbrev": "1",
@@ -10416,9 +10418,9 @@
10416 } 10418 }
10417 }, 10419 },
10418 "yargs": { 10420 "yargs": {
10419 "version": "14.2.2", 10421 "version": "14.2.3",
10420 "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", 10422 "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
10421 "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==", 10423 "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
10422 "dev": true, 10424 "dev": true,
10423 "requires": { 10425 "requires": {
10424 "cliui": "^5.0.0", 10426 "cliui": "^5.0.0",
@@ -10431,13 +10433,13 @@
10431 "string-width": "^3.0.0", 10433 "string-width": "^3.0.0",
10432 "which-module": "^2.0.0", 10434 "which-module": "^2.0.0",
10433 "y18n": "^4.0.0", 10435 "y18n": "^4.0.0",
10434 "yargs-parser": "^15.0.0" 10436 "yargs-parser": "^15.0.1"
10435 } 10437 }
10436 }, 10438 },
10437 "yargs-parser": { 10439 "yargs-parser": {
10438 "version": "15.0.0", 10440 "version": "15.0.1",
10439 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", 10441 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
10440 "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", 10442 "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
10441 "dev": true, 10443 "dev": true,
10442 "requires": { 10444 "requires": {
10443 "camelcase": "^5.0.0", 10445 "camelcase": "^5.0.0",
@@ -10446,78 +10448,6 @@
10446 } 10448 }
10447 } 10449 }
10448 }, 10450 },
10449 "electron-spellchecker": {
10450 "version": "2.2.1",
10451 "resolved": "https://registry.npmjs.org/electron-spellchecker/-/electron-spellchecker-2.2.1.tgz",
10452 "integrity": "sha512-IqxJmYq/5qyTNo9ONxHr9D/9UxiXVvDbl01s2f71S3aAHtDIc7I7qqEycvNUlFGR1WVBgFc/VzV4+deQwxgikA==",
10453 "requires": {
10454 "@aabuhijleh/electron-remote": "^1.4.0",
10455 "@felixrieseberg/spellchecker": "^4.0.12",
10456 "bcp47": "^1.1.2",
10457 "cld": "^2.5.1",
10458 "debug": "^4.1.1",
10459 "keyboard-layout": "^2.0.16",
10460 "lru-cache": "^5.1.1",
10461 "mkdirp": "^0.5.1",
10462 "pify": "^4.0.1",
10463 "rxjs": "^5.0.1",
10464 "rxjs-serial-subscription": "^0.1.1",
10465 "spawn-rx": "^2.0.7"
10466 },
10467 "dependencies": {
10468 "lru-cache": {
10469 "version": "5.1.1",
10470 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
10471 "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
10472 "requires": {
10473 "yallist": "^3.0.2"
10474 }
10475 },
10476 "ms": {
10477 "version": "2.0.0",
10478 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
10479 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
10480 },
10481 "pify": {
10482 "version": "4.0.1",
10483 "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
10484 "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
10485 },
10486 "rxjs": {
10487 "version": "5.5.12",
10488 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
10489 "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
10490 "requires": {
10491 "symbol-observable": "1.0.1"
10492 }
10493 },
10494 "spawn-rx": {
10495 "version": "2.0.12",
10496 "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-2.0.12.tgz",
10497 "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==",
10498 "requires": {
10499 "debug": "^2.5.1",
10500 "lodash.assign": "^4.2.0",
10501 "rxjs": "^5.1.1"
10502 },
10503 "dependencies": {
10504 "debug": {
10505 "version": "2.6.9",
10506 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
10507 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
10508 "requires": {
10509 "ms": "2.0.0"
10510 }
10511 }
10512 }
10513 },
10514 "symbol-observable": {
10515 "version": "1.0.1",
10516 "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
10517 "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
10518 }
10519 }
10520 },
10521 "electron-to-chromium": { 10451 "electron-to-chromium": {
10522 "version": "1.3.314", 10452 "version": "1.3.314",
10523 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.314.tgz", 10453 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.314.tgz",
@@ -10895,6 +10825,7 @@
10895 "version": "1.14.2", 10825 "version": "1.14.2",
10896 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", 10826 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz",
10897 "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", 10827 "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==",
10828 "dev": true,
10898 "requires": { 10829 "requires": {
10899 "es-to-primitive": "^1.2.0", 10830 "es-to-primitive": "^1.2.0",
10900 "function-bind": "^1.1.1", 10831 "function-bind": "^1.1.1",
@@ -10912,6 +10843,7 @@
10912 "version": "1.2.0", 10843 "version": "1.2.0",
10913 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", 10844 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
10914 "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", 10845 "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
10846 "dev": true,
10915 "requires": { 10847 "requires": {
10916 "is-callable": "^1.1.4", 10848 "is-callable": "^1.1.4",
10917 "is-date-object": "^1.0.1", 10849 "is-date-object": "^1.0.1",
@@ -10948,12 +10880,14 @@
10948 "es6-promise": { 10880 "es6-promise": {
10949 "version": "4.2.8", 10881 "version": "4.2.8",
10950 "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", 10882 "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
10951 "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" 10883 "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
10884 "dev": true
10952 }, 10885 },
10953 "es6-promisify": { 10886 "es6-promisify": {
10954 "version": "5.0.0", 10887 "version": "5.0.0",
10955 "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 10888 "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
10956 "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", 10889 "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
10890 "dev": true,
10957 "requires": { 10891 "requires": {
10958 "es6-promise": "^4.0.3" 10892 "es6-promise": "^4.0.3"
10959 } 10893 }
@@ -11477,11 +11411,6 @@
11477 "es5-ext": "~0.10.14" 11411 "es5-ext": "~0.10.14"
11478 } 11412 }
11479 }, 11413 },
11480 "event-kit": {
11481 "version": "2.5.3",
11482 "resolved": "https://registry.npmjs.org/event-kit/-/event-kit-2.5.3.tgz",
11483 "integrity": "sha512-b7Qi1JNzY4BfAYfnIRanLk0DOD1gdkWHT4GISIn8Q2tAf3LpU8SP2CMwWaq40imYoKWbtN4ZhbSRxvsnikooZQ=="
11484 },
11485 "event-stream": { 11414 "event-stream": {
11486 "version": "3.3.4", 11415 "version": "3.3.4",
11487 "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", 11416 "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
@@ -13928,19 +13857,19 @@
13928 } 13857 }
13929 }, 13858 },
13930 "global-agent": { 13859 "global-agent": {
13931 "version": "2.1.8", 13860 "version": "2.1.12",
13932 "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz", 13861 "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz",
13933 "integrity": "sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==", 13862 "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==",
13934 "dev": true, 13863 "dev": true,
13935 "optional": true, 13864 "optional": true,
13936 "requires": { 13865 "requires": {
13937 "boolean": "^3.0.0", 13866 "boolean": "^3.0.1",
13938 "core-js": "^3.6.4", 13867 "core-js": "^3.6.5",
13939 "es6-error": "^4.1.1", 13868 "es6-error": "^4.1.1",
13940 "matcher": "^2.1.0", 13869 "matcher": "^3.0.0",
13941 "roarr": "^2.15.2", 13870 "roarr": "^2.15.3",
13942 "semver": "^7.1.2", 13871 "semver": "^7.3.2",
13943 "serialize-error": "^5.0.0" 13872 "serialize-error": "^7.0.1"
13944 }, 13873 },
13945 "dependencies": { 13874 "dependencies": {
13946 "core-js": { 13875 "core-js": {
@@ -15661,11 +15590,6 @@
15661 "minimalistic-assert": "^1.0.1" 15590 "minimalistic-assert": "^1.0.1"
15662 } 15591 }
15663 }, 15592 },
15664 "hashids": {
15665 "version": "1.2.2",
15666 "resolved": "https://registry.npmjs.org/hashids/-/hashids-1.2.2.tgz",
15667 "integrity": "sha512-dEHCG2LraR6PNvSGxosZHIRgxF5sNLOIBFEHbj8lfP9WWmu/PWPMzsip1drdVSOFi51N2pU7gZavrgn7sbGFuw=="
15668 },
15669 "haye": { 15593 "haye": {
15670 "version": "2.0.2", 15594 "version": "2.0.2",
15671 "resolved": "https://registry.npmjs.org/haye/-/haye-2.0.2.tgz", 15595 "resolved": "https://registry.npmjs.org/haye/-/haye-2.0.2.tgz",
@@ -16497,11 +16421,6 @@
16497 "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 16421 "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
16498 "dev": true 16422 "dev": true
16499 }, 16423 },
16500 "is-electron": {
16501 "version": "2.2.0",
16502 "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz",
16503 "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q=="
16504 },
16505 "is-equal-shallow": { 16424 "is-equal-shallow": {
16506 "version": "0.1.3", 16425 "version": "0.1.3",
16507 "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 16426 "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
@@ -16672,6 +16591,7 @@
16672 "version": "1.0.4", 16591 "version": "1.0.4",
16673 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 16592 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
16674 "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 16593 "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
16594 "dev": true,
16675 "requires": { 16595 "requires": {
16676 "has": "^1.0.1" 16596 "has": "^1.0.1"
16677 } 16597 }
@@ -17881,15 +17801,6 @@
17881 "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=", 17801 "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=",
17882 "dev": true 17802 "dev": true
17883 }, 17803 },
17884 "keyboard-layout": {
17885 "version": "2.0.16",
17886 "resolved": "https://registry.npmjs.org/keyboard-layout/-/keyboard-layout-2.0.16.tgz",
17887 "integrity": "sha512-eGrxmlV6jbm/mbPEOpYGuH53XEC7wIUj9ZxKcT2z9QHJ/RwrT9iVkvxka9zRxqHZHwQzcffgsa5OxoVAKnhK9w==",
17888 "requires": {
17889 "event-kit": "^2.0.0",
17890 "nan": "^2.13.2"
17891 }
17892 },
17893 "keyv": { 17804 "keyv": {
17894 "version": "3.1.0", 17805 "version": "3.1.0",
17895 "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", 17806 "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
@@ -18339,7 +18250,8 @@
18339 "lodash.assign": { 18250 "lodash.assign": {
18340 "version": "4.2.0", 18251 "version": "4.2.0",
18341 "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", 18252 "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
18342 "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" 18253 "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
18254 "dev": true
18343 }, 18255 },
18344 "lodash.camelcase": { 18256 "lodash.camelcase": {
18345 "version": "4.3.0", 18257 "version": "4.3.0",
@@ -18364,7 +18276,8 @@
18364 "lodash.get": { 18276 "lodash.get": {
18365 "version": "4.4.2", 18277 "version": "4.4.2",
18366 "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 18278 "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
18367 "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" 18279 "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
18280 "dev": true
18368 }, 18281 },
18369 "lodash.includes": { 18282 "lodash.includes": {
18370 "version": "4.3.0", 18283 "version": "4.3.0",
@@ -18799,6 +18712,7 @@
18799 "version": "1.3.0", 18712 "version": "1.3.0",
18800 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", 18713 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
18801 "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", 18714 "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
18715 "dev": true,
18802 "requires": { 18716 "requires": {
18803 "pify": "^3.0.0" 18717 "pify": "^3.0.0"
18804 } 18718 }
@@ -18914,9 +18828,9 @@
18914 } 18828 }
18915 }, 18829 },
18916 "marked": { 18830 "marked": {
18917 "version": "0.6.1", 18831 "version": "0.7.0",
18918 "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.1.tgz", 18832 "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz",
18919 "integrity": "sha512-+H0L3ibcWhAZE02SKMqmvYsErLo4EAVJxu5h3bHBBDvvjeWXtl92rGUSBYHL2++5Y+RSNgl8dYOAXcYe7lp1fA==" 18833 "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg=="
18920 }, 18834 },
18921 "matchdep": { 18835 "matchdep": {
18922 "version": "2.0.0", 18836 "version": "2.0.0",
@@ -18954,19 +18868,19 @@
18954 } 18868 }
18955 }, 18869 },
18956 "matcher": { 18870 "matcher": {
18957 "version": "2.1.0", 18871 "version": "3.0.0",
18958 "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", 18872 "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
18959 "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", 18873 "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
18960 "dev": true, 18874 "dev": true,
18961 "optional": true, 18875 "optional": true,
18962 "requires": { 18876 "requires": {
18963 "escape-string-regexp": "^2.0.0" 18877 "escape-string-regexp": "^4.0.0"
18964 }, 18878 },
18965 "dependencies": { 18879 "dependencies": {
18966 "escape-string-regexp": { 18880 "escape-string-regexp": {
18967 "version": "2.0.0", 18881 "version": "4.0.0",
18968 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", 18882 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
18969 "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", 18883 "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
18970 "dev": true, 18884 "dev": true,
18971 "optional": true 18885 "optional": true
18972 } 18886 }
@@ -19732,9 +19646,9 @@
19732 } 19646 }
19733 }, 19647 },
19734 "node-abi": { 19648 "node-abi": {
19735 "version": "2.15.0", 19649 "version": "2.18.0",
19736 "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.15.0.tgz", 19650 "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz",
19737 "integrity": "sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg==", 19651 "integrity": "sha512-yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==",
19738 "dev": true, 19652 "dev": true,
19739 "requires": { 19653 "requires": {
19740 "semver": "^5.4.1" 19654 "semver": "^5.4.1"
@@ -19779,9 +19693,9 @@
19779 "integrity": "sha512-pFhMAqdN1avrFwtZs66HxYiVnbnH9wjXB4m8IKs5Z9+r7U5voqxT+EDbVkRfge+V7JnkOgKhN4HfKBn1o5g9Wg==" 19693 "integrity": "sha512-pFhMAqdN1avrFwtZs66HxYiVnbnH9wjXB4m8IKs5Z9+r7U5voqxT+EDbVkRfge+V7JnkOgKhN4HfKBn1o5g9Wg=="
19780 }, 19694 },
19781 "node-fetch": { 19695 "node-fetch": {
19782 "version": "2.6.0", 19696 "version": "2.6.1",
19783 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", 19697 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
19784 "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" 19698 "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
19785 }, 19699 },
19786 "node-fetch-npm": { 19700 "node-fetch-npm": {
19787 "version": "2.0.2", 19701 "version": "2.0.2",
@@ -20666,7 +20580,8 @@
20666 "object-inspect": { 20580 "object-inspect": {
20667 "version": "1.6.0", 20581 "version": "1.6.0",
20668 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", 20582 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
20669 "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" 20583 "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
20584 "dev": true
20670 }, 20585 },
20671 "object-is": { 20586 "object-is": {
20672 "version": "1.0.1", 20587 "version": "1.0.1",
@@ -20691,7 +20606,6 @@
20691 "version": "4.1.0", 20606 "version": "4.1.0",
20692 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", 20607 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
20693 "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", 20608 "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
20694 "dev": true,
20695 "requires": { 20609 "requires": {
20696 "define-properties": "^1.1.2", 20610 "define-properties": "^1.1.2",
20697 "function-bind": "^1.1.1", 20611 "function-bind": "^1.1.1",
@@ -20726,6 +20640,7 @@
20726 "version": "2.0.3", 20640 "version": "2.0.3",
20727 "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", 20641 "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
20728 "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", 20642 "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
20643 "dev": true,
20729 "requires": { 20644 "requires": {
20730 "define-properties": "^1.1.2", 20645 "define-properties": "^1.1.2",
20731 "es-abstract": "^1.5.1" 20646 "es-abstract": "^1.5.1"
@@ -21474,9 +21389,9 @@
21474 "integrity": "sha1-Pu/lmX4G2Ugh5NUC5CtqHHP434I=" 21389 "integrity": "sha1-Pu/lmX4G2Ugh5NUC5CtqHHP434I="
21475 }, 21390 },
21476 "pidtree": { 21391 "pidtree": {
21477 "version": "0.3.0", 21392 "version": "0.3.1",
21478 "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", 21393 "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
21479 "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==" 21394 "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA=="
21480 }, 21395 },
21481 "pidusage": { 21396 "pidusage": {
21482 "version": "2.0.16", 21397 "version": "2.0.16",
@@ -21489,7 +21404,8 @@
21489 "pify": { 21404 "pify": {
21490 "version": "3.0.0", 21405 "version": "3.0.0",
21491 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 21406 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
21492 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 21407 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
21408 "dev": true
21493 }, 21409 },
21494 "pinkie": { 21410 "pinkie": {
21495 "version": "2.0.4", 21411 "version": "2.0.4",
@@ -23688,29 +23604,6 @@
23688 "tslib": "^1.9.0" 23604 "tslib": "^1.9.0"
23689 } 23605 }
23690 }, 23606 },
23691 "rxjs-serial-subscription": {
23692 "version": "0.1.1",
23693 "resolved": "https://registry.npmjs.org/rxjs-serial-subscription/-/rxjs-serial-subscription-0.1.1.tgz",
23694 "integrity": "sha1-pCsdsL8QlLCSMRkeJ3jKP8+e0Uc=",
23695 "requires": {
23696 "rxjs": "^5.0.0-beta.12"
23697 },
23698 "dependencies": {
23699 "rxjs": {
23700 "version": "5.5.12",
23701 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
23702 "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
23703 "requires": {
23704 "symbol-observable": "1.0.1"
23705 }
23706 },
23707 "symbol-observable": {
23708 "version": "1.0.1",
23709 "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
23710 "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
23711 }
23712 }
23713 },
23714 "safe-buffer": { 23607 "safe-buffer": {
23715 "version": "5.2.0", 23608 "version": "5.2.0",
23716 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 23609 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
@@ -24127,19 +24020,19 @@
24127 } 24020 }
24128 }, 24021 },
24129 "serialize-error": { 24022 "serialize-error": {
24130 "version": "5.0.0", 24023 "version": "7.0.1",
24131 "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", 24024 "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
24132 "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", 24025 "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
24133 "dev": true, 24026 "dev": true,
24134 "optional": true, 24027 "optional": true,
24135 "requires": { 24028 "requires": {
24136 "type-fest": "^0.8.0" 24029 "type-fest": "^0.13.1"
24137 }, 24030 },
24138 "dependencies": { 24031 "dependencies": {
24139 "type-fest": { 24032 "type-fest": {
24140 "version": "0.8.1", 24033 "version": "0.13.1",
24141 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 24034 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
24142 "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 24035 "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
24143 "dev": true, 24036 "dev": true,
24144 "optional": true 24037 "optional": true
24145 } 24038 }
@@ -24829,6 +24722,7 @@
24829 "version": "1.0.1", 24722 "version": "1.0.1",
24830 "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", 24723 "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
24831 "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", 24724 "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
24725 "dev": true,
24832 "requires": { 24726 "requires": {
24833 "through": "2" 24727 "through": "2"
24834 } 24728 }
@@ -25160,10 +25054,93 @@
25160 "strip-ansi": "^4.0.0" 25054 "strip-ansi": "^4.0.0"
25161 } 25055 }
25162 }, 25056 },
25057 "string.prototype.trimend": {
25058 "version": "1.0.1",
25059 "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
25060 "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
25061 "requires": {
25062 "define-properties": "^1.1.3",
25063 "es-abstract": "^1.17.5"
25064 },
25065 "dependencies": {
25066 "es-abstract": {
25067 "version": "1.17.5",
25068 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
25069 "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
25070 "requires": {
25071 "es-to-primitive": "^1.2.1",
25072 "function-bind": "^1.1.1",
25073 "has": "^1.0.3",
25074 "has-symbols": "^1.0.1",
25075 "is-callable": "^1.1.5",
25076 "is-regex": "^1.0.5",
25077 "object-inspect": "^1.7.0",
25078 "object-keys": "^1.1.1",
25079 "object.assign": "^4.1.0",
25080 "string.prototype.trimleft": "^2.1.1",
25081 "string.prototype.trimright": "^2.1.1"
25082 }
25083 },
25084 "es-to-primitive": {
25085 "version": "1.2.1",
25086 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
25087 "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
25088 "requires": {
25089 "is-callable": "^1.1.4",
25090 "is-date-object": "^1.0.1",
25091 "is-symbol": "^1.0.2"
25092 }
25093 },
25094 "has-symbols": {
25095 "version": "1.0.1",
25096 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
25097 "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
25098 },
25099 "is-callable": {
25100 "version": "1.2.0",
25101 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
25102 "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw=="
25103 },
25104 "is-regex": {
25105 "version": "1.1.0",
25106 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
25107 "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
25108 "requires": {
25109 "has-symbols": "^1.0.1"
25110 }
25111 },
25112 "object-inspect": {
25113 "version": "1.7.0",
25114 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
25115 "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
25116 },
25117 "string.prototype.trimleft": {
25118 "version": "2.1.2",
25119 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
25120 "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
25121 "requires": {
25122 "define-properties": "^1.1.3",
25123 "es-abstract": "^1.17.5",
25124 "string.prototype.trimstart": "^1.0.0"
25125 }
25126 },
25127 "string.prototype.trimright": {
25128 "version": "2.1.2",
25129 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
25130 "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
25131 "requires": {
25132 "define-properties": "^1.1.3",
25133 "es-abstract": "^1.17.5",
25134 "string.prototype.trimend": "^1.0.0"
25135 }
25136 }
25137 }
25138 },
25163 "string.prototype.trimleft": { 25139 "string.prototype.trimleft": {
25164 "version": "2.1.0", 25140 "version": "2.1.0",
25165 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", 25141 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
25166 "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", 25142 "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
25143 "dev": true,
25167 "requires": { 25144 "requires": {
25168 "define-properties": "^1.1.3", 25145 "define-properties": "^1.1.3",
25169 "function-bind": "^1.1.1" 25146 "function-bind": "^1.1.1"
@@ -25173,11 +25150,94 @@
25173 "version": "2.1.0", 25150 "version": "2.1.0",
25174 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", 25151 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
25175 "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", 25152 "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
25153 "dev": true,
25176 "requires": { 25154 "requires": {
25177 "define-properties": "^1.1.3", 25155 "define-properties": "^1.1.3",
25178 "function-bind": "^1.1.1" 25156 "function-bind": "^1.1.1"
25179 } 25157 }
25180 }, 25158 },
25159 "string.prototype.trimstart": {
25160 "version": "1.0.1",
25161 "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
25162 "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
25163 "requires": {
25164 "define-properties": "^1.1.3",
25165 "es-abstract": "^1.17.5"
25166 },
25167 "dependencies": {
25168 "es-abstract": {
25169 "version": "1.17.5",
25170 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
25171 "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
25172 "requires": {
25173 "es-to-primitive": "^1.2.1",
25174 "function-bind": "^1.1.1",
25175 "has": "^1.0.3",
25176 "has-symbols": "^1.0.1",
25177 "is-callable": "^1.1.5",
25178 "is-regex": "^1.0.5",
25179 "object-inspect": "^1.7.0",
25180 "object-keys": "^1.1.1",
25181 "object.assign": "^4.1.0",
25182 "string.prototype.trimleft": "^2.1.1",
25183 "string.prototype.trimright": "^2.1.1"
25184 }
25185 },
25186 "es-to-primitive": {
25187 "version": "1.2.1",
25188 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
25189 "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
25190 "requires": {
25191 "is-callable": "^1.1.4",
25192 "is-date-object": "^1.0.1",
25193 "is-symbol": "^1.0.2"
25194 }
25195 },
25196 "has-symbols": {
25197 "version": "1.0.1",
25198 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
25199 "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
25200 },
25201 "is-callable": {
25202 "version": "1.2.0",
25203 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
25204 "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw=="
25205 },
25206 "is-regex": {
25207 "version": "1.1.0",
25208 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
25209 "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
25210 "requires": {
25211 "has-symbols": "^1.0.1"
25212 }
25213 },
25214 "object-inspect": {
25215 "version": "1.7.0",
25216 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
25217 "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
25218 },
25219 "string.prototype.trimleft": {
25220 "version": "2.1.2",
25221 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
25222 "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
25223 "requires": {
25224 "define-properties": "^1.1.3",
25225 "es-abstract": "^1.17.5",
25226 "string.prototype.trimstart": "^1.0.0"
25227 }
25228 },
25229 "string.prototype.trimright": {
25230 "version": "2.1.2",
25231 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
25232 "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
25233 "requires": {
25234 "define-properties": "^1.1.3",
25235 "es-abstract": "^1.17.5",
25236 "string.prototype.trimend": "^1.0.0"
25237 }
25238 }
25239 }
25240 },
25181 "string_decoder": { 25241 "string_decoder": {
25182 "version": "1.3.0", 25242 "version": "1.3.0",
25183 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 25243 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -26391,11 +26451,6 @@
26391 "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", 26451 "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
26392 "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" 26452 "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
26393 }, 26453 },
26394 "underscore": {
26395 "version": "1.9.1",
26396 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
26397 "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
26398 },
26399 "undertaker": { 26454 "undertaker": {
26400 "version": "1.2.1", 26455 "version": "1.2.1",
26401 "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", 26456 "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz",
@@ -26797,6 +26852,7 @@
26797 "version": "1.0.0", 26852 "version": "1.0.0",
26798 "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", 26853 "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
26799 "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", 26854 "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
26855 "dev": true,
26800 "requires": { 26856 "requires": {
26801 "define-properties": "^1.1.2", 26857 "define-properties": "^1.1.2",
26802 "object.getownpropertydescriptors": "^2.0.3" 26858 "object.getownpropertydescriptors": "^2.0.3"
@@ -27643,24 +27699,6 @@
27643 } 27699 }
27644 } 27700 }
27645 }, 27701 },
27646 "win-ca": {
27647 "version": "3.1.1",
27648 "resolved": "https://registry.npmjs.org/win-ca/-/win-ca-3.1.1.tgz",
27649 "integrity": "sha512-uZj8zifF459u1apoVjXKVBBnh4NyILbC0W5asVtILwseNenc+krP44C0FWn6RXGjOHvxLKfYoIm0xl/R8wlw+g==",
27650 "requires": {
27651 "is-electron": "^2.2.0",
27652 "make-dir": "^1.3.0",
27653 "node-forge": "^0.8.2",
27654 "split": "^1.0.1"
27655 },
27656 "dependencies": {
27657 "node-forge": {
27658 "version": "0.8.5",
27659 "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz",
27660 "integrity": "sha512-vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q=="
27661 }
27662 }
27663 },
27664 "window-size": { 27702 "window-size": {
27665 "version": "0.1.4", 27703 "version": "0.1.4",
27666 "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", 27704 "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
@@ -27982,11 +28020,6 @@
27982 "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 28020 "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
27983 "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" 28021 "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
27984 }, 28022 },
27985 "xmlhttprequest": {
27986 "version": "1.8.0",
27987 "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
27988 "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw="
27989 },
27990 "xmlhttprequest-ssl": { 28023 "xmlhttprequest-ssl": {
27991 "version": "1.5.3", 28024 "version": "1.5.3",
27992 "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", 28025 "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz",
diff --git a/package.json b/package.json
index 09a69f00e..a8d52da5d 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
59 "@meetfranz/forms": "file:packages/forms", 59 "@meetfranz/forms": "file:packages/forms",
60 "@meetfranz/theme": "file:packages/theme", 60 "@meetfranz/theme": "file:packages/theme",
61 "@meetfranz/ui": "file:packages/ui", 61 "@meetfranz/ui": "file:packages/ui",
62 "@sentry/electron": "1.1.0", 62 "@sentry/electron": "1.3.0",
63 "address-rfc2822": "^2.0.1", 63 "address-rfc2822": "^2.0.1",
64 "atob": "2.1.2", 64 "atob": "2.1.2",
65 "auto-launch": "5.0.5", 65 "auto-launch": "5.0.5",
@@ -78,7 +78,6 @@
78 "electron-process-manager": "git+https://git@github.com/dizer/electron-process-manager.git", 78 "electron-process-manager": "git+https://git@github.com/dizer/electron-process-manager.git",
79 "electron-process-reporter": "git+https://git@github.com/dizer/electron-process-reporter.git", 79 "electron-process-reporter": "git+https://git@github.com/dizer/electron-process-reporter.git",
80 "electron-react-titlebar": "0.8.2", 80 "electron-react-titlebar": "0.8.2",
81 "electron-spellchecker": "2.2.1",
82 "electron-updater": "4.2.5", 81 "electron-updater": "4.2.5",
83 "electron-util": "0.14.0", 82 "electron-util": "0.14.0",
84 "electron-window-state": "5.0.3", 83 "electron-window-state": "5.0.3",
@@ -92,7 +91,7 @@
92 "lodash": "^4.17.4", 91 "lodash": "^4.17.4",
93 "mac-screen-capture-permissions": "1.1.0", 92 "mac-screen-capture-permissions": "1.1.0",
94 "macos-version": "5.2.0", 93 "macos-version": "5.2.0",
95 "marked": "0.6.1", 94 "marked": "0.7.0",
96 "mdi": "^1.9.33", 95 "mdi": "^1.9.33",
97 "mime-types": "2.1.25", 96 "mime-types": "2.1.25",
98 "mobx": "5.15.0", 97 "mobx": "5.15.0",
@@ -102,7 +101,7 @@
102 "mobx-react-router": "3.1.2", 101 "mobx-react-router": "3.1.2",
103 "moment": "^2.17.1", 102 "moment": "^2.17.1",
104 "ms": "2.1.2", 103 "ms": "2.1.2",
105 "node-fetch": "2.6.0", 104 "node-fetch": "2.6.1",
106 "normalize-url": "5.0.0", 105 "normalize-url": "5.0.0",
107 "pretty-bytes": "^4.0.2", 106 "pretty-bytes": "^4.0.2",
108 "prop-types": "^15.5.10", 107 "prop-types": "^15.5.10",
@@ -160,10 +159,10 @@
160 "cross-env": "^5.0.5", 159 "cross-env": "^5.0.5",
161 "cz-conventional-changelog": "2.1.0", 160 "cz-conventional-changelog": "2.1.0",
162 "dotenv": "^4.0.0", 161 "dotenv": "^4.0.0",
163 "electron": "8.2.3", 162 "electron": "9.0.3",
164 "electron-builder": "22.4.1", 163 "electron-builder": "22.4.1",
165 "electron-notarize": "0.2.1", 164 "electron-notarize": "0.2.1",
166 "electron-rebuild": "1.10.0", 165 "electron-rebuild": "1.11.0",
167 "eslint": "5.10.0", 166 "eslint": "5.10.0",
168 "eslint-config-airbnb": "17.1.0", 167 "eslint-config-airbnb": "17.1.0",
169 "eslint-loader": "^1.9.0", 168 "eslint-loader": "^1.9.0",
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index 3dba793b2..f1e70ce59 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -21,6 +21,8 @@ import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer';
21import LimitReachedInfobox from '../../../features/serviceLimit/components/LimitReachedInfobox'; 21import LimitReachedInfobox from '../../../features/serviceLimit/components/LimitReachedInfobox';
22import { serviceLimitStore } from '../../../features/serviceLimit'; 22import { serviceLimitStore } from '../../../features/serviceLimit';
23 23
24import { isMac } from '../../../environment';
25
24const messages = defineMessages({ 26const messages = defineMessages({
25 saveService: { 27 saveService: {
26 id: 'settings.service.form.saveButton', 28 id: 'settings.service.form.saveButton',
@@ -401,14 +403,16 @@ export default @observer class EditServiceForm extends Component {
401 </div> 403 </div>
402 </div> 404 </div>
403 405
404 <PremiumFeatureContainer 406 {!isMac && (
405 condition={!isSpellcheckerIncludedInCurrentPlan} 407 <PremiumFeatureContainer
406 gaEventInfo={{ category: 'User', event: 'upgrade', label: 'spellchecker' }} 408 condition={!isSpellcheckerIncludedInCurrentPlan}
407 > 409 gaEventInfo={{ category: 'User', event: 'upgrade', label: 'spellchecker' }}
408 <div className="settings__settings-group"> 410 >
409 <Select field={form.$('spellcheckerLanguage')} /> 411 <div className="settings__settings-group">
410 </div> 412 <Select field={form.$('spellcheckerLanguage')} multiple />
411 </PremiumFeatureContainer> 413 </div>
414 </PremiumFeatureContainer>
415 )}
412 416
413 {isProxyFeatureEnabled && ( 417 {isProxyFeatureEnabled && (
414 <PremiumFeatureContainer 418 <PremiumFeatureContainer
diff --git a/src/components/settings/services/ServicesDashboard.js b/src/components/settings/services/ServicesDashboard.js
index 78038e86a..826dbb176 100644
--- a/src/components/settings/services/ServicesDashboard.js
+++ b/src/components/settings/services/ServicesDashboard.js
@@ -7,6 +7,7 @@ import { defineMessages, intlShape } from 'react-intl';
7import SearchInput from '../../ui/SearchInput'; 7import SearchInput from '../../ui/SearchInput';
8import Infobox from '../../ui/Infobox'; 8import Infobox from '../../ui/Infobox';
9import Loader from '../../ui/Loader'; 9import Loader from '../../ui/Loader';
10import FAB from '../../ui/FAB';
10import ServiceItem from './ServiceItem'; 11import ServiceItem from './ServiceItem';
11import Appear from '../../ui/effects/Appear'; 12import Appear from '../../ui/effects/Appear';
12import LimitReachedInfobox from '../../../features/serviceLimit/components/LimitReachedInfobox'; 13import LimitReachedInfobox from '../../../features/serviceLimit/components/LimitReachedInfobox';
@@ -175,6 +176,12 @@ export default @observer class ServicesDashboard extends Component {
175 </tbody> 176 </tbody>
176 </table> 177 </table>
177 )} 178 )}
179
180 <FAB>
181 <Link to="/settings/recipes">
182 +
183 </Link>
184 </FAB>
178 </div> 185 </div>
179 </div> 186 </div>
180 ); 187 );
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index 50358c36f..ba7cb7317 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -91,6 +91,10 @@ const messages = defineMessages({
91 id: 'settings.app.translationHelp', 91 id: 'settings.app.translationHelp',
92 defaultMessage: '!!!Help us to translate Ferdi into your language.', 92 defaultMessage: '!!!Help us to translate Ferdi into your language.',
93 }, 93 },
94 spellCheckerLanguageInfo: {
95 id: 'settings.app.spellCheckerLanguageInfo',
96 defaultMessage: '!!!Ferdi uses your Mac\'s build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac\'s System Preferences.',
97 },
94 subheadlineCache: { 98 subheadlineCache: {
95 id: 'settings.app.subheadlineCache', 99 id: 'settings.app.subheadlineCache',
96 defaultMessage: '!!!Cache', 100 defaultMessage: '!!!Cache',
@@ -518,8 +522,11 @@ export default @observer class EditSettingsForm extends Component {
518 <Toggle 522 <Toggle
519 field={form.$('enableSpellchecking')} 523 field={form.$('enableSpellchecking')}
520 /> 524 />
521 {form.$('enableSpellchecking').value && ( 525 {form.$('enableSpellchecking').value && !isMac && (
522 <Select field={form.$('spellcheckerLanguage')} /> 526 <Select field={form.$('spellcheckerLanguage')} multiple />
527 )}
528 {form.$('enableSpellchecking').value && isMac && (
529 <p>{intl.formatMessage(messages.spellCheckerLanguageInfo)}</p>
523 )} 530 )}
524 </Fragment> 531 </Fragment>
525 </PremiumFeatureContainer> 532 </PremiumFeatureContainer>
diff --git a/src/components/ui/FAB.js b/src/components/ui/FAB.js
new file mode 100644
index 000000000..9359a3c6c
--- /dev/null
+++ b/src/components/ui/FAB.js
@@ -0,0 +1,72 @@
1/**
2 * Floating Action Button (FAB)
3 */
4import React, { Component } from 'react';
5import PropTypes from 'prop-types';
6import { observer, inject } from 'mobx-react';
7import classnames from 'classnames';
8
9export default @inject('stores') @observer class Button extends Component {
10 static propTypes = {
11 className: PropTypes.string,
12 disabled: PropTypes.bool,
13 onClick: PropTypes.func,
14 type: PropTypes.string,
15 htmlForm: PropTypes.string,
16 stores: PropTypes.shape({
17 settings: PropTypes.shape({
18 app: PropTypes.shape({
19 accentColor: PropTypes.string.isRequired,
20 }).isRequired,
21 }).isRequired,
22 }).isRequired,
23 };
24
25 static defaultProps = {
26 className: null,
27 disabled: false,
28 onClick: () => { },
29 type: 'button',
30 htmlForm: '',
31 };
32
33 element = null;
34
35 render() {
36 const {
37 className,
38 disabled,
39 onClick,
40 type,
41 children,
42 htmlForm,
43 } = this.props;
44
45 const buttonProps = {
46 className: classnames({
47 ferdi__fab: true,
48 [`${className}`]: className,
49 }),
50 type,
51 };
52
53 if (disabled) {
54 buttonProps.disabled = true;
55 }
56
57 if (onClick) {
58 buttonProps.onClick = onClick;
59 }
60
61 if (htmlForm) {
62 buttonProps.form = htmlForm;
63 }
64
65 return (
66 // disabling rule as button has type defined in `buttonProps`
67 <button {...buttonProps} type="button">
68 {children}
69 </button>
70 );
71 }
72}
diff --git a/src/components/ui/Select.js b/src/components/ui/Select.js
index da52243ca..b4511433c 100644
--- a/src/components/ui/Select.js
+++ b/src/components/ui/Select.js
@@ -10,22 +10,60 @@ export default @observer class Select extends Component {
10 className: PropTypes.string, 10 className: PropTypes.string,
11 showLabel: PropTypes.bool, 11 showLabel: PropTypes.bool,
12 disabled: PropTypes.bool, 12 disabled: PropTypes.bool,
13 multiple: PropTypes.bool,
13 }; 14 };
14 15
15 static defaultProps = { 16 static defaultProps = {
16 className: null, 17 className: null,
17 showLabel: true, 18 showLabel: true,
18 disabled: false, 19 disabled: false,
20 multiple: false,
19 }; 21 };
20 22
23 constructor(props) {
24 super(props);
25
26 this.element = React.createRef();
27 }
28
29 multipleChange() {
30 const element = this.element.current;
31
32 const result = [];
33 const options = element && element.options;
34
35 for (const option of options) {
36 if (option.selected) {
37 result.push(option.value || option.text);
38 }
39 }
40
41 const { field } = this.props;
42 field.value = result;
43 }
44
21 render() { 45 render() {
22 const { 46 const {
23 field, 47 field,
24 className, 48 className,
25 showLabel, 49 showLabel,
26 disabled, 50 disabled,
51 multiple,
27 } = this.props; 52 } = this.props;
28 53
54 let selected = field.value;
55
56 if (multiple) {
57 if (typeof field.value === 'string' && field.value.substr(0, 1) === '[') {
58 // Value is JSON encoded
59 selected = JSON.parse(field.value);
60 } else if (typeof field.value === 'object') {
61 selected = field.value;
62 } else {
63 selected = [field.value];
64 }
65 }
66
29 return ( 67 return (
30 <div 68 <div
31 className={classnames({ 69 className={classnames({
@@ -44,11 +82,13 @@ export default @observer class Select extends Component {
44 </label> 82 </label>
45 )} 83 )}
46 <select 84 <select
47 onChange={field.onChange} 85 onChange={multiple ? e => this.multipleChange(e) : field.onChange}
48 id={field.id} 86 id={field.id}
49 defaultValue={field.value} 87 defaultValue={selected}
50 className="franz-form__select" 88 className="franz-form__select"
51 disabled={field.disabled || disabled} 89 disabled={field.disabled || disabled}
90 multiple={multiple}
91 ref={this.element}
52 > 92 >
53 {field.options.map(type => ( 93 {field.options.map(type => (
54 <option 94 <option
diff --git a/src/config.js b/src/config.js
index b8af16419..f9eecf375 100644
--- a/src/config.js
+++ b/src/config.js
@@ -98,7 +98,7 @@ export const DEFAULT_APP_SETTINGS = {
98 showMessageBadgeWhenMuted: true, 98 showMessageBadgeWhenMuted: true,
99 showDragArea: false, 99 showDragArea: false,
100 enableSpellchecking: true, 100 enableSpellchecking: true,
101 spellcheckerLanguage: 'en-us', 101 spellcheckerLanguage: '["en-US"]',
102 darkMode: process.platform === 'darwin' ? nativeTheme.shouldUseDarkColors : false, // We can't use refs from `./environment` at this time 102 darkMode: process.platform === 'darwin' ? nativeTheme.shouldUseDarkColors : false, // We can't use refs from `./environment` at this time
103 locale: '', 103 locale: '',
104 fallbackLocale: 'en-US', 104 fallbackLocale: 'en-US',
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 3dba3bc11..c6149fd9e 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -247,7 +247,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
247 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, 247 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted,
248 showDragArea: settingsData.showDragArea, 248 showDragArea: settingsData.showDragArea,
249 enableSpellchecking: settingsData.enableSpellchecking, 249 enableSpellchecking: settingsData.enableSpellchecking,
250 spellcheckerLanguage: settingsData.spellcheckerLanguage, 250 spellcheckerLanguage: JSON.stringify(settingsData.spellcheckerLanguage),
251 beta: settingsData.beta, // we need this info in the main process as well 251 beta: settingsData.beta, // we need this info in the main process as well
252 automaticUpdates: settingsData.automaticUpdates, // we need this info in the main process as well 252 automaticUpdates: settingsData.automaticUpdates, // we need this info in the main process as well
253 locale: settingsData.locale, // we need this info in the main process as well 253 locale: settingsData.locale, // we need this info in the main process as well
diff --git a/src/electron/ipc-api/settings.js b/src/electron/ipc-api/settings.js
index b651db306..6d48c54e3 100644
--- a/src/electron/ipc-api/settings.js
+++ b/src/electron/ipc-api/settings.js
@@ -2,9 +2,11 @@ import { ipcMain } from 'electron';
2 2
3export default (params) => { 3export default (params) => {
4 ipcMain.on('getAppSettings', (event, type) => { 4 ipcMain.on('getAppSettings', (event, type) => {
5 const cleanData = JSON.parse(JSON.stringify(params.settings[type].all));
6
5 params.mainWindow.webContents.send('appSettings', { 7 params.mainWindow.webContents.send('appSettings', {
6 type, 8 type,
7 data: params.settings[type].all, 9 data: cleanData,
8 }); 10 });
9 }); 11 });
10 12
diff --git a/src/electron/webview-ime-focus.js b/src/electron/webview-ime-focus.js
index 1213b518e..b41232b63 100644
--- a/src/electron/webview-ime-focus.js
+++ b/src/electron/webview-ime-focus.js
@@ -1,3 +1,4 @@
1const { remote } = require('electron');
1const { releaseDocumentFocus } = require('./webview-ime-focus-helpers'); 2const { releaseDocumentFocus } = require('./webview-ime-focus-helpers');
2 3
3function giveWebviewDocumentFocus(element) { 4function giveWebviewDocumentFocus(element) {
@@ -9,7 +10,7 @@ function giveWebviewDocumentFocus(element) {
9} 10}
10 11
11function elementIsUnfocusedWebview(element) { 12function elementIsUnfocusedWebview(element) {
12 return element.tagName === 'WEBVIEW' && !element.getWebContents().isFocused(); 13 return element.tagName === 'WEBVIEW' && !remote.webContents.fromId(element.getWebContentsId()).isFocused();
13} 14}
14 15
15function webviewDidAutofocus(element) { 16function webviewDidAutofocus(element) {
diff --git a/src/i18n/languages.js b/src/i18n/languages.js
index 9ddcc3519..eca3822ad 100644
--- a/src/i18n/languages.js
+++ b/src/i18n/languages.js
@@ -25,6 +25,7 @@ export const APP_LOCALES = {
25 tr: 'Türkçe', 25 tr: 'Türkçe',
26 'zh-TW': '台語 (Chinese Taiwan)', 26 'zh-TW': '台語 (Chinese Taiwan)',
27 es: 'Español', 27 es: 'Español',
28 no: 'Norsk (Norwegian)'
28}; 29};
29 30
30// Hunspell compatible keys 31// Hunspell compatible keys
diff --git a/src/i18n/locales/af.json b/src/i18n/locales/af.json
index 356c1fc1e..560444dfc 100644
--- a/src/i18n/locales/af.json
+++ b/src/i18n/locales/af.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json
index baceec651..18f4c4b3d 100644
--- a/src/i18n/locales/ar.json
+++ b/src/i18n/locales/ar.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "الذاكرة المؤقتة", 339 "settings.app.subheadlineCache": "الذاكرة المؤقتة",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "ساعدنا على ترجمة فيردي إلى لغتك.", 341 "settings.app.translationHelp": "ساعدنا على ترجمة فيردي إلى لغتك.",
diff --git a/src/i18n/locales/bs.json b/src/i18n/locales/bs.json
index 356c1fc1e..560444dfc 100644
--- a/src/i18n/locales/bs.json
+++ b/src/i18n/locales/bs.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index bfb6391f1..cf7627f20 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Memòria cau", 339 "settings.app.subheadlineCache": "Memòria cau",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Ajuda'ns a traduir Ferdi en la teva llengua.", 341 "settings.app.translationHelp": "Ajuda'ns a traduir Ferdi en la teva llengua.",
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json
index 5ac77ec4d..0ea617910 100644
--- a/src/i18n/locales/cs.json
+++ b/src/i18n/locales/cs.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Mezipaměť", 339 "settings.app.subheadlineCache": "Mezipaměť",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Pomozte nám přeložit Ferdi do svého jazyka.", 341 "settings.app.translationHelp": "Pomozte nám přeložit Ferdi do svého jazyka.",
diff --git a/src/i18n/locales/da.json b/src/i18n/locales/da.json
index 356c1fc1e..85f4fa963 100644
--- a/src/i18n/locales/da.json
+++ b/src/i18n/locales/da.json
@@ -43,7 +43,7 @@
43 "feature.publishDebugInfo.terms": "Terms of service", 43 "feature.publishDebugInfo.terms": "Terms of service",
44 "feature.publishDebugInfo.title": "Publish debug information", 44 "feature.publishDebugInfo.title": "Publish debug information",
45 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 45 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
46 "feature.quickSwitch.search": "Search...", 46 "feature.quickSwitch.search": "Søg...",
47 "feature.quickSwitch.title": "QuickSwitch", 47 "feature.quickSwitch.title": "QuickSwitch",
48 "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.", 48 "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.",
49 "feature.shareFranz.action.email": "Send as email", 49 "feature.shareFranz.action.email": "Send as email",
@@ -55,7 +55,7 @@
55 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.", 55 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.",
56 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!", 56 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!",
57 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", 57 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.",
58 "feature.todos.premium.upgrade": "Upgrade Account", 58 "feature.todos.premium.upgrade": "Opgrader konto",
59 "feature.trialStatusBar.cta": "Upgrade now", 59 "feature.trialStatusBar.cta": "Upgrade now",
60 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", 60 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
61 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 61 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
@@ -76,7 +76,7 @@
76 "import.skip.label": "I want to add services manually", 76 "import.skip.label": "I want to add services manually",
77 "import.submit.label": "Import services", 77 "import.submit.label": "Import services",
78 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 78 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
79 "infobar.buttonChangelog": "What is new?", 79 "infobar.buttonChangelog": "Hvad er nyt?",
80 "infobar.buttonInstallUpdate": "Restart & install update", 80 "infobar.buttonInstallUpdate": "Restart & install update",
81 "infobar.buttonReloadServices": "Reload services", 81 "infobar.buttonReloadServices": "Reload services",
82 "infobar.requiredRequestsFailed": "Could not load services and user information", 82 "infobar.requiredRequestsFailed": "Could not load services and user information",
@@ -85,14 +85,14 @@
85 "infobar.updateAvailable": "A new update for Ferdi is available.", 85 "infobar.updateAvailable": "A new update for Ferdi is available.",
86 "invite.email.label": "Email address", 86 "invite.email.label": "Email address",
87 "invite.headline.friends": "Invite 3 of your friends or colleagues", 87 "invite.headline.friends": "Invite 3 of your friends or colleagues",
88 "invite.name.label": "Name", 88 "invite.name.label": "Navn",
89 "invite.skip.label": "I want to do this later", 89 "invite.skip.label": "I want to do this later",
90 "invite.submit.label": "Send invites", 90 "invite.submit.label": "Send invites",
91 "invite.successInfo": "Invitations sent successfully", 91 "invite.successInfo": "Invitations sent successfully",
92 "locked.headline": "Locked", 92 "locked.headline": "Låst",
93 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 93 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
94 "locked.invalidCredentials": "Password invalid", 94 "locked.invalidCredentials": "Password invalid",
95 "locked.password.label": "Password", 95 "locked.password.label": "Adgangskode",
96 "locked.submit.label": "Unlock", 96 "locked.submit.label": "Unlock",
97 "locked.touchId": "Unlock with Touch ID", 97 "locked.touchId": "Unlock with Touch ID",
98 "locked.touchIdPrompt": "unlock via Touch ID", 98 "locked.touchIdPrompt": "unlock via Touch ID",
@@ -105,25 +105,25 @@
105 "login.invalidCredentials": "Email or password not valid", 105 "login.invalidCredentials": "Email or password not valid",
106 "login.link.password": "Reset password", 106 "login.link.password": "Reset password",
107 "login.link.signup": "Create a free account", 107 "login.link.signup": "Create a free account",
108 "login.password.label": "Password", 108 "login.password.label": "Adgangskode",
109 "login.serverLogout": "Your session expired, please login again.", 109 "login.serverLogout": "Your session expired, please login again.",
110 "login.submit.label": "Sign in", 110 "login.submit.label": "Sign in",
111 "login.tokenExpired": "Your session expired, please login again.", 111 "login.tokenExpired": "Your session expired, please login again.",
112 "menu.Todoss.closeTodosDrawer": "Close Todos drawer", 112 "menu.Todoss.closeTodosDrawer": "Close Todos drawer",
113 "menu.Todoss.openTodosDrawer": "Open Todos drawer", 113 "menu.Todoss.openTodosDrawer": "Open Todos drawer",
114 "menu.app.about": "About Ferdi", 114 "menu.app.about": "About Ferdi",
115 "menu.app.announcement": "What's new?", 115 "menu.app.announcement": "Hvad er nyt?",
116 "menu.app.autohideMenuBar": "Auto-hide menu bar", 116 "menu.app.autohideMenuBar": "Auto-hide menu bar",
117 "menu.app.checkForUpdates": "Check for updates", 117 "menu.app.checkForUpdates": "Check for updates",
118 "menu.app.hide": "Hide", 118 "menu.app.hide": "Hide",
119 "menu.app.hideOthers": "Hide Others", 119 "menu.app.hideOthers": "Hide Others",
120 "menu.app.quit": "Quit", 120 "menu.app.quit": "Afslut",
121 "menu.app.settings": "Settings", 121 "menu.app.settings": "Indstillinger",
122 "menu.app.unhide": "Unhide", 122 "menu.app.unhide": "Unhide",
123 "menu.edit": "Edit", 123 "menu.edit": "Rediger",
124 "menu.edit.copy": "Copy", 124 "menu.edit.copy": "Kopier",
125 "menu.edit.cut": "Cut", 125 "menu.edit.cut": "Cut",
126 "menu.edit.delete": "Delete", 126 "menu.edit.delete": "Slet",
127 "menu.edit.emojiSymbols": "Emoji & Symbols", 127 "menu.edit.emojiSymbols": "Emoji & Symbols",
128 "menu.edit.findInPage": "Find in Page", 128 "menu.edit.findInPage": "Find in Page",
129 "menu.edit.paste": "Paste", 129 "menu.edit.paste": "Paste",
@@ -135,9 +135,9 @@
135 "menu.edit.startSpeaking": "Start Speaking", 135 "menu.edit.startSpeaking": "Start Speaking",
136 "menu.edit.stopSpeaking": "Stop Speaking", 136 "menu.edit.stopSpeaking": "Stop Speaking",
137 "menu.edit.undo": "Undo", 137 "menu.edit.undo": "Undo",
138 "menu.file": "File", 138 "menu.file": "Fil",
139 "menu.help": "Help", 139 "menu.help": "Hlp",
140 "menu.help.changelog": "Changelog", 140 "menu.help.changelog": "Ændringslog",
141 "menu.help.debugInfo": "Copy Debug Information", 141 "menu.help.debugInfo": "Copy Debug Information",
142 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 142 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.",
143 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 143 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
@@ -153,8 +153,8 @@
153 "menu.services.setNextServiceActive": "Activate next service", 153 "menu.services.setNextServiceActive": "Activate next service",
154 "menu.todos": "Todos", 154 "menu.todos": "Todos",
155 "menu.todos.enableTodos": "Enable Todos", 155 "menu.todos.enableTodos": "Enable Todos",
156 "menu.view": "View", 156 "menu.view": "Vis",
157 "menu.view.back": "Back", 157 "menu.view.back": "Tilbage",
158 "menu.view.enterFullScreen": "Enter Full Screen", 158 "menu.view.enterFullScreen": "Enter Full Screen",
159 "menu.view.exitFullScreen": "Exit Full Screen", 159 "menu.view.exitFullScreen": "Exit Full Screen",
160 "menu.view.forward": "Forward", 160 "menu.view.forward": "Forward",
@@ -171,7 +171,7 @@
171 "menu.view.zoomIn": "Zoom In", 171 "menu.view.zoomIn": "Zoom In",
172 "menu.view.zoomOut": "Zoom Out", 172 "menu.view.zoomOut": "Zoom Out",
173 "menu.window": "Window", 173 "menu.window": "Window",
174 "menu.window.close": "Close", 174 "menu.window.close": "Luk",
175 "menu.window.minimize": "Minimize", 175 "menu.window.minimize": "Minimize",
176 "menu.workspaces": "Workspaces", 176 "menu.workspaces": "Workspaces",
177 "menu.workspaces.addNewWorkspace": "Add New Workspace...", 177 "menu.workspaces.addNewWorkspace": "Add New Workspace...",
@@ -225,16 +225,16 @@
225 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", 225 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
226 "service.crashHandler.action": "Reload {name}", 226 "service.crashHandler.action": "Reload {name}",
227 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", 227 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds",
228 "service.crashHandler.headline": "Oh no!", 228 "service.crashHandler.headline": "Åh nej!",
229 "service.crashHandler.text": "{name} has caused an error.", 229 "service.crashHandler.text": "{name} has caused an error.",
230 "service.disabledHandler.action": "Enable {name}", 230 "service.disabledHandler.action": "Enable {name}",
231 "service.disabledHandler.headline": "{name} is disabled", 231 "service.disabledHandler.headline": "{name} is disabled",
232 "service.errorHandler.action": "Reload {name}", 232 "service.errorHandler.action": "Reload {name}",
233 "service.errorHandler.editAction": "Edit {name}", 233 "service.errorHandler.editAction": "Edit {name}",
234 "service.errorHandler.headline": "Oh no!", 234 "service.errorHandler.headline": "Åh nej!",
235 "service.errorHandler.message": "Error", 235 "service.errorHandler.message": "Fejl",
236 "service.errorHandler.text": "{name} has failed to load.", 236 "service.errorHandler.text": "{name} has failed to load.",
237 "service.restrictedHandler.action": "Upgrade Account", 237 "service.restrictedHandler.action": "Opgrader konto",
238 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required", 238 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required",
239 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", 239 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.",
240 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", 240 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.",
@@ -244,7 +244,7 @@
244 "services.login": "Please login to use Ferdi.", 244 "services.login": "Please login to use Ferdi.",
245 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", 245 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.",
246 "services.serverless": "Use Ferdi without an Account", 246 "services.serverless": "Use Ferdi without an Account",
247 "services.welcome": "Welcome to Ferdi", 247 "services.welcome": "Velkommen til Cherry",
248 "settings.account.account.editButton": "Edit account", 248 "settings.account.account.editButton": "Edit account",
249 "settings.account.accountType.basic": "Basic Account", 249 "settings.account.accountType.basic": "Basic Account",
250 "settings.account.accountType.premium": "Premium Supporter Account", 250 "settings.account.accountType.premium": "Premium Supporter Account",
@@ -269,8 +269,8 @@
269 "settings.account.trial": "Free Trial", 269 "settings.account.trial": "Free Trial",
270 "settings.account.trialEndsIn": "Your free trial ends in {duration}.", 270 "settings.account.trialEndsIn": "Your free trial ends in {duration}.",
271 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.", 271 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.",
272 "settings.account.tryReloadServices": "Try again", 272 "settings.account.tryReloadServices": "Forg igen",
273 "settings.account.tryReloadUserInfoRequest": "Try again", 273 "settings.account.tryReloadUserInfoRequest": "Forg igen",
274 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional", 274 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional",
275 "settings.account.userInfoRequestFailed": "Could not load user information", 275 "settings.account.userInfoRequestFailed": "Could not load user information",
276 "settings.account.yourLicense": "Your Ferdi License", 276 "settings.account.yourLicense": "Your Ferdi License",
@@ -301,7 +301,7 @@
301 "settings.app.form.inactivityLock": "Lock after inactivity", 301 "settings.app.form.inactivityLock": "Lock after inactivity",
302 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 302 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
303 "settings.app.form.language": "Language", 303 "settings.app.form.language": "Language",
304 "settings.app.form.lockPassword": "Password", 304 "settings.app.form.lockPassword": "Adgangskode",
305 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 305 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
306 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 306 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
307 "settings.app.form.predefinedTodoServer": "Todo Server", 307 "settings.app.form.predefinedTodoServer": "Todo Server",
@@ -309,8 +309,8 @@
309 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 309 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
310 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 310 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
311 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 311 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
312 "settings.app.form.scheduledDNDEnd": "To", 312 "settings.app.form.scheduledDNDEnd": "Til",
313 "settings.app.form.scheduledDNDStart": "From", 313 "settings.app.form.scheduledDNDStart": "Fra",
314 "settings.app.form.sentry": "Send telemetry data", 314 "settings.app.form.sentry": "Send telemetry data",
315 "settings.app.form.serviceRibbonWidth": "Sidebar width", 315 "settings.app.form.serviceRibbonWidth": "Sidebar width",
316 "settings.app.form.showDisabledServices": "Display disabled services tabs", 316 "settings.app.form.showDisabledServices": "Display disabled services tabs",
@@ -319,7 +319,7 @@
319 "settings.app.form.startMinimized": "Start minimized", 319 "settings.app.form.startMinimized": "Start minimized",
320 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 320 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
321 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 321 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
322 "settings.app.headline": "Settings", 322 "settings.app.headline": "Indstillinger",
323 "settings.app.headlineAdvanced": "Advanced", 323 "settings.app.headlineAdvanced": "Advanced",
324 "settings.app.headlineAppearance": "Appearance", 324 "settings.app.headlineAppearance": "Appearance",
325 "settings.app.headlineGeneral": "General", 325 "settings.app.headlineGeneral": "General",
@@ -329,12 +329,13 @@
329 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 329 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
330 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 330 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.",
331 "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.", 331 "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.",
332 "settings.app.lockedPassword": "Password", 332 "settings.app.lockedPassword": "Adgangskode",
333 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 333 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
334 "settings.app.restartRequired": "Changes require restart", 334 "settings.app.restartRequired": "Changes require restart",
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
@@ -346,7 +347,7 @@
346 "settings.navigation.account": "Account", 347 "settings.navigation.account": "Account",
347 "settings.navigation.availableServices": "Available services", 348 "settings.navigation.availableServices": "Available services",
348 "settings.navigation.logout": "Logout", 349 "settings.navigation.logout": "Logout",
349 "settings.navigation.settings": "Settings", 350 "settings.navigation.settings": "Indstillinger",
350 "settings.navigation.supportFerdi": "Support Ferdi", 351 "settings.navigation.supportFerdi": "Support Ferdi",
351 "settings.navigation.team": "Manage Team", 352 "settings.navigation.team": "Manage Team",
352 "settings.navigation.yourServices": "Your services", 353 "settings.navigation.yourServices": "Your services",
@@ -366,9 +367,9 @@
366 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", 367 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added",
367 "settings.searchService": "Search service", 368 "settings.searchService": "Search service",
368 "settings.service.error.goBack": "Back to services", 369 "settings.service.error.goBack": "Back to services",
369 "settings.service.error.headline": "Error", 370 "settings.service.error.headline": "Fejl",
370 "settings.service.error.message": "Could not load service recipe.", 371 "settings.service.error.message": "Could not load service recipe.",
371 "settings.service.form.addServiceHeadline": "Add {name}", 372 "settings.service.form.addServiceHeadline": "Tilføj {name}",
372 "settings.service.form.availableServices": "Available services", 373 "settings.service.form.availableServices": "Available services",
373 "settings.service.form.customUrl": "Custom server", 374 "settings.service.form.customUrl": "Custom server",
374 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.", 375 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.",
@@ -391,12 +392,12 @@
391 "settings.service.form.headlineGeneral": "General", 392 "settings.service.form.headlineGeneral": "General",
392 "settings.service.form.headlineNotifications": "Notifications", 393 "settings.service.form.headlineNotifications": "Notifications",
393 "settings.service.form.icon": "Custom icon", 394 "settings.service.form.icon": "Custom icon",
394 "settings.service.form.iconDelete": "Delete", 395 "settings.service.form.iconDelete": "Slet",
395 "settings.service.form.iconUpload": "Drop your image, or click here", 396 "settings.service.form.iconUpload": "Drop your image, or click here",
396 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 397 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
397 "settings.service.form.indirectMessages": "Show message badge for all new messages", 398 "settings.service.form.indirectMessages": "Show message badge for all new messages",
398 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 399 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
399 "settings.service.form.name": "Name", 400 "settings.service.form.name": "Navn",
400 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 401 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
401 "settings.service.form.openUserCss": "Open user.css", 402 "settings.service.form.openUserCss": "Open user.css",
402 "settings.service.form.openUserJs": "Open user.js", 403 "settings.service.form.openUserJs": "Open user.js",
@@ -446,19 +447,19 @@
446 "settings.user.form.firstname": "First Name", 447 "settings.user.form.firstname": "First Name",
447 "settings.user.form.lastname": "Last Name", 448 "settings.user.form.lastname": "Last Name",
448 "settings.user.form.newPassword": "New password", 449 "settings.user.form.newPassword": "New password",
449 "settings.workspace.add.form.name": "Name", 450 "settings.workspace.add.form.name": "Navn",
450 "settings.workspace.add.form.submitButton": "Create workspace", 451 "settings.workspace.add.form.submitButton": "Create workspace",
451 "settings.workspace.form.buttonDelete": "Delete workspace", 452 "settings.workspace.form.buttonDelete": "Delete workspace",
452 "settings.workspace.form.buttonSave": "Save workspace", 453 "settings.workspace.form.buttonSave": "Save workspace",
453 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 454 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*",
454 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 455 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.",
455 "settings.workspace.form.name": "Name", 456 "settings.workspace.form.name": "Navn",
456 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", 457 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace",
457 "settings.workspace.form.yourWorkspaces": "Your workspaces", 458 "settings.workspace.form.yourWorkspaces": "Your workspaces",
458 "settings.workspaces.deletedInfo": "Workspace has been deleted", 459 "settings.workspaces.deletedInfo": "Workspace has been deleted",
459 "settings.workspaces.headline": "Your workspaces", 460 "settings.workspaces.headline": "Your workspaces",
460 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", 461 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.",
461 "settings.workspaces.tryReloadWorkspaces": "Try again", 462 "settings.workspaces.tryReloadWorkspaces": "Forg igen",
462 "settings.workspaces.updatedInfo": "Your changes have been saved", 463 "settings.workspaces.updatedInfo": "Your changes have been saved",
463 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", 464 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces",
464 "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.", 465 "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.",
@@ -470,7 +471,7 @@
470 "sidebar.muteApp": "Disable notifications & audio", 471 "sidebar.muteApp": "Disable notifications & audio",
471 "sidebar.openTodosDrawer": "Open Ferdi Todos", 472 "sidebar.openTodosDrawer": "Open Ferdi Todos",
472 "sidebar.openWorkspaceDrawer": "Open workspace drawer", 473 "sidebar.openWorkspaceDrawer": "Open workspace drawer",
473 "sidebar.settings": "Settings", 474 "sidebar.settings": "Indstillinger",
474 "sidebar.unmuteApp": "Enable notifications & audio", 475 "sidebar.unmuteApp": "Enable notifications & audio",
475 "signup.email.label": "Email address", 476 "signup.email.label": "Email address",
476 "signup.emailDuplicate": "A user with that email address already exists", 477 "signup.emailDuplicate": "A user with that email address already exists",
@@ -481,7 +482,7 @@
481 "signup.legal.privacy": "Privacy Statement", 482 "signup.legal.privacy": "Privacy Statement",
482 "signup.legal.terms": "Terms of service", 483 "signup.legal.terms": "Terms of service",
483 "signup.link.login": "Already have an account, sign in?", 484 "signup.link.login": "Already have an account, sign in?",
484 "signup.password.label": "Password", 485 "signup.password.label": "Adgangskode",
485 "signup.submit.label": "Create account", 486 "signup.submit.label": "Create account",
486 "subscription.bestValue": "Best value", 487 "subscription.bestValue": "Best value",
487 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 488 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
@@ -491,7 +492,7 @@
491 "subscription.interval.per": "per {interval}", 492 "subscription.interval.per": "per {interval}",
492 "subscription.interval.perMonth": "per month", 493 "subscription.interval.perMonth": "per month",
493 "subscription.interval.perMonthPerUser": "per month & user", 494 "subscription.interval.perMonthPerUser": "per month & user",
494 "subscription.planItem.upgradeAccount": "Upgrade Account", 495 "subscription.planItem.upgradeAccount": "Opgrader konto",
495 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", 496 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:",
496 "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!", 497 "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!",
497 "subscriptionPopup.buttonCancel": "Cancel", 498 "subscriptionPopup.buttonCancel": "Cancel",
@@ -500,7 +501,7 @@
500 "tabs.item.disableAudio": "Disable audio", 501 "tabs.item.disableAudio": "Disable audio",
501 "tabs.item.disableNotifications": "Disable notifications", 502 "tabs.item.disableNotifications": "Disable notifications",
502 "tabs.item.disableService": "Disable service", 503 "tabs.item.disableService": "Disable service",
503 "tabs.item.edit": "Edit", 504 "tabs.item.edit": "Rediger",
504 "tabs.item.enableAudio": "Enable audio", 505 "tabs.item.enableAudio": "Enable audio",
505 "tabs.item.enableNotification": "Enable notifications", 506 "tabs.item.enableNotification": "Enable notifications",
506 "tabs.item.enableService": "Enable service", 507 "tabs.item.enableService": "Enable service",
@@ -510,7 +511,7 @@
510 "validation.oneRequired": "At least one is required", 511 "validation.oneRequired": "At least one is required",
511 "validation.required": "{field} is required", 512 "validation.required": "{field} is required",
512 "validation.url": "{field} is not a valid URL", 513 "validation.url": "{field} is not a valid URL",
513 "webControls.back": "Back", 514 "webControls.back": "Tilbage",
514 "webControls.forward": "Forward", 515 "webControls.forward": "Forward",
515 "webControls.goHome": "Home", 516 "webControls.goHome": "Home",
516 "webControls.openInBrowser": "Open in Browser", 517 "webControls.openInBrowser": "Open in Browser",
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index fd36c91a7..da86f886e 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -5,11 +5,11 @@
5 "changeserver.headline": "Server wechseln", 5 "changeserver.headline": "Server wechseln",
6 "changeserver.label": "Server", 6 "changeserver.label": "Server",
7 "changeserver.submit": "Absenden", 7 "changeserver.submit": "Absenden",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Bitte gib eine gültige URL ein",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "Zusätzliche Einstellungen von Ferdi werden nicht gespeichert",
10 "connectionLostBanner.cta": "Dienst neu laden", 10 "connectionLostBanner.cta": "Dienst neu laden",
11 "connectionLostBanner.informationLink": "What happened?", 11 "connectionLostBanner.informationLink": "Was ist passiert?",
12 "connectionLostBanner.message": "Oh no! Ferdi lost the connection to {name}.", 12 "connectionLostBanner.message": "Oh nein! Ferdi hat die Verbindung zu {name} verloren.",
13 "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}", 13 "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}",
14 "feature.debugger.title": "Debug-Informationen veröffentlichen", 14 "feature.debugger.title": "Debug-Informationen veröffentlichen",
15 "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen", 15 "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen",
@@ -163,7 +163,7 @@
163 "menu.view.reloadFranz": "Ferdi neu laden", 163 "menu.view.reloadFranz": "Ferdi neu laden",
164 "menu.view.reloadService": "Dienst neu laden", 164 "menu.view.reloadService": "Dienst neu laden",
165 "menu.view.resetZoom": "Originalgröße", 165 "menu.view.resetZoom": "Originalgröße",
166 "menu.view.toggleDarkMode": "Toggle Dark Mode", 166 "menu.view.toggleDarkMode": "Dunkles Design umschalten",
167 "menu.view.toggleDevTools": "Entwicklertools anzeigen", 167 "menu.view.toggleDevTools": "Entwicklertools anzeigen",
168 "menu.view.toggleFullScreen": "Vollbildmodus umschalten", 168 "menu.view.toggleFullScreen": "Vollbildmodus umschalten",
169 "menu.view.toggleServiceDevTools": "Entwicklertools für Dienst anzeigen", 169 "menu.view.toggleServiceDevTools": "Entwicklertools für Dienst anzeigen",
@@ -189,7 +189,7 @@
189 "pricing.features.accountSync": "Konto-Synchronisierung", 189 "pricing.features.accountSync": "Konto-Synchronisierung",
190 "pricing.features.adFree": "Keine Werbung", 190 "pricing.features.adFree": "Keine Werbung",
191 "pricing.features.appDelays": "Keine unnötigen Unterbrechungen", 191 "pricing.features.appDelays": "Keine unnötigen Unterbrechungen",
192 "pricing.features.appDelaysEnabled": "Occasional Waiting Screens", 192 "pricing.features.appDelaysEnabled": "Gelegentliche Wartebildschirme",
193 "pricing.features.customWebsites": "Hinzufügen von eigenen Websites", 193 "pricing.features.customWebsites": "Hinzufügen von eigenen Websites",
194 "pricing.features.desktopNotifications": "Desktop Benachrichtigungen", 194 "pricing.features.desktopNotifications": "Desktop Benachrichtigungen",
195 "pricing.features.onPremise": "On-premise & andere Hosted Services", 195 "pricing.features.onPremise": "On-premise & andere Hosted Services",
@@ -279,15 +279,15 @@
279 "settings.app.buttonInstallUpdate": "Neu starten & Update installieren", 279 "settings.app.buttonInstallUpdate": "Neu starten & Update installieren",
280 "settings.app.buttonSearchForUpdate": "Nach Updates suchen", 280 "settings.app.buttonSearchForUpdate": "Nach Updates suchen",
281 "settings.app.cacheInfo": "Der Ferdi Cache belegt derzeit {size}.", 281 "settings.app.cacheInfo": "Der Ferdi Cache belegt derzeit {size}.",
282 "settings.app.cacheNotCleared": "Couldn't clear all cache", 282 "settings.app.cacheNotCleared": "Konnte nicht alle App-Daten löschen",
283 "settings.app.currentVersion": "Aktuelle Version:", 283 "settings.app.currentVersion": "Aktuelle Version:",
284 "settings.app.form.accentColor": "Akzentfarbe", 284 "settings.app.form.accentColor": "Akzentfarbe",
285 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", 285 "settings.app.form.adaptableDarkMode": "Synchronisiere den Dunkelmodus mit den Einstellungen meines Betriebssystems",
286 "settings.app.form.autoLaunchInBackground": "Im Hintergrund öffnen", 286 "settings.app.form.autoLaunchInBackground": "Im Hintergrund öffnen",
287 "settings.app.form.autoLaunchOnStart": "Ferdi beim Systemstart ausführen", 287 "settings.app.form.autoLaunchOnStart": "Ferdi beim Systemstart ausführen",
288 "settings.app.form.automaticUpdates": "Enable updates", 288 "settings.app.form.automaticUpdates": "Updates aktivieren",
289 "settings.app.form.beta": "Beta-Versionen einbeziehen", 289 "settings.app.form.beta": "Beta-Versionen einbeziehen",
290 "settings.app.form.customTodoServer": "Custom Todo Server", 290 "settings.app.form.customTodoServer": "Eigener Todo Server",
291 "settings.app.form.darkMode": "Dunkles Design verwenden", 291 "settings.app.form.darkMode": "Dunkles Design verwenden",
292 "settings.app.form.enableGPUAcceleration": "Hardwarebeschleunigung aktivieren", 292 "settings.app.form.enableGPUAcceleration": "Hardwarebeschleunigung aktivieren",
293 "settings.app.form.enableLock": "Passwort-Sperre aktivieren", 293 "settings.app.form.enableLock": "Passwort-Sperre aktivieren",
@@ -295,7 +295,7 @@
295 "settings.app.form.enableSystemTray": "Ferdi im Infobereich anzeigen", 295 "settings.app.form.enableSystemTray": "Ferdi im Infobereich anzeigen",
296 "settings.app.form.enableTodos": "Ferdi Todos aktivieren", 296 "settings.app.form.enableTodos": "Ferdi Todos aktivieren",
297 "settings.app.form.hibernate": "\"Service Hibernation\" aktivieren", 297 "settings.app.form.hibernate": "\"Service Hibernation\" aktivieren",
298 "settings.app.form.hibernateOnStartup": "Keep services in hibernation on startup", 298 "settings.app.form.hibernateOnStartup": "Behalte Dienste im Ruhezustand beim Start",
299 "settings.app.form.hibernationStrategy": "\"Service Hibernation\"-Strategie", 299 "settings.app.form.hibernationStrategy": "\"Service Hibernation\"-Strategie",
300 "settings.app.form.iconSize": "Service Symbolgröße", 300 "settings.app.form.iconSize": "Service Symbolgröße",
301 "settings.app.form.inactivityLock": "Nach Inaktivität sperren", 301 "settings.app.form.inactivityLock": "Nach Inaktivität sperren",
@@ -304,7 +304,7 @@
304 "settings.app.form.lockPassword": "Passwort", 304 "settings.app.form.lockPassword": "Passwort",
305 "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren", 305 "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren",
306 "settings.app.form.navigationBarBehaviour": "Verhalten der Navigationsleiste", 306 "settings.app.form.navigationBarBehaviour": "Verhalten der Navigationsleiste",
307 "settings.app.form.predefinedTodoServer": "Todo Server", 307 "settings.app.form.predefinedTodoServer": "Todo-Server",
308 "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen", 308 "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen",
309 "settings.app.form.reloadAfterResume": "Ferdi nach dem aufwachen aus dem Standby neu laden", 309 "settings.app.form.reloadAfterResume": "Ferdi nach dem aufwachen aus dem Standby neu laden",
310 "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird", 310 "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird",
@@ -314,9 +314,9 @@
314 "settings.app.form.sentry": "Telemetrie-Daten senden", 314 "settings.app.form.sentry": "Telemetrie-Daten senden",
315 "settings.app.form.serviceRibbonWidth": "Größe der Sidebar", 315 "settings.app.form.serviceRibbonWidth": "Größe der Sidebar",
316 "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen", 316 "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen",
317 "settings.app.form.showDragArea": "Show draggable area on window", 317 "settings.app.form.showDragArea": "Zeige ziehbare Fläche im Fenster",
318 "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", 318 "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind",
319 "settings.app.form.startMinimized": "Start minimized", 319 "settings.app.form.startMinimized": "Minimiert starten",
320 "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren", 320 "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren",
321 "settings.app.form.useTouchIdToUnlock": "Verwenden von Touch ID zum Entsperren von Ferdi erlauben", 321 "settings.app.form.useTouchIdToUnlock": "Verwenden von Touch ID zum Entsperren von Ferdi erlauben",
322 "settings.app.headline": "Einstellungen", 322 "settings.app.headline": "Einstellungen",
@@ -325,7 +325,7 @@
325 "settings.app.headlineGeneral": "Allgemeines", 325 "settings.app.headlineGeneral": "Allgemeines",
326 "settings.app.headlineLanguage": "Sprache", 326 "settings.app.headlineLanguage": "Sprache",
327 "settings.app.headlineUpdates": "Updates", 327 "settings.app.headlineUpdates": "Updates",
328 "settings.app.hibernateInfo": "Standardmäßig öffnet Ferdi alle deine Dienste im Hintergrund, sodass diese bereit sind, wenn du sie verwenden möchtest. \"Service Hibernation\" wird deine Dienste nach einer bestimmten Zeitspanne schließen. Dies ist nützlich, um RAM zu speichern oder Dienste davon abzuhalten, deinen Computer zu verlangsamen.", 328 "settings.app.hibernateInfo": "Standardmäßig öffnet Ferdi alle deine Dienste im Hintergrund, sodass diese bereit sind, wenn du sie verwenden möchtest. \"Service Hibernation\" wird deine Dienste nach einer bestimmten Zeitspanne schließen. Dies ist nützlich, um RAM zu sparen oder Dienste davon abzuhalten, deinen Computer zu verlangsamen.",
329 "settings.app.inactivityLockInfo": "Minuten der Inaktivität, nach denen Ferdi automatisch sperren soll. Verwenden Sie 0, um dies zu deaktivieren", 329 "settings.app.inactivityLockInfo": "Minuten der Inaktivität, nach denen Ferdi automatisch sperren soll. Verwenden Sie 0, um dies zu deaktivieren",
330 "settings.app.languageDisclaimer": "Offizielle Übersetzungen: Englisch & Deutsch. Alle anderen Sprachen sind Übersetzungen der Ferdi Community.", 330 "settings.app.languageDisclaimer": "Offizielle Übersetzungen: Englisch & Deutsch. Alle anderen Sprachen sind Übersetzungen der Ferdi Community.",
331 "settings.app.lockInfo": "Die Passwort-Sperre erlaubt es dir, deine Nachrichten zu schützen.\nMit der Passwort-Sperre wirst du beim Starten von Ferdi und wenn du das Programm manuell sperrst, darum gebeten, dein Passwort einzugeben.\nDu kannst Ferdi über das Sperrsymbol in der unteren linken Ecke oder dem Shortcut CMD/CTRL+Shift+L sperren.", 331 "settings.app.lockInfo": "Die Passwort-Sperre erlaubt es dir, deine Nachrichten zu schützen.\nMit der Passwort-Sperre wirst du beim Starten von Ferdi und wenn du das Programm manuell sperrst, darum gebeten, dein Passwort einzugeben.\nDu kannst Ferdi über das Sperrsymbol in der unteren linken Ecke oder dem Shortcut CMD/CTRL+Shift+L sperren.",
@@ -335,8 +335,9 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi verwendet den eingebauten Rechtschreibprüfer deines Macs, um nach Tippfehlern zu suchen. Wenn du die zu überprüfenden Sprachen ändern möchtest, kannst du das in deinen Systemeinstellungen tun.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "Dieser Server wird für die \"Ferdi Todo\"-Funktion verwendet.",
340 "settings.app.translationHelp": "Hilf uns, Ferdi in Deine Sprache zu übersetzen.", 341 "settings.app.translationHelp": "Hilf uns, Ferdi in Deine Sprache zu übersetzen.",
341 "settings.app.universalDarkModeInfo": "Universeller Dark Mode versucht dynamisch Dienste abzudunkeln, die vom normalen Dark Mode noch nicht unterstützt werden.", 342 "settings.app.universalDarkModeInfo": "Universeller Dark Mode versucht dynamisch Dienste abzudunkeln, die vom normalen Dark Mode noch nicht unterstützt werden.",
342 "settings.app.updateStatusAvailable": "Update verfügbar, lädt herunter ...", 343 "settings.app.updateStatusAvailable": "Update verfügbar, lädt herunter ...",
@@ -374,12 +375,12 @@
374 "settings.service.form.customUrlPremiumInfo": "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst Du ein Ferdi Premium Konto.", 375 "settings.service.form.customUrlPremiumInfo": "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst Du ein Ferdi Premium Konto.",
375 "settings.service.form.customUrlUpgradeAccount": "Dein Konto upgraden", 376 "settings.service.form.customUrlUpgradeAccount": "Dein Konto upgraden",
376 "settings.service.form.customUrlValidationError": "Dein {name}-Server konnte nicht verifiziert werden.", 377 "settings.service.form.customUrlValidationError": "Dein {name}-Server konnte nicht verifiziert werden.",
377 "settings.service.form.darkReaderBrightness": "Dark Reader Brightness", 378 "settings.service.form.darkReaderBrightness": "Dark Reader Helligkeit",
378 "settings.service.form.darkReaderContrast": "Dark Reader Contrast", 379 "settings.service.form.darkReaderContrast": "Dark Reader Kontrast",
379 "settings.service.form.darkReaderSepia": "Dark Reader Sepia", 380 "settings.service.form.darkReaderSepia": "Dark Reader Sepia",
380 "settings.service.form.deleteButton": "Dienst löschen", 381 "settings.service.form.deleteButton": "Dienst löschen",
381 "settings.service.form.disableHibernation": "Disable hibernation", 382 "settings.service.form.disableHibernation": "Ruhezustand deaktivieren",
382 "settings.service.form.disableHibernationInfo": "You currently have hibernation enabled but you can disable hibernation for individual services using this option.", 383 "settings.service.form.disableHibernationInfo": "Du hast derzeit den Ruhezustand aktiviert, aber du kannst den Ruhezustand für einzelne Dienste mit dieser Option deaktivieren.",
383 "settings.service.form.editServiceHeadline": "{name} bearbeiten", 384 "settings.service.form.editServiceHeadline": "{name} bearbeiten",
384 "settings.service.form.enableAudio": "Audio aktivieren", 385 "settings.service.form.enableAudio": "Audio aktivieren",
385 "settings.service.form.enableBadge": "Nachrichten-Badge anzeigen", 386 "settings.service.form.enableBadge": "Nachrichten-Badge anzeigen",
@@ -387,7 +388,7 @@
387 "settings.service.form.enableNotification": "Benachrichtigungen aktivieren", 388 "settings.service.form.enableNotification": "Benachrichtigungen aktivieren",
388 "settings.service.form.enableService": "Dienst aktivieren", 389 "settings.service.form.enableService": "Dienst aktivieren",
389 "settings.service.form.headlineBadges": "Nachrichten-Badge", 390 "settings.service.form.headlineBadges": "Nachrichten-Badge",
390 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", 391 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Einstellungen",
391 "settings.service.form.headlineGeneral": "Allgemeines", 392 "settings.service.form.headlineGeneral": "Allgemeines",
392 "settings.service.form.headlineNotifications": "Benachrichtigungen", 393 "settings.service.form.headlineNotifications": "Benachrichtigungen",
393 "settings.service.form.icon": "Icon", 394 "settings.service.form.icon": "Icon",
@@ -429,11 +430,11 @@
429 "settings.supportFerdi.openCollective": "Unterstütze unsere Open Collective Kampagne", 430 "settings.supportFerdi.openCollective": "Unterstütze unsere Open Collective Kampagne",
430 "settings.supportFerdi.share": "Sag es deinen Freunden", 431 "settings.supportFerdi.share": "Sag es deinen Freunden",
431 "settings.supportFerdi.title": "Magst du Ferdi? Teile die Liebe!", 432 "settings.supportFerdi.title": "Magst du Ferdi? Teile die Liebe!",
432 "settings.team.contentHeadline": "Franz Team Management", 433 "settings.team.contentHeadline": "Franz Team-Management",
433 "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.", 434 "settings.team.copy": "Mit Franz's Team Management kannst du Franz Abonnements für mehrere Benutzer verwalten. Bitte beachte, dass dir ein Franz Premium-Abonnement keine Vorteile bei der Nutzung von Ferdi bringt: Der einzige Grund, warum du noch Zugriff auf das Team Management hast, ist, damit du weiterhin Franz Teams verwalten kannst und damit du keine Funktionalität bei der Verwaltung deines Kontos verlierst.",
434 "settings.team.headline": "Team", 435 "settings.team.headline": "Team",
435 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", 436 "settings.team.intro": "Du nutzt derzeit Franz Server und hast deshalb Zugriff auf das Team Management.",
436 "settings.team.manageAction": "Manage your Team on meetfranz.com", 437 "settings.team.manageAction": "Verwalte dein Team auf meetfranz.com",
437 "settings.team.teamsUnavailable": "Teams sind nicht verfügbar", 438 "settings.team.teamsUnavailable": "Teams sind nicht verfügbar",
438 "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.", 439 "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.",
439 "settings.team.upgradeAction": "Account Upgrade durchführen", 440 "settings.team.upgradeAction": "Account Upgrade durchführen",
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index 244ceb521..ce78f34a3 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -285,104 +285,104 @@
285 "defaultMessage": "!!!Locked", 285 "defaultMessage": "!!!Locked",
286 "end": { 286 "end": {
287 "column": 3, 287 "column": 3,
288 "line": 22 288 "line": 23
289 }, 289 },
290 "file": "src/components/auth/Locked.js", 290 "file": "src/components/auth/Locked.js",
291 "id": "locked.headline", 291 "id": "locked.headline",
292 "start": { 292 "start": {
293 "column": 12, 293 "column": 12,
294 "line": 19 294 "line": 20
295 } 295 }
296 }, 296 },
297 { 297 {
298 "defaultMessage": "!!!Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 298 "defaultMessage": "!!!Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
299 "end": { 299 "end": {
300 "column": 3, 300 "column": 3,
301 "line": 26 301 "line": 27
302 }, 302 },
303 "file": "src/components/auth/Locked.js", 303 "file": "src/components/auth/Locked.js",
304 "id": "locked.info", 304 "id": "locked.info",
305 "start": { 305 "start": {
306 "column": 8, 306 "column": 8,
307 "line": 23 307 "line": 24
308 } 308 }
309 }, 309 },
310 { 310 {
311 "defaultMessage": "!!!Unlock with Touch ID", 311 "defaultMessage": "!!!Unlock with Touch ID",
312 "end": { 312 "end": {
313 "column": 3, 313 "column": 3,
314 "line": 30 314 "line": 31
315 }, 315 },
316 "file": "src/components/auth/Locked.js", 316 "file": "src/components/auth/Locked.js",
317 "id": "locked.touchId", 317 "id": "locked.touchId",
318 "start": { 318 "start": {
319 "column": 11, 319 "column": 11,
320 "line": 27 320 "line": 28
321 } 321 }
322 }, 322 },
323 { 323 {
324 "defaultMessage": "!!!unlock via Touch ID", 324 "defaultMessage": "!!!unlock via Touch ID",
325 "end": { 325 "end": {
326 "column": 3, 326 "column": 3,
327 "line": 34 327 "line": 35
328 }, 328 },
329 "file": "src/components/auth/Locked.js", 329 "file": "src/components/auth/Locked.js",
330 "id": "locked.touchIdPrompt", 330 "id": "locked.touchIdPrompt",
331 "start": { 331 "start": {
332 "column": 17, 332 "column": 17,
333 "line": 31 333 "line": 32
334 } 334 }
335 }, 335 },
336 { 336 {
337 "defaultMessage": "!!!Password", 337 "defaultMessage": "!!!Password",
338 "end": { 338 "end": {
339 "column": 3, 339 "column": 3,
340 "line": 38 340 "line": 39
341 }, 341 },
342 "file": "src/components/auth/Locked.js", 342 "file": "src/components/auth/Locked.js",
343 "id": "locked.password.label", 343 "id": "locked.password.label",
344 "start": { 344 "start": {
345 "column": 17, 345 "column": 17,
346 "line": 35 346 "line": 36
347 } 347 }
348 }, 348 },
349 { 349 {
350 "defaultMessage": "!!!Unlock", 350 "defaultMessage": "!!!Unlock",
351 "end": { 351 "end": {
352 "column": 3, 352 "column": 3,
353 "line": 42 353 "line": 43
354 }, 354 },
355 "file": "src/components/auth/Locked.js", 355 "file": "src/components/auth/Locked.js",
356 "id": "locked.submit.label", 356 "id": "locked.submit.label",
357 "start": { 357 "start": {
358 "column": 21, 358 "column": 21,
359 "line": 39 359 "line": 40
360 } 360 }
361 }, 361 },
362 { 362 {
363 "defaultMessage": "!!!Unlock with Password", 363 "defaultMessage": "!!!Unlock with Password",
364 "end": { 364 "end": {
365 "column": 3, 365 "column": 3,
366 "line": 46 366 "line": 47
367 }, 367 },
368 "file": "src/components/auth/Locked.js", 368 "file": "src/components/auth/Locked.js",
369 "id": "locked.unlockWithPassword", 369 "id": "locked.unlockWithPassword",
370 "start": { 370 "start": {
371 "column": 22, 371 "column": 22,
372 "line": 43 372 "line": 44
373 } 373 }
374 }, 374 },
375 { 375 {
376 "defaultMessage": "!!!Password invalid", 376 "defaultMessage": "!!!Password invalid",
377 "end": { 377 "end": {
378 "column": 3, 378 "column": 3,
379 "line": 50 379 "line": 51
380 }, 380 },
381 "file": "src/components/auth/Locked.js", 381 "file": "src/components/auth/Locked.js",
382 "id": "locked.invalidCredentials", 382 "id": "locked.invalidCredentials",
383 "start": { 383 "start": {
384 "column": 22, 384 "column": 22,
385 "line": 47 385 "line": 48
386 } 386 }
387 } 387 }
388 ], 388 ],
@@ -2483,364 +2483,364 @@
2483 "defaultMessage": "!!!Save service", 2483 "defaultMessage": "!!!Save service",
2484 "end": { 2484 "end": {
2485 "column": 3, 2485 "column": 3,
2486 "line": 28 2486 "line": 30
2487 }, 2487 },
2488 "file": "src/components/settings/services/EditServiceForm.js", 2488 "file": "src/components/settings/services/EditServiceForm.js",
2489 "id": "settings.service.form.saveButton", 2489 "id": "settings.service.form.saveButton",
2490 "start": { 2490 "start": {
2491 "column": 15, 2491 "column": 15,
2492 "line": 25 2492 "line": 27
2493 } 2493 }
2494 }, 2494 },
2495 { 2495 {
2496 "defaultMessage": "!!!Delete Service", 2496 "defaultMessage": "!!!Delete Service",
2497 "end": { 2497 "end": {
2498 "column": 3, 2498 "column": 3,
2499 "line": 32 2499 "line": 34
2500 }, 2500 },
2501 "file": "src/components/settings/services/EditServiceForm.js", 2501 "file": "src/components/settings/services/EditServiceForm.js",
2502 "id": "settings.service.form.deleteButton", 2502 "id": "settings.service.form.deleteButton",
2503 "start": { 2503 "start": {
2504 "column": 17, 2504 "column": 17,
2505 "line": 29 2505 "line": 31
2506 } 2506 }
2507 }, 2507 },
2508 { 2508 {
2509 "defaultMessage": "!!!Open darkmode.css", 2509 "defaultMessage": "!!!Open darkmode.css",
2510 "end": { 2510 "end": {
2511 "column": 3, 2511 "column": 3,
2512 "line": 36 2512 "line": 38
2513 }, 2513 },
2514 "file": "src/components/settings/services/EditServiceForm.js", 2514 "file": "src/components/settings/services/EditServiceForm.js",
2515 "id": "settings.service.form.openDarkmodeCss", 2515 "id": "settings.service.form.openDarkmodeCss",
2516 "start": { 2516 "start": {
2517 "column": 19, 2517 "column": 19,
2518 "line": 33 2518 "line": 35
2519 } 2519 }
2520 }, 2520 },
2521 { 2521 {
2522 "defaultMessage": "!!!Open user.css", 2522 "defaultMessage": "!!!Open user.css",
2523 "end": { 2523 "end": {
2524 "column": 3, 2524 "column": 3,
2525 "line": 40 2525 "line": 42
2526 }, 2526 },
2527 "file": "src/components/settings/services/EditServiceForm.js", 2527 "file": "src/components/settings/services/EditServiceForm.js",
2528 "id": "settings.service.form.openUserCss", 2528 "id": "settings.service.form.openUserCss",
2529 "start": { 2529 "start": {
2530 "column": 15, 2530 "column": 15,
2531 "line": 37 2531 "line": 39
2532 } 2532 }
2533 }, 2533 },
2534 { 2534 {
2535 "defaultMessage": "!!!Open user.js", 2535 "defaultMessage": "!!!Open user.js",
2536 "end": { 2536 "end": {
2537 "column": 3, 2537 "column": 3,
2538 "line": 44 2538 "line": 46
2539 }, 2539 },
2540 "file": "src/components/settings/services/EditServiceForm.js", 2540 "file": "src/components/settings/services/EditServiceForm.js",
2541 "id": "settings.service.form.openUserJs", 2541 "id": "settings.service.form.openUserJs",
2542 "start": { 2542 "start": {
2543 "column": 14, 2543 "column": 14,
2544 "line": 41 2544 "line": 43
2545 } 2545 }
2546 }, 2546 },
2547 { 2547 {
2548 "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", 2548 "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
2549 "end": { 2549 "end": {
2550 "column": 3, 2550 "column": 3,
2551 "line": 48 2551 "line": 50
2552 }, 2552 },
2553 "file": "src/components/settings/services/EditServiceForm.js", 2553 "file": "src/components/settings/services/EditServiceForm.js",
2554 "id": "settings.service.form.recipeFileInfo", 2554 "id": "settings.service.form.recipeFileInfo",
2555 "start": { 2555 "start": {
2556 "column": 18, 2556 "column": 18,
2557 "line": 45 2557 "line": 47
2558 } 2558 }
2559 }, 2559 },
2560 { 2560 {
2561 "defaultMessage": "!!!Available services", 2561 "defaultMessage": "!!!Available services",
2562 "end": { 2562 "end": {
2563 "column": 3, 2563 "column": 3,
2564 "line": 52 2564 "line": 54
2565 }, 2565 },
2566 "file": "src/components/settings/services/EditServiceForm.js", 2566 "file": "src/components/settings/services/EditServiceForm.js",
2567 "id": "settings.service.form.availableServices", 2567 "id": "settings.service.form.availableServices",
2568 "start": { 2568 "start": {
2569 "column": 21, 2569 "column": 21,
2570 "line": 49 2570 "line": 51
2571 } 2571 }
2572 }, 2572 },
2573 { 2573 {
2574 "defaultMessage": "!!!Your services", 2574 "defaultMessage": "!!!Your services",
2575 "end": { 2575 "end": {
2576 "column": 3, 2576 "column": 3,
2577 "line": 56 2577 "line": 58
2578 }, 2578 },
2579 "file": "src/components/settings/services/EditServiceForm.js", 2579 "file": "src/components/settings/services/EditServiceForm.js",
2580 "id": "settings.service.form.yourServices", 2580 "id": "settings.service.form.yourServices",
2581 "start": { 2581 "start": {
2582 "column": 16, 2582 "column": 16,
2583 "line": 53 2583 "line": 55
2584 } 2584 }
2585 }, 2585 },
2586 { 2586 {
2587 "defaultMessage": "!!!Add {name}", 2587 "defaultMessage": "!!!Add {name}",
2588 "end": { 2588 "end": {
2589 "column": 3, 2589 "column": 3,
2590 "line": 60 2590 "line": 62
2591 }, 2591 },
2592 "file": "src/components/settings/services/EditServiceForm.js", 2592 "file": "src/components/settings/services/EditServiceForm.js",
2593 "id": "settings.service.form.addServiceHeadline", 2593 "id": "settings.service.form.addServiceHeadline",
2594 "start": { 2594 "start": {
2595 "column": 22, 2595 "column": 22,
2596 "line": 57 2596 "line": 59
2597 } 2597 }
2598 }, 2598 },
2599 { 2599 {
2600 "defaultMessage": "!!!Edit {name}", 2600 "defaultMessage": "!!!Edit {name}",
2601 "end": { 2601 "end": {
2602 "column": 3, 2602 "column": 3,
2603 "line": 64 2603 "line": 66
2604 }, 2604 },
2605 "file": "src/components/settings/services/EditServiceForm.js", 2605 "file": "src/components/settings/services/EditServiceForm.js",
2606 "id": "settings.service.form.editServiceHeadline", 2606 "id": "settings.service.form.editServiceHeadline",
2607 "start": { 2607 "start": {
2608 "column": 23, 2608 "column": 23,
2609 "line": 61 2609 "line": 63
2610 } 2610 }
2611 }, 2611 },
2612 { 2612 {
2613 "defaultMessage": "!!!Hosted", 2613 "defaultMessage": "!!!Hosted",
2614 "end": { 2614 "end": {
2615 "column": 3, 2615 "column": 3,
2616 "line": 68 2616 "line": 70
2617 }, 2617 },
2618 "file": "src/components/settings/services/EditServiceForm.js", 2618 "file": "src/components/settings/services/EditServiceForm.js",
2619 "id": "settings.service.form.tabHosted", 2619 "id": "settings.service.form.tabHosted",
2620 "start": { 2620 "start": {
2621 "column": 13, 2621 "column": 13,
2622 "line": 65 2622 "line": 67
2623 } 2623 }
2624 }, 2624 },
2625 { 2625 {
2626 "defaultMessage": "!!!Self hosted ⭐️", 2626 "defaultMessage": "!!!Self hosted ⭐️",
2627 "end": { 2627 "end": {
2628 "column": 3, 2628 "column": 3,
2629 "line": 72 2629 "line": 74
2630 }, 2630 },
2631 "file": "src/components/settings/services/EditServiceForm.js", 2631 "file": "src/components/settings/services/EditServiceForm.js",
2632 "id": "settings.service.form.tabOnPremise", 2632 "id": "settings.service.form.tabOnPremise",
2633 "start": { 2633 "start": {
2634 "column": 16, 2634 "column": 16,
2635 "line": 69 2635 "line": 71
2636 } 2636 }
2637 }, 2637 },
2638 { 2638 {
2639 "defaultMessage": "!!!Use the hosted {name} service.", 2639 "defaultMessage": "!!!Use the hosted {name} service.",
2640 "end": { 2640 "end": {
2641 "column": 3, 2641 "column": 3,
2642 "line": 76 2642 "line": 78
2643 }, 2643 },
2644 "file": "src/components/settings/services/EditServiceForm.js", 2644 "file": "src/components/settings/services/EditServiceForm.js",
2645 "id": "settings.service.form.useHostedService", 2645 "id": "settings.service.form.useHostedService",
2646 "start": { 2646 "start": {
2647 "column": 20, 2647 "column": 20,
2648 "line": 73 2648 "line": 75
2649 } 2649 }
2650 }, 2650 },
2651 { 2651 {
2652 "defaultMessage": "!!!Could not validate custom {name} server.", 2652 "defaultMessage": "!!!Could not validate custom {name} server.",
2653 "end": { 2653 "end": {
2654 "column": 3, 2654 "column": 3,
2655 "line": 80 2655 "line": 82
2656 }, 2656 },
2657 "file": "src/components/settings/services/EditServiceForm.js", 2657 "file": "src/components/settings/services/EditServiceForm.js",
2658 "id": "settings.service.form.customUrlValidationError", 2658 "id": "settings.service.form.customUrlValidationError",
2659 "start": { 2659 "start": {
2660 "column": 28, 2660 "column": 28,
2661 "line": 77 2661 "line": 79
2662 } 2662 }
2663 }, 2663 },
2664 { 2664 {
2665 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.", 2665 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.",
2666 "end": { 2666 "end": {
2667 "column": 3, 2667 "column": 3,
2668 "line": 84 2668 "line": 86
2669 }, 2669 },
2670 "file": "src/components/settings/services/EditServiceForm.js", 2670 "file": "src/components/settings/services/EditServiceForm.js",
2671 "id": "settings.service.form.customUrlPremiumInfo", 2671 "id": "settings.service.form.customUrlPremiumInfo",
2672 "start": { 2672 "start": {
2673 "column": 24, 2673 "column": 24,
2674 "line": 81 2674 "line": 83
2675 } 2675 }
2676 }, 2676 },
2677 { 2677 {
2678 "defaultMessage": "!!!Upgrade your account", 2678 "defaultMessage": "!!!Upgrade your account",
2679 "end": { 2679 "end": {
2680 "column": 3, 2680 "column": 3,
2681 "line": 88 2681 "line": 90
2682 }, 2682 },
2683 "file": "src/components/settings/services/EditServiceForm.js", 2683 "file": "src/components/settings/services/EditServiceForm.js",
2684 "id": "settings.service.form.customUrlUpgradeAccount", 2684 "id": "settings.service.form.customUrlUpgradeAccount",
2685 "start": { 2685 "start": {
2686 "column": 27, 2686 "column": 27,
2687 "line": 85 2687 "line": 87
2688 } 2688 }
2689 }, 2689 },
2690 { 2690 {
2691 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 2691 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
2692 "end": { 2692 "end": {
2693 "column": 3, 2693 "column": 3,
2694 "line": 92 2694 "line": 94
2695 }, 2695 },
2696 "file": "src/components/settings/services/EditServiceForm.js", 2696 "file": "src/components/settings/services/EditServiceForm.js",
2697 "id": "settings.service.form.indirectMessageInfo", 2697 "id": "settings.service.form.indirectMessageInfo",
2698 "start": { 2698 "start": {
2699 "column": 23, 2699 "column": 23,
2700 "line": 89 2700 "line": 91
2701 } 2701 }
2702 }, 2702 },
2703 { 2703 {
2704 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", 2704 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted",
2705 "end": { 2705 "end": {
2706 "column": 3, 2706 "column": 3,
2707 "line": 96 2707 "line": 98
2708 }, 2708 },
2709 "file": "src/components/settings/services/EditServiceForm.js", 2709 "file": "src/components/settings/services/EditServiceForm.js",
2710 "id": "settings.service.form.isMutedInfo", 2710 "id": "settings.service.form.isMutedInfo",
2711 "start": { 2711 "start": {
2712 "column": 15, 2712 "column": 15,
2713 "line": 93 2713 "line": 95
2714 } 2714 }
2715 }, 2715 },
2716 { 2716 {
2717 "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.", 2717 "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.",
2718 "end": { 2718 "end": {
2719 "column": 3, 2719 "column": 3,
2720 "line": 100 2720 "line": 102
2721 }, 2721 },
2722 "file": "src/components/settings/services/EditServiceForm.js", 2722 "file": "src/components/settings/services/EditServiceForm.js",
2723 "id": "settings.service.form.disableHibernationInfo", 2723 "id": "settings.service.form.disableHibernationInfo",
2724 "start": { 2724 "start": {
2725 "column": 26, 2725 "column": 26,
2726 "line": 97 2726 "line": 99
2727 } 2727 }
2728 }, 2728 },
2729 { 2729 {
2730 "defaultMessage": "!!!Notifications", 2730 "defaultMessage": "!!!Notifications",
2731 "end": { 2731 "end": {
2732 "column": 3, 2732 "column": 3,
2733 "line": 104 2733 "line": 106
2734 }, 2734 },
2735 "file": "src/components/settings/services/EditServiceForm.js", 2735 "file": "src/components/settings/services/EditServiceForm.js",
2736 "id": "settings.service.form.headlineNotifications", 2736 "id": "settings.service.form.headlineNotifications",
2737 "start": { 2737 "start": {
2738 "column": 25, 2738 "column": 25,
2739 "line": 101 2739 "line": 103
2740 } 2740 }
2741 }, 2741 },
2742 { 2742 {
2743 "defaultMessage": "!!!Unread message badges", 2743 "defaultMessage": "!!!Unread message badges",
2744 "end": { 2744 "end": {
2745 "column": 3, 2745 "column": 3,
2746 "line": 108 2746 "line": 110
2747 }, 2747 },
2748 "file": "src/components/settings/services/EditServiceForm.js", 2748 "file": "src/components/settings/services/EditServiceForm.js",
2749 "id": "settings.service.form.headlineBadges", 2749 "id": "settings.service.form.headlineBadges",
2750 "start": { 2750 "start": {
2751 "column": 18, 2751 "column": 18,
2752 "line": 105 2752 "line": 107
2753 } 2753 }
2754 }, 2754 },
2755 { 2755 {
2756 "defaultMessage": "!!!General", 2756 "defaultMessage": "!!!General",
2757 "end": { 2757 "end": {
2758 "column": 3, 2758 "column": 3,
2759 "line": 112 2759 "line": 114
2760 }, 2760 },
2761 "file": "src/components/settings/services/EditServiceForm.js", 2761 "file": "src/components/settings/services/EditServiceForm.js",
2762 "id": "settings.service.form.headlineGeneral", 2762 "id": "settings.service.form.headlineGeneral",
2763 "start": { 2763 "start": {
2764 "column": 19, 2764 "column": 19,
2765 "line": 109 2765 "line": 111
2766 } 2766 }
2767 }, 2767 },
2768 { 2768 {
2769 "defaultMessage": "!!!Dark Reader Settings", 2769 "defaultMessage": "!!!Dark Reader Settings",
2770 "end": { 2770 "end": {
2771 "column": 3, 2771 "column": 3,
2772 "line": 116 2772 "line": 118
2773 }, 2773 },
2774 "file": "src/components/settings/services/EditServiceForm.js", 2774 "file": "src/components/settings/services/EditServiceForm.js",
2775 "id": "settings.service.form.headlineDarkReaderSettings", 2775 "id": "settings.service.form.headlineDarkReaderSettings",
2776 "start": { 2776 "start": {
2777 "column": 30, 2777 "column": 30,
2778 "line": 113 2778 "line": 115
2779 } 2779 }
2780 }, 2780 },
2781 { 2781 {
2782 "defaultMessage": "!!!Delete", 2782 "defaultMessage": "!!!Delete",
2783 "end": { 2783 "end": {
2784 "column": 3, 2784 "column": 3,
2785 "line": 120 2785 "line": 122
2786 }, 2786 },
2787 "file": "src/components/settings/services/EditServiceForm.js", 2787 "file": "src/components/settings/services/EditServiceForm.js",
2788 "id": "settings.service.form.iconDelete", 2788 "id": "settings.service.form.iconDelete",
2789 "start": { 2789 "start": {
2790 "column": 14, 2790 "column": 14,
2791 "line": 117 2791 "line": 119
2792 } 2792 }
2793 }, 2793 },
2794 { 2794 {
2795 "defaultMessage": "!!!Drop your image, or click here", 2795 "defaultMessage": "!!!Drop your image, or click here",
2796 "end": { 2796 "end": {
2797 "column": 3, 2797 "column": 3,
2798 "line": 124 2798 "line": 126
2799 }, 2799 },
2800 "file": "src/components/settings/services/EditServiceForm.js", 2800 "file": "src/components/settings/services/EditServiceForm.js",
2801 "id": "settings.service.form.iconUpload", 2801 "id": "settings.service.form.iconUpload",
2802 "start": { 2802 "start": {
2803 "column": 14, 2803 "column": 14,
2804 "line": 121 2804 "line": 123
2805 } 2805 }
2806 }, 2806 },
2807 { 2807 {
2808 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", 2808 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings",
2809 "end": { 2809 "end": {
2810 "column": 3, 2810 "column": 3,
2811 "line": 128 2811 "line": 130
2812 }, 2812 },
2813 "file": "src/components/settings/services/EditServiceForm.js", 2813 "file": "src/components/settings/services/EditServiceForm.js",
2814 "id": "settings.service.form.proxy.headline", 2814 "id": "settings.service.form.proxy.headline",
2815 "start": { 2815 "start": {
2816 "column": 17, 2816 "column": 17,
2817 "line": 125 2817 "line": 127
2818 } 2818 }
2819 }, 2819 },
2820 { 2820 {
2821 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", 2821 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.",
2822 "end": { 2822 "end": {
2823 "column": 3, 2823 "column": 3,
2824 "line": 132 2824 "line": 134
2825 }, 2825 },
2826 "file": "src/components/settings/services/EditServiceForm.js", 2826 "file": "src/components/settings/services/EditServiceForm.js",
2827 "id": "settings.service.form.proxy.restartInfo", 2827 "id": "settings.service.form.proxy.restartInfo",
2828 "start": { 2828 "start": {
2829 "column": 20, 2829 "column": 20,
2830 "line": 129 2830 "line": 131
2831 } 2831 }
2832 }, 2832 },
2833 { 2833 {
2834 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", 2834 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.",
2835 "end": { 2835 "end": {
2836 "column": 3, 2836 "column": 3,
2837 "line": 136 2837 "line": 138
2838 }, 2838 },
2839 "file": "src/components/settings/services/EditServiceForm.js", 2839 "file": "src/components/settings/services/EditServiceForm.js",
2840 "id": "settings.service.form.proxy.info", 2840 "id": "settings.service.form.proxy.info",
2841 "start": { 2841 "start": {
2842 "column": 13, 2842 "column": 13,
2843 "line": 133 2843 "line": 135
2844 } 2844 }
2845 } 2845 }
2846 ], 2846 ],
@@ -3306,159 +3306,172 @@
3306 } 3306 }
3307 }, 3307 },
3308 { 3308 {
3309 "defaultMessage": "!!!Cache", 3309 "defaultMessage": "!!!Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
3310 "end": { 3310 "end": {
3311 "column": 3, 3311 "column": 3,
3312 "line": 97 3312 "line": 97
3313 }, 3313 },
3314 "file": "src/components/settings/settings/EditSettingsForm.js", 3314 "file": "src/components/settings/settings/EditSettingsForm.js",
3315 "id": "settings.app.spellCheckerLanguageInfo",
3316 "start": {
3317 "column": 28,
3318 "line": 94
3319 }
3320 },
3321 {
3322 "defaultMessage": "!!!Cache",
3323 "end": {
3324 "column": 3,
3325 "line": 101
3326 },
3327 "file": "src/components/settings/settings/EditSettingsForm.js",
3315 "id": "settings.app.subheadlineCache", 3328 "id": "settings.app.subheadlineCache",
3316 "start": { 3329 "start": {
3317 "column": 20, 3330 "column": 20,
3318 "line": 94 3331 "line": 98
3319 } 3332 }
3320 }, 3333 },
3321 { 3334 {
3322 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", 3335 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
3323 "end": { 3336 "end": {
3324 "column": 3, 3337 "column": 3,
3325 "line": 101 3338 "line": 105
3326 }, 3339 },
3327 "file": "src/components/settings/settings/EditSettingsForm.js", 3340 "file": "src/components/settings/settings/EditSettingsForm.js",
3328 "id": "settings.app.cacheInfo", 3341 "id": "settings.app.cacheInfo",
3329 "start": { 3342 "start": {
3330 "column": 13, 3343 "column": 13,
3331 "line": 98 3344 "line": 102
3332 } 3345 }
3333 }, 3346 },
3334 { 3347 {
3335 "defaultMessage": "!!!Couldn't clear all cache", 3348 "defaultMessage": "!!!Couldn't clear all cache",
3336 "end": { 3349 "end": {
3337 "column": 3, 3350 "column": 3,
3338 "line": 105 3351 "line": 109
3339 }, 3352 },
3340 "file": "src/components/settings/settings/EditSettingsForm.js", 3353 "file": "src/components/settings/settings/EditSettingsForm.js",
3341 "id": "settings.app.cacheNotCleared", 3354 "id": "settings.app.cacheNotCleared",
3342 "start": { 3355 "start": {
3343 "column": 19, 3356 "column": 19,
3344 "line": 102 3357 "line": 106
3345 } 3358 }
3346 }, 3359 },
3347 { 3360 {
3348 "defaultMessage": "!!!Clear cache", 3361 "defaultMessage": "!!!Clear cache",
3349 "end": { 3362 "end": {
3350 "column": 3, 3363 "column": 3,
3351 "line": 109 3364 "line": 113
3352 }, 3365 },
3353 "file": "src/components/settings/settings/EditSettingsForm.js", 3366 "file": "src/components/settings/settings/EditSettingsForm.js",
3354 "id": "settings.app.buttonClearAllCache", 3367 "id": "settings.app.buttonClearAllCache",
3355 "start": { 3368 "start": {
3356 "column": 23, 3369 "column": 23,
3357 "line": 106 3370 "line": 110
3358 } 3371 }
3359 }, 3372 },
3360 { 3373 {
3361 "defaultMessage": "!!!Check for updates", 3374 "defaultMessage": "!!!Check for updates",
3362 "end": { 3375 "end": {
3363 "column": 3, 3376 "column": 3,
3364 "line": 113 3377 "line": 117
3365 }, 3378 },
3366 "file": "src/components/settings/settings/EditSettingsForm.js", 3379 "file": "src/components/settings/settings/EditSettingsForm.js",
3367 "id": "settings.app.buttonSearchForUpdate", 3380 "id": "settings.app.buttonSearchForUpdate",
3368 "start": { 3381 "start": {
3369 "column": 25, 3382 "column": 25,
3370 "line": 110 3383 "line": 114
3371 } 3384 }
3372 }, 3385 },
3373 { 3386 {
3374 "defaultMessage": "!!!Restart & install update", 3387 "defaultMessage": "!!!Restart & install update",
3375 "end": { 3388 "end": {
3376 "column": 3, 3389 "column": 3,
3377 "line": 117 3390 "line": 121
3378 }, 3391 },
3379 "file": "src/components/settings/settings/EditSettingsForm.js", 3392 "file": "src/components/settings/settings/EditSettingsForm.js",
3380 "id": "settings.app.buttonInstallUpdate", 3393 "id": "settings.app.buttonInstallUpdate",
3381 "start": { 3394 "start": {
3382 "column": 23, 3395 "column": 23,
3383 "line": 114 3396 "line": 118
3384 } 3397 }
3385 }, 3398 },
3386 { 3399 {
3387 "defaultMessage": "!!!Is searching for update", 3400 "defaultMessage": "!!!Is searching for update",
3388 "end": { 3401 "end": {
3389 "column": 3, 3402 "column": 3,
3390 "line": 121 3403 "line": 125
3391 }, 3404 },
3392 "file": "src/components/settings/settings/EditSettingsForm.js", 3405 "file": "src/components/settings/settings/EditSettingsForm.js",
3393 "id": "settings.app.updateStatusSearching", 3406 "id": "settings.app.updateStatusSearching",
3394 "start": { 3407 "start": {
3395 "column": 25, 3408 "column": 25,
3396 "line": 118 3409 "line": 122
3397 } 3410 }
3398 }, 3411 },
3399 { 3412 {
3400 "defaultMessage": "!!!Update available, downloading...", 3413 "defaultMessage": "!!!Update available, downloading...",
3401 "end": { 3414 "end": {
3402 "column": 3, 3415 "column": 3,
3403 "line": 125 3416 "line": 129
3404 }, 3417 },
3405 "file": "src/components/settings/settings/EditSettingsForm.js", 3418 "file": "src/components/settings/settings/EditSettingsForm.js",
3406 "id": "settings.app.updateStatusAvailable", 3419 "id": "settings.app.updateStatusAvailable",
3407 "start": { 3420 "start": {
3408 "column": 25, 3421 "column": 25,
3409 "line": 122 3422 "line": 126
3410 } 3423 }
3411 }, 3424 },
3412 { 3425 {
3413 "defaultMessage": "!!!You are using the latest version of Ferdi", 3426 "defaultMessage": "!!!You are using the latest version of Ferdi",
3414 "end": { 3427 "end": {
3415 "column": 3, 3428 "column": 3,
3416 "line": 129 3429 "line": 133
3417 }, 3430 },
3418 "file": "src/components/settings/settings/EditSettingsForm.js", 3431 "file": "src/components/settings/settings/EditSettingsForm.js",
3419 "id": "settings.app.updateStatusUpToDate", 3432 "id": "settings.app.updateStatusUpToDate",
3420 "start": { 3433 "start": {
3421 "column": 24, 3434 "column": 24,
3422 "line": 126 3435 "line": 130
3423 } 3436 }
3424 }, 3437 },
3425 { 3438 {
3426 "defaultMessage": "!!!Current version:", 3439 "defaultMessage": "!!!Current version:",
3427 "end": { 3440 "end": {
3428 "column": 3, 3441 "column": 3,
3429 "line": 133 3442 "line": 137
3430 }, 3443 },
3431 "file": "src/components/settings/settings/EditSettingsForm.js", 3444 "file": "src/components/settings/settings/EditSettingsForm.js",
3432 "id": "settings.app.currentVersion", 3445 "id": "settings.app.currentVersion",
3433 "start": { 3446 "start": {
3434 "column": 18, 3447 "column": 18,
3435 "line": 130 3448 "line": 134
3436 } 3449 }
3437 }, 3450 },
3438 { 3451 {
3439 "defaultMessage": "!!!Changes require restart", 3452 "defaultMessage": "!!!Changes require restart",
3440 "end": { 3453 "end": {
3441 "column": 3, 3454 "column": 3,
3442 "line": 137 3455 "line": 141
3443 }, 3456 },
3444 "file": "src/components/settings/settings/EditSettingsForm.js", 3457 "file": "src/components/settings/settings/EditSettingsForm.js",
3445 "id": "settings.app.restartRequired", 3458 "id": "settings.app.restartRequired",
3446 "start": { 3459 "start": {
3447 "column": 29, 3460 "column": 29,
3448 "line": 134 3461 "line": 138
3449 } 3462 }
3450 }, 3463 },
3451 { 3464 {
3452 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", 3465 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.",
3453 "end": { 3466 "end": {
3454 "column": 3, 3467 "column": 3,
3455 "line": 141 3468 "line": 145
3456 }, 3469 },
3457 "file": "src/components/settings/settings/EditSettingsForm.js", 3470 "file": "src/components/settings/settings/EditSettingsForm.js",
3458 "id": "settings.app.languageDisclaimer", 3471 "id": "settings.app.languageDisclaimer",
3459 "start": { 3472 "start": {
3460 "column": 22, 3473 "column": 22,
3461 "line": 138 3474 "line": 142
3462 } 3475 }
3463 } 3476 }
3464 ], 3477 ],
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json
index b7fe119aa..1bc9db578 100644
--- a/src/i18n/locales/el.json
+++ b/src/i18n/locales/el.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Λανθάνουσα μνήμη", 339 "settings.app.subheadlineCache": "Λανθάνουσα μνήμη",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Βοηθήστε μας να μεταφράσουμε το Ferdi στη δική σας γλώσσα.", 341 "settings.app.translationHelp": "Βοηθήστε μας να μεταφράσουμε το Ferdi στη δική σας γλώσσα.",
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index dcaa2466a..fd5c0755b 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 03207e904..1d30fcd6c 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -1,24 +1,24 @@
1{ 1{
2 "app.errorHandler.action": "Recargar", 2 "app.errorHandler.action": "Cargar nuevamente",
3 "app.errorHandler.headline": "Algo salió mal.", 3 "app.errorHandler.headline": "Algo salió mal.",
4 "changeserver.customServerLabel": "Servidor personalizado", 4 "changeserver.customServerLabel": "Servidor personalizado",
5 "changeserver.headline": "Cambiar servidor", 5 "changeserver.headline": "Cambiar servidor",
6 "changeserver.label": "Servidor", 6 "changeserver.label": "Servidor",
7 "changeserver.submit": "Enviar", 7 "changeserver.submit": "Enviar",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Ingrese una URL válida",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "Los ajustes extra ofrecidos por Ferdi no serán guardados",
10 "connectionLostBanner.cta": "Recargar Servicio", 10 "connectionLostBanner.cta": "Recargar Servicio",
11 "connectionLostBanner.informationLink": "¿Qué ocurrió?", 11 "connectionLostBanner.informationLink": "¿Qué ocurrió?",
12 "connectionLostBanner.message": "¡Oh no! Ferdi perdió la conexión con {name}.", 12 "connectionLostBanner.message": "¡Oh no! Ferdi perdió la conexión con {name}.",
13 "feature.announcements.changelog.headline": "Cambios en Ferdi {version}", 13 "feature.announcements.changelog.headline": "Cambios en Ferdi {version}",
14 "feature.debugger.title": "Escribir información de depuración", 14 "feature.debugger.title": "Publica la información de depuración",
15 "feature.delayApp.headline": "Por favor compra una Licencia de Soporte de Ferdi para omitir la espera", 15 "feature.delayApp.headline": "Por favor compra una Licencia de Soporte de Ferdi para evitar la espera",
16 "feature.delayApp.text": "Ferdi continuará en {seconds} segundos.", 16 "feature.delayApp.text": "Ferdi continuará en {seconds} segundos.",
17 "feature.delayApp.trial.action": "Si! Quiero probar Ferdi Profesional por 14 días, gratis!", 17 "feature.delayApp.trial.action": "Si! Quiero probar Ferdi Profesional por 14 días, gratis!",
18 "feature.delayApp.trial.actionShort": "Activar el período de prueba de Ferdi Profesional", 18 "feature.delayApp.trial.actionShort": "Activar el período de prueba de Ferdi Profesional",
19 "feature.delayApp.trial.headline": "Empieza el periodo de prueba de Ferdi Profesional por 14 días y cruza la linea.", 19 "feature.delayApp.trial.headline": "Empieza el periodo de prueba de Ferdi Profesional por 14 días y cruza la linea.",
20 "feature.delayApp.upgrade.action": "Consigue una Licencia de Soporte de Ferdi", 20 "feature.delayApp.upgrade.action": "Consigue una Licencia de Soporte de Ferdi",
21 "feature.delayApp.upgrade.actionShort": "Mejora tu cuenta", 21 "feature.delayApp.upgrade.actionShort": "Consigue una mejora para tu cuenta",
22 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", 22 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
23 "feature.planSelection.cta.stayOnFree": "Stay on Free", 23 "feature.planSelection.cta.stayOnFree": "Stay on Free",
24 "feature.planSelection.cta.trial": "Start my free 14-days Trial", 24 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
@@ -35,17 +35,17 @@
35 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 35 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
36 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 36 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
37 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 37 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
38 "feature.publishDebugInfo.error": "Hubo un error al intentar publicar la información de depuración. Por favor, inténtalo de nuevo más tarde o ve la consola para más información.", 38 "feature.publishDebugInfo.error": "Hubo un error al intentar publicar la información de depuración. Por favor, inténtalo de nuevo más tarde o revisa la consola para más información.",
39 "feature.publishDebugInfo.info": "Publicar su información de depuración nos ayuda a encontrar problemas y errores en Ferdi. Al publicar tu información de depuración aceptas la política de privacidad y las condiciones de servicio de Ferdi Debuggger", 39 "feature.publishDebugInfo.info": "Publicar tu información de depuración nos ayuda a encontrar problemas y errores en Ferdi. Al publicar tu información de depuración aceptas la política de privacidad y las condiciones de servicio de Ferdi Debuggger",
40 "feature.publishDebugInfo.privacy": "Política de Privacidad", 40 "feature.publishDebugInfo.privacy": "Política de Privacidad",
41 "feature.publishDebugInfo.publish": "Aceptar y publicar", 41 "feature.publishDebugInfo.publish": "Aceptar y publicar",
42 "feature.publishDebugInfo.published": "Su registro de depuración fue publicado y ahora está disponible en", 42 "feature.publishDebugInfo.published": "Su registro de depuración fue publicado y ahora está disponible en",
43 "feature.publishDebugInfo.terms": "Términos de servicio", 43 "feature.publishDebugInfo.terms": "Términos de servicio",
44 "feature.publishDebugInfo.title": "Escribir información de depuración", 44 "feature.publishDebugInfo.title": "Publica la información de depuración",
45 "feature.quickSwitch.info": "Seleccionar servicio con TAB y ↑ ↓. Abrir servicio con ENTER.", 45 "feature.quickSwitch.info": "Puede seleccionar un servicio usando TAB,y ↓. Puede abrir servicio usando ENTER.",
46 "feature.quickSwitch.search": "Buscar...", 46 "feature.quickSwitch.search": "Buscar...",
47 "feature.quickSwitch.title": "Cambio rápido", 47 "feature.quickSwitch.title": "Cambiar rápidamente",
48 "feature.serviceLimit.limitReached": "Has sumado {amount} servicios más de los que están incluídos en tu plan. Por favor mejora tu cuenta para sumar más servicios.", 48 "feature.serviceLimit.limitReached": "Has agregado {amount} servicio mas que los {limit} servicios permitidos en tu plan. Por favor mejora tu cuenta para agregar mas servicios.",
49 "feature.shareFranz.action.email": "Enviar como correo", 49 "feature.shareFranz.action.email": "Enviar como correo",
50 "feature.shareFranz.action.facebook": "Compartir en Facebook", 50 "feature.shareFranz.action.facebook": "Compartir en Facebook",
51 "feature.shareFranz.action.twitter": "Compartir en Twitter", 51 "feature.shareFranz.action.twitter": "Compartir en Twitter",
@@ -185,7 +185,7 @@
185 "password.noUser": "No se encontró un usuario con esa dirección de correo electrónico", 185 "password.noUser": "No se encontró un usuario con esa dirección de correo electrónico",
186 "password.submit.label": "Enviar", 186 "password.submit.label": "Enviar",
187 "password.successInfo": "Por favor revisa tu correo electrónico", 187 "password.successInfo": "Por favor revisa tu correo electrónico",
188 "premiumFeature.button.upgradeAccount": "Mejora tu cuenta", 188 "premiumFeature.button.upgradeAccount": "Consigue una mejora para tu cuenta",
189 "pricing.features.accountSync": "Sincronización de cuenta", 189 "pricing.features.accountSync": "Sincronización de cuenta",
190 "pricing.features.adFree": "Sin anuncios para siempre!", 190 "pricing.features.adFree": "Sin anuncios para siempre!",
191 "pricing.features.appDelays": "Sin pantallas de espera", 191 "pricing.features.appDelays": "Sin pantallas de espera",
@@ -335,6 +335,7 @@
335 "settings.app.scheduledDNDInfo": "El \"No molestar\" programado permite definir un período de tiempo en el que no recibir notificaciones de Ferdi.", 335 "settings.app.scheduledDNDInfo": "El \"No molestar\" programado permite definir un período de tiempo en el que no recibir notificaciones de Ferdi.",
336 "settings.app.scheduledDNDTimeInfo": "Horas en formato 24 horas. La hora de finalización puede ser anterior a la hora de inicio (por ejemplo, inicio 17:00, final 09:00) para habilitar No molestar la noche.", 336 "settings.app.scheduledDNDTimeInfo": "Horas en formato 24 horas. La hora de finalización puede ser anterior a la hora de inicio (por ejemplo, inicio 17:00, final 09:00) para habilitar No molestar la noche.",
337 "settings.app.sentryInfo": "El envío de datos de telemetría nos permite encontrar errores en Ferdi - no enviaremos ninguna información personal como sus datos de mensaje! Cambiar esta opción requiere reiniciar Ferdi.", 337 "settings.app.sentryInfo": "El envío de datos de telemetría nos permite encontrar errores en Ferdi - no enviaremos ninguna información personal como sus datos de mensaje! Cambiar esta opción requiere reiniciar Ferdi.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi utiliza el corrector ortográfico incluido en su Mac. Si desea cambiar los lenguajes que el corrector ortográfico revisa, lo puede hacer en las Preferencias del Sistema de su Mac.",
338 "settings.app.subheadlineCache": "Caché", 339 "settings.app.subheadlineCache": "Caché",
339 "settings.app.todoServerInfo": "Este servidor se utilizará para la función \"Ferdi Todo\".", 340 "settings.app.todoServerInfo": "Este servidor se utilizará para la función \"Ferdi Todo\".",
340 "settings.app.translationHelp": "Ayúdanos a traducir Ferdi a tu idioma.", 341 "settings.app.translationHelp": "Ayúdanos a traducir Ferdi a tu idioma.",
@@ -504,7 +505,7 @@
504 "tabs.item.enableAudio": "Habilitar audio", 505 "tabs.item.enableAudio": "Habilitar audio",
505 "tabs.item.enableNotification": "Activar notificaciones", 506 "tabs.item.enableNotification": "Activar notificaciones",
506 "tabs.item.enableService": "Activar servicio", 507 "tabs.item.enableService": "Activar servicio",
507 "tabs.item.reload": "Recargar", 508 "tabs.item.reload": "Cargar nuevamente",
508 "validation.email": "{field} no es válido", 509 "validation.email": "{field} no es válido",
509 "validation.minLength": "{field} debería tener al menos {length} caracteres", 510 "validation.minLength": "{field} debería tener al menos {length} caracteres",
510 "validation.oneRequired": "Al menos uno es requerido", 511 "validation.oneRequired": "Al menos uno es requerido",
@@ -514,7 +515,7 @@
514 "webControls.forward": "Siguiente", 515 "webControls.forward": "Siguiente",
515 "webControls.goHome": "Inicio", 516 "webControls.goHome": "Inicio",
516 "webControls.openInBrowser": "Abrir en navegador", 517 "webControls.openInBrowser": "Abrir en navegador",
517 "webControls.reload": "Recargar", 518 "webControls.reload": "Cargar nuevamente",
518 "welcome.loginButton": "Accede a tu cuenta", 519 "welcome.loginButton": "Accede a tu cuenta",
519 "welcome.signupButton": "Crear una cuenta gratuita", 520 "welcome.signupButton": "Crear una cuenta gratuita",
520 "workspaceDrawer.addNewWorkspaceLabel": "Añadir nuevo espacio de trabajo", 521 "workspaceDrawer.addNewWorkspaceLabel": "Añadir nuevo espacio de trabajo",
diff --git a/src/i18n/locales/fi.json b/src/i18n/locales/fi.json
index 356c1fc1e..560444dfc 100644
--- a/src/i18n/locales/fi.json
+++ b/src/i18n/locales/fi.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index 78c08558e..811b5a0c8 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "Ce serveur sera utilisé pour la fonctionnalité \"Ferdi Todo\".", 340 "settings.app.todoServerInfo": "Ce serveur sera utilisé pour la fonctionnalité \"Ferdi Todo\".",
340 "settings.app.translationHelp": "Aidez-nous à traduire Ferdi dans votre langue.", 341 "settings.app.translationHelp": "Aidez-nous à traduire Ferdi dans votre langue.",
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json
index a937b084e..1a886b6da 100644
--- a/src/i18n/locales/ga.json
+++ b/src/i18n/locales/ga.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Taisce", 339 "settings.app.subheadlineCache": "Taisce",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Cabhraigh linn Ferdi a aistriú i do theanga.", 341 "settings.app.translationHelp": "Cabhraigh linn Ferdi a aistriú i do theanga.",
diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json
index 356c1fc1e..560444dfc 100644
--- a/src/i18n/locales/he.json
+++ b/src/i18n/locales/he.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json
index 99916d529..e2c5cb67e 100644
--- a/src/i18n/locales/hr.json
+++ b/src/i18n/locales/hr.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Predmemorija", 339 "settings.app.subheadlineCache": "Predmemorija",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ", 341 "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ",
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json
index 0c27f706d..b54259ded 100644
--- a/src/i18n/locales/hu.json
+++ b/src/i18n/locales/hu.json
@@ -5,8 +5,8 @@
5 "changeserver.headline": "Change server", 5 "changeserver.headline": "Change server",
6 "changeserver.label": "Szerver", 6 "changeserver.label": "Szerver",
7 "changeserver.submit": "Küldés", 7 "changeserver.submit": "Küldés",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Adjon meg egy érvényes URL-t",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "A Ferdi által kínált extra beállítások nem kerülnek mentésre",
10 "connectionLostBanner.cta": "Szolgáltatás újraindítása", 10 "connectionLostBanner.cta": "Szolgáltatás újraindítása",
11 "connectionLostBanner.informationLink": "Mi történt?", 11 "connectionLostBanner.informationLink": "Mi történt?",
12 "connectionLostBanner.message": "Ja ne! Ferdi nem tud kapcsolodni {name}-hez.", 12 "connectionLostBanner.message": "Ja ne! Ferdi nem tud kapcsolodni {name}-hez.",
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Gyorsítótár", 339 "settings.app.subheadlineCache": "Gyorsítótár",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Segíts nekünk a Ferdi-ot lefordítani a nyelvedre.", 341 "settings.app.translationHelp": "Segíts nekünk a Ferdi-ot lefordítani a nyelvedre.",
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json
index 566139d1f..59eb0748e 100644
--- a/src/i18n/locales/id.json
+++ b/src/i18n/locales/id.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Singgahan", 339 "settings.app.subheadlineCache": "Singgahan",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Bantu kami menerjemahkan Ferdi ke bahasa Anda.", 341 "settings.app.translationHelp": "Bantu kami menerjemahkan Ferdi ke bahasa Anda.",
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index ac9d410e0..c8c931a79 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -2,11 +2,11 @@
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.customServerLabel": "Server personalizzato", 4 "changeserver.customServerLabel": "Server personalizzato",
5 "changeserver.headline": "Change server", 5 "changeserver.headline": "Cambia Server",
6 "changeserver.label": "Server", 6 "changeserver.label": "Server",
7 "changeserver.submit": "Invia", 7 "changeserver.submit": "Invia",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Inserisci un URL valido",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "Le impostazioni extra offerte da Ferdi non verranno salvate",
10 "connectionLostBanner.cta": "Ricarica Servizio", 10 "connectionLostBanner.cta": "Ricarica Servizio",
11 "connectionLostBanner.informationLink": "Cos'è successo?", 11 "connectionLostBanner.informationLink": "Cos'è successo?",
12 "connectionLostBanner.message": "Oh no! Ferdi ha perso la connessione con {name}.", 12 "connectionLostBanner.message": "Oh no! Ferdi ha perso la connessione con {name}.",
@@ -39,12 +39,12 @@
39 "feature.publishDebugInfo.info": "Pubblicare le informazioni di debug ci aiuta a trovare problemi ed errori in Ferdi. Pubblicando le informazioni di debug accetti l'informativa sulla privacy e i termini di servizio di Ferdi Debugger", 39 "feature.publishDebugInfo.info": "Pubblicare le informazioni di debug ci aiuta a trovare problemi ed errori in Ferdi. Pubblicando le informazioni di debug accetti l'informativa sulla privacy e i termini di servizio di Ferdi Debugger",
40 "feature.publishDebugInfo.privacy": "Informativa sulla privacy", 40 "feature.publishDebugInfo.privacy": "Informativa sulla privacy",
41 "feature.publishDebugInfo.publish": "Accetta e pubblica", 41 "feature.publishDebugInfo.publish": "Accetta e pubblica",
42 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 42 "feature.publishDebugInfo.published": "Il tuo log di debug è stato pubblicato ed è disponibile a",
43 "feature.publishDebugInfo.terms": "Termini di Servizio", 43 "feature.publishDebugInfo.terms": "Termini di Servizio",
44 "feature.publishDebugInfo.title": "Publish debug information", 44 "feature.publishDebugInfo.title": "Pubblica le informazioni di debug",
45 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 45 "feature.quickSwitch.info": "Seleziona un servizio con TAB, ↑ e ↓. Apri un servizio con INVIO.",
46 "feature.quickSwitch.search": "Search...", 46 "feature.quickSwitch.search": "Cerca...",
47 "feature.quickSwitch.title": "QuickSwitch", 47 "feature.quickSwitch.title": "CambioVeloce",
48 "feature.serviceLimit.limitReached": "Hai aggiunto {amount} su {limit} servizi che sono inclusi nel tuo piano. Per favore potenzia il tuo account per aggiungere più servizi.", 48 "feature.serviceLimit.limitReached": "Hai aggiunto {amount} su {limit} servizi che sono inclusi nel tuo piano. Per favore potenzia il tuo account per aggiungere più servizi.",
49 "feature.shareFranz.action.email": "Manda come email", 49 "feature.shareFranz.action.email": "Manda come email",
50 "feature.shareFranz.action.facebook": "Condividi su Facebook", 50 "feature.shareFranz.action.facebook": "Condividi su Facebook",
@@ -75,7 +75,7 @@
75 "import.notSupportedHeadline": "Servizi non ancora supportati in Ferdi 5", 75 "import.notSupportedHeadline": "Servizi non ancora supportati in Ferdi 5",
76 "import.skip.label": "Voglio aggiungere i servizi manualmente", 76 "import.skip.label": "Voglio aggiungere i servizi manualmente",
77 "import.submit.label": "Importa servizi", 77 "import.submit.label": "Importa servizi",
78 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 78 "infobar.authRequestFailed": "Si sono verificati errori durante il tentativo di eseguire una richiesta autenticata. Si prega di provare a disconnettersi e tornare indietro se questo errore persiste.",
79 "infobar.buttonChangelog": "Cosa c'è di nuovo?", 79 "infobar.buttonChangelog": "Cosa c'è di nuovo?",
80 "infobar.buttonInstallUpdate": "Riavvia e installa l'aggiornamento", 80 "infobar.buttonInstallUpdate": "Riavvia e installa l'aggiornamento",
81 "infobar.buttonReloadServices": "Ricarica servizi", 81 "infobar.buttonReloadServices": "Ricarica servizi",
@@ -89,15 +89,15 @@
89 "invite.skip.label": "Voglio farlo dopo", 89 "invite.skip.label": "Voglio farlo dopo",
90 "invite.submit.label": "Manda inviti", 90 "invite.submit.label": "Manda inviti",
91 "invite.successInfo": "Inviti inviati con successo", 91 "invite.successInfo": "Inviti inviati con successo",
92 "locked.headline": "Locked", 92 "locked.headline": "Bloccato",
93 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 93 "locked.info": "Ferdi è attualmente bloccato. Sblocca Ferdi con la tua password per vedere i tuoi messaggi.",
94 "locked.invalidCredentials": "Password invalid", 94 "locked.invalidCredentials": "Password non valida",
95 "locked.password.label": "Password", 95 "locked.password.label": "Password",
96 "locked.submit.label": "Unlock", 96 "locked.submit.label": "Sblocca",
97 "locked.touchId": "Unlock with Touch ID", 97 "locked.touchId": "Sblocca con Touch ID",
98 "locked.touchIdPrompt": "unlock via Touch ID", 98 "locked.touchIdPrompt": "sblocca con Touch ID",
99 "locked.unlockWithPassword": "Unlock with Password", 99 "locked.unlockWithPassword": "Sblocca con Password",
100 "login.changeServer": "Change server", 100 "login.changeServer": "Cambia Server",
101 "login.customServerQuestion": "Using a custom Ferdi server?", 101 "login.customServerQuestion": "Using a custom Ferdi server?",
102 "login.customServerSuggestion": "Try importing your Franz account", 102 "login.customServerSuggestion": "Try importing your Franz account",
103 "login.email.label": "Indirizzo email", 103 "login.email.label": "Indirizzo email",
@@ -113,7 +113,7 @@
113 "menu.Todoss.openTodosDrawer": "Apri il menu delle attività", 113 "menu.Todoss.openTodosDrawer": "Apri il menu delle attività",
114 "menu.app.about": "Info su Ferdi", 114 "menu.app.about": "Info su Ferdi",
115 "menu.app.announcement": "Cosa c'è di nuovo?", 115 "menu.app.announcement": "Cosa c'è di nuovo?",
116 "menu.app.autohideMenuBar": "Auto-hide menu bar", 116 "menu.app.autohideMenuBar": "Nascondi automaticamente la barra del menù",
117 "menu.app.checkForUpdates": "Controlla aggiornamenti", 117 "menu.app.checkForUpdates": "Controlla aggiornamenti",
118 "menu.app.hide": "Nascondi", 118 "menu.app.hide": "Nascondi",
119 "menu.app.hideOthers": "Nascondi altri", 119 "menu.app.hideOthers": "Nascondi altri",
@@ -125,7 +125,7 @@
125 "menu.edit.cut": "Taglia", 125 "menu.edit.cut": "Taglia",
126 "menu.edit.delete": "Elimina", 126 "menu.edit.delete": "Elimina",
127 "menu.edit.emojiSymbols": "Emoji e simboli", 127 "menu.edit.emojiSymbols": "Emoji e simboli",
128 "menu.edit.findInPage": "Find in Page", 128 "menu.edit.findInPage": "Trova nella pagina",
129 "menu.edit.paste": "Incolla", 129 "menu.edit.paste": "Incolla",
130 "menu.edit.pasteAndMatchStyle": "Incolla e Mantieni Stile", 130 "menu.edit.pasteAndMatchStyle": "Incolla e Mantieni Stile",
131 "menu.edit.redo": "Ripeti", 131 "menu.edit.redo": "Ripeti",
@@ -143,7 +143,7 @@
143 "menu.help.debugInfoCopiedHeadline": "Informazioni di debug di Ferdi", 143 "menu.help.debugInfoCopiedHeadline": "Informazioni di debug di Ferdi",
144 "menu.help.learnMore": "Maggiori Informazioni", 144 "menu.help.learnMore": "Maggiori Informazioni",
145 "menu.help.privacy": "Dichiarazione della Privacy", 145 "menu.help.privacy": "Dichiarazione della Privacy",
146 "menu.help.publishDebugInfo": "Publish Debug Information", 146 "menu.help.publishDebugInfo": "Pubblica le informazioni di debug",
147 "menu.help.support": "Supporto", 147 "menu.help.support": "Supporto",
148 "menu.help.tos": "Termini di Servizio", 148 "menu.help.tos": "Termini di Servizio",
149 "menu.services": "Servizi", 149 "menu.services": "Servizi",
@@ -154,16 +154,16 @@
154 "menu.todos": "Attività", 154 "menu.todos": "Attività",
155 "menu.todos.enableTodos": "Abilita Attività", 155 "menu.todos.enableTodos": "Abilita Attività",
156 "menu.view": "Visualizza", 156 "menu.view": "Visualizza",
157 "menu.view.back": "Back", 157 "menu.view.back": "Indietro",
158 "menu.view.enterFullScreen": "Visualizza a Schermo Intero", 158 "menu.view.enterFullScreen": "Visualizza a Schermo Intero",
159 "menu.view.exitFullScreen": "Esci da Schermo Intero", 159 "menu.view.exitFullScreen": "Esci da Schermo Intero",
160 "menu.view.forward": "Forward", 160 "menu.view.forward": "Avanti",
161 "menu.view.lockFerdi": "Lock Ferdi", 161 "menu.view.lockFerdi": "Blocca Ferdi",
162 "menu.view.openQuickSwitch": "Open Quick Switch", 162 "menu.view.openQuickSwitch": "Apri Cambio Rapido",
163 "menu.view.reloadFranz": "Ricarica Ferdi", 163 "menu.view.reloadFranz": "Ricarica Ferdi",
164 "menu.view.reloadService": "Ricarica Servizio", 164 "menu.view.reloadService": "Ricarica Servizio",
165 "menu.view.resetZoom": "Dimensione Attuale", 165 "menu.view.resetZoom": "Dimensione Attuale",
166 "menu.view.toggleDarkMode": "Toggle Dark Mode", 166 "menu.view.toggleDarkMode": "Attiva la modalità scura",
167 "menu.view.toggleDevTools": "Attiva/Disattiva Strumenti Sviluppo", 167 "menu.view.toggleDevTools": "Attiva/Disattiva Strumenti Sviluppo",
168 "menu.view.toggleFullScreen": "Attiva/Disattiva Schermo Intero", 168 "menu.view.toggleFullScreen": "Attiva/Disattiva Schermo Intero",
169 "menu.view.toggleServiceDevTools": "Attiva/Disattiva Strumenti per Sviluppatori di Servizi", 169 "menu.view.toggleServiceDevTools": "Attiva/Disattiva Strumenti per Sviluppatori di Servizi",
@@ -186,21 +186,21 @@
186 "password.submit.label": "Invia", 186 "password.submit.label": "Invia",
187 "password.successInfo": "Per favore controlla la tua email", 187 "password.successInfo": "Per favore controlla la tua email",
188 "premiumFeature.button.upgradeAccount": "Effettua l'upgrade del tuo account", 188 "premiumFeature.button.upgradeAccount": "Effettua l'upgrade del tuo account",
189 "pricing.features.accountSync": "Account Synchronisation", 189 "pricing.features.accountSync": "Sincronizzazione account",
190 "pricing.features.adFree": "Senza pubblicità per sempre", 190 "pricing.features.adFree": "Senza pubblicità per sempre",
191 "pricing.features.appDelays": "Nessuna schermata di attesa", 191 "pricing.features.appDelays": "Nessuna schermata di attesa",
192 "pricing.features.appDelaysEnabled": "Occasional Waiting Screens", 192 "pricing.features.appDelaysEnabled": "Occasional Waiting Screens",
193 "pricing.features.customWebsites": "Aggiungi siti web personalizzati", 193 "pricing.features.customWebsites": "Aggiungi siti web personalizzati",
194 "pricing.features.desktopNotifications": "Desktop Notifications", 194 "pricing.features.desktopNotifications": "Notifiche desktop",
195 "pricing.features.onPremise": "Servizi ospitati & on-premise", 195 "pricing.features.onPremise": "Servizi ospitati & on-premise",
196 "pricing.features.recipes": "Choose from more than 70 Services", 196 "pricing.features.recipes": "Scegli tra più di 70 Servizi",
197 "pricing.features.serviceProxies": "Proxy di servizio", 197 "pricing.features.serviceProxies": "Proxy di servizio",
198 "pricing.features.spellchecker": "Supporto per il correttore ortografico", 198 "pricing.features.spellchecker": "Supporto per il correttore ortografico",
199 "pricing.features.teamManagement": "Gestione del team", 199 "pricing.features.teamManagement": "Gestione del team",
200 "pricing.features.thirdPartyServices": "Installa servizi di terze parti", 200 "pricing.features.thirdPartyServices": "Installa servizi di terze parti",
201 "pricing.features.unlimitedServices": "Aggiungi servizi illimitati", 201 "pricing.features.unlimitedServices": "Aggiungi servizi illimitati",
202 "pricing.features.upToSixServices": "Add up to 6 services", 202 "pricing.features.upToSixServices": "Aggiungi fino a 6 servizi",
203 "pricing.features.upToThreeServices": "Add up to 3 services", 203 "pricing.features.upToThreeServices": "Aggiungi fino a 3 servizi",
204 "pricing.features.workspaces": "Aree di lavoro", 204 "pricing.features.workspaces": "Aree di lavoro",
205 "pricing.plan.free": "Ferdi Gratuito", 205 "pricing.plan.free": "Ferdi Gratuito",
206 "pricing.plan.legacy": "Ferdi Premium", 206 "pricing.plan.legacy": "Ferdi Premium",
@@ -239,17 +239,17 @@
239 "service.restrictedHandler.customUrl.text": "Per favore aggiorna al piano Ferdi Professional per usare url personalizzati e servizi da te ospitati.", 239 "service.restrictedHandler.customUrl.text": "Per favore aggiorna al piano Ferdi Professional per usare url personalizzati e servizi da te ospitati.",
240 "service.restrictedHandler.serviceLimit.headline": "Hai raggiunto il tuo limite di servizio.", 240 "service.restrictedHandler.serviceLimit.headline": "Hai raggiunto il tuo limite di servizio.",
241 "service.restrictedHandler.serviceLimit.text": "Per favore potenzia il tuo account per usare più di {count} servizi.", 241 "service.restrictedHandler.serviceLimit.text": "Per favore potenzia il tuo account per usare più di {count} servizi.",
242 "service.webviewLoader.loading": "Loading {service}", 242 "service.webviewLoader.loading": "Caricamento {service}",
243 "services.getStarted": "Iniziamo", 243 "services.getStarted": "Iniziamo",
244 "services.login": "Please login to use Ferdi.", 244 "services.login": "Effettua il login per utlizzare Ferdi.",
245 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", 245 "services.serverInfo": "Eventualmente, è possibile modificare server Ferdi facendo click sull'ingranaggio in basso a sinistra.",
246 "services.serverless": "Use Ferdi without an Account", 246 "services.serverless": "Usa Ferdi senza account",
247 "services.welcome": "Benvenuto su Ferdi", 247 "services.welcome": "Benvenuto su Ferdi",
248 "settings.account.account.editButton": "Modifica account", 248 "settings.account.account.editButton": "Modifica account",
249 "settings.account.accountType.basic": "Account Base", 249 "settings.account.accountType.basic": "Account Base",
250 "settings.account.accountType.premium": "Account Supporter Premium ", 250 "settings.account.accountType.premium": "Account Supporter Premium ",
251 "settings.account.accountUnavailable": "Account is unavailable", 251 "settings.account.accountUnavailable": "Account non disponibile",
252 "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.", 252 "settings.account.accountUnavailableInfo": "Stai usando Ferdi senza un account. Se si desidera aggiungere un account, e tenere sincronizzati i servizi tra le installazioni, selezionare un server nel tab delle Impostazioni e quindi login.",
253 "settings.account.buttonSave": "Aggiorna profilo", 253 "settings.account.buttonSave": "Aggiorna profilo",
254 "settings.account.deleteAccount": "Elimina account", 254 "settings.account.deleteAccount": "Elimina account",
255 "settings.account.deleteEmailSent": "Hai ricevuto un'email con un link per confermare l'eliminazione del tuo account. I dati del tuo account non potranno più essere ripristinati!", 255 "settings.account.deleteEmailSent": "Hai ricevuto un'email con un link per confermare l'eliminazione del tuo account. I dati del tuo account non potranno più essere ripristinati!",
@@ -274,67 +274,68 @@
274 "settings.account.upgradeToPro.label": "Aggiorna a Ferdi Professional", 274 "settings.account.upgradeToPro.label": "Aggiorna a Ferdi Professional",
275 "settings.account.userInfoRequestFailed": "Impossibile caricare le informazioni dell'utente.", 275 "settings.account.userInfoRequestFailed": "Impossibile caricare le informazioni dell'utente.",
276 "settings.account.yourLicense": "La tua licenza Ferdi", 276 "settings.account.yourLicense": "La tua licenza Ferdi",
277 "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)", 277 "settings.app.accentColorInfo": "Scrivi il tuo tema colore in un formato compatibile con CSS. (Predefinito: #7367f0)",
278 "settings.app.buttonClearAllCache": "Svuota la cache", 278 "settings.app.buttonClearAllCache": "Svuota la cache",
279 "settings.app.buttonInstallUpdate": "Riavvia e installa l'aggiornamento", 279 "settings.app.buttonInstallUpdate": "Riavvia e installa l'aggiornamento",
280 "settings.app.buttonSearchForUpdate": "Controlla aggiornamenti", 280 "settings.app.buttonSearchForUpdate": "Controlla aggiornamenti",
281 "settings.app.cacheInfo": "Ferdi sta utilizzando {size} di spazio su disco.", 281 "settings.app.cacheInfo": "Ferdi sta utilizzando {size} di spazio su disco.",
282 "settings.app.cacheNotCleared": "Couldn't clear all cache", 282 "settings.app.cacheNotCleared": "Impossibile eliminare tutta la cache",
283 "settings.app.currentVersion": "Versione attuale:", 283 "settings.app.currentVersion": "Versione attuale:",
284 "settings.app.form.accentColor": "Accent color", 284 "settings.app.form.accentColor": "Tema colore",
285 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", 285 "settings.app.form.adaptableDarkMode": "Sincronizza la modalità scusa con quella del mio sistema operativo",
286 "settings.app.form.autoLaunchInBackground": "Apri in background", 286 "settings.app.form.autoLaunchInBackground": "Apri in background",
287 "settings.app.form.autoLaunchOnStart": "Esegui Ferdi all'avvio", 287 "settings.app.form.autoLaunchOnStart": "Esegui Ferdi all'avvio",
288 "settings.app.form.automaticUpdates": "Enable updates", 288 "settings.app.form.automaticUpdates": "Abilita aggiornamenti",
289 "settings.app.form.beta": "Includi versioni beta", 289 "settings.app.form.beta": "Includi versioni beta",
290 "settings.app.form.customTodoServer": "Custom Todo Server", 290 "settings.app.form.customTodoServer": "Server Todo personalizzato",
291 "settings.app.form.darkMode": "Attiva modalità scura", 291 "settings.app.form.darkMode": "Attiva modalità scura",
292 "settings.app.form.enableGPUAcceleration": "Attiva Accelerazione GPU", 292 "settings.app.form.enableGPUAcceleration": "Attiva Accelerazione GPU",
293 "settings.app.form.enableLock": "Enable Password Lock", 293 "settings.app.form.enableLock": "Abilita blocco con password",
294 "settings.app.form.enableSpellchecking": "Attiva controllo ortografico", 294 "settings.app.form.enableSpellchecking": "Attiva controllo ortografico",
295 "settings.app.form.enableSystemTray": "Mostra Ferdi nell'area di notifica", 295 "settings.app.form.enableSystemTray": "Mostra Ferdi nell'area di notifica",
296 "settings.app.form.enableTodos": "Abilità le Attività Ferdi", 296 "settings.app.form.enableTodos": "Abilità le Attività Ferdi",
297 "settings.app.form.hibernate": "Enable service hibernation", 297 "settings.app.form.hibernate": "Abilita l'ibernazione dei servizi",
298 "settings.app.form.hibernateOnStartup": "Keep services in hibernation on startup", 298 "settings.app.form.hibernateOnStartup": "Mantieni i servizi in ibernazione all'avvio",
299 "settings.app.form.hibernationStrategy": "Hibernation strategy", 299 "settings.app.form.hibernationStrategy": "Strategia di ibernazione",
300 "settings.app.form.iconSize": "Service icon size", 300 "settings.app.form.iconSize": "Dimensione icone servizi",
301 "settings.app.form.inactivityLock": "Lock after inactivity", 301 "settings.app.form.inactivityLock": "Blocca dopo inattività",
302 "settings.app.form.keepAllWorkspacesLoaded": "Mantieni tutti i workspace caricati", 302 "settings.app.form.keepAllWorkspacesLoaded": "Mantieni tutti i workspace caricati",
303 "settings.app.form.language": "Lingua", 303 "settings.app.form.language": "Lingua",
304 "settings.app.form.lockPassword": "Password", 304 "settings.app.form.lockPassword": "Password",
305 "settings.app.form.minimizeToSystemTray": "Minimizza Ferdi nell'area di notifica", 305 "settings.app.form.minimizeToSystemTray": "Minimizza Ferdi nell'area di notifica",
306 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 306 "settings.app.form.navigationBarBehaviour": "Comportamento della barra di navigazione",
307 "settings.app.form.predefinedTodoServer": "Todo Server", 307 "settings.app.form.predefinedTodoServer": "Server Todo",
308 "settings.app.form.privateNotifications": "Don't show message content in notifications", 308 "settings.app.form.privateNotifications": "Non mostrare il contenuto dei messaggi nelle notifiche",
309 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 309 "settings.app.form.reloadAfterResume": "Ricarica Ferdi dopo il ripristino del sistema",
310 "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra", 310 "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra",
311 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 311 "settings.app.form.scheduledDNDEnabled": "Abilita la pianificazione dei Do-Not-Disturb",
312 "settings.app.form.scheduledDNDEnd": "To", 312 "settings.app.form.scheduledDNDEnd": "A",
313 "settings.app.form.scheduledDNDStart": "From", 313 "settings.app.form.scheduledDNDStart": "Da",
314 "settings.app.form.sentry": "Send telemetry data", 314 "settings.app.form.sentry": "Inviare i dati di telemetria",
315 "settings.app.form.serviceRibbonWidth": "Sidebar width", 315 "settings.app.form.serviceRibbonWidth": "Larghezza barra laterale",
316 "settings.app.form.showDisabledServices": "Mostra schede servizi disattivati", 316 "settings.app.form.showDisabledServices": "Mostra schede servizi disattivati",
317 "settings.app.form.showDragArea": "Show draggable area on window", 317 "settings.app.form.showDragArea": "Mostra area trascinabile nella finestra",
318 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate", 318 "settings.app.form.showMessagesBadgesWhenMuted": "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate",
319 "settings.app.form.startMinimized": "Start minimized", 319 "settings.app.form.startMinimized": "Avvio ridotto a icona",
320 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 320 "settings.app.form.universalDarkMode": "Abilita la modalità scura universale",
321 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 321 "settings.app.form.useTouchIdToUnlock": "Consenti l'utilizzo di TouchID per sbloccare Ferdi",
322 "settings.app.headline": "Impostazioni", 322 "settings.app.headline": "Impostazioni",
323 "settings.app.headlineAdvanced": "Avanzate", 323 "settings.app.headlineAdvanced": "Avanzate",
324 "settings.app.headlineAppearance": "Aspetto", 324 "settings.app.headlineAppearance": "Aspetto",
325 "settings.app.headlineGeneral": "Generale", 325 "settings.app.headlineGeneral": "Generale",
326 "settings.app.headlineLanguage": "Lingua", 326 "settings.app.headlineLanguage": "Lingua",
327 "settings.app.headlineUpdates": "Aggiornamenti", 327 "settings.app.headlineUpdates": "Aggiornamenti",
328 "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.", 328 "settings.app.hibernateInfo": "Per impostazione predefinita, Ferdi manterrà tutti i servizi aperti e caricati in background in modo che siano pronti quando si desidera utilizzarli. Il servizio Hibernation sospenderà i servizi dopo un tempo specificato. Questo è utile per risparmiare RAM o per evitare che i servizi rallentino il computer.",
329 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 329 "settings.app.inactivityLockInfo": "Minuti di inattività oltre i quali Ferdi si bloccherà automaticamente, 0 per disabilitare",
330 "settings.app.languageDisclaimer": "Le traduzioni ufficiali sono in Inglese e Tedesco. Tutte le altre lingue sono tradotte dalla community.", 330 "settings.app.languageDisclaimer": "Le traduzioni ufficiali sono in Inglese e Tedesco. Tutte le altre lingue sono tradotte dalla community.",
331 "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.", 331 "settings.app.lockInfo": "Password Lock consente di mantenere i messaggi protetti.\nUsando Password Lock, ti verrà richiesto di inserire la tua password ogni volta che avvii Ferdi o di bloccare Ferdi utilizzando il simbolo del lucchetto nell'angolo in basso a sinistra o la scorciatoia CMD/CTRL+Shift+L.",
332 "settings.app.lockedPassword": "Password", 332 "settings.app.lockedPassword": "Password",
333 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 333 "settings.app.lockedPasswordInfo": "Assicurati di impostare una password che ricordi.\nSe perdi questa password, dovrai reinstallare Ferdi.",
334 "settings.app.restartRequired": "Le modifiche richiedono un riavvio", 334 "settings.app.restartRequired": "Le modifiche richiedono un riavvio",
335 "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.", 335 "settings.app.scheduledDNDInfo": "I Do-not-Disturb pianificati consentono di definire un periodo di tempo nel quale le notifiche da Ferdi saranno disabilitate.",
336 "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.", 336 "settings.app.scheduledDNDTimeInfo": "Ora in formato 24 ore. L'ora di fine può essere prima dell'ora di inizio (ad esempio inizio 17:00, fine 09:00) per abilitare Do-not-Disturb durante la notte.",
337 "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.", 337 "settings.app.sentryInfo": "L'invio dei dati di telemetria ci permette di trovare errori in Ferdi - non invieremo alcuna informazione personale come i tuoi dati dei messaggi! La modifica di questa opzione richiede il riavvio di Ferdi.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi utilizza il controllo ortografico del tuo Mac per verificare la presenza di errori. Se si desidera modificare le lingue del controllo ortografico, è possibile farlo nelle preferenze di sistema del vostro Mac.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Aiutaci a tradurre Ferdi nella tua lingua.", 341 "settings.app.translationHelp": "Aiutaci a tradurre Ferdi nella tua lingua.",
@@ -466,7 +467,7 @@
466 "sidebar.addNewService": "Aggiungi un nuovo servizio", 467 "sidebar.addNewService": "Aggiungi un nuovo servizio",
467 "sidebar.closeTodosDrawer": "Chiudi le Attività Ferdi", 468 "sidebar.closeTodosDrawer": "Chiudi le Attività Ferdi",
468 "sidebar.closeWorkspaceDrawer": "Chiudi il menu dei workspace", 469 "sidebar.closeWorkspaceDrawer": "Chiudi il menu dei workspace",
469 "sidebar.lockFerdi": "Lock Ferdi", 470 "sidebar.lockFerdi": "Blocca Ferdi",
470 "sidebar.muteApp": "Disattiva notifiche e audio", 471 "sidebar.muteApp": "Disattiva notifiche e audio",
471 "sidebar.openTodosDrawer": "Apri le Attività Ferdi", 472 "sidebar.openTodosDrawer": "Apri le Attività Ferdi",
472 "sidebar.openWorkspaceDrawer": "Apri il menu dei workspace", 473 "sidebar.openWorkspaceDrawer": "Apri il menu dei workspace",
@@ -510,8 +511,8 @@
510 "validation.oneRequired": "Almeno un campo è richiesto", 511 "validation.oneRequired": "Almeno un campo è richiesto",
511 "validation.required": "{field} è necessario", 512 "validation.required": "{field} è necessario",
512 "validation.url": "{field} non è un URL valido", 513 "validation.url": "{field} non è un URL valido",
513 "webControls.back": "Back", 514 "webControls.back": "Indietro",
514 "webControls.forward": "Forward", 515 "webControls.forward": "Avanti",
515 "webControls.goHome": "Home", 516 "webControls.goHome": "Home",
516 "webControls.openInBrowser": "Apri nel Browser", 517 "webControls.openInBrowser": "Apri nel Browser",
517 "webControls.reload": "Ricarica", 518 "webControls.reload": "Ricarica",
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index 4ca76c329..bb4f90a42 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "キャッシュ", 339 "settings.app.subheadlineCache": "キャッシュ",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Ferdiの翻訳作業にご協力をお願いします。", 341 "settings.app.translationHelp": "Ferdiの翻訳作業にご協力をお願いします。",
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json
index 0422f6879..9a562ecc5 100644
--- a/src/i18n/locales/ka.json
+++ b/src/i18n/locales/ka.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json
index 36aae0dd6..55a3dc3a5 100644
--- a/src/i18n/locales/ko.json
+++ b/src/i18n/locales/ko.json
@@ -2,10 +2,10 @@
2 "app.errorHandler.action": "새로고침", 2 "app.errorHandler.action": "새로고침",
3 "app.errorHandler.headline": "문제가 발생했습니다.", 3 "app.errorHandler.headline": "문제가 발생했습니다.",
4 "changeserver.customServerLabel": "Custom server", 4 "changeserver.customServerLabel": "Custom server",
5 "changeserver.headline": "Change server", 5 "changeserver.headline": "서버 번경",
6 "changeserver.label": "Server", 6 "changeserver.label": "서버",
7 "changeserver.submit": "Submit", 7 "changeserver.submit": "Submit",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "유효한 URL을 입력하세요",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved",
10 "connectionLostBanner.cta": "Reload Service", 10 "connectionLostBanner.cta": "Reload Service",
11 "connectionLostBanner.informationLink": "What happened?", 11 "connectionLostBanner.informationLink": "What happened?",
@@ -40,22 +40,22 @@
40 "feature.publishDebugInfo.privacy": "개인정보보호정책", 40 "feature.publishDebugInfo.privacy": "개인정보보호정책",
41 "feature.publishDebugInfo.publish": "동의 및 공개", 41 "feature.publishDebugInfo.publish": "동의 및 공개",
42 "feature.publishDebugInfo.published": "디버그 로그가 공개되었고 다음에서 확인 가능합니다.", 42 "feature.publishDebugInfo.published": "디버그 로그가 공개되었고 다음에서 확인 가능합니다.",
43 "feature.publishDebugInfo.terms": "Terms of service", 43 "feature.publishDebugInfo.terms": "이용 약관",
44 "feature.publishDebugInfo.title": "디버깅 정보 공개", 44 "feature.publishDebugInfo.title": "디버깅 정보 공개",
45 "feature.quickSwitch.info": "서비스를 TAB, ↑, ↓을 이용해 선택할 수 있습니다. ENTER를 이용하여 서비스를 열 수 있습니다.", 45 "feature.quickSwitch.info": "서비스를 TAB, ↑, ↓을 이용해 선택할 수 있습니다. ENTER를 이용하여 서비스를 열 수 있습니다.",
46 "feature.quickSwitch.search": "검색...", 46 "feature.quickSwitch.search": "검색...",
47 "feature.quickSwitch.title": "빠른 검색", 47 "feature.quickSwitch.title": "빠른 검색",
48 "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.", 48 "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.",
49 "feature.shareFranz.action.email": "Send as email", 49 "feature.shareFranz.action.email": "이메일로 보내기",
50 "feature.shareFranz.action.facebook": "Share on Facebook", 50 "feature.shareFranz.action.facebook": "페이스북에 공유하기",
51 "feature.shareFranz.action.twitter": "Share on Twitter", 51 "feature.shareFranz.action.twitter": "트위터에 공유하기",
52 "feature.shareFranz.headline": "Ferdi is better together!", 52 "feature.shareFranz.headline": "Ferdi is better together!",
53 "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", 53 "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",
54 "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", 54 "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 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.", 55 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.",
56 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!", 56 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!",
57 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", 57 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.",
58 "feature.todos.premium.upgrade": "Upgrade Account", 58 "feature.todos.premium.upgrade": "계정 업그레이드",
59 "feature.trialStatusBar.cta": "Upgrade now", 59 "feature.trialStatusBar.cta": "Upgrade now",
60 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", 60 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
61 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 61 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
@@ -76,7 +76,7 @@
76 "import.skip.label": "I want to add services manually", 76 "import.skip.label": "I want to add services manually",
77 "import.submit.label": "Import services", 77 "import.submit.label": "Import services",
78 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 78 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
79 "infobar.buttonChangelog": "What is new?", 79 "infobar.buttonChangelog": "새로운 기능",
80 "infobar.buttonInstallUpdate": "Restart & install update", 80 "infobar.buttonInstallUpdate": "Restart & install update",
81 "infobar.buttonReloadServices": "Reload services", 81 "infobar.buttonReloadServices": "Reload services",
82 "infobar.requiredRequestsFailed": "Could not load services and user information", 82 "infobar.requiredRequestsFailed": "Could not load services and user information",
@@ -85,29 +85,29 @@
85 "infobar.updateAvailable": "A new update for Ferdi is available.", 85 "infobar.updateAvailable": "A new update for Ferdi is available.",
86 "invite.email.label": "Email address", 86 "invite.email.label": "Email address",
87 "invite.headline.friends": "Invite 3 of your friends or colleagues", 87 "invite.headline.friends": "Invite 3 of your friends or colleagues",
88 "invite.name.label": "Name", 88 "invite.name.label": "이름",
89 "invite.skip.label": "I want to do this later", 89 "invite.skip.label": "I want to do this later",
90 "invite.submit.label": "Send invites", 90 "invite.submit.label": "Send invites",
91 "invite.successInfo": "Invitations sent successfully", 91 "invite.successInfo": "Invitations sent successfully",
92 "locked.headline": "Locked", 92 "locked.headline": "잠김",
93 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 93 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
94 "locked.invalidCredentials": "Password invalid", 94 "locked.invalidCredentials": "Password invalid",
95 "locked.password.label": "Password", 95 "locked.password.label": "비밀번호",
96 "locked.submit.label": "Unlock", 96 "locked.submit.label": "잠금 해제",
97 "locked.touchId": "Unlock with Touch ID", 97 "locked.touchId": "Touch ID로 잠금 해제",
98 "locked.touchIdPrompt": "unlock via Touch ID", 98 "locked.touchIdPrompt": "Touch ID로 잠금 해제",
99 "locked.unlockWithPassword": "Unlock with Password", 99 "locked.unlockWithPassword": "Unlock with Password",
100 "login.changeServer": "Change server", 100 "login.changeServer": "서버 번경",
101 "login.customServerQuestion": "Using a custom Ferdi server?", 101 "login.customServerQuestion": "Using a custom Ferdi server?",
102 "login.customServerSuggestion": "Try importing your Franz account", 102 "login.customServerSuggestion": "Try importing your Franz account",
103 "login.email.label": "Email address", 103 "login.email.label": "Email address",
104 "login.headline": "Sign in", 104 "login.headline": "로그인",
105 "login.invalidCredentials": "Email or password not valid", 105 "login.invalidCredentials": "Email or password not valid",
106 "login.link.password": "Reset password", 106 "login.link.password": "비밀번호 초기화",
107 "login.link.signup": "Create a free account", 107 "login.link.signup": "Create a free account",
108 "login.password.label": "Password", 108 "login.password.label": "비밀번호",
109 "login.serverLogout": "Your session expired, please login again.", 109 "login.serverLogout": "Your session expired, please login again.",
110 "login.submit.label": "Sign in", 110 "login.submit.label": "로그인",
111 "login.tokenExpired": "Your session expired, please login again.", 111 "login.tokenExpired": "Your session expired, please login again.",
112 "menu.Todoss.closeTodosDrawer": "Close Todos drawer", 112 "menu.Todoss.closeTodosDrawer": "Close Todos drawer",
113 "menu.Todoss.openTodosDrawer": "Open Todos drawer", 113 "menu.Todoss.openTodosDrawer": "Open Todos drawer",
@@ -115,37 +115,37 @@
115 "menu.app.announcement": "What's new?", 115 "menu.app.announcement": "What's new?",
116 "menu.app.autohideMenuBar": "Auto-hide menu bar", 116 "menu.app.autohideMenuBar": "Auto-hide menu bar",
117 "menu.app.checkForUpdates": "Check for updates", 117 "menu.app.checkForUpdates": "Check for updates",
118 "menu.app.hide": "Hide", 118 "menu.app.hide": "숨기기",
119 "menu.app.hideOthers": "Hide Others", 119 "menu.app.hideOthers": "Hide Others",
120 "menu.app.quit": "Quit", 120 "menu.app.quit": "종료",
121 "menu.app.settings": "Settings", 121 "menu.app.settings": "설정",
122 "menu.app.unhide": "Unhide", 122 "menu.app.unhide": "Unhide",
123 "menu.edit": "Edit", 123 "menu.edit": "Edit",
124 "menu.edit.copy": "Copy", 124 "menu.edit.copy": "Copy",
125 "menu.edit.cut": "Cut", 125 "menu.edit.cut": "Cut",
126 "menu.edit.delete": "Delete", 126 "menu.edit.delete": "삭제",
127 "menu.edit.emojiSymbols": "Emoji & Symbols", 127 "menu.edit.emojiSymbols": "Emoji & Symbols",
128 "menu.edit.findInPage": "Find in Page", 128 "menu.edit.findInPage": "Find in Page",
129 "menu.edit.paste": "Paste", 129 "menu.edit.paste": "붙여넣기",
130 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 130 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
131 "menu.edit.redo": "Redo", 131 "menu.edit.redo": "Redo",
132 "menu.edit.selectAll": "Select All", 132 "menu.edit.selectAll": "전체 선택",
133 "menu.edit.speech": "Speech", 133 "menu.edit.speech": "Speech",
134 "menu.edit.startDictation": "Start Dictation", 134 "menu.edit.startDictation": "Start Dictation",
135 "menu.edit.startSpeaking": "Start Speaking", 135 "menu.edit.startSpeaking": "Start Speaking",
136 "menu.edit.stopSpeaking": "Stop Speaking", 136 "menu.edit.stopSpeaking": "Stop Speaking",
137 "menu.edit.undo": "Undo", 137 "menu.edit.undo": "되돌리기",
138 "menu.file": "File", 138 "menu.file": "파일",
139 "menu.help": "Help", 139 "menu.help": "도움말",
140 "menu.help.changelog": "Changelog", 140 "menu.help.changelog": "Changelog",
141 "menu.help.debugInfo": "Copy Debug Information", 141 "menu.help.debugInfo": "Copy Debug Information",
142 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 142 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.",
143 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 143 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
144 "menu.help.learnMore": "Learn More", 144 "menu.help.learnMore": "Learn More",
145 "menu.help.privacy": "Privacy Statement", 145 "menu.help.privacy": "개인정보보호정책",
146 "menu.help.publishDebugInfo": "Publish Debug Information", 146 "menu.help.publishDebugInfo": "Publish Debug Information",
147 "menu.help.support": "Support", 147 "menu.help.support": "지원",
148 "menu.help.tos": "Terms of Service", 148 "menu.help.tos": "이용 약관",
149 "menu.services": "Services", 149 "menu.services": "Services",
150 "menu.services.activatePreviousService": "Activate previous service", 150 "menu.services.activatePreviousService": "Activate previous service",
151 "menu.services.addNewService": "Add New Service...", 151 "menu.services.addNewService": "Add New Service...",
@@ -154,10 +154,10 @@
154 "menu.todos": "Todos", 154 "menu.todos": "Todos",
155 "menu.todos.enableTodos": "Enable Todos", 155 "menu.todos.enableTodos": "Enable Todos",
156 "menu.view": "View", 156 "menu.view": "View",
157 "menu.view.back": "Back", 157 "menu.view.back": "뒤로가기",
158 "menu.view.enterFullScreen": "Enter Full Screen", 158 "menu.view.enterFullScreen": "Enter Full Screen",
159 "menu.view.exitFullScreen": "Exit Full Screen", 159 "menu.view.exitFullScreen": "Exit Full Screen",
160 "menu.view.forward": "Forward", 160 "menu.view.forward": "앞으로 가기",
161 "menu.view.lockFerdi": "Lock Ferdi", 161 "menu.view.lockFerdi": "Lock Ferdi",
162 "menu.view.openQuickSwitch": "Open Quick Switch", 162 "menu.view.openQuickSwitch": "Open Quick Switch",
163 "menu.view.reloadFranz": "Reload Ferdi", 163 "menu.view.reloadFranz": "Reload Ferdi",
@@ -168,18 +168,18 @@
168 "menu.view.toggleFullScreen": "Toggle Full Screen", 168 "menu.view.toggleFullScreen": "Toggle Full Screen",
169 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 169 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
170 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", 170 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools",
171 "menu.view.zoomIn": "Zoom In", 171 "menu.view.zoomIn": "확대",
172 "menu.view.zoomOut": "Zoom Out", 172 "menu.view.zoomOut": "축소",
173 "menu.window": "Window", 173 "menu.window": "Window",
174 "menu.window.close": "Close", 174 "menu.window.close": "닫기",
175 "menu.window.minimize": "Minimize", 175 "menu.window.minimize": "최소화",
176 "menu.workspaces": "Workspaces", 176 "menu.workspaces": "Workspaces",
177 "menu.workspaces.addNewWorkspace": "Add New Workspace...", 177 "menu.workspaces.addNewWorkspace": "Add New Workspace...",
178 "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", 178 "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer",
179 "menu.workspaces.defaultWorkspace": "All services", 179 "menu.workspaces.defaultWorkspace": "All services",
180 "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", 180 "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer",
181 "password.email.label": "Email address", 181 "password.email.label": "Email address",
182 "password.headline": "Reset password", 182 "password.headline": "비밀번호 초기화",
183 "password.link.login": "Sign in to your account", 183 "password.link.login": "Sign in to your account",
184 "password.link.signup": "Create a free account", 184 "password.link.signup": "Create a free account",
185 "password.noUser": "No user with that email address was found", 185 "password.noUser": "No user with that email address was found",
@@ -196,8 +196,8 @@
196 "pricing.features.recipes": "Choose from more than 70 Services", 196 "pricing.features.recipes": "Choose from more than 70 Services",
197 "pricing.features.serviceProxies": "Service Proxies", 197 "pricing.features.serviceProxies": "Service Proxies",
198 "pricing.features.spellchecker": "Spellchecker support", 198 "pricing.features.spellchecker": "Spellchecker support",
199 "pricing.features.teamManagement": "Team Management", 199 "pricing.features.teamManagement": " 관리",
200 "pricing.features.thirdPartyServices": "Install 3rd party services", 200 "pricing.features.thirdPartyServices": "써드파티 서비스 설치",
201 "pricing.features.unlimitedServices": "Add unlimited services", 201 "pricing.features.unlimitedServices": "Add unlimited services",
202 "pricing.features.upToSixServices": "Add up to 6 services", 202 "pricing.features.upToSixServices": "Add up to 6 services",
203 "pricing.features.upToThreeServices": "Add up to 3 services", 203 "pricing.features.upToThreeServices": "Add up to 3 services",
@@ -225,41 +225,41 @@
225 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", 225 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
226 "service.crashHandler.action": "Reload {name}", 226 "service.crashHandler.action": "Reload {name}",
227 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", 227 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds",
228 "service.crashHandler.headline": "Oh no!", 228 "service.crashHandler.headline": "이런!",
229 "service.crashHandler.text": "{name} has caused an error.", 229 "service.crashHandler.text": "{name} has caused an error.",
230 "service.disabledHandler.action": "Enable {name}", 230 "service.disabledHandler.action": "활성 {name}",
231 "service.disabledHandler.headline": "{name} is disabled", 231 "service.disabledHandler.headline": "{name} 사용 불가",
232 "service.errorHandler.action": "Reload {name}", 232 "service.errorHandler.action": "Reload {name}",
233 "service.errorHandler.editAction": "Edit {name}", 233 "service.errorHandler.editAction": "편집 {name}",
234 "service.errorHandler.headline": "Oh no!", 234 "service.errorHandler.headline": "이런!",
235 "service.errorHandler.message": "Error", 235 "service.errorHandler.message": "에러",
236 "service.errorHandler.text": "{name} has failed to load.", 236 "service.errorHandler.text": "{name} 불러오는데 실패하였습니다.",
237 "service.restrictedHandler.action": "Upgrade Account", 237 "service.restrictedHandler.action": "계정 업그레이드",
238 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required", 238 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required",
239 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", 239 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.",
240 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", 240 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.",
241 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", 241 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.",
242 "service.webviewLoader.loading": "Loading {service}", 242 "service.webviewLoader.loading": "{service} 로딩 중",
243 "services.getStarted": "Get started", 243 "services.getStarted": "시작하기",
244 "services.login": "Please login to use Ferdi.", 244 "services.login": "Ferdi를 사용해 로그인하세요.",
245 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", 245 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.",
246 "services.serverless": "Use Ferdi without an Account", 246 "services.serverless": "계정없이 Ferdi 사용하기",
247 "services.welcome": "Welcome to Ferdi", 247 "services.welcome": "Ferdi에 오신 것을 환영합니다.",
248 "settings.account.account.editButton": "Edit account", 248 "settings.account.account.editButton": "계정 편집",
249 "settings.account.accountType.basic": "Basic Account", 249 "settings.account.accountType.basic": "기본 계정",
250 "settings.account.accountType.premium": "Premium Supporter Account", 250 "settings.account.accountType.premium": "Premium Supporter Account",
251 "settings.account.accountUnavailable": "Account is unavailable", 251 "settings.account.accountUnavailable": "계정을 사용할 수 없습니다.",
252 "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.", 252 "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.",
253 "settings.account.buttonSave": "Update profile", 253 "settings.account.buttonSave": "프로필 수정",
254 "settings.account.deleteAccount": "Delete account", 254 "settings.account.deleteAccount": "계정 삭제",
255 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 255 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!",
256 "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.", 256 "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.",
257 "settings.account.headline": "Account", 257 "settings.account.headline": "계정",
258 "settings.account.headlineAccount": "Account information", 258 "settings.account.headlineAccount": "계정 정보",
259 "settings.account.headlineDangerZone": "Danger Zone", 259 "settings.account.headlineDangerZone": "Danger Zone",
260 "settings.account.headlineInvoices": "Invoices", 260 "settings.account.headlineInvoices": "청구서",
261 "settings.account.headlinePassword": "Change password", 261 "settings.account.headlinePassword": "비밀번호 변경",
262 "settings.account.headlineProfile": "Update profile", 262 "settings.account.headlineProfile": "프로필 수정",
263 "settings.account.headlineSubscription": "Your subscription", 263 "settings.account.headlineSubscription": "Your subscription",
264 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", 264 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial",
265 "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience", 265 "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience",
@@ -290,8 +290,8 @@
290 "settings.app.form.customTodoServer": "Custom Todo Server", 290 "settings.app.form.customTodoServer": "Custom Todo Server",
291 "settings.app.form.darkMode": "Enable dark mode", 291 "settings.app.form.darkMode": "Enable dark mode",
292 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 292 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
293 "settings.app.form.enableLock": "Enable Password Lock", 293 "settings.app.form.enableLock": "암호 잠금 활성화",
294 "settings.app.form.enableSpellchecking": "Enable spell checking", 294 "settings.app.form.enableSpellchecking": "맞춤법 검사 활성화",
295 "settings.app.form.enableSystemTray": "Show Ferdi in system tray", 295 "settings.app.form.enableSystemTray": "Show Ferdi in system tray",
296 "settings.app.form.enableTodos": "Enable Ferdi Todos", 296 "settings.app.form.enableTodos": "Enable Ferdi Todos",
297 "settings.app.form.hibernate": "Enable service hibernation", 297 "settings.app.form.hibernate": "Enable service hibernation",
@@ -300,8 +300,8 @@
300 "settings.app.form.iconSize": "Service icon size", 300 "settings.app.form.iconSize": "Service icon size",
301 "settings.app.form.inactivityLock": "Lock after inactivity", 301 "settings.app.form.inactivityLock": "Lock after inactivity",
302 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 302 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
303 "settings.app.form.language": "Language", 303 "settings.app.form.language": "언어",
304 "settings.app.form.lockPassword": "Password", 304 "settings.app.form.lockPassword": "비밀번호",
305 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 305 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray",
306 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 306 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
307 "settings.app.form.predefinedTodoServer": "Todo Server", 307 "settings.app.form.predefinedTodoServer": "Todo Server",
@@ -316,37 +316,38 @@
316 "settings.app.form.showDisabledServices": "Display disabled services tabs", 316 "settings.app.form.showDisabledServices": "Display disabled services tabs",
317 "settings.app.form.showDragArea": "Show draggable area on window", 317 "settings.app.form.showDragArea": "Show draggable area on window",
318 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 318 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
319 "settings.app.form.startMinimized": "Start minimized", 319 "settings.app.form.startMinimized": "최소화 된 상태로 시작",
320 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 320 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
321 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 321 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
322 "settings.app.headline": "Settings", 322 "settings.app.headline": "설정",
323 "settings.app.headlineAdvanced": "Advanced", 323 "settings.app.headlineAdvanced": "Advanced",
324 "settings.app.headlineAppearance": "Appearance", 324 "settings.app.headlineAppearance": "Appearance",
325 "settings.app.headlineGeneral": "General", 325 "settings.app.headlineGeneral": "General",
326 "settings.app.headlineLanguage": "Language", 326 "settings.app.headlineLanguage": "언어",
327 "settings.app.headlineUpdates": "Updates", 327 "settings.app.headlineUpdates": "업데이트",
328 "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.", 328 "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.",
329 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 329 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
330 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 330 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.",
331 "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.", 331 "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.",
332 "settings.app.lockedPassword": "Password", 332 "settings.app.lockedPassword": "비밀번호",
333 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 333 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
334 "settings.app.restartRequired": "Changes require restart", 334 "settings.app.restartRequired": "변경사항을 적용하기 위해 재시작",
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.subheadlineCache": "Cache", 338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
339 "settings.app.subheadlineCache": "캐시",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
341 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 342 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
342 "settings.app.updateStatusAvailable": "Update available, downloading...", 343 "settings.app.updateStatusAvailable": "Update available, downloading...",
343 "settings.app.updateStatusSearching": "Is searching for update", 344 "settings.app.updateStatusSearching": "Is searching for update",
344 "settings.app.updateStatusUpToDate": "You are using the latest version of Ferdi", 345 "settings.app.updateStatusUpToDate": "You are using the latest version of Ferdi",
345 "settings.invite.headline": "Invite Friends", 346 "settings.invite.headline": "친구 초대하기",
346 "settings.navigation.account": "Account", 347 "settings.navigation.account": "계정",
347 "settings.navigation.availableServices": "Available services", 348 "settings.navigation.availableServices": "Available services",
348 "settings.navigation.logout": "Logout", 349 "settings.navigation.logout": "Logout",
349 "settings.navigation.settings": "Settings", 350 "settings.navigation.settings": "설정",
350 "settings.navigation.supportFerdi": "Support Ferdi", 351 "settings.navigation.supportFerdi": "Support Ferdi",
351 "settings.navigation.team": "Manage Team", 352 "settings.navigation.team": "Manage Team",
352 "settings.navigation.yourServices": "Your services", 353 "settings.navigation.yourServices": "Your services",
@@ -357,8 +358,8 @@
357 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 358 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes",
358 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 359 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes",
359 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 360 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:",
360 "settings.recipes.customService.openDevDocs": "Developer Documentation", 361 "settings.recipes.customService.openDevDocs": "개발 문서",
361 "settings.recipes.customService.openFolder": "Open folder", 362 "settings.recipes.customService.openFolder": "폴더 열기",
362 "settings.recipes.headline": "Available services", 363 "settings.recipes.headline": "Available services",
363 "settings.recipes.missingService": "Missing a service?", 364 "settings.recipes.missingService": "Missing a service?",
364 "settings.recipes.mostPopular": "Most popular", 365 "settings.recipes.mostPopular": "Most popular",
@@ -366,46 +367,46 @@
366 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", 367 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added",
367 "settings.searchService": "Search service", 368 "settings.searchService": "Search service",
368 "settings.service.error.goBack": "Back to services", 369 "settings.service.error.goBack": "Back to services",
369 "settings.service.error.headline": "Error", 370 "settings.service.error.headline": "에러",
370 "settings.service.error.message": "Could not load service recipe.", 371 "settings.service.error.message": "Could not load service recipe.",
371 "settings.service.form.addServiceHeadline": "Add {name}", 372 "settings.service.form.addServiceHeadline": "{name} 추가",
372 "settings.service.form.availableServices": "Available services", 373 "settings.service.form.availableServices": "Available services",
373 "settings.service.form.customUrl": "Custom server", 374 "settings.service.form.customUrl": "Custom server",
374 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.", 375 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.",
375 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", 376 "settings.service.form.customUrlUpgradeAccount": " 계정 업그레이드",
376 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", 377 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
377 "settings.service.form.darkReaderBrightness": "Dark Reader Brightness", 378 "settings.service.form.darkReaderBrightness": "Dark Reader Brightness",
378 "settings.service.form.darkReaderContrast": "Dark Reader Contrast", 379 "settings.service.form.darkReaderContrast": "Dark Reader Contrast",
379 "settings.service.form.darkReaderSepia": "Dark Reader Sepia", 380 "settings.service.form.darkReaderSepia": "Dark Reader Sepia",
380 "settings.service.form.deleteButton": "Delete service", 381 "settings.service.form.deleteButton": "서비스 삭제",
381 "settings.service.form.disableHibernation": "Disable hibernation", 382 "settings.service.form.disableHibernation": "Disable hibernation",
382 "settings.service.form.disableHibernationInfo": "You currently have hibernation enabled but you can disable hibernation for individual services using this option.", 383 "settings.service.form.disableHibernationInfo": "You currently have hibernation enabled but you can disable hibernation for individual services using this option.",
383 "settings.service.form.editServiceHeadline": "Edit {name}", 384 "settings.service.form.editServiceHeadline": "편집 {name}",
384 "settings.service.form.enableAudio": "Enable audio", 385 "settings.service.form.enableAudio": "Enable audio",
385 "settings.service.form.enableBadge": "Show unread message badges", 386 "settings.service.form.enableBadge": "Show unread message badges",
386 "settings.service.form.enableDarkMode": "Enable Dark Mode", 387 "settings.service.form.enableDarkMode": "Enable Dark Mode",
387 "settings.service.form.enableNotification": "Enable notifications", 388 "settings.service.form.enableNotification": "알림 허용",
388 "settings.service.form.enableService": "Enable service", 389 "settings.service.form.enableService": "Enable service",
389 "settings.service.form.headlineBadges": "Unread message badges", 390 "settings.service.form.headlineBadges": "Unread message badges",
390 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", 391 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings",
391 "settings.service.form.headlineGeneral": "General", 392 "settings.service.form.headlineGeneral": "General",
392 "settings.service.form.headlineNotifications": "Notifications", 393 "settings.service.form.headlineNotifications": "알림",
393 "settings.service.form.icon": "Custom icon", 394 "settings.service.form.icon": "Custom icon",
394 "settings.service.form.iconDelete": "Delete", 395 "settings.service.form.iconDelete": "삭제",
395 "settings.service.form.iconUpload": "Drop your image, or click here", 396 "settings.service.form.iconUpload": "이미지를 드래그하거나 클릭",
396 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 397 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
397 "settings.service.form.indirectMessages": "Show message badge for all new messages", 398 "settings.service.form.indirectMessages": "Show message badge for all new messages",
398 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 399 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
399 "settings.service.form.name": "Name", 400 "settings.service.form.name": "이름",
400 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 401 "settings.service.form.openDarkmodeCss": "darkmode.css 열기",
401 "settings.service.form.openUserCss": "Open user.css", 402 "settings.service.form.openUserCss": "Open user.css",
402 "settings.service.form.openUserJs": "Open user.js", 403 "settings.service.form.openUserJs": "Open user.js",
403 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 404 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
404 "settings.service.form.proxy.host": "Proxy Host/IP", 405 "settings.service.form.proxy.host": "Proxy Host/IP",
405 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 406 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
406 "settings.service.form.proxy.isEnabled": "Use Proxy", 407 "settings.service.form.proxy.isEnabled": "프록시 사용하기",
407 "settings.service.form.proxy.password": "Password (optional)", 408 "settings.service.form.proxy.password": "Password (optional)",
408 "settings.service.form.proxy.port": "Port", 409 "settings.service.form.proxy.port": "포트",
409 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 410 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
410 "settings.service.form.proxy.user": "User (optional)", 411 "settings.service.form.proxy.user": "User (optional)",
411 "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.", 412 "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.",
@@ -427,35 +428,35 @@
427 "settings.supportFerdi.github": "Star on GitHub", 428 "settings.supportFerdi.github": "Star on GitHub",
428 "settings.supportFerdi.headline": "Support Ferdi", 429 "settings.supportFerdi.headline": "Support Ferdi",
429 "settings.supportFerdi.openCollective": "Support our Open Collective", 430 "settings.supportFerdi.openCollective": "Support our Open Collective",
430 "settings.supportFerdi.share": "Tell your Friends", 431 "settings.supportFerdi.share": "친구에게 알리기",
431 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 432 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
432 "settings.team.contentHeadline": "Franz Team Management", 433 "settings.team.contentHeadline": "Franz Team Management",
433 "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.", 434 "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.",
434 "settings.team.headline": "Team", 435 "settings.team.headline": "Team",
435 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", 436 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.",
436 "settings.team.manageAction": "Manage your Team on meetfranz.com", 437 "settings.team.manageAction": "meetfranz.com에서 팀 관리하기",
437 "settings.team.teamsUnavailable": "Teams are unavailable", 438 "settings.team.teamsUnavailable": "Teams are unavailable",
438 "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.", 439 "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.",
439 "settings.team.upgradeAction": "Upgrade your Account", 440 "settings.team.upgradeAction": " 계정 업그레이드",
440 "settings.user.form.accountType.company": "Company", 441 "settings.user.form.accountType.company": "회사",
441 "settings.user.form.accountType.individual": "Individual", 442 "settings.user.form.accountType.individual": "Individual",
442 "settings.user.form.accountType.label": "Account type", 443 "settings.user.form.accountType.label": "계좌 유형",
443 "settings.user.form.accountType.non-profit": "Non-Profit", 444 "settings.user.form.accountType.non-profit": "Non-Profit",
444 "settings.user.form.currentPassword": "Current password", 445 "settings.user.form.currentPassword": "현재 비밀번호",
445 "settings.user.form.email": "Email", 446 "settings.user.form.email": "이메일",
446 "settings.user.form.firstname": "First Name", 447 "settings.user.form.firstname": "이름(성 제외)",
447 "settings.user.form.lastname": "Last Name", 448 "settings.user.form.lastname": "",
448 "settings.user.form.newPassword": "New password", 449 "settings.user.form.newPassword": "새로운 비밀번호",
449 "settings.workspace.add.form.name": "Name", 450 "settings.workspace.add.form.name": "이름",
450 "settings.workspace.add.form.submitButton": "Create workspace", 451 "settings.workspace.add.form.submitButton": "새로운 작업영역 생성하기",
451 "settings.workspace.form.buttonDelete": "Delete workspace", 452 "settings.workspace.form.buttonDelete": "작업영역 삭제하기",
452 "settings.workspace.form.buttonSave": "Save workspace", 453 "settings.workspace.form.buttonSave": "작업영역 저장하기",
453 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 454 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*",
454 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 455 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.",
455 "settings.workspace.form.name": "Name", 456 "settings.workspace.form.name": "이름",
456 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", 457 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace",
457 "settings.workspace.form.yourWorkspaces": "Your workspaces", 458 "settings.workspace.form.yourWorkspaces": "Your workspaces",
458 "settings.workspaces.deletedInfo": "Workspace has been deleted", 459 "settings.workspaces.deletedInfo": "작업영역이 삭제되었습니다.",
459 "settings.workspaces.headline": "Your workspaces", 460 "settings.workspaces.headline": "Your workspaces",
460 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", 461 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.",
461 "settings.workspaces.tryReloadWorkspaces": "Try again", 462 "settings.workspaces.tryReloadWorkspaces": "Try again",
@@ -470,39 +471,39 @@
470 "sidebar.muteApp": "Disable notifications & audio", 471 "sidebar.muteApp": "Disable notifications & audio",
471 "sidebar.openTodosDrawer": "Open Ferdi Todos", 472 "sidebar.openTodosDrawer": "Open Ferdi Todos",
472 "sidebar.openWorkspaceDrawer": "Open workspace drawer", 473 "sidebar.openWorkspaceDrawer": "Open workspace drawer",
473 "sidebar.settings": "Settings", 474 "sidebar.settings": "설정",
474 "sidebar.unmuteApp": "Enable notifications & audio", 475 "sidebar.unmuteApp": "Enable notifications & audio",
475 "signup.email.label": "Email address", 476 "signup.email.label": "Email address",
476 "signup.emailDuplicate": "A user with that email address already exists", 477 "signup.emailDuplicate": "A user with that email address already exists",
477 "signup.firstname.label": "First Name", 478 "signup.firstname.label": "이름(성 제외)",
478 "signup.headline": "Sign up", 479 "signup.headline": "회원 가입",
479 "signup.lastname.label": "Last Name", 480 "signup.lastname.label": "",
480 "signup.legal.info": "By creating a Ferdi account you accept the", 481 "signup.legal.info": "By creating a Ferdi account you accept the",
481 "signup.legal.privacy": "Privacy Statement", 482 "signup.legal.privacy": "개인정보보호정책",
482 "signup.legal.terms": "Terms of service", 483 "signup.legal.terms": "이용 약관",
483 "signup.link.login": "Already have an account, sign in?", 484 "signup.link.login": "이미 계정을 가지고 있으시면, 로그인하세요",
484 "signup.password.label": "Password", 485 "signup.password.label": "비밀번호",
485 "signup.submit.label": "Create account", 486 "signup.submit.label": "계정 만들기",
486 "subscription.bestValue": "Best value", 487 "subscription.bestValue": "Best value",
487 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 488 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
488 "subscription.cta.allOptions": "See all options", 489 "subscription.cta.allOptions": "모든 옵션 보기",
489 "subscription.cta.choosePlan": "Choose your plan", 490 "subscription.cta.choosePlan": "플랜을 선택하세요",
490 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", 491 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:",
491 "subscription.interval.per": "per {interval}", 492 "subscription.interval.per": "per {interval}",
492 "subscription.interval.perMonth": "per month", 493 "subscription.interval.perMonth": "per month",
493 "subscription.interval.perMonthPerUser": "per month & user", 494 "subscription.interval.perMonthPerUser": "per month & user",
494 "subscription.planItem.upgradeAccount": "Upgrade Account", 495 "subscription.planItem.upgradeAccount": "계정 업그레이드",
495 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", 496 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:",
496 "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!", 497 "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!",
497 "subscriptionPopup.buttonCancel": "Cancel", 498 "subscriptionPopup.buttonCancel": "취소",
498 "subscriptionPopup.buttonDone": "Done", 499 "subscriptionPopup.buttonDone": "Done",
499 "tabs.item.deleteService": "Delete service", 500 "tabs.item.deleteService": "서비스 삭제",
500 "tabs.item.disableAudio": "Disable audio", 501 "tabs.item.disableAudio": "Disable audio",
501 "tabs.item.disableNotifications": "Disable notifications", 502 "tabs.item.disableNotifications": "Disable notifications",
502 "tabs.item.disableService": "Disable service", 503 "tabs.item.disableService": "Disable service",
503 "tabs.item.edit": "Edit", 504 "tabs.item.edit": "Edit",
504 "tabs.item.enableAudio": "Enable audio", 505 "tabs.item.enableAudio": "Enable audio",
505 "tabs.item.enableNotification": "Enable notifications", 506 "tabs.item.enableNotification": "알림 허용",
506 "tabs.item.enableService": "Enable service", 507 "tabs.item.enableService": "Enable service",
507 "tabs.item.reload": "새로고침", 508 "tabs.item.reload": "새로고침",
508 "validation.email": "{field} is not valid", 509 "validation.email": "{field} is not valid",
@@ -510,8 +511,8 @@
510 "validation.oneRequired": "At least one is required", 511 "validation.oneRequired": "At least one is required",
511 "validation.required": "{field} is required", 512 "validation.required": "{field} is required",
512 "validation.url": "{field} is not a valid URL", 513 "validation.url": "{field} is not a valid URL",
513 "webControls.back": "Back", 514 "webControls.back": "뒤로가기",
514 "webControls.forward": "Forward", 515 "webControls.forward": "앞으로 가기",
515 "webControls.goHome": "Home", 516 "webControls.goHome": "Home",
516 "webControls.openInBrowser": "Open in Browser", 517 "webControls.openInBrowser": "Open in Browser",
517 "webControls.reload": "새로고침", 518 "webControls.reload": "새로고침",
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index dcbd84636..193e326b6 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help ons om Ferdi te vertalen naar uw taal.", 341 "settings.app.translationHelp": "Help ons om Ferdi te vertalen naar uw taal.",
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index 9de45b28c..f071165b3 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help ons om Ferdi uw taal te laten spreken.", 341 "settings.app.translationHelp": "Help ons om Ferdi uw taal te laten spreken.",
diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json
index 356c1fc1e..dccb5c5ef 100644
--- a/src/i18n/locales/no.json
+++ b/src/i18n/locales/no.json
@@ -1,24 +1,24 @@
1{ 1{
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Last inn på nytt",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Noe gikk galt",
4 "changeserver.customServerLabel": "Custom server", 4 "changeserver.customServerLabel": "Egendefinert tjener",
5 "changeserver.headline": "Change server", 5 "changeserver.headline": "Bytt tjener",
6 "changeserver.label": "Server", 6 "changeserver.label": "Tjener",
7 "changeserver.submit": "Submit", 7 "changeserver.submit": "Send",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Angi en gyldig nettadresse",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "Ekstra innstillinger som tilbys av Ferdi vil ikke bli lagret",
10 "connectionLostBanner.cta": "Reload Service", 10 "connectionLostBanner.cta": "Last inn tjenesten på nytt",
11 "connectionLostBanner.informationLink": "What happened?", 11 "connectionLostBanner.informationLink": "Hva skjedde?",
12 "connectionLostBanner.message": "Oh no! Ferdi lost the connection to {name}.", 12 "connectionLostBanner.message": "Å nei! Ferdi mistet forbindelsen til {name}.",
13 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 13 "feature.announcements.changelog.headline": "Endringer i Ferdi {version}",
14 "feature.debugger.title": "Publish debugging information", 14 "feature.debugger.title": "Publiser feilsøkingsinformasjon",
15 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 15 "feature.delayApp.headline": "Vennligst kjøp en Ferdi Supporter-lisens for å hoppe over ventingen",
16 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 16 "feature.delayApp.text": "Ferdi vil fortsette om {seconds} sekunder.",
17 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 17 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
18 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", 18 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial",
19 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", 19 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line",
20 "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License", 20 "feature.delayApp.upgrade.action": " en Ferdi Supporter-lisens",
21 "feature.delayApp.upgrade.actionShort": "Upgrade account", 21 "feature.delayApp.upgrade.actionShort": "Oppgrader kontoen",
22 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", 22 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
23 "feature.planSelection.cta.stayOnFree": "Stay on Free", 23 "feature.planSelection.cta.stayOnFree": "Stay on Free",
24 "feature.planSelection.cta.trial": "Start my free 14-days Trial", 24 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
@@ -35,27 +35,27 @@
35 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 35 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
36 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 36 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
37 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 37 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
38 "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.", 38 "feature.publishDebugInfo.error": "Det oppstod en feil under forsøket på å publisere feilsøkingsinformasjonen. Prøv igjen senere eller se i konsollet for ytterligere informasjon.",
39 "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", 39 "feature.publishDebugInfo.info": "Publisering av din feilsøkingsinformasjon hjelper oss med å finne problemer og feil i Ferdi. Ved å publisere feilsøkingsinformasjonen, godtar du Ferdi feilsøkings-retningslinjer for personvern og tjenestevilkår",
40 "feature.publishDebugInfo.privacy": "Privacy policy", 40 "feature.publishDebugInfo.privacy": "Retningslinjer for personvern",
41 "feature.publishDebugInfo.publish": "Accept and publish", 41 "feature.publishDebugInfo.publish": "Godta og publiser",
42 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 42 "feature.publishDebugInfo.published": "Feilsøkingsloggen din ble publisert og er nå tilgjengelig ",
43 "feature.publishDebugInfo.terms": "Terms of service", 43 "feature.publishDebugInfo.terms": "Vilkår for bruk",
44 "feature.publishDebugInfo.title": "Publish debug information", 44 "feature.publishDebugInfo.title": "Publiser feilsøkingsinformasjon",
45 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 45 "feature.quickSwitch.info": "Velg en tjeneste med TAB, ↑ og ↓. Åpne en tjeneste med ENTER.",
46 "feature.quickSwitch.search": "Search...", 46 "feature.quickSwitch.search": "Søk...",
47 "feature.quickSwitch.title": "QuickSwitch", 47 "feature.quickSwitch.title": "Hurtigbytte",
48 "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.", 48 "feature.serviceLimit.limitReached": "Du har lagt til {amount} av {limit} tjenester som er inkludert i planen din. Vennligst oppgrader kontoen din for å legge til flere tjenester.",
49 "feature.shareFranz.action.email": "Send as email", 49 "feature.shareFranz.action.email": "Send som e-post",
50 "feature.shareFranz.action.facebook": "Share on Facebook", 50 "feature.shareFranz.action.facebook": "Del Facebook",
51 "feature.shareFranz.action.twitter": "Share on Twitter", 51 "feature.shareFranz.action.twitter": "Del Twitter",
52 "feature.shareFranz.headline": "Ferdi is better together!", 52 "feature.shareFranz.headline": "Ferdi er bedre sammen!",
53 "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", 53 "feature.shareFranz.shareText.email": "Jeg har lagt til {count} tjenester i Ferdi! Få den gratis programvaren for WhatsApp, Messenger, Slack, Skype og andre på www.getferdi.com",
54 "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", 54 "feature.shareFranz.shareText.twitter": "Jeg har lagt til {count} tjenester i Ferdi! Få den gratis programvaren for WhatsApp, Messenger, Slack, Skype og andre på www.getferdi.com /cc @FerdiMessenger",
55 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.", 55 "feature.shareFranz.text": "Fortell vennene og kollegene dine om hvor fantastisk Ferdi er og hjelp oss med å spre ordet.",
56 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!", 56 "feature.todos.premium.info": "Ferdi gjøremål er tilgjengelig for premium brukere nå!",
57 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", 57 "feature.todos.premium.rollout": "Alle andre vente litt lenger.",
58 "feature.todos.premium.upgrade": "Upgrade Account", 58 "feature.todos.premium.upgrade": "Oppgrader din konto",
59 "feature.trialStatusBar.cta": "Upgrade now", 59 "feature.trialStatusBar.cta": "Upgrade now",
60 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", 60 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
61 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 61 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
@@ -63,153 +63,153 @@
63 "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.", 63 "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.",
64 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan", 64 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
65 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", 65 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.",
66 "global.api.unhealthy": "Can't connect to Ferdi online services", 66 "global.api.unhealthy": "Kan ikke koble til Ferdi online-tjenester",
67 "global.franzProRequired": "Ferdi Professional Required", 67 "global.franzProRequired": "Ferdi Professional kreves",
68 "global.notConnectedToTheInternet": "You are not connected to the internet.", 68 "global.notConnectedToTheInternet": "Du er ikke koblet til Internett.",
69 "global.spellchecker.useDefault": "Use System Default ({default})", 69 "global.spellchecker.useDefault": "Bruk systemstandarden ({default})",
70 "global.spellchecking.autodetect": "Detect language automatically", 70 "global.spellchecking.autodetect": "Oppdag språk automatisk",
71 "global.spellchecking.autodetect.short": "Automatic", 71 "global.spellchecking.autodetect.short": "Automatisk",
72 "global.spellchecking.language": "Spell checking language", 72 "global.spellchecking.language": "Språk for stavekontroll",
73 "global.upgradeButton.upgradeToPro": "Upgrade to Ferdi Professional", 73 "global.upgradeButton.upgradeToPro": "Oppgrader til Ferdi Professional",
74 "import.headline": "Import your Ferdi 4 services", 74 "import.headline": "Importer Ferdi 4-tjenestene dine",
75 "import.notSupportedHeadline": "Services not yet supported in Ferdi 5", 75 "import.notSupportedHeadline": "Tjenester som ikke støttes enda i Ferdi 5",
76 "import.skip.label": "I want to add services manually", 76 "import.skip.label": "Jeg ønsker å legge til tjenester manuelt",
77 "import.submit.label": "Import services", 77 "import.submit.label": "Importer tjenester",
78 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 78 "infobar.authRequestFailed": "Det oppstod en feil under forsøket med en autentisert forespørsel. Prøv å logge ut og inn igjen om denne feilen vedvarer.",
79 "infobar.buttonChangelog": "What is new?", 79 "infobar.buttonChangelog": "Hva er nytt?",
80 "infobar.buttonInstallUpdate": "Restart & install update", 80 "infobar.buttonInstallUpdate": "Start nytt og installer oppdatering",
81 "infobar.buttonReloadServices": "Reload services", 81 "infobar.buttonReloadServices": "Last inn tjenestene på nytt",
82 "infobar.requiredRequestsFailed": "Could not load services and user information", 82 "infobar.requiredRequestsFailed": "Kunne ikke laste tjenestene og brukerinformasjonen",
83 "infobar.servicesUpdated": "Your services have been updated.", 83 "infobar.servicesUpdated": "Dine tjenester har blitt oppdatert.",
84 "infobar.trialActivated": "Your trial was successfully activated. Happy messaging!", 84 "infobar.trialActivated": "Your trial was successfully activated. Happy messaging!",
85 "infobar.updateAvailable": "A new update for Ferdi is available.", 85 "infobar.updateAvailable": "En ny oppdatering til Ferdi er tilgjengelig.",
86 "invite.email.label": "Email address", 86 "invite.email.label": "E-postadresse",
87 "invite.headline.friends": "Invite 3 of your friends or colleagues", 87 "invite.headline.friends": "Inviter 3 av dine venner eller kolleger",
88 "invite.name.label": "Name", 88 "invite.name.label": "Navn",
89 "invite.skip.label": "I want to do this later", 89 "invite.skip.label": "Jeg vil gjøre dette senere",
90 "invite.submit.label": "Send invites", 90 "invite.submit.label": "Send invitasjoner",
91 "invite.successInfo": "Invitations sent successfully", 91 "invite.successInfo": "Invitasjonene ble vellykket sendt",
92 "locked.headline": "Locked", 92 "locked.headline": "Låst",
93 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 93 "locked.info": "Ferdi er for øyeblikket låst. Vennligst lås opp Ferdi med passordet ditt for å se meldingene dine.",
94 "locked.invalidCredentials": "Password invalid", 94 "locked.invalidCredentials": "Ugyldig passord",
95 "locked.password.label": "Password", 95 "locked.password.label": "Passord",
96 "locked.submit.label": "Unlock", 96 "locked.submit.label": "Lås opp",
97 "locked.touchId": "Unlock with Touch ID", 97 "locked.touchId": "Lås opp med Touch ID",
98 "locked.touchIdPrompt": "unlock via Touch ID", 98 "locked.touchIdPrompt": "lås opp med Touch ID",
99 "locked.unlockWithPassword": "Unlock with Password", 99 "locked.unlockWithPassword": "Lås opp med passord",
100 "login.changeServer": "Change server", 100 "login.changeServer": "Bytt tjener",
101 "login.customServerQuestion": "Using a custom Ferdi server?", 101 "login.customServerQuestion": "Using a custom Ferdi server?",
102 "login.customServerSuggestion": "Try importing your Franz account", 102 "login.customServerSuggestion": "Try importing your Franz account",
103 "login.email.label": "Email address", 103 "login.email.label": "E-postadresse",
104 "login.headline": "Sign in", 104 "login.headline": "Logg inn",
105 "login.invalidCredentials": "Email or password not valid", 105 "login.invalidCredentials": "E-posten eller passordet er ikke gyldig",
106 "login.link.password": "Reset password", 106 "login.link.password": "Tilbakestill passord",
107 "login.link.signup": "Create a free account", 107 "login.link.signup": "Opprett en gratis konto",
108 "login.password.label": "Password", 108 "login.password.label": "Passord",
109 "login.serverLogout": "Your session expired, please login again.", 109 "login.serverLogout": "Din økt er utløpet, vennligst logg inn igjen.",
110 "login.submit.label": "Sign in", 110 "login.submit.label": "Logg inn",
111 "login.tokenExpired": "Your session expired, please login again.", 111 "login.tokenExpired": "Din økt er utløpet, vennligst logg inn igjen.",
112 "menu.Todoss.closeTodosDrawer": "Close Todos drawer", 112 "menu.Todoss.closeTodosDrawer": "Lukk skuff for gjøremål",
113 "menu.Todoss.openTodosDrawer": "Open Todos drawer", 113 "menu.Todoss.openTodosDrawer": "Åpne skuff for gjøremål",
114 "menu.app.about": "About Ferdi", 114 "menu.app.about": "Om Ferdi",
115 "menu.app.announcement": "What's new?", 115 "menu.app.announcement": "Hva er nytt?",
116 "menu.app.autohideMenuBar": "Auto-hide menu bar", 116 "menu.app.autohideMenuBar": "Skjul menylinjen automatisk",
117 "menu.app.checkForUpdates": "Check for updates", 117 "menu.app.checkForUpdates": "Se etter oppdateringer",
118 "menu.app.hide": "Hide", 118 "menu.app.hide": "Skjul",
119 "menu.app.hideOthers": "Hide Others", 119 "menu.app.hideOthers": "Skjul andre",
120 "menu.app.quit": "Quit", 120 "menu.app.quit": "Avslutt",
121 "menu.app.settings": "Settings", 121 "menu.app.settings": "Innstillinger",
122 "menu.app.unhide": "Unhide", 122 "menu.app.unhide": "Vis",
123 "menu.edit": "Edit", 123 "menu.edit": "Rediger",
124 "menu.edit.copy": "Copy", 124 "menu.edit.copy": "Kopier",
125 "menu.edit.cut": "Cut", 125 "menu.edit.cut": "Klipp ut",
126 "menu.edit.delete": "Delete", 126 "menu.edit.delete": "Slett",
127 "menu.edit.emojiSymbols": "Emoji & Symbols", 127 "menu.edit.emojiSymbols": "Emoji og symboler",
128 "menu.edit.findInPage": "Find in Page", 128 "menu.edit.findInPage": "Finn på siden",
129 "menu.edit.paste": "Paste", 129 "menu.edit.paste": "Lim inn",
130 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 130 "menu.edit.pasteAndMatchStyle": "Lim inn og tilpass stil",
131 "menu.edit.redo": "Redo", 131 "menu.edit.redo": "Gjenta",
132 "menu.edit.selectAll": "Select All", 132 "menu.edit.selectAll": "Merk alt",
133 "menu.edit.speech": "Speech", 133 "menu.edit.speech": "Tale",
134 "menu.edit.startDictation": "Start Dictation", 134 "menu.edit.startDictation": "Start diktering",
135 "menu.edit.startSpeaking": "Start Speaking", 135 "menu.edit.startSpeaking": "Start diktering",
136 "menu.edit.stopSpeaking": "Stop Speaking", 136 "menu.edit.stopSpeaking": "Stopp diktering",
137 "menu.edit.undo": "Undo", 137 "menu.edit.undo": "Angre",
138 "menu.file": "File", 138 "menu.file": "Fil",
139 "menu.help": "Help", 139 "menu.help": "Hjelp",
140 "menu.help.changelog": "Changelog", 140 "menu.help.changelog": "Endringslogg",
141 "menu.help.debugInfo": "Copy Debug Information", 141 "menu.help.debugInfo": "Kopier feilsøkingsinformasjon",
142 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 142 "menu.help.debugInfoCopiedBody": "Din feilsøkingsinformasjon har blitt kopiert til utklippstavlen.",
143 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 143 "menu.help.debugInfoCopiedHeadline": "Ferdi feilsøkingsinformasjon",
144 "menu.help.learnMore": "Learn More", 144 "menu.help.learnMore": "Finn ut mer",
145 "menu.help.privacy": "Privacy Statement", 145 "menu.help.privacy": "Personvernerklæring",
146 "menu.help.publishDebugInfo": "Publish Debug Information", 146 "menu.help.publishDebugInfo": "Publiser feilsøkingsinformasjon",
147 "menu.help.support": "Support", 147 "menu.help.support": "Brukerstøtte",
148 "menu.help.tos": "Terms of Service", 148 "menu.help.tos": "Vilkår for bruk",
149 "menu.services": "Services", 149 "menu.services": "Tjenester",
150 "menu.services.activatePreviousService": "Activate previous service", 150 "menu.services.activatePreviousService": "Aktiver forrige tjeneste",
151 "menu.services.addNewService": "Add New Service...", 151 "menu.services.addNewService": "Legg til ny tjeneste...",
152 "menu.services.goHome": "Home", 152 "menu.services.goHome": "Hjem",
153 "menu.services.setNextServiceActive": "Activate next service", 153 "menu.services.setNextServiceActive": "Aktiver neste tjeneste",
154 "menu.todos": "Todos", 154 "menu.todos": "Gjøremål",
155 "menu.todos.enableTodos": "Enable Todos", 155 "menu.todos.enableTodos": "Aktiver gjøremål",
156 "menu.view": "View", 156 "menu.view": "Vis",
157 "menu.view.back": "Back", 157 "menu.view.back": "Tilbake",
158 "menu.view.enterFullScreen": "Enter Full Screen", 158 "menu.view.enterFullScreen": "til fullskjerm",
159 "menu.view.exitFullScreen": "Exit Full Screen", 159 "menu.view.exitFullScreen": "Avslutt fullskjerm",
160 "menu.view.forward": "Forward", 160 "menu.view.forward": "Videresend",
161 "menu.view.lockFerdi": "Lock Ferdi", 161 "menu.view.lockFerdi": "Lås Ferdi",
162 "menu.view.openQuickSwitch": "Open Quick Switch", 162 "menu.view.openQuickSwitch": "Åpne hurtigbytte",
163 "menu.view.reloadFranz": "Reload Ferdi", 163 "menu.view.reloadFranz": "Last inn Ferdi på nytt",
164 "menu.view.reloadService": "Reload Service", 164 "menu.view.reloadService": "Last inn tjenesten på nytt",
165 "menu.view.resetZoom": "Actual Size", 165 "menu.view.resetZoom": "Faktisk størrelse",
166 "menu.view.toggleDarkMode": "Toggle Dark Mode", 166 "menu.view.toggleDarkMode": "Skru av/på mørkt tema",
167 "menu.view.toggleDevTools": "Toggle Developer Tools", 167 "menu.view.toggleDevTools": "Aktiverer/deaktiverer utviklerverktøy",
168 "menu.view.toggleFullScreen": "Toggle Full Screen", 168 "menu.view.toggleFullScreen": " inn/ut av fullskjerm",
169 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 169 "menu.view.toggleServiceDevTools": "Skru av/på tjenestutviklerverktøy",
170 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", 170 "menu.view.toggleTodosDevTools": "Aktiverer/deaktiverer gjøremål-utviklerverktøy",
171 "menu.view.zoomIn": "Zoom In", 171 "menu.view.zoomIn": "Zoom inn",
172 "menu.view.zoomOut": "Zoom Out", 172 "menu.view.zoomOut": "Zoom ut",
173 "menu.window": "Window", 173 "menu.window": "Vindu",
174 "menu.window.close": "Close", 174 "menu.window.close": "Lukk",
175 "menu.window.minimize": "Minimize", 175 "menu.window.minimize": "Minimer",
176 "menu.workspaces": "Workspaces", 176 "menu.workspaces": "Arbeidsområder",
177 "menu.workspaces.addNewWorkspace": "Add New Workspace...", 177 "menu.workspaces.addNewWorkspace": "Legg til nytt arbeidsområde...",
178 "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", 178 "menu.workspaces.closeWorkspaceDrawer": "Lukk skuff for arbeidsområder",
179 "menu.workspaces.defaultWorkspace": "All services", 179 "menu.workspaces.defaultWorkspace": "Alle tjenester",
180 "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", 180 "menu.workspaces.openWorkspaceDrawer": "Åpne skuff for arbeidsområder",
181 "password.email.label": "Email address", 181 "password.email.label": "E-postadresse",
182 "password.headline": "Reset password", 182 "password.headline": "Tilbakestill passord",
183 "password.link.login": "Sign in to your account", 183 "password.link.login": "Logg inn kontoen din",
184 "password.link.signup": "Create a free account", 184 "password.link.signup": "Opprett en gratis konto",
185 "password.noUser": "No user with that email address was found", 185 "password.noUser": "Ingen bruker med den e-postadressen ble funnet",
186 "password.submit.label": "Submit", 186 "password.submit.label": "Send",
187 "password.successInfo": "Please check your email", 187 "password.successInfo": "Vennligst sjekk e-posten din",
188 "premiumFeature.button.upgradeAccount": "Upgrade account", 188 "premiumFeature.button.upgradeAccount": "Oppgrader kontoen",
189 "pricing.features.accountSync": "Account Synchronisation", 189 "pricing.features.accountSync": "Konto synkronisering",
190 "pricing.features.adFree": "Forever ad-free", 190 "pricing.features.adFree": "Alltid uten reklame",
191 "pricing.features.appDelays": "No Waiting Screens", 191 "pricing.features.appDelays": "Ingen vente-skjermer",
192 "pricing.features.appDelaysEnabled": "Occasional Waiting Screens", 192 "pricing.features.appDelaysEnabled": "Tilfeldig vente-skjermer",
193 "pricing.features.customWebsites": "Add Custom Websites", 193 "pricing.features.customWebsites": "Legg til egendefinerte nettsteder",
194 "pricing.features.desktopNotifications": "Desktop Notifications", 194 "pricing.features.desktopNotifications": "Skrivebord varsler",
195 "pricing.features.onPremise": "On-premise & other Hosted Services", 195 "pricing.features.onPremise": "On-premise og andre selvbetjente tjenester",
196 "pricing.features.recipes": "Choose from more than 70 Services", 196 "pricing.features.recipes": "Velg fra mer enn 70 tjenester",
197 "pricing.features.serviceProxies": "Service Proxies", 197 "pricing.features.serviceProxies": "Mellomtjenere for tjenester",
198 "pricing.features.spellchecker": "Spellchecker support", 198 "pricing.features.spellchecker": "Støtte for stavekontroll",
199 "pricing.features.teamManagement": "Team Management", 199 "pricing.features.teamManagement": "Team-administrasjon",
200 "pricing.features.thirdPartyServices": "Install 3rd party services", 200 "pricing.features.thirdPartyServices": "Installer tredjepartstjenester",
201 "pricing.features.unlimitedServices": "Add unlimited services", 201 "pricing.features.unlimitedServices": "Legg til ubegrenset antall tjenester",
202 "pricing.features.upToSixServices": "Add up to 6 services", 202 "pricing.features.upToSixServices": "Legg til opptil 6 tjenester",
203 "pricing.features.upToThreeServices": "Add up to 3 services", 203 "pricing.features.upToThreeServices": "Legg til opptil 3 tjenester",
204 "pricing.features.workspaces": "Workspaces", 204 "pricing.features.workspaces": "Arbeidsområder",
205 "pricing.plan.free": "Ferdi Free", 205 "pricing.plan.free": "Ferdi Free",
206 "pricing.plan.legacy": "Ferdi Premium", 206 "pricing.plan.legacy": "Ferdi Premium",
207 "pricing.plan.personal": "Ferdi Personal", 207 "pricing.plan.personal": "Ferdi Personal",
208 "pricing.plan.personal-monthly": "Ferdi Personal Monthly", 208 "pricing.plan.personal-monthly": "Ferdi Personal nedlig",
209 "pricing.plan.personal-yearly": "Ferdi Personal Yearly", 209 "pricing.plan.personal-yearly": "Ferdi Personal årlig",
210 "pricing.plan.pro": "Ferdi Professional", 210 "pricing.plan.pro": "Ferdi Professional",
211 "pricing.plan.pro-monthly": "Ferdi Professional Monthly", 211 "pricing.plan.pro-monthly": "Ferdi Professional nedlig",
212 "pricing.plan.pro-yearly": "Ferdi Professional Yearly", 212 "pricing.plan.pro-yearly": "Ferdi Professional årlig",
213 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional", 213 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional",
214 "pricing.trial.cta.skip": "Continue to Ferdi", 214 "pricing.trial.cta.skip": "Continue to Ferdi",
215 "pricing.trial.cta.start": "Start using Ferdi", 215 "pricing.trial.cta.start": "Start using Ferdi",
@@ -223,309 +223,310 @@
223 "pricing.trial.terms.headline": "No strings attached", 223 "pricing.trial.terms.headline": "No strings attached",
224 "pricing.trial.terms.noCreditCard": "No credit card required", 224 "pricing.trial.terms.noCreditCard": "No credit card required",
225 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", 225 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
226 "service.crashHandler.action": "Reload {name}", 226 "service.crashHandler.action": "Last {name} inn på nytt",
227 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", 227 "service.crashHandler.autoReload": "Prøver å automatisk gjenopprette {name} om {seconds} sekunder",
228 "service.crashHandler.headline": "Oh no!", 228 "service.crashHandler.headline": "Å nei!",
229 "service.crashHandler.text": "{name} has caused an error.", 229 "service.crashHandler.text": "{name} har forårsaket en feil.",
230 "service.disabledHandler.action": "Enable {name}", 230 "service.disabledHandler.action": "Aktiver {name}",
231 "service.disabledHandler.headline": "{name} is disabled", 231 "service.disabledHandler.headline": "{name} er deaktivert",
232 "service.errorHandler.action": "Reload {name}", 232 "service.errorHandler.action": "Last {name} inn på nytt",
233 "service.errorHandler.editAction": "Edit {name}", 233 "service.errorHandler.editAction": "Rediger {name}",
234 "service.errorHandler.headline": "Oh no!", 234 "service.errorHandler.headline": "Å nei!",
235 "service.errorHandler.message": "Error", 235 "service.errorHandler.message": "Feil",
236 "service.errorHandler.text": "{name} has failed to load.", 236 "service.errorHandler.text": "{name} kan ikke lastes.",
237 "service.restrictedHandler.action": "Upgrade Account", 237 "service.restrictedHandler.action": "Oppgrader din konto",
238 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required", 238 "service.restrictedHandler.customUrl.headline": "Ferdi Professional-funksjonsplan kreves",
239 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", 239 "service.restrictedHandler.customUrl.text": "Vennligst oppgrader til Ferdi Professional funksjonsplan for å bruke egendefinerte nettadresser og selvbetjente tjenester.",
240 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", 240 "service.restrictedHandler.serviceLimit.headline": "Du hardd din tjeneste-grense.",
241 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", 241 "service.restrictedHandler.serviceLimit.text": "Vennligst oppgrader kontoen din for å brukere mer enn {count} tjenester.",
242 "service.webviewLoader.loading": "Loading {service}", 242 "service.webviewLoader.loading": "Laster inn {service}",
243 "services.getStarted": "Get started", 243 "services.getStarted": "Kom i gang",
244 "services.login": "Please login to use Ferdi.", 244 "services.login": "Vennligst logg inn for å bruke Ferdi.",
245 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", 245 "services.serverInfo": "Eventuelt kan du endre Ferdi-tjeneren ved å klikke tannhjulet i det nederste venstre hjørne.",
246 "services.serverless": "Use Ferdi without an Account", 246 "services.serverless": "Bruk Ferdi uten en konto",
247 "services.welcome": "Welcome to Ferdi", 247 "services.welcome": "Velkommen til Ferdi",
248 "settings.account.account.editButton": "Edit account", 248 "settings.account.account.editButton": "Rediger konto",
249 "settings.account.accountType.basic": "Basic Account", 249 "settings.account.accountType.basic": "Basis-konto",
250 "settings.account.accountType.premium": "Premium Supporter Account", 250 "settings.account.accountType.premium": "Premium Supporter-konto",
251 "settings.account.accountUnavailable": "Account is unavailable", 251 "settings.account.accountUnavailable": "Kontoen er ikke tilgjengelig",
252 "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.", 252 "settings.account.accountUnavailableInfo": "Du bruker Ferdi uten en konto. Hvis du ønsker å bruke Ferdi med en konto og hold tjenestene dine synkronisert på tvers av installasjoner, velg en tjener i fanen innstillinger og logg inn.",
253 "settings.account.buttonSave": "Update profile", 253 "settings.account.buttonSave": "Oppdater profil",
254 "settings.account.deleteAccount": "Delete account", 254 "settings.account.deleteAccount": "Slett konto",
255 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 255 "settings.account.deleteEmailSent": "Du har mottatt en e-post med en lenke for å bekrefte sletting av kontoen din. Din konto og dine data kan ikke gjenopprettes!",
256 "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.", 256 "settings.account.deleteInfo": "Hvis du ikke trenger Ferdi-kontoen din lenger, så kan du slette kontoen din og alle de relaterte dataene her.",
257 "settings.account.headline": "Account", 257 "settings.account.headline": "Konto",
258 "settings.account.headlineAccount": "Account information", 258 "settings.account.headlineAccount": "Kontoinformasjon",
259 "settings.account.headlineDangerZone": "Danger Zone", 259 "settings.account.headlineDangerZone": "Faresone",
260 "settings.account.headlineInvoices": "Invoices", 260 "settings.account.headlineInvoices": "Fakturaer",
261 "settings.account.headlinePassword": "Change password", 261 "settings.account.headlinePassword": "Endre passord",
262 "settings.account.headlineProfile": "Update profile", 262 "settings.account.headlineProfile": "Oppdater profil",
263 "settings.account.headlineSubscription": "Your subscription", 263 "settings.account.headlineSubscription": "Abonnementet ditt",
264 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", 264 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial",
265 "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience", 265 "settings.account.headlineUpgradeAccount": "Oppgrader din konto og full tilgang til Ferdi-opplevelsen",
266 "settings.account.invoiceDownload": "Download", 266 "settings.account.invoiceDownload": "Last ned",
267 "settings.account.manageSubscription.label": "Manage your subscription", 267 "settings.account.manageSubscription.label": "Administrere ditt abonnement",
268 "settings.account.successInfo": "Your changes have been saved", 268 "settings.account.successInfo": "Dine endringer har blitt lagret",
269 "settings.account.trial": "Free Trial", 269 "settings.account.trial": "Free Trial",
270 "settings.account.trialEndsIn": "Your free trial ends in {duration}.", 270 "settings.account.trialEndsIn": "Your free trial ends in {duration}.",
271 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.", 271 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.",
272 "settings.account.tryReloadServices": "Try again", 272 "settings.account.tryReloadServices": "Prøv igjen",
273 "settings.account.tryReloadUserInfoRequest": "Try again", 273 "settings.account.tryReloadUserInfoRequest": "Prøv igjen",
274 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional", 274 "settings.account.upgradeToPro.label": "Oppgrader til Ferdi Professional",
275 "settings.account.userInfoRequestFailed": "Could not load user information", 275 "settings.account.userInfoRequestFailed": "Kunne ikke laste brukerinformasjonen",
276 "settings.account.yourLicense": "Your Ferdi License", 276 "settings.account.yourLicense": "Din Ferdi lisens",
277 "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)", 277 "settings.app.accentColorInfo": "Skriv inn din farge for fremhevelse i CSS-kompatibelt format. (Standard: #7367f0)",
278 "settings.app.buttonClearAllCache": "Clear cache", 278 "settings.app.buttonClearAllCache": "Tøm hurtiglager",
279 "settings.app.buttonInstallUpdate": "Restart & install update", 279 "settings.app.buttonInstallUpdate": "Start på nytt og installer oppdatering",
280 "settings.app.buttonSearchForUpdate": "Check for updates", 280 "settings.app.buttonSearchForUpdate": "Se etter oppdateringer",
281 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 281 "settings.app.cacheInfo": "Ferdi hurtiglager bruker for øyeblikket {size} av diskplassen.",
282 "settings.app.cacheNotCleared": "Couldn't clear all cache", 282 "settings.app.cacheNotCleared": "Kunne ikke slette hurtiglageret",
283 "settings.app.currentVersion": "Current version:", 283 "settings.app.currentVersion": "Nåværende versjon:",
284 "settings.app.form.accentColor": "Accent color", 284 "settings.app.form.accentColor": "Uthevet farge",
285 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", 285 "settings.app.form.adaptableDarkMode": "Synkroniser mørkt tema med mørkt tema-innstillingene for mitt operativsystem",
286 "settings.app.form.autoLaunchInBackground": "Open in background", 286 "settings.app.form.autoLaunchInBackground": "Åpne i bakgrunnen",
287 "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", 287 "settings.app.form.autoLaunchOnStart": "Start Ferdi ved oppstart",
288 "settings.app.form.automaticUpdates": "Enable updates", 288 "settings.app.form.automaticUpdates": "Aktiver oppdateringer",
289 "settings.app.form.beta": "Include beta versions", 289 "settings.app.form.beta": "Inkluder betaversjoner",
290 "settings.app.form.customTodoServer": "Custom Todo Server", 290 "settings.app.form.customTodoServer": "Egendefinerte gjøremål-tjener",
291 "settings.app.form.darkMode": "Enable dark mode", 291 "settings.app.form.darkMode": "Aktiver mørkt tema",
292 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 292 "settings.app.form.enableGPUAcceleration": "Aktiver GPU-akselerasjon",
293 "settings.app.form.enableLock": "Enable Password Lock", 293 "settings.app.form.enableLock": "Aktiver passordlås",
294 "settings.app.form.enableSpellchecking": "Enable spell checking", 294 "settings.app.form.enableSpellchecking": "Aktiver stavekontroll",
295 "settings.app.form.enableSystemTray": "Show Ferdi in system tray", 295 "settings.app.form.enableSystemTray": "Vis Ferdi i systemstatusfeltet",
296 "settings.app.form.enableTodos": "Enable Ferdi Todos", 296 "settings.app.form.enableTodos": "Aktiver Ferdi gjøremål",
297 "settings.app.form.hibernate": "Enable service hibernation", 297 "settings.app.form.hibernate": "Aktiver dvalemodus for tjeneste",
298 "settings.app.form.hibernateOnStartup": "Keep services in hibernation on startup", 298 "settings.app.form.hibernateOnStartup": "Hold tjenestene i dvalemodus ved oppstart",
299 "settings.app.form.hibernationStrategy": "Hibernation strategy", 299 "settings.app.form.hibernationStrategy": "Dvalemodus-strategi",
300 "settings.app.form.iconSize": "Service icon size", 300 "settings.app.form.iconSize": "Ikonstørrelse på tjenester",
301 "settings.app.form.inactivityLock": "Lock after inactivity", 301 "settings.app.form.inactivityLock": "Lås etter inaktivitet",
302 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 302 "settings.app.form.keepAllWorkspacesLoaded": "Behold alle innlastede arbeidsområder",
303 "settings.app.form.language": "Language", 303 "settings.app.form.language": "Språk",
304 "settings.app.form.lockPassword": "Password", 304 "settings.app.form.lockPassword": "Passord",
305 "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", 305 "settings.app.form.minimizeToSystemTray": "Minimer Ferdi til systemstatusfeltet",
306 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 306 "settings.app.form.navigationBarBehaviour": "Navigasjonsbar oppførsel",
307 "settings.app.form.predefinedTodoServer": "Todo Server", 307 "settings.app.form.predefinedTodoServer": "Gjøremål-tjener",
308 "settings.app.form.privateNotifications": "Don't show message content in notifications", 308 "settings.app.form.privateNotifications": "Ikke vis meldingsinnholdet i varsler",
309 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", 309 "settings.app.form.reloadAfterResume": "Last inn Ferdi på nytt etter at systemet går ut fra dvale",
310 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 310 "settings.app.form.runInBackground": "Behold Ferdi i bakgrunnen når vinduet lukkes",
311 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 311 "settings.app.form.scheduledDNDEnabled": "Aktiver planlagt ikke-forstyrr",
312 "settings.app.form.scheduledDNDEnd": "To", 312 "settings.app.form.scheduledDNDEnd": "Til",
313 "settings.app.form.scheduledDNDStart": "From", 313 "settings.app.form.scheduledDNDStart": "Fra",
314 "settings.app.form.sentry": "Send telemetry data", 314 "settings.app.form.sentry": "Send telemetridata",
315 "settings.app.form.serviceRibbonWidth": "Sidebar width", 315 "settings.app.form.serviceRibbonWidth": "Vidden til sidebaren",
316 "settings.app.form.showDisabledServices": "Display disabled services tabs", 316 "settings.app.form.showDisabledServices": "Vis deaktiverte tjenestefaner",
317 "settings.app.form.showDragArea": "Show draggable area on window", 317 "settings.app.form.showDragArea": "Vis flyttbart område i vinduet",
318 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 318 "settings.app.form.showMessagesBadgesWhenMuted": "Vis uleste meldingsetiketter når varsler er deaktivert",
319 "settings.app.form.startMinimized": "Start minimized", 319 "settings.app.form.startMinimized": "Start minimert",
320 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 320 "settings.app.form.universalDarkMode": "Aktiver universelt mørkt tema",
321 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", 321 "settings.app.form.useTouchIdToUnlock": "Tillat å bruke TouchID for å låse opp Ferdi",
322 "settings.app.headline": "Settings", 322 "settings.app.headline": "Innstillinger",
323 "settings.app.headlineAdvanced": "Advanced", 323 "settings.app.headlineAdvanced": "Avansert",
324 "settings.app.headlineAppearance": "Appearance", 324 "settings.app.headlineAppearance": "Utseende",
325 "settings.app.headlineGeneral": "General", 325 "settings.app.headlineGeneral": "Generelt",
326 "settings.app.headlineLanguage": "Language", 326 "settings.app.headlineLanguage": "Språk",
327 "settings.app.headlineUpdates": "Updates", 327 "settings.app.headlineUpdates": "Oppdateringer",
328 "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.", 328 "settings.app.hibernateInfo": "Som standard vil Ferdi beholde alle tjenestene dine åpne og lastet i bakgrunnen slik at de er klare når du vil bruke dem. Dvalemodus for tjenester vil sette tjenestene dine i dvale etter et angitt tidsrom. Dette er nyttig for å spare minne eller sørge for at tjenestene ikke gjør datamaskinen din treg.",
329 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 329 "settings.app.inactivityLockInfo": "Minutter med inaktivitet, hvorpå Ferdi burde låses automatisk. Bruk 0 for å deaktivere",
330 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 330 "settings.app.languageDisclaimer": "Offisielle oversettelser er engelsk & tysk. Alle andre språk er samfunnsbaserte oversettelser.",
331 "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.", 331 "settings.app.lockInfo": "Passordlås lar deg holde meldingene dine beskyttet.\nVed bruk av passord lås, så vil du bli bedt om å skrive inn passordet hver gang du starter Ferdi eller låser Ferdi selv ved hjelp av låsesymbolet i nedre venstre hjørne eller snarveien CMD/CTRL+Shift+L.",
332 "settings.app.lockedPassword": "Password", 332 "settings.app.lockedPassword": "Passord",
333 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 333 "settings.app.lockedPasswordInfo": "Vennligst angi et passord du vil huske.\nHvis du mister dette passordet må du installere Ferdi på nytt.",
334 "settings.app.restartRequired": "Changes require restart", 334 "settings.app.restartRequired": "Endringer krever omstart",
335 "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.", 335 "settings.app.scheduledDNDInfo": "Planlagt ikke-forstyrr lar deg definere en tidsperiode hvor du ikke vil få varsler fra Ferdi.",
336 "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.", 336 "settings.app.scheduledDNDTimeInfo": "Tider i 24-Hour-Format. Sluttiden kan være før starttiden (f.eks start 17:00, slutt 09:00) for å aktivere ikke-forstyrr over natten.",
337 "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.", 337 "settings.app.sentryInfo": "Å sende telemetridata lar oss finne feil i Ferdi - vi vil ikke sende noen personlig informasjon som dine meldingsdata! Endring av dette valget krever at du starter om Ferdi.",
338 "settings.app.subheadlineCache": "Cache", 338 "settings.app.spellCheckerLanguageInfo": "Ferdi bruker Mac'en sin innebygde stavekontroll, for å se etter skrivefeil. Hvis du vil endre språket på stavekontrollen, så kan du gjøre det under Mac'ens system-innstillinger.",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 339 "settings.app.subheadlineCache": "Hurtiglager",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 340 "settings.app.todoServerInfo": "Denne tjeneren vil ble brukt for \"Ferdi gjøremål\" funksjonen.",
341 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 341 "settings.app.translationHelp": "Hjelp oss med å oversette Ferdi til ditt språk.",
342 "settings.app.updateStatusAvailable": "Update available, downloading...", 342 "settings.app.universalDarkModeInfo": "Universelt mørkt tema prøver å dynamisk generere mørke stiler for tjenester som ikke har denne støtten enda.",
343 "settings.app.updateStatusSearching": "Is searching for update", 343 "settings.app.updateStatusAvailable": "Oppdatering tilgjengelig, laster ned...",
344 "settings.app.updateStatusUpToDate": "You are using the latest version of Ferdi", 344 "settings.app.updateStatusSearching": "Søker etter oppdateringer",
345 "settings.invite.headline": "Invite Friends", 345 "settings.app.updateStatusUpToDate": "Du bruker den siste versjonen av Ferdi",
346 "settings.navigation.account": "Account", 346 "settings.invite.headline": "Inviter venner",
347 "settings.navigation.availableServices": "Available services", 347 "settings.navigation.account": "Konto",
348 "settings.navigation.logout": "Logout", 348 "settings.navigation.availableServices": "Tilgjengelige tjenester",
349 "settings.navigation.settings": "Settings", 349 "settings.navigation.logout": "Logg ut",
350 "settings.navigation.supportFerdi": "Support Ferdi", 350 "settings.navigation.settings": "Innstillinger",
351 "settings.navigation.team": "Manage Team", 351 "settings.navigation.supportFerdi": "Støtt Ferdi",
352 "settings.navigation.yourServices": "Your services", 352 "settings.navigation.team": "Administrere Team",
353 "settings.navigation.yourWorkspaces": "Your workspaces", 353 "settings.navigation.yourServices": "Dine tjenester",
354 "settings.recipes.all": "All services", 354 "settings.navigation.yourWorkspaces": "Dine arbeidsområder",
355 "settings.recipes.custom": "Custom Services", 355 "settings.recipes.all": "Alle tjenester",
356 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", 356 "settings.recipes.custom": "Egendefinerte tjenester",
357 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 357 "settings.recipes.customService.headline.communityRecipes": "Fellesskap 3. parts oppskrifter",
358 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 358 "settings.recipes.customService.headline.customRecipes": "Tilpassede 3. parts oppskrifter",
359 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 359 "settings.recipes.customService.headline.devRecipes": "Dine utviklingstjeneste oppskrifter",
360 "settings.recipes.customService.openDevDocs": "Developer Documentation", 360 "settings.recipes.customService.intro": "Hvis du vil legge til en egendefinert tjeneste, så kan du kopiere oppskriften for tjenesten til:",
361 "settings.recipes.customService.openFolder": "Open folder", 361 "settings.recipes.customService.openDevDocs": "Utviklerdokumentasjon",
362 "settings.recipes.headline": "Available services", 362 "settings.recipes.customService.openFolder": "Åpne mappe",
363 "settings.recipes.missingService": "Missing a service?", 363 "settings.recipes.headline": "Tilgjengelige tjenester",
364 "settings.recipes.mostPopular": "Most popular", 364 "settings.recipes.missingService": "Mangler en tjeneste?",
365 "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", 365 "settings.recipes.mostPopular": "Mest populære",
366 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", 366 "settings.recipes.nothingFound": "Beklager, men ingen tjenester samsvarer med ditt søkeord.",
367 "settings.searchService": "Search service", 367 "settings.recipes.servicesSuccessfulAddedInfo": "Tjenesten ble vellykket lagt til",
368 "settings.service.error.goBack": "Back to services", 368 "settings.searchService": "Søk etter tjeneste",
369 "settings.service.error.headline": "Error", 369 "settings.service.error.goBack": "Tilbake til tjenester",
370 "settings.service.error.message": "Could not load service recipe.", 370 "settings.service.error.headline": "Feil",
371 "settings.service.form.addServiceHeadline": "Add {name}", 371 "settings.service.error.message": "Kunne ikke laste inn tjeneste-oppskriften.",
372 "settings.service.form.availableServices": "Available services", 372 "settings.service.form.addServiceHeadline": "Legg til {name}",
373 "settings.service.form.customUrl": "Custom server", 373 "settings.service.form.availableServices": "Tilgjengelige tjenester",
374 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.", 374 "settings.service.form.customUrl": "Egendefinert tjener",
375 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", 375 "settings.service.form.customUrlPremiumInfo": "For å legge til selvbetjente tjenester, trenger du en Ferdi Premium Supporter konto.",
376 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", 376 "settings.service.form.customUrlUpgradeAccount": "Oppgrader din konto",
377 "settings.service.form.darkReaderBrightness": "Dark Reader Brightness", 377 "settings.service.form.customUrlValidationError": "Kunne ikke validere egendefinert {name} tjener.",
378 "settings.service.form.darkReaderContrast": "Dark Reader Contrast", 378 "settings.service.form.darkReaderBrightness": "Lysstyrke for lesing i mørket",
379 "settings.service.form.darkReaderSepia": "Dark Reader Sepia", 379 "settings.service.form.darkReaderContrast": "Kontrast for lesing i mørket",
380 "settings.service.form.deleteButton": "Delete service", 380 "settings.service.form.darkReaderSepia": "Sepia for lesing i mørket",
381 "settings.service.form.disableHibernation": "Disable hibernation", 381 "settings.service.form.deleteButton": "Slett tjeneste",
382 "settings.service.form.disableHibernationInfo": "You currently have hibernation enabled but you can disable hibernation for individual services using this option.", 382 "settings.service.form.disableHibernation": "Deaktiver dvalemodus",
383 "settings.service.form.editServiceHeadline": "Edit {name}", 383 "settings.service.form.disableHibernationInfo": "Du har for øyeblikket dvalemodus aktivert, men du kan deaktivere dvalemodus for enkelte tjenester ved å bruke dette alternativet.",
384 "settings.service.form.enableAudio": "Enable audio", 384 "settings.service.form.editServiceHeadline": "Rediger {name}",
385 "settings.service.form.enableBadge": "Show unread message badges", 385 "settings.service.form.enableAudio": "Aktiver lyd",
386 "settings.service.form.enableDarkMode": "Enable Dark Mode", 386 "settings.service.form.enableBadge": "Vis uleste meldingsetiketter",
387 "settings.service.form.enableNotification": "Enable notifications", 387 "settings.service.form.enableDarkMode": "Aktiver mørkt tema",
388 "settings.service.form.enableService": "Enable service", 388 "settings.service.form.enableNotification": "Aktiver varsler",
389 "settings.service.form.headlineBadges": "Unread message badges", 389 "settings.service.form.enableService": "Aktivere tjenesten",
390 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", 390 "settings.service.form.headlineBadges": "Uleste meldingsetiketter",
391 "settings.service.form.headlineGeneral": "General", 391 "settings.service.form.headlineDarkReaderSettings": "Innstillinger for lesing i mørket",
392 "settings.service.form.headlineNotifications": "Notifications", 392 "settings.service.form.headlineGeneral": "Generelt",
393 "settings.service.form.icon": "Custom icon", 393 "settings.service.form.headlineNotifications": "Varsler",
394 "settings.service.form.iconDelete": "Delete", 394 "settings.service.form.icon": "Egendefinert ikon",
395 "settings.service.form.iconUpload": "Drop your image, or click here", 395 "settings.service.form.iconDelete": "Slett",
396 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 396 "settings.service.form.iconUpload": "Slipp bildet, eller klikk her",
397 "settings.service.form.indirectMessages": "Show message badge for all new messages", 397 "settings.service.form.indirectMessageInfo": "Du vil få varsler om alle nye meldinger i en kanal, ikke bare @brukernavn, @kanal, @her, ...",
398 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 398 "settings.service.form.indirectMessages": "Vis meldingsetikett for alle nye meldinger",
399 "settings.service.form.name": "Name", 399 "settings.service.form.isMutedInfo": "Når deaktivert, blir alle varslingslyder og lydavspillinger dempet",
400 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 400 "settings.service.form.name": "Navn",
401 "settings.service.form.openUserCss": "Open user.css", 401 "settings.service.form.openDarkmodeCss": "Åpne darkmode.css",
402 "settings.service.form.openUserJs": "Open user.js", 402 "settings.service.form.openUserCss": "Åpne user.css",
403 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 403 "settings.service.form.openUserJs": "Åpne user.js",
404 "settings.service.form.proxy.host": "Proxy Host/IP", 404 "settings.service.form.proxy.headline": "HTTP/HTTPS mellomtjener-innstillinger",
405 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 405 "settings.service.form.proxy.host": "Mellomtjener vert/IP",
406 "settings.service.form.proxy.isEnabled": "Use Proxy", 406 "settings.service.form.proxy.info": "Mellomtjener-innstillinger vil ikke blir synkronisert med Ferdi tjenerne.",
407 "settings.service.form.proxy.password": "Password (optional)", 407 "settings.service.form.proxy.isEnabled": "Bruk mellomtjener",
408 "settings.service.form.proxy.password": "Passord (valgfritt)",
408 "settings.service.form.proxy.port": "Port", 409 "settings.service.form.proxy.port": "Port",
409 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 410 "settings.service.form.proxy.restartInfo": "Vennligst start Ferdig på nytt etter å ha endre mellomtjener-innstillingene.",
410 "settings.service.form.proxy.user": "User (optional)", 411 "settings.service.form.proxy.user": "Bruker (valgfritt)",
411 "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.", 412 "settings.service.form.recipeFileInfo": "Brukerfilene dine vil bli plassert på nettsiden slik at du kan tilpasse tjenestene på alle måter du ønsker. Brukerfilene lagres bare lokalt og overføres ikke til andre datamaskiner som bruker samme konto.",
412 "settings.service.form.saveButton": "Save service", 413 "settings.service.form.saveButton": "Lagre tjeneste",
413 "settings.service.form.tabHosted": "Hosted", 414 "settings.service.form.tabHosted": "Selvbetjent",
414 "settings.service.form.tabOnPremise": "Self hosted", 415 "settings.service.form.tabOnPremise": "Selvbetjent ⭐",
415 "settings.service.form.team": "Team", 416 "settings.service.form.team": "Team",
416 "settings.service.form.useHostedService": "Use the hosted {name} service.", 417 "settings.service.form.useHostedService": "Bruk den selvbetjente {name} tjenesten.",
417 "settings.service.form.yourServices": "Your services", 418 "settings.service.form.yourServices": "Dine tjenester",
418 "settings.services.deletedInfo": "Service has been deleted", 419 "settings.services.deletedInfo": "Tjenesten er blitt slettet",
419 "settings.services.discoverServices": "Discover services", 420 "settings.services.discoverServices": "Oppdag tjenester",
420 "settings.services.headline": "Your services", 421 "settings.services.headline": "Dine tjenester",
421 "settings.services.noServicesAdded": "You haven't added any services yet.", 422 "settings.services.noServicesAdded": "Du har ikke lagt til noen tjenester enda.",
422 "settings.services.servicesRequestFailed": "Could not load your services", 423 "settings.services.servicesRequestFailed": "Kunne ikke laste dine tjenester",
423 "settings.services.tooltip.isDisabled": "Service is disabled", 424 "settings.services.tooltip.isDisabled": "Tjenesten er deaktivert",
424 "settings.services.tooltip.isMuted": "All sounds are muted", 425 "settings.services.tooltip.isMuted": "Alle lyder er dempet",
425 "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", 426 "settings.services.tooltip.notificationsDisabled": "Varsler er deaktivert",
426 "settings.services.updatedInfo": "Your changes have been saved", 427 "settings.services.updatedInfo": "Dine endringer har blitt lagret",
427 "settings.supportFerdi.github": "Star on GitHub", 428 "settings.supportFerdi.github": "Gi stjerne GitHub",
428 "settings.supportFerdi.headline": "Support Ferdi", 429 "settings.supportFerdi.headline": "Støtt Ferdi",
429 "settings.supportFerdi.openCollective": "Support our Open Collective", 430 "settings.supportFerdi.openCollective": "Støtt r Open Collective",
430 "settings.supportFerdi.share": "Tell your Friends", 431 "settings.supportFerdi.share": "Fortell vennene dine",
431 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 432 "settings.supportFerdi.title": "Liker du Ferdi? Spre kjærligheten!",
432 "settings.team.contentHeadline": "Franz Team Management", 433 "settings.team.contentHeadline": "Ferdi team-administrasjon",
433 "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.", 434 "settings.team.copy": "Med Franz's Team-administrasjon kan du administrere Franz abonnementer for flere brukere. Vennligst husk at du som har et Franz Premium-abonnement vil ikke ha noen fordeler med deg når du bruker Ferdi: Den eneste grunnen til at du fortsatt har tilgang til teamhåndtering er slik at du kan administrere din eldre Franz team, og for at du ikke skal miste noen funksjoner ved administrasjon av kontoen din.",
434 "settings.team.headline": "Team", 435 "settings.team.headline": "Team",
435 "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", 436 "settings.team.intro": "Du bruker for øyeblikket Franz sine tjenere, derfor har du tilgang til Team-administrasjon.",
436 "settings.team.manageAction": "Manage your Team on meetfranz.com", 437 "settings.team.manageAction": "Administrere ditt team meetfranz.com",
437 "settings.team.teamsUnavailable": "Teams are unavailable", 438 "settings.team.teamsUnavailable": "Team er utilgjengelig",
438 "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.", 439 "settings.team.teamsUnavailableInfo": "For øyeblikket er Team bare tilgjengelige når du bruker Franz sine tjenere og etter å ha betalt for Franz Professional. Vennligst bytt serveren til https://api.franzinfra.com for å bruke team.",
439 "settings.team.upgradeAction": "Upgrade your Account", 440 "settings.team.upgradeAction": "Oppgrader din konto",
440 "settings.user.form.accountType.company": "Company", 441 "settings.user.form.accountType.company": "Firma",
441 "settings.user.form.accountType.individual": "Individual", 442 "settings.user.form.accountType.individual": "Individuell",
442 "settings.user.form.accountType.label": "Account type", 443 "settings.user.form.accountType.label": "Kontotype",
443 "settings.user.form.accountType.non-profit": "Non-Profit", 444 "settings.user.form.accountType.non-profit": "Ikke-profittbasert",
444 "settings.user.form.currentPassword": "Current password", 445 "settings.user.form.currentPassword": "Nåværende passord",
445 "settings.user.form.email": "Email", 446 "settings.user.form.email": "E-post",
446 "settings.user.form.firstname": "First Name", 447 "settings.user.form.firstname": "Fornavn",
447 "settings.user.form.lastname": "Last Name", 448 "settings.user.form.lastname": "Etternavn",
448 "settings.user.form.newPassword": "New password", 449 "settings.user.form.newPassword": "Nytt passord",
449 "settings.workspace.add.form.name": "Name", 450 "settings.workspace.add.form.name": "Navn",
450 "settings.workspace.add.form.submitButton": "Create workspace", 451 "settings.workspace.add.form.submitButton": "Opprett arbeidsområde",
451 "settings.workspace.form.buttonDelete": "Delete workspace", 452 "settings.workspace.form.buttonDelete": "Slett arbeidsområde",
452 "settings.workspace.form.buttonSave": "Save workspace", 453 "settings.workspace.form.buttonSave": "Lagre arbeidsområde",
453 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 454 "settings.workspace.form.keepLoaded": "Behold innlastingen av dette arbeidsområdet*",
454 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 455 "settings.workspace.form.keepLoadedInfo": "*Dette valget blir overskrevet av det globale \"Behold alle innlastede arbeidsområder\"-alternativet.",
455 "settings.workspace.form.name": "Name", 456 "settings.workspace.form.name": "Navn",
456 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", 457 "settings.workspace.form.servicesInWorkspaceHeadline": "Tjenester i dette arbeidsområdet",
457 "settings.workspace.form.yourWorkspaces": "Your workspaces", 458 "settings.workspace.form.yourWorkspaces": "Dine arbeidsområder",
458 "settings.workspaces.deletedInfo": "Workspace has been deleted", 459 "settings.workspaces.deletedInfo": "Arbeidsområdet har blitt slettet",
459 "settings.workspaces.headline": "Your workspaces", 460 "settings.workspaces.headline": "Dine arbeidsområder",
460 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", 461 "settings.workspaces.noWorkspacesAdded": "Du har ikke lagt til noen arbeidsområder enda.",
461 "settings.workspaces.tryReloadWorkspaces": "Try again", 462 "settings.workspaces.tryReloadWorkspaces": "Prøv igjen",
462 "settings.workspaces.updatedInfo": "Your changes have been saved", 463 "settings.workspaces.updatedInfo": "Dine endringer har blitt lagret",
463 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", 464 "settings.workspaces.workspaceFeatureHeadline": "Mindre er mer: Vi innfører Ferdi arbeidsområder",
464 "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.", 465 "settings.workspaces.workspaceFeatureInfo": "Ferdi arbeidsområder lar deg fokusere på hva som er viktig akkurat nå. Sett opp forskjellige sett av tjenester, og veksle enkelt mellom dem når som helst. Du bestemmer hvilke tjenester du trenger når og hvor, så vi kan hjelpe deg med å bli best i spillet - eller enkelt koble av fra jobb når du måtte trenge det.",
465 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", 466 "settings.workspaces.workspacesRequestFailed": "Kunne ikke laste dine arbeidsområder",
466 "sidebar.addNewService": "Add new service", 467 "sidebar.addNewService": "Legg til ny tjeneste",
467 "sidebar.closeTodosDrawer": "Close Ferdi Todos", 468 "sidebar.closeTodosDrawer": "Lukk Ferdi gjøremål",
468 "sidebar.closeWorkspaceDrawer": "Close workspace drawer", 469 "sidebar.closeWorkspaceDrawer": "Lukk skuff for arbeidsområder",
469 "sidebar.lockFerdi": "Lock Ferdi", 470 "sidebar.lockFerdi": "Lås Ferdi",
470 "sidebar.muteApp": "Disable notifications & audio", 471 "sidebar.muteApp": "Deaktiver varsler og lyd",
471 "sidebar.openTodosDrawer": "Open Ferdi Todos", 472 "sidebar.openTodosDrawer": "Åpne Ferdi gjøremål",
472 "sidebar.openWorkspaceDrawer": "Open workspace drawer", 473 "sidebar.openWorkspaceDrawer": "Åpne skuff for arbeidsområder",
473 "sidebar.settings": "Settings", 474 "sidebar.settings": "Innstillinger",
474 "sidebar.unmuteApp": "Enable notifications & audio", 475 "sidebar.unmuteApp": "Aktiver varsler og lyd",
475 "signup.email.label": "Email address", 476 "signup.email.label": "E-postadresse",
476 "signup.emailDuplicate": "A user with that email address already exists", 477 "signup.emailDuplicate": "Det finnes allerede en bruker med den e-postadressen",
477 "signup.firstname.label": "First Name", 478 "signup.firstname.label": "Fornavn",
478 "signup.headline": "Sign up", 479 "signup.headline": "Registrer deg",
479 "signup.lastname.label": "Last Name", 480 "signup.lastname.label": "Etternavn",
480 "signup.legal.info": "By creating a Ferdi account you accept the", 481 "signup.legal.info": "Ved å opprette en Ferdi-konto godtar du",
481 "signup.legal.privacy": "Privacy Statement", 482 "signup.legal.privacy": "Personvernerklæring",
482 "signup.legal.terms": "Terms of service", 483 "signup.legal.terms": "Vilkår for bruk",
483 "signup.link.login": "Already have an account, sign in?", 484 "signup.link.login": "Har du allerede en konto, logg inn?",
484 "signup.password.label": "Password", 485 "signup.password.label": "Passord",
485 "signup.submit.label": "Create account", 486 "signup.submit.label": "Opprett konto",
486 "subscription.bestValue": "Best value", 487 "subscription.bestValue": "Best value",
487 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 488 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
488 "subscription.cta.allOptions": "See all options", 489 "subscription.cta.allOptions": "Se alle alternativer",
489 "subscription.cta.choosePlan": "Choose your plan", 490 "subscription.cta.choosePlan": "Velg din funksjonsplan",
490 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", 491 "subscription.includedProFeatures": "Ferdi Professional funksjonsplanen inkluderer:",
491 "subscription.interval.per": "per {interval}", 492 "subscription.interval.per": "per {interval}",
492 "subscription.interval.perMonth": "per month", 493 "subscription.interval.perMonth": "per måned",
493 "subscription.interval.perMonthPerUser": "per month & user", 494 "subscription.interval.perMonthPerUser": "per måned og bruker",
494 "subscription.planItem.upgradeAccount": "Upgrade Account", 495 "subscription.planItem.upgradeAccount": "Oppgrader din konto",
495 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", 496 "subscription.teaser.includedFeatures": "Betalte Ferdi-funksjonsplaner inkluderer:",
496 "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!", 497 "subscription.teaser.intro": "Ferdi 5 har en lang rekke nye funksjoner, for å styrke kommunikasjonen i hverdagen - batterier inkludert. Sjekk ut våre nye planer og finn ut hvilke som passer deg best!",
497 "subscriptionPopup.buttonCancel": "Cancel", 498 "subscriptionPopup.buttonCancel": "Avbryt",
498 "subscriptionPopup.buttonDone": "Done", 499 "subscriptionPopup.buttonDone": "Ferdig",
499 "tabs.item.deleteService": "Delete service", 500 "tabs.item.deleteService": "Slett tjeneste",
500 "tabs.item.disableAudio": "Disable audio", 501 "tabs.item.disableAudio": "Deaktiver lyd",
501 "tabs.item.disableNotifications": "Disable notifications", 502 "tabs.item.disableNotifications": "Deaktiver varslinger",
502 "tabs.item.disableService": "Disable service", 503 "tabs.item.disableService": "Deaktiver tjeneste",
503 "tabs.item.edit": "Edit", 504 "tabs.item.edit": "Rediger",
504 "tabs.item.enableAudio": "Enable audio", 505 "tabs.item.enableAudio": "Aktiver lyd",
505 "tabs.item.enableNotification": "Enable notifications", 506 "tabs.item.enableNotification": "Aktiver varsler",
506 "tabs.item.enableService": "Enable service", 507 "tabs.item.enableService": "Aktivere tjenesten",
507 "tabs.item.reload": "Reload", 508 "tabs.item.reload": "Last inn på nytt",
508 "validation.email": "{field} is not valid", 509 "validation.email": "{field} er ikke gyldig",
509 "validation.minLength": "{field} should be at least {length} characters long", 510 "validation.minLength": "{field} bør være minst {length} tegn",
510 "validation.oneRequired": "At least one is required", 511 "validation.oneRequired": "Minst en er påkrevd",
511 "validation.required": "{field} is required", 512 "validation.required": "{field} er påkrevd",
512 "validation.url": "{field} is not a valid URL", 513 "validation.url": "{field} er ikke en gyldig nettadresse",
513 "webControls.back": "Back", 514 "webControls.back": "Tilbake",
514 "webControls.forward": "Forward", 515 "webControls.forward": "Videresend",
515 "webControls.goHome": "Home", 516 "webControls.goHome": "Hjem",
516 "webControls.openInBrowser": "Open in Browser", 517 "webControls.openInBrowser": "Åpne i nettleser",
517 "webControls.reload": "Reload", 518 "webControls.reload": "Last inn på nytt",
518 "welcome.loginButton": "Login to your account", 519 "welcome.loginButton": "Logg kontoen din",
519 "welcome.signupButton": "Create a free account", 520 "welcome.signupButton": "Opprett en gratis konto",
520 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 521 "workspaceDrawer.addNewWorkspaceLabel": "Opprett nytt arbeidsområde",
521 "workspaceDrawer.allServices": "All services", 522 "workspaceDrawer.allServices": "Alle tjenester",
522 "workspaceDrawer.headline": "Workspaces", 523 "workspaceDrawer.headline": "Arbeidsområder",
523 "workspaceDrawer.item.contextMenuEdit": "edit", 524 "workspaceDrawer.item.contextMenuEdit": "rediger",
524 "workspaceDrawer.item.noServicesAddedYet": "No services added yet", 525 "workspaceDrawer.item.noServicesAddedYet": "Ingen tjenester er lagt til ennå",
525 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", 526 "workspaceDrawer.premiumCtaButtonLabel": "Opprett ditt første arbeidsområde",
526 "workspaceDrawer.proFeatureBadge": "Premium feature", 527 "workspaceDrawer.proFeatureBadge": "Premium-funksjon",
527 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", 528 "workspaceDrawer.reactivatePremiumAccountLabel": "Reaktiver premium-konto",
528 "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>", 529 "workspaceDrawer.workspaceFeatureInfo": "<p>Ferdi arbeidsområder lar deg fokusere på hva som er viktig akkurat nå. Sett opp forskjellige sett av tjenester, og veksle enkelt mellom dem når som helst.</p><p>Du bestemmer hvilke tjenester du trenger når og hvor, så vi kan hjelpe deg med å bli best i spillet - eller enkelt koble av fra jobb når du måtte trenge det.</p>",
529 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", 530 "workspaceDrawer.workspacesSettingsTooltip": "Rediger innstillinger for arbeidsområder",
530 "workspaces.switchingIndicator.switchingTo": "Switching to" 531 "workspaces.switchingIndicator.switchingTo": "Bytter til"
531} 532}
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index 7a28f7cac..8a2874a90 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Pamięć podręczna", 339 "settings.app.subheadlineCache": "Pamięć podręczna",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Pomóż nam tłumaczyć Ferdi na Twój język.", 341 "settings.app.translationHelp": "Pomóż nam tłumaczyć Ferdi na Twój język.",
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index bce72e369..b30dffdd0 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -4,7 +4,7 @@
4 "changeserver.customServerLabel": "Servidor personalizado", 4 "changeserver.customServerLabel": "Servidor personalizado",
5 "changeserver.headline": "Alterar servidor", 5 "changeserver.headline": "Alterar servidor",
6 "changeserver.label": "Servidor", 6 "changeserver.label": "Servidor",
7 "changeserver.submit": "Submeter", 7 "changeserver.submit": "Confirmar",
8 "changeserver.urlError": "Informe uma URL válida", 8 "changeserver.urlError": "Informe uma URL válida",
9 "changeserver.warning": "As configurações extras oferecidas pelo Ferdi não serão salvas", 9 "changeserver.warning": "As configurações extras oferecidas pelo Ferdi não serão salvas",
10 "connectionLostBanner.cta": "Recarregar serviço", 10 "connectionLostBanner.cta": "Recarregar serviço",
@@ -12,8 +12,8 @@
12 "connectionLostBanner.message": "Ah não! Ferdi perdeu a conexão com {name}.", 12 "connectionLostBanner.message": "Ah não! Ferdi perdeu a conexão com {name}.",
13 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", 13 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}",
14 "feature.debugger.title": "Publicar informações de depuração", 14 "feature.debugger.title": "Publicar informações de depuração",
15 "feature.delayApp.headline": "Por favor compre uma licença Ferdi Supporter para saltar a fila de espera", 15 "feature.delayApp.headline": "Por favor, compre uma Licença de Apoiador Ferdi para pular o tempo de espera",
16 "feature.delayApp.text": "Ferdi irá continuar em {seconds} segundos.", 16 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.",
17 "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias", 17 "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias",
18 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", 18 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial",
19 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", 19 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line",
@@ -35,7 +35,7 @@
35 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 35 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
36 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 36 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
37 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 37 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
38 "feature.publishDebugInfo.error": "Ocorreu um erro ao tentar publicar as informações de depuração. Por favor tente novamente mais tarde ou verifique o console para mais informações.", 38 "feature.publishDebugInfo.error": "Ocorreu um erro ao tentar publicar as informações de depuração. Por favor, tente novamente mais tarde ou verifique o console para mais informações.",
39 "feature.publishDebugInfo.info": "Publicar suas informações de depuração nos permite encontrar erros no Ferdi. Para publicar essas informações é necessário aceitar os termos privacidade e serviço do Ferdi Debugger", 39 "feature.publishDebugInfo.info": "Publicar suas informações de depuração nos permite encontrar erros no Ferdi. Para publicar essas informações é necessário aceitar os termos privacidade e serviço do Ferdi Debugger",
40 "feature.publishDebugInfo.privacy": "Política de privacidade", 40 "feature.publishDebugInfo.privacy": "Política de privacidade",
41 "feature.publishDebugInfo.publish": "Aceitar e publicar", 41 "feature.publishDebugInfo.publish": "Aceitar e publicar",
@@ -47,7 +47,7 @@
47 "feature.quickSwitch.title": "Troca Rápida", 47 "feature.quickSwitch.title": "Troca Rápida",
48 "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.", 48 "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.",
49 "feature.shareFranz.action.email": "Enviar por e-mail", 49 "feature.shareFranz.action.email": "Enviar por e-mail",
50 "feature.shareFranz.action.facebook": "Compartilahr no Facebook", 50 "feature.shareFranz.action.facebook": "Compartilhar no Facebook",
51 "feature.shareFranz.action.twitter": "Compartilhar no Twitter", 51 "feature.shareFranz.action.twitter": "Compartilhar no Twitter",
52 "feature.shareFranz.headline": "Ferdi é melhor em grupo!", 52 "feature.shareFranz.headline": "Ferdi é melhor em grupo!",
53 "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", 53 "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",
@@ -65,7 +65,7 @@
65 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", 65 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.",
66 "global.api.unhealthy": "Não foi possível estabelecer ligação aos serviços do Ferdi", 66 "global.api.unhealthy": "Não foi possível estabelecer ligação aos serviços do Ferdi",
67 "global.franzProRequired": "Ferdi Plano Profissional é necessário", 67 "global.franzProRequired": "Ferdi Plano Profissional é necessário",
68 "global.notConnectedToTheInternet": "Não estás ligado à Internet", 68 "global.notConnectedToTheInternet": "Voc no está conectado à internet.",
69 "global.spellchecker.useDefault": "Utilizar o Sistema por Omissão ({default})", 69 "global.spellchecker.useDefault": "Utilizar o Sistema por Omissão ({default})",
70 "global.spellchecking.autodetect": "Detectar a lingua automaticamente", 70 "global.spellchecking.autodetect": "Detectar a lingua automaticamente",
71 "global.spellchecking.autodetect.short": "Automático", 71 "global.spellchecking.autodetect.short": "Automático",
@@ -79,7 +79,7 @@
79 "infobar.buttonChangelog": "O que há de novo?", 79 "infobar.buttonChangelog": "O que há de novo?",
80 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações", 80 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações",
81 "infobar.buttonReloadServices": "Recarregar serviços", 81 "infobar.buttonReloadServices": "Recarregar serviços",
82 "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações do utilizador", 82 "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações do usuário",
83 "infobar.servicesUpdated": "Os seus serviços foram atualizados.", 83 "infobar.servicesUpdated": "Os seus serviços foram atualizados.",
84 "infobar.trialActivated": "A tua versão experimental foi activada com êxito. Boas mensagens!", 84 "infobar.trialActivated": "A tua versão experimental foi activada com êxito. Boas mensagens!",
85 "infobar.updateAvailable": "Está disponível uma nova atualização para o Ferdi", 85 "infobar.updateAvailable": "Está disponível uma nova atualização para o Ferdi",
@@ -160,10 +160,10 @@
160 "menu.view.forward": "Próximo", 160 "menu.view.forward": "Próximo",
161 "menu.view.lockFerdi": "Bloquear Ferdi", 161 "menu.view.lockFerdi": "Bloquear Ferdi",
162 "menu.view.openQuickSwitch": "Abrir Troca Rápida", 162 "menu.view.openQuickSwitch": "Abrir Troca Rápida",
163 "menu.view.reloadFranz": "Recarregar Ferdi", 163 "menu.view.reloadFranz": "Recarregar o Ferdi",
164 "menu.view.reloadService": "Recarregar serviço", 164 "menu.view.reloadService": "Recarregar serviço",
165 "menu.view.resetZoom": "Tamanho Real", 165 "menu.view.resetZoom": "Tamanho Real",
166 "menu.view.toggleDarkMode": "Alternar Modo Escuro", 166 "menu.view.toggleDarkMode": "Alternar para tema escuro",
167 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento", 167 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento",
168 "menu.view.toggleFullScreen": "Ativar/Desativar Tela Cheia", 168 "menu.view.toggleFullScreen": "Ativar/Desativar Tela Cheia",
169 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços", 169 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços",
@@ -183,10 +183,10 @@
183 "password.link.login": "Iniciar sessão", 183 "password.link.login": "Iniciar sessão",
184 "password.link.signup": "Criar uma conta gratuita", 184 "password.link.signup": "Criar uma conta gratuita",
185 "password.noUser": "Não existe nenhuma conta associada a esse endereço de e-mail", 185 "password.noUser": "Não existe nenhuma conta associada a esse endereço de e-mail",
186 "password.submit.label": "Submeter", 186 "password.submit.label": "Confirmar",
187 "password.successInfo": "Por favor verifique o seu endereço de e-mail", 187 "password.successInfo": "Por favor, verifique seu e-mail",
188 "premiumFeature.button.upgradeAccount": "Atualize sua conta", 188 "premiumFeature.button.upgradeAccount": "Atualize sua conta",
189 "pricing.features.accountSync": "Sincronização Autotica", 189 "pricing.features.accountSync": "Sincronização da conta",
190 "pricing.features.adFree": "Sem publicidade para sempre", 190 "pricing.features.adFree": "Sem publicidade para sempre",
191 "pricing.features.appDelays": "Sem Telas de Espera", 191 "pricing.features.appDelays": "Sem Telas de Espera",
192 "pricing.features.appDelaysEnabled": "Telas de Carregamento Ocasionais", 192 "pricing.features.appDelaysEnabled": "Telas de Carregamento Ocasionais",
@@ -258,9 +258,9 @@
258 "settings.account.headlineAccount": "Informação da conta", 258 "settings.account.headlineAccount": "Informação da conta",
259 "settings.account.headlineDangerZone": "Zona de perigo", 259 "settings.account.headlineDangerZone": "Zona de perigo",
260 "settings.account.headlineInvoices": "Faturas", 260 "settings.account.headlineInvoices": "Faturas",
261 "settings.account.headlinePassword": "Alterar palavra-passe", 261 "settings.account.headlinePassword": "Alterar senha",
262 "settings.account.headlineProfile": "Atualizar o perfil", 262 "settings.account.headlineProfile": "Atualizar o perfil",
263 "settings.account.headlineSubscription": "A sua subscrição", 263 "settings.account.headlineSubscription": "Sua assinatura",
264 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", 264 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial",
265 "settings.account.headlineUpgradeAccount": "Dê um upgrade na sua conta e tenha uma completa experiência do Ferdi", 265 "settings.account.headlineUpgradeAccount": "Dê um upgrade na sua conta e tenha uma completa experiência do Ferdi",
266 "settings.account.invoiceDownload": "Transferir", 266 "settings.account.invoiceDownload": "Transferir",
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "O Ferdi utiliza o corretor ortográfico integrado do Mac para verificar se há erros de digitação. Se quiser alterar os idiomas que o corretor ortográfico verifica, você pode fazer isso nas Preferências do Sistema do Mac.",
338 "settings.app.subheadlineCache": "Memória Cache", 339 "settings.app.subheadlineCache": "Memória Cache",
339 "settings.app.todoServerInfo": "Este servidor será usado para o recurso \"Ferdi Todo\".", 340 "settings.app.todoServerInfo": "Este servidor será usado para o recurso \"Ferdi Todo\".",
340 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.", 341 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.",
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index 785d95b48..3308e9684 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -1,17 +1,17 @@
1{ 1{
2 "app.errorHandler.action": "Actualizar", 2 "app.errorHandler.action": "Atualizar",
3 "app.errorHandler.headline": "Alguma coisa correu mal", 3 "app.errorHandler.headline": "Alguma coisa correu mal",
4 "changeserver.customServerLabel": "Servidor personalizado", 4 "changeserver.customServerLabel": "Servidor personalizado",
5 "changeserver.headline": "Alterar servidor", 5 "changeserver.headline": "Alterar servidor",
6 "changeserver.label": "Servidor", 6 "changeserver.label": "Servidor",
7 "changeserver.submit": "Enviar", 7 "changeserver.submit": "Enviar",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Introduza um URL válido",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "As configurações extras oferecidas pelo Ferdi não serão gravadas",
10 "connectionLostBanner.cta": "Reiniciar serviço", 10 "connectionLostBanner.cta": "Reiniciar serviço",
11 "connectionLostBanner.informationLink": "What happened?", 11 "connectionLostBanner.informationLink": "O que aconteceu?",
12 "connectionLostBanner.message": "Oh no! Ferdi lost the connection to {name}.", 12 "connectionLostBanner.message": "Oh não! O Ferdi perdeu a ligação com {name}.",
13 "feature.announcements.changelog.headline": "Mudanças no Ferdi {version}", 13 "feature.announcements.changelog.headline": "Alterões no Ferdi {version}",
14 "feature.debugger.title": "Publicar informações de debug", 14 "feature.debugger.title": "Publicar informações de depuração",
15 "feature.delayApp.headline": "Por favor, adquira uma licença de apoiante Ferdi para não ficar à espera", 15 "feature.delayApp.headline": "Por favor, adquira uma licença de apoiante Ferdi para não ficar à espera",
16 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.", 16 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.",
17 "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional", 17 "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional",
@@ -189,7 +189,7 @@
189 "pricing.features.accountSync": "Sincronização de conta", 189 "pricing.features.accountSync": "Sincronização de conta",
190 "pricing.features.adFree": "Sem anúncios para sempre", 190 "pricing.features.adFree": "Sem anúncios para sempre",
191 "pricing.features.appDelays": "Sem Ecrãs de Espera", 191 "pricing.features.appDelays": "Sem Ecrãs de Espera",
192 "pricing.features.appDelaysEnabled": "Occasional Waiting Screens", 192 "pricing.features.appDelaysEnabled": "Ecrãs de Espera Ocasional",
193 "pricing.features.customWebsites": "Adicionar Websites Personalizados", 193 "pricing.features.customWebsites": "Adicionar Websites Personalizados",
194 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho", 194 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho",
195 "pricing.features.onPremise": "En sitio y otros servicios alojados", 195 "pricing.features.onPremise": "En sitio y otros servicios alojados",
@@ -279,7 +279,7 @@
279 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações", 279 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações",
280 "settings.app.buttonSearchForUpdate": "Procurar atualizações", 280 "settings.app.buttonSearchForUpdate": "Procurar atualizações",
281 "settings.app.cacheInfo": "De momento, a cache de Ferdi está a usar {size} de espaço de disco.", 281 "settings.app.cacheInfo": "De momento, a cache de Ferdi está a usar {size} de espaço de disco.",
282 "settings.app.cacheNotCleared": "Couldn't clear all cache", 282 "settings.app.cacheNotCleared": "o foi possível limpar toda a cache",
283 "settings.app.currentVersion": "Versão atual:", 283 "settings.app.currentVersion": "Versão atual:",
284 "settings.app.form.accentColor": "Cor de destaque", 284 "settings.app.form.accentColor": "Cor de destaque",
285 "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com a configuração modo noturno do sistema operativo", 285 "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com a configuração modo noturno do sistema operativo",
@@ -295,7 +295,7 @@
295 "settings.app.form.enableSystemTray": "Mostrar Ferdi na barra de sistema", 295 "settings.app.form.enableSystemTray": "Mostrar Ferdi na barra de sistema",
296 "settings.app.form.enableTodos": "Ativar Tarefas Ferdi", 296 "settings.app.form.enableTodos": "Ativar Tarefas Ferdi",
297 "settings.app.form.hibernate": "Ativar hibernação do serviço", 297 "settings.app.form.hibernate": "Ativar hibernação do serviço",
298 "settings.app.form.hibernateOnStartup": "Keep services in hibernation on startup", 298 "settings.app.form.hibernateOnStartup": "Manter os serviços em hibernação durante a inicialização",
299 "settings.app.form.hibernationStrategy": "Estratégia de hibernação", 299 "settings.app.form.hibernationStrategy": "Estratégia de hibernação",
300 "settings.app.form.iconSize": "Tamanho de ícone de serviço", 300 "settings.app.form.iconSize": "Tamanho de ícone de serviço",
301 "settings.app.form.inactivityLock": "Bloquear após inatividade", 301 "settings.app.form.inactivityLock": "Bloquear após inatividade",
@@ -335,6 +335,7 @@
335 "settings.app.scheduledDNDInfo": "O Não Incomodar permite definir um período de tempo em que não quer receber notificações.", 335 "settings.app.scheduledDNDInfo": "O Não Incomodar permite definir um período de tempo em que não quer receber notificações.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi usa o corretor ortográfico do seu Mac para verificar se há erros ortográficos. Se você quiser alterar os idiomas que o corretor ortográfico verifica, pode fazê-lo nas Preferências do Sistema do Mac.",
338 "settings.app.subheadlineCache": "Memória cache", 339 "settings.app.subheadlineCache": "Memória cache",
339 "settings.app.todoServerInfo": "Este servidor será usado para a funcionalidade \"Tarefas Ferdi\".", 340 "settings.app.todoServerInfo": "Este servidor será usado para a funcionalidade \"Tarefas Ferdi\".",
340 "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para o seu idioma.", 341 "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para o seu idioma.",
@@ -374,12 +375,12 @@
374 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Ferdi Premium.", 375 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Ferdi Premium.",
375 "settings.service.form.customUrlUpgradeAccount": "Faça upgrade à sua conta", 376 "settings.service.form.customUrlUpgradeAccount": "Faça upgrade à sua conta",
376 "settings.service.form.customUrlValidationError": "Não foi possível validar servidor personalizado {name}.", 377 "settings.service.form.customUrlValidationError": "Não foi possível validar servidor personalizado {name}.",
377 "settings.service.form.darkReaderBrightness": "Dark Reader Brightness", 378 "settings.service.form.darkReaderBrightness": "Brilho do Leitor Escuro",
378 "settings.service.form.darkReaderContrast": "Dark Reader Contrast", 379 "settings.service.form.darkReaderContrast": "Contraste do Leitor Noturno",
379 "settings.service.form.darkReaderSepia": "Dark Reader Sepia", 380 "settings.service.form.darkReaderSepia": "Leitor Noturno Sépia",
380 "settings.service.form.deleteButton": "Apagar serviço", 381 "settings.service.form.deleteButton": "Apagar serviço",
381 "settings.service.form.disableHibernation": "Disable hibernation", 382 "settings.service.form.disableHibernation": "Desativar hibernação",
382 "settings.service.form.disableHibernationInfo": "You currently have hibernation enabled but you can disable hibernation for individual services using this option.", 383 "settings.service.form.disableHibernationInfo": "Actualmente, a hibernação está ativada, mas pode desativar a hibernação para serviços individuais utilizando esta opção.",
383 "settings.service.form.editServiceHeadline": "Editar {name}", 384 "settings.service.form.editServiceHeadline": "Editar {name}",
384 "settings.service.form.enableAudio": "Ativar áudio", 385 "settings.service.form.enableAudio": "Ativar áudio",
385 "settings.service.form.enableBadge": "Mostrar aviso de mensagens não lidas", 386 "settings.service.form.enableBadge": "Mostrar aviso de mensagens não lidas",
@@ -387,7 +388,7 @@
387 "settings.service.form.enableNotification": "Ativar notificações", 388 "settings.service.form.enableNotification": "Ativar notificações",
388 "settings.service.form.enableService": "Ativar serviço", 389 "settings.service.form.enableService": "Ativar serviço",
389 "settings.service.form.headlineBadges": "Notificações de Mensagens não lidas", 390 "settings.service.form.headlineBadges": "Notificações de Mensagens não lidas",
390 "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", 391 "settings.service.form.headlineDarkReaderSettings": "Configurações do Leitor Noturno",
391 "settings.service.form.headlineGeneral": "Geral", 392 "settings.service.form.headlineGeneral": "Geral",
392 "settings.service.form.headlineNotifications": "Notificações", 393 "settings.service.form.headlineNotifications": "Notificações",
393 "settings.service.form.icon": "Ícone personalizado", 394 "settings.service.form.icon": "Ícone personalizado",
@@ -428,7 +429,7 @@
428 "settings.supportFerdi.headline": "Apoie Ferdi", 429 "settings.supportFerdi.headline": "Apoie Ferdi",
429 "settings.supportFerdi.openCollective": "Apoie o nosso Open Collective", 430 "settings.supportFerdi.openCollective": "Apoie o nosso Open Collective",
430 "settings.supportFerdi.share": "Diga aos seus amigos", 431 "settings.supportFerdi.share": "Diga aos seus amigos",
431 "settings.supportFerdi.title": "Gosta de Ferdi? Espalhe o amor!", 432 "settings.supportFerdi.title": "Gosta do Ferdi? Espalhe o amor!",
432 "settings.team.contentHeadline": "Gestão de Equipas Franz", 433 "settings.team.contentHeadline": "Gestão de Equipas Franz",
433 "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.", 434 "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.",
434 "settings.team.headline": "Equipa", 435 "settings.team.headline": "Equipa",
@@ -504,7 +505,7 @@
504 "tabs.item.enableAudio": "Ativar áudio", 505 "tabs.item.enableAudio": "Ativar áudio",
505 "tabs.item.enableNotification": "Ativar notificações", 506 "tabs.item.enableNotification": "Ativar notificações",
506 "tabs.item.enableService": "Ativar serviço", 507 "tabs.item.enableService": "Ativar serviço",
507 "tabs.item.reload": "Actualizar", 508 "tabs.item.reload": "Atualizar",
508 "validation.email": "{field} é inválido", 509 "validation.email": "{field} é inválido",
509 "validation.minLength": "{field} deve ter pelo menos {length} caracteres", 510 "validation.minLength": "{field} deve ter pelo menos {length} caracteres",
510 "validation.oneRequired": "É necessário pelo menos um", 511 "validation.oneRequired": "É necessário pelo menos um",
@@ -514,7 +515,7 @@
514 "webControls.forward": "Seguinte", 515 "webControls.forward": "Seguinte",
515 "webControls.goHome": "Início", 516 "webControls.goHome": "Início",
516 "webControls.openInBrowser": "Abrir no Browser", 517 "webControls.openInBrowser": "Abrir no Browser",
517 "webControls.reload": "Actualizar", 518 "webControls.reload": "Atualizar",
518 "welcome.loginButton": "Entrar na sua conta", 519 "welcome.loginButton": "Entrar na sua conta",
519 "welcome.signupButton": "Criar uma conta gratuita", 520 "welcome.signupButton": "Criar uma conta gratuita",
520 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar nova área de trabalho", 521 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar nova área de trabalho",
diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json
index 356c1fc1e..a3fcaf392 100644
--- a/src/i18n/locales/ro.json
+++ b/src/i18n/locales/ro.json
@@ -1,16 +1,16 @@
1{ 1{
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Reîncărcare",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Ceva nu a funcționat corect",
4 "changeserver.customServerLabel": "Custom server", 4 "changeserver.customServerLabel": "Custom server",
5 "changeserver.headline": "Change server", 5 "changeserver.headline": "Change server",
6 "changeserver.label": "Server", 6 "changeserver.label": "Server",
7 "changeserver.submit": "Submit", 7 "changeserver.submit": "Submit",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Introduceți un URL valid",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "Setările suplimentare oferite de Ferdi nu vor fi salvate",
10 "connectionLostBanner.cta": "Reload Service", 10 "connectionLostBanner.cta": "Reload Service",
11 "connectionLostBanner.informationLink": "What happened?", 11 "connectionLostBanner.informationLink": "Ce s-a întâmplat?",
12 "connectionLostBanner.message": "Oh no! Ferdi lost the connection to {name}.", 12 "connectionLostBanner.message": "Oh nu! Ferdi a pierdut conexiunea cu {name}.",
13 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 13 "feature.announcements.changelog.headline": "Modificări în Ferdi {version}",
14 "feature.debugger.title": "Publish debugging information", 14 "feature.debugger.title": "Publish debugging information",
15 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 15 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
16 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 16 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
@@ -37,7 +37,7 @@
37 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 37 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
38 "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.", 38 "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.",
39 "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", 39 "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",
40 "feature.publishDebugInfo.privacy": "Privacy policy", 40 "feature.publishDebugInfo.privacy": "Politică de confidențialitate",
41 "feature.publishDebugInfo.publish": "Accept and publish", 41 "feature.publishDebugInfo.publish": "Accept and publish",
42 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 42 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
43 "feature.publishDebugInfo.terms": "Terms of service", 43 "feature.publishDebugInfo.terms": "Terms of service",
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
@@ -504,7 +505,7 @@
504 "tabs.item.enableAudio": "Enable audio", 505 "tabs.item.enableAudio": "Enable audio",
505 "tabs.item.enableNotification": "Enable notifications", 506 "tabs.item.enableNotification": "Enable notifications",
506 "tabs.item.enableService": "Enable service", 507 "tabs.item.enableService": "Enable service",
507 "tabs.item.reload": "Reload", 508 "tabs.item.reload": "Reîncărcare",
508 "validation.email": "{field} is not valid", 509 "validation.email": "{field} is not valid",
509 "validation.minLength": "{field} should be at least {length} characters long", 510 "validation.minLength": "{field} should be at least {length} characters long",
510 "validation.oneRequired": "At least one is required", 511 "validation.oneRequired": "At least one is required",
@@ -514,7 +515,7 @@
514 "webControls.forward": "Forward", 515 "webControls.forward": "Forward",
515 "webControls.goHome": "Home", 516 "webControls.goHome": "Home",
516 "webControls.openInBrowser": "Open in Browser", 517 "webControls.openInBrowser": "Open in Browser",
517 "webControls.reload": "Reload", 518 "webControls.reload": "Reîncărcare",
518 "welcome.loginButton": "Login to your account", 519 "welcome.loginButton": "Login to your account",
519 "welcome.signupButton": "Create a free account", 520 "welcome.signupButton": "Create a free account",
520 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 521 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace",
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index beecb46e6..ba94b689b 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Кэш", 339 "settings.app.subheadlineCache": "Кэш",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Помогите нам перевести Ferdi на ваш язык.", 341 "settings.app.translationHelp": "Помогите нам перевести Ferdi на ваш язык.",
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json
index 3810cb235..e83026be2 100644
--- a/src/i18n/locales/sk.json
+++ b/src/i18n/locales/sk.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Vyrovnávacia pamäť", 339 "settings.app.subheadlineCache": "Vyrovnávacia pamäť",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Pomôžte nám preložiť Ferdi do svojho jazyka.", 341 "settings.app.translationHelp": "Pomôžte nám preložiť Ferdi do svojho jazyka.",
diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json
index 356c1fc1e..560444dfc 100644
--- a/src/i18n/locales/sl.json
+++ b/src/i18n/locales/sl.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json
index 62c4d40a4..9128360e9 100644
--- a/src/i18n/locales/sr.json
+++ b/src/i18n/locales/sr.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Кеш", 339 "settings.app.subheadlineCache": "Кеш",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ", 341 "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ",
diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json
index 0ef654419..96e2f0cd6 100644
--- a/src/i18n/locales/sv.json
+++ b/src/i18n/locales/sv.json
@@ -5,10 +5,10 @@
5 "changeserver.headline": "Byt server", 5 "changeserver.headline": "Byt server",
6 "changeserver.label": "Server", 6 "changeserver.label": "Server",
7 "changeserver.submit": "Skicka", 7 "changeserver.submit": "Skicka",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Ange en giltig URL",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved",
10 "connectionLostBanner.cta": "Ladda om tjänst", 10 "connectionLostBanner.cta": "Ladda om tjänst",
11 "connectionLostBanner.informationLink": "What happened?", 11 "connectionLostBanner.informationLink": "Vad hände?",
12 "connectionLostBanner.message": "Oh no! Ferdi lost the connection to {name}.", 12 "connectionLostBanner.message": "Oh no! Ferdi lost the connection to {name}.",
13 "feature.announcements.changelog.headline": "Ändringar i Ferdi {version}", 13 "feature.announcements.changelog.headline": "Ändringar i Ferdi {version}",
14 "feature.debugger.title": "Skicka felsökningsinformation", 14 "feature.debugger.title": "Skicka felsökningsinformation",
@@ -335,6 +335,7 @@
335 "settings.app.scheduledDNDInfo": "Schemalagd \"Stör ej\" låter dig definiera en tidsperiod inom vilken du inte vill få meddelanden från Ferdi.", 335 "settings.app.scheduledDNDInfo": "Schemalagd \"Stör ej\" låter dig definiera en tidsperiod inom vilken du inte vill få meddelanden från Ferdi.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "Denna server kommer att användas för \"Ferdi Todo\"-funktionen.", 340 "settings.app.todoServerInfo": "Denna server kommer att användas för \"Ferdi Todo\"-funktionen.",
340 "settings.app.translationHelp": "Hjälp oss att översätta Ferdi till ditt språk.", 341 "settings.app.translationHelp": "Hjälp oss att översätta Ferdi till ditt språk.",
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json
index 784c80c57..c07b20f87 100644
--- a/src/i18n/locales/tr.json
+++ b/src/i18n/locales/tr.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Önbellek", 339 "settings.app.subheadlineCache": "Önbellek",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Ferdi'ı senin diline tercüme etmemiz için yardım et.", 341 "settings.app.translationHelp": "Ferdi'ı senin diline tercüme etmemiz için yardım et.",
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json
index e481eee8c..8ba2618e6 100644
--- a/src/i18n/locales/uk.json
+++ b/src/i18n/locales/uk.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Кеш", 339 "settings.app.subheadlineCache": "Кеш",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Допоможіть перекласти Ferdi на Вашу мову.", 341 "settings.app.translationHelp": "Допоможіть перекласти Ferdi на Вашу мову.",
diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json
index 356c1fc1e..8d58427d6 100644
--- a/src/i18n/locales/vi.json
+++ b/src/i18n/locales/vi.json
@@ -1,9 +1,9 @@
1{ 1{
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "Tải lại",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "Đã xảy ra lỗi",
4 "changeserver.customServerLabel": "Custom server", 4 "changeserver.customServerLabel": "Custom server",
5 "changeserver.headline": "Change server", 5 "changeserver.headline": "Change server",
6 "changeserver.label": "Server", 6 "changeserver.label": "Máy chủ",
7 "changeserver.submit": "Submit", 7 "changeserver.submit": "Submit",
8 "changeserver.urlError": "Enter a valid URL", 8 "changeserver.urlError": "Enter a valid URL",
9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved", 9 "changeserver.warning": "Extra settings offered by Ferdi will not be saved",
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
@@ -504,7 +505,7 @@
504 "tabs.item.enableAudio": "Enable audio", 505 "tabs.item.enableAudio": "Enable audio",
505 "tabs.item.enableNotification": "Enable notifications", 506 "tabs.item.enableNotification": "Enable notifications",
506 "tabs.item.enableService": "Enable service", 507 "tabs.item.enableService": "Enable service",
507 "tabs.item.reload": "Reload", 508 "tabs.item.reload": "Tải lại",
508 "validation.email": "{field} is not valid", 509 "validation.email": "{field} is not valid",
509 "validation.minLength": "{field} should be at least {length} characters long", 510 "validation.minLength": "{field} should be at least {length} characters long",
510 "validation.oneRequired": "At least one is required", 511 "validation.oneRequired": "At least one is required",
@@ -514,7 +515,7 @@
514 "webControls.forward": "Forward", 515 "webControls.forward": "Forward",
515 "webControls.goHome": "Home", 516 "webControls.goHome": "Home",
516 "webControls.openInBrowser": "Open in Browser", 517 "webControls.openInBrowser": "Open in Browser",
517 "webControls.reload": "Reload", 518 "webControls.reload": "Tải lại",
518 "welcome.loginButton": "Login to your account", 519 "welcome.loginButton": "Login to your account",
519 "welcome.signupButton": "Create a free account", 520 "welcome.signupButton": "Create a free account",
520 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 521 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace",
diff --git a/src/i18n/locales/zh-HANT.json b/src/i18n/locales/zh-HANT.json
index 9e1c43a0f..1b06f611a 100644
--- a/src/i18n/locales/zh-HANT.json
+++ b/src/i18n/locales/zh-HANT.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json
index c5b65d015..5a0e50fb5 100644
--- a/src/i18n/locales/zh.json
+++ b/src/i18n/locales/zh.json
@@ -335,6 +335,7 @@
335 "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.", 335 "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.",
336 "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.", 336 "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.",
337 "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.", 337 "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.",
338 "settings.app.spellCheckerLanguageInfo": "Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
338 "settings.app.subheadlineCache": "Cache", 339 "settings.app.subheadlineCache": "Cache",
339 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", 340 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.",
340 "settings.app.translationHelp": "Help us to translate Ferdi into your language.", 341 "settings.app.translationHelp": "Help us to translate Ferdi into your language.",
diff --git a/src/i18n/messages/src/components/auth/Locked.json b/src/i18n/messages/src/components/auth/Locked.json
index ac6091c35..ed3999114 100644
--- a/src/i18n/messages/src/components/auth/Locked.json
+++ b/src/i18n/messages/src/components/auth/Locked.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Locked", 4 "defaultMessage": "!!!Locked",
5 "file": "src/components/auth/Locked.js", 5 "file": "src/components/auth/Locked.js",
6 "start": { 6 "start": {
7 "line": 19, 7 "line": 20,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 22, 11 "line": 23,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 17 "defaultMessage": "!!!Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
18 "file": "src/components/auth/Locked.js", 18 "file": "src/components/auth/Locked.js",
19 "start": { 19 "start": {
20 "line": 23, 20 "line": 24,
21 "column": 8 21 "column": 8
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 26, 24 "line": 27,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Unlock with Touch ID", 30 "defaultMessage": "!!!Unlock with Touch ID",
31 "file": "src/components/auth/Locked.js", 31 "file": "src/components/auth/Locked.js",
32 "start": { 32 "start": {
33 "line": 27, 33 "line": 28,
34 "column": 11 34 "column": 11
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 30, 37 "line": 31,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!unlock via Touch ID", 43 "defaultMessage": "!!!unlock via Touch ID",
44 "file": "src/components/auth/Locked.js", 44 "file": "src/components/auth/Locked.js",
45 "start": { 45 "start": {
46 "line": 31, 46 "line": 32,
47 "column": 17 47 "column": 17
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 34, 50 "line": 35,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Password", 56 "defaultMessage": "!!!Password",
57 "file": "src/components/auth/Locked.js", 57 "file": "src/components/auth/Locked.js",
58 "start": { 58 "start": {
59 "line": 35, 59 "line": 36,
60 "column": 17 60 "column": 17
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 38, 63 "line": 39,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Unlock", 69 "defaultMessage": "!!!Unlock",
70 "file": "src/components/auth/Locked.js", 70 "file": "src/components/auth/Locked.js",
71 "start": { 71 "start": {
72 "line": 39, 72 "line": 40,
73 "column": 21 73 "column": 21
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 42, 76 "line": 43,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!Unlock with Password", 82 "defaultMessage": "!!!Unlock with Password",
83 "file": "src/components/auth/Locked.js", 83 "file": "src/components/auth/Locked.js",
84 "start": { 84 "start": {
85 "line": 43, 85 "line": 44,
86 "column": 22 86 "column": 22
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 46, 89 "line": 47,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
@@ -95,11 +95,11 @@
95 "defaultMessage": "!!!Password invalid", 95 "defaultMessage": "!!!Password invalid",
96 "file": "src/components/auth/Locked.js", 96 "file": "src/components/auth/Locked.js",
97 "start": { 97 "start": {
98 "line": 47, 98 "line": 48,
99 "column": 22 99 "column": 22
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 50, 102 "line": 51,
103 "column": 3 103 "column": 3
104 } 104 }
105 } 105 }
diff --git a/src/i18n/messages/src/components/settings/services/EditServiceForm.json b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
index 987004199..4ee427e46 100644
--- a/src/i18n/messages/src/components/settings/services/EditServiceForm.json
+++ b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Save service", 4 "defaultMessage": "!!!Save service",
5 "file": "src/components/settings/services/EditServiceForm.js", 5 "file": "src/components/settings/services/EditServiceForm.js",
6 "start": { 6 "start": {
7 "line": 25, 7 "line": 27,
8 "column": 15 8 "column": 15
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 28, 11 "line": 30,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Delete Service", 17 "defaultMessage": "!!!Delete Service",
18 "file": "src/components/settings/services/EditServiceForm.js", 18 "file": "src/components/settings/services/EditServiceForm.js",
19 "start": { 19 "start": {
20 "line": 29, 20 "line": 31,
21 "column": 17 21 "column": 17
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 32, 24 "line": 34,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Open darkmode.css", 30 "defaultMessage": "!!!Open darkmode.css",
31 "file": "src/components/settings/services/EditServiceForm.js", 31 "file": "src/components/settings/services/EditServiceForm.js",
32 "start": { 32 "start": {
33 "line": 33, 33 "line": 35,
34 "column": 19 34 "column": 19
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 36, 37 "line": 38,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Open user.css", 43 "defaultMessage": "!!!Open user.css",
44 "file": "src/components/settings/services/EditServiceForm.js", 44 "file": "src/components/settings/services/EditServiceForm.js",
45 "start": { 45 "start": {
46 "line": 37, 46 "line": 39,
47 "column": 15 47 "column": 15
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 40, 50 "line": 42,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Open user.js", 56 "defaultMessage": "!!!Open user.js",
57 "file": "src/components/settings/services/EditServiceForm.js", 57 "file": "src/components/settings/services/EditServiceForm.js",
58 "start": { 58 "start": {
59 "line": 41, 59 "line": 43,
60 "column": 14 60 "column": 14
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 44, 63 "line": 46,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", 69 "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
70 "file": "src/components/settings/services/EditServiceForm.js", 70 "file": "src/components/settings/services/EditServiceForm.js",
71 "start": { 71 "start": {
72 "line": 45, 72 "line": 47,
73 "column": 18 73 "column": 18
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 48, 76 "line": 50,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!Available services", 82 "defaultMessage": "!!!Available services",
83 "file": "src/components/settings/services/EditServiceForm.js", 83 "file": "src/components/settings/services/EditServiceForm.js",
84 "start": { 84 "start": {
85 "line": 49, 85 "line": 51,
86 "column": 21 86 "column": 21
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 52, 89 "line": 54,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
@@ -95,11 +95,11 @@
95 "defaultMessage": "!!!Your services", 95 "defaultMessage": "!!!Your services",
96 "file": "src/components/settings/services/EditServiceForm.js", 96 "file": "src/components/settings/services/EditServiceForm.js",
97 "start": { 97 "start": {
98 "line": 53, 98 "line": 55,
99 "column": 16 99 "column": 16
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 56, 102 "line": 58,
103 "column": 3 103 "column": 3
104 } 104 }
105 }, 105 },
@@ -108,11 +108,11 @@
108 "defaultMessage": "!!!Add {name}", 108 "defaultMessage": "!!!Add {name}",
109 "file": "src/components/settings/services/EditServiceForm.js", 109 "file": "src/components/settings/services/EditServiceForm.js",
110 "start": { 110 "start": {
111 "line": 57, 111 "line": 59,
112 "column": 22 112 "column": 22
113 }, 113 },
114 "end": { 114 "end": {
115 "line": 60, 115 "line": 62,
116 "column": 3 116 "column": 3
117 } 117 }
118 }, 118 },
@@ -121,11 +121,11 @@
121 "defaultMessage": "!!!Edit {name}", 121 "defaultMessage": "!!!Edit {name}",
122 "file": "src/components/settings/services/EditServiceForm.js", 122 "file": "src/components/settings/services/EditServiceForm.js",
123 "start": { 123 "start": {
124 "line": 61, 124 "line": 63,
125 "column": 23 125 "column": 23
126 }, 126 },
127 "end": { 127 "end": {
128 "line": 64, 128 "line": 66,
129 "column": 3 129 "column": 3
130 } 130 }
131 }, 131 },
@@ -134,11 +134,11 @@
134 "defaultMessage": "!!!Hosted", 134 "defaultMessage": "!!!Hosted",
135 "file": "src/components/settings/services/EditServiceForm.js", 135 "file": "src/components/settings/services/EditServiceForm.js",
136 "start": { 136 "start": {
137 "line": 65, 137 "line": 67,
138 "column": 13 138 "column": 13
139 }, 139 },
140 "end": { 140 "end": {
141 "line": 68, 141 "line": 70,
142 "column": 3 142 "column": 3
143 } 143 }
144 }, 144 },
@@ -147,11 +147,11 @@
147 "defaultMessage": "!!!Self hosted ⭐️", 147 "defaultMessage": "!!!Self hosted ⭐️",
148 "file": "src/components/settings/services/EditServiceForm.js", 148 "file": "src/components/settings/services/EditServiceForm.js",
149 "start": { 149 "start": {
150 "line": 69, 150 "line": 71,
151 "column": 16 151 "column": 16
152 }, 152 },
153 "end": { 153 "end": {
154 "line": 72, 154 "line": 74,
155 "column": 3 155 "column": 3
156 } 156 }
157 }, 157 },
@@ -160,11 +160,11 @@
160 "defaultMessage": "!!!Use the hosted {name} service.", 160 "defaultMessage": "!!!Use the hosted {name} service.",
161 "file": "src/components/settings/services/EditServiceForm.js", 161 "file": "src/components/settings/services/EditServiceForm.js",
162 "start": { 162 "start": {
163 "line": 73, 163 "line": 75,
164 "column": 20 164 "column": 20
165 }, 165 },
166 "end": { 166 "end": {
167 "line": 76, 167 "line": 78,
168 "column": 3 168 "column": 3
169 } 169 }
170 }, 170 },
@@ -173,11 +173,11 @@
173 "defaultMessage": "!!!Could not validate custom {name} server.", 173 "defaultMessage": "!!!Could not validate custom {name} server.",
174 "file": "src/components/settings/services/EditServiceForm.js", 174 "file": "src/components/settings/services/EditServiceForm.js",
175 "start": { 175 "start": {
176 "line": 77, 176 "line": 79,
177 "column": 28 177 "column": 28
178 }, 178 },
179 "end": { 179 "end": {
180 "line": 80, 180 "line": 82,
181 "column": 3 181 "column": 3
182 } 182 }
183 }, 183 },
@@ -186,11 +186,11 @@
186 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.", 186 "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.",
187 "file": "src/components/settings/services/EditServiceForm.js", 187 "file": "src/components/settings/services/EditServiceForm.js",
188 "start": { 188 "start": {
189 "line": 81, 189 "line": 83,
190 "column": 24 190 "column": 24
191 }, 191 },
192 "end": { 192 "end": {
193 "line": 84, 193 "line": 86,
194 "column": 3 194 "column": 3
195 } 195 }
196 }, 196 },
@@ -199,11 +199,11 @@
199 "defaultMessage": "!!!Upgrade your account", 199 "defaultMessage": "!!!Upgrade your account",
200 "file": "src/components/settings/services/EditServiceForm.js", 200 "file": "src/components/settings/services/EditServiceForm.js",
201 "start": { 201 "start": {
202 "line": 85, 202 "line": 87,
203 "column": 27 203 "column": 27
204 }, 204 },
205 "end": { 205 "end": {
206 "line": 88, 206 "line": 90,
207 "column": 3 207 "column": 3
208 } 208 }
209 }, 209 },
@@ -212,11 +212,11 @@
212 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 212 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
213 "file": "src/components/settings/services/EditServiceForm.js", 213 "file": "src/components/settings/services/EditServiceForm.js",
214 "start": { 214 "start": {
215 "line": 89, 215 "line": 91,
216 "column": 23 216 "column": 23
217 }, 217 },
218 "end": { 218 "end": {
219 "line": 92, 219 "line": 94,
220 "column": 3 220 "column": 3
221 } 221 }
222 }, 222 },
@@ -225,11 +225,11 @@
225 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", 225 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted",
226 "file": "src/components/settings/services/EditServiceForm.js", 226 "file": "src/components/settings/services/EditServiceForm.js",
227 "start": { 227 "start": {
228 "line": 93, 228 "line": 95,
229 "column": 15 229 "column": 15
230 }, 230 },
231 "end": { 231 "end": {
232 "line": 96, 232 "line": 98,
233 "column": 3 233 "column": 3
234 } 234 }
235 }, 235 },
@@ -238,11 +238,11 @@
238 "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.", 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", 239 "file": "src/components/settings/services/EditServiceForm.js",
240 "start": { 240 "start": {
241 "line": 97, 241 "line": 99,
242 "column": 26 242 "column": 26
243 }, 243 },
244 "end": { 244 "end": {
245 "line": 100, 245 "line": 102,
246 "column": 3 246 "column": 3
247 } 247 }
248 }, 248 },
@@ -251,11 +251,11 @@
251 "defaultMessage": "!!!Notifications", 251 "defaultMessage": "!!!Notifications",
252 "file": "src/components/settings/services/EditServiceForm.js", 252 "file": "src/components/settings/services/EditServiceForm.js",
253 "start": { 253 "start": {
254 "line": 101, 254 "line": 103,
255 "column": 25 255 "column": 25
256 }, 256 },
257 "end": { 257 "end": {
258 "line": 104, 258 "line": 106,
259 "column": 3 259 "column": 3
260 } 260 }
261 }, 261 },
@@ -264,11 +264,11 @@
264 "defaultMessage": "!!!Unread message badges", 264 "defaultMessage": "!!!Unread message badges",
265 "file": "src/components/settings/services/EditServiceForm.js", 265 "file": "src/components/settings/services/EditServiceForm.js",
266 "start": { 266 "start": {
267 "line": 105, 267 "line": 107,
268 "column": 18 268 "column": 18
269 }, 269 },
270 "end": { 270 "end": {
271 "line": 108, 271 "line": 110,
272 "column": 3 272 "column": 3
273 } 273 }
274 }, 274 },
@@ -277,11 +277,11 @@
277 "defaultMessage": "!!!General", 277 "defaultMessage": "!!!General",
278 "file": "src/components/settings/services/EditServiceForm.js", 278 "file": "src/components/settings/services/EditServiceForm.js",
279 "start": { 279 "start": {
280 "line": 109, 280 "line": 111,
281 "column": 19 281 "column": 19
282 }, 282 },
283 "end": { 283 "end": {
284 "line": 112, 284 "line": 114,
285 "column": 3 285 "column": 3
286 } 286 }
287 }, 287 },
@@ -290,11 +290,11 @@
290 "defaultMessage": "!!!Dark Reader Settings", 290 "defaultMessage": "!!!Dark Reader Settings",
291 "file": "src/components/settings/services/EditServiceForm.js", 291 "file": "src/components/settings/services/EditServiceForm.js",
292 "start": { 292 "start": {
293 "line": 113, 293 "line": 115,
294 "column": 30 294 "column": 30
295 }, 295 },
296 "end": { 296 "end": {
297 "line": 116, 297 "line": 118,
298 "column": 3 298 "column": 3
299 } 299 }
300 }, 300 },
@@ -303,11 +303,11 @@
303 "defaultMessage": "!!!Delete", 303 "defaultMessage": "!!!Delete",
304 "file": "src/components/settings/services/EditServiceForm.js", 304 "file": "src/components/settings/services/EditServiceForm.js",
305 "start": { 305 "start": {
306 "line": 117, 306 "line": 119,
307 "column": 14 307 "column": 14
308 }, 308 },
309 "end": { 309 "end": {
310 "line": 120, 310 "line": 122,
311 "column": 3 311 "column": 3
312 } 312 }
313 }, 313 },
@@ -316,11 +316,11 @@
316 "defaultMessage": "!!!Drop your image, or click here", 316 "defaultMessage": "!!!Drop your image, or click here",
317 "file": "src/components/settings/services/EditServiceForm.js", 317 "file": "src/components/settings/services/EditServiceForm.js",
318 "start": { 318 "start": {
319 "line": 121, 319 "line": 123,
320 "column": 14 320 "column": 14
321 }, 321 },
322 "end": { 322 "end": {
323 "line": 124, 323 "line": 126,
324 "column": 3 324 "column": 3
325 } 325 }
326 }, 326 },
@@ -329,11 +329,11 @@
329 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", 329 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings",
330 "file": "src/components/settings/services/EditServiceForm.js", 330 "file": "src/components/settings/services/EditServiceForm.js",
331 "start": { 331 "start": {
332 "line": 125, 332 "line": 127,
333 "column": 17 333 "column": 17
334 }, 334 },
335 "end": { 335 "end": {
336 "line": 128, 336 "line": 130,
337 "column": 3 337 "column": 3
338 } 338 }
339 }, 339 },
@@ -342,11 +342,11 @@
342 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", 342 "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.",
343 "file": "src/components/settings/services/EditServiceForm.js", 343 "file": "src/components/settings/services/EditServiceForm.js",
344 "start": { 344 "start": {
345 "line": 129, 345 "line": 131,
346 "column": 20 346 "column": 20
347 }, 347 },
348 "end": { 348 "end": {
349 "line": 132, 349 "line": 134,
350 "column": 3 350 "column": 3
351 } 351 }
352 }, 352 },
@@ -355,11 +355,11 @@
355 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", 355 "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.",
356 "file": "src/components/settings/services/EditServiceForm.js", 356 "file": "src/components/settings/services/EditServiceForm.js",
357 "start": { 357 "start": {
358 "line": 133, 358 "line": 135,
359 "column": 13 359 "column": 13
360 }, 360 },
361 "end": { 361 "end": {
362 "line": 136, 362 "line": 138,
363 "column": 3 363 "column": 3
364 } 364 }
365 } 365 }
diff --git a/src/i18n/messages/src/components/settings/services/ServicesDashboard.json b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json
index fa661ea2f..140d17a8b 100644
--- a/src/i18n/messages/src/components/settings/services/ServicesDashboard.json
+++ b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Your services", 4 "defaultMessage": "!!!Your services",
5 "file": "src/components/settings/services/ServicesDashboard.js", 5 "file": "src/components/settings/services/ServicesDashboard.js",
6 "start": { 6 "start": {
7 "line": 15, 7 "line": 16,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 18, 11 "line": 19,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Search service", 17 "defaultMessage": "!!!Search service",
18 "file": "src/components/settings/services/ServicesDashboard.js", 18 "file": "src/components/settings/services/ServicesDashboard.js",
19 "start": { 19 "start": {
20 "line": 19, 20 "line": 20,
21 "column": 17 21 "column": 17
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 22, 24 "line": 23,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!You haven't added any services yet.", 30 "defaultMessage": "!!!You haven't added any services yet.",
31 "file": "src/components/settings/services/ServicesDashboard.js", 31 "file": "src/components/settings/services/ServicesDashboard.js",
32 "start": { 32 "start": {
33 "line": 23, 33 "line": 24,
34 "column": 19 34 "column": 19
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 26, 37 "line": 27,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Sorry, but no service matched your search term.", 43 "defaultMessage": "!!!Sorry, but no service matched your search term.",
44 "file": "src/components/settings/services/ServicesDashboard.js", 44 "file": "src/components/settings/services/ServicesDashboard.js",
45 "start": { 45 "start": {
46 "line": 27, 46 "line": 28,
47 "column": 18 47 "column": 18
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 30, 50 "line": 31,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Discover services", 56 "defaultMessage": "!!!Discover services",
57 "file": "src/components/settings/services/ServicesDashboard.js", 57 "file": "src/components/settings/services/ServicesDashboard.js",
58 "start": { 58 "start": {
59 "line": 31, 59 "line": 32,
60 "column": 20 60 "column": 20
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 34, 63 "line": 35,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Could not load your services", 69 "defaultMessage": "!!!Could not load your services",
70 "file": "src/components/settings/services/ServicesDashboard.js", 70 "file": "src/components/settings/services/ServicesDashboard.js",
71 "start": { 71 "start": {
72 "line": 35, 72 "line": 36,
73 "column": 25 73 "column": 25
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 38, 76 "line": 39,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!Try again", 82 "defaultMessage": "!!!Try again",
83 "file": "src/components/settings/services/ServicesDashboard.js", 83 "file": "src/components/settings/services/ServicesDashboard.js",
84 "start": { 84 "start": {
85 "line": 39, 85 "line": 40,
86 "column": 21 86 "column": 21
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 42, 89 "line": 43,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
@@ -95,11 +95,11 @@
95 "defaultMessage": "!!!Your changes have been saved", 95 "defaultMessage": "!!!Your changes have been saved",
96 "file": "src/components/settings/services/ServicesDashboard.js", 96 "file": "src/components/settings/services/ServicesDashboard.js",
97 "start": { 97 "start": {
98 "line": 43, 98 "line": 44,
99 "column": 15 99 "column": 15
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 46, 102 "line": 47,
103 "column": 3 103 "column": 3
104 } 104 }
105 }, 105 },
@@ -108,11 +108,11 @@
108 "defaultMessage": "!!!Service has been deleted", 108 "defaultMessage": "!!!Service has been deleted",
109 "file": "src/components/settings/services/ServicesDashboard.js", 109 "file": "src/components/settings/services/ServicesDashboard.js",
110 "start": { 110 "start": {
111 "line": 47, 111 "line": 48,
112 "column": 15 112 "column": 15
113 }, 113 },
114 "end": { 114 "end": {
115 "line": 50, 115 "line": 51,
116 "column": 3 116 "column": 3
117 } 117 }
118 } 118 }
diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
index 97360b78e..373cd78f9 100644
--- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
+++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
@@ -234,15 +234,28 @@
234 } 234 }
235 }, 235 },
236 { 236 {
237 "id": "settings.app.spellCheckerLanguageInfo",
238 "defaultMessage": "!!!Ferdi uses your Mac's build-in spellchecker to check for typos. If you want to change the languages the spellchecker checks for, you can do so in your Mac's System Preferences.",
239 "file": "src/components/settings/settings/EditSettingsForm.js",
240 "start": {
241 "line": 94,
242 "column": 28
243 },
244 "end": {
245 "line": 97,
246 "column": 3
247 }
248 },
249 {
237 "id": "settings.app.subheadlineCache", 250 "id": "settings.app.subheadlineCache",
238 "defaultMessage": "!!!Cache", 251 "defaultMessage": "!!!Cache",
239 "file": "src/components/settings/settings/EditSettingsForm.js", 252 "file": "src/components/settings/settings/EditSettingsForm.js",
240 "start": { 253 "start": {
241 "line": 94, 254 "line": 98,
242 "column": 20 255 "column": 20
243 }, 256 },
244 "end": { 257 "end": {
245 "line": 97, 258 "line": 101,
246 "column": 3 259 "column": 3
247 } 260 }
248 }, 261 },
@@ -251,11 +264,11 @@
251 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", 264 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
252 "file": "src/components/settings/settings/EditSettingsForm.js", 265 "file": "src/components/settings/settings/EditSettingsForm.js",
253 "start": { 266 "start": {
254 "line": 98, 267 "line": 102,
255 "column": 13 268 "column": 13
256 }, 269 },
257 "end": { 270 "end": {
258 "line": 101, 271 "line": 105,
259 "column": 3 272 "column": 3
260 } 273 }
261 }, 274 },
@@ -264,11 +277,11 @@
264 "defaultMessage": "!!!Couldn't clear all cache", 277 "defaultMessage": "!!!Couldn't clear all cache",
265 "file": "src/components/settings/settings/EditSettingsForm.js", 278 "file": "src/components/settings/settings/EditSettingsForm.js",
266 "start": { 279 "start": {
267 "line": 102, 280 "line": 106,
268 "column": 19 281 "column": 19
269 }, 282 },
270 "end": { 283 "end": {
271 "line": 105, 284 "line": 109,
272 "column": 3 285 "column": 3
273 } 286 }
274 }, 287 },
@@ -277,11 +290,11 @@
277 "defaultMessage": "!!!Clear cache", 290 "defaultMessage": "!!!Clear cache",
278 "file": "src/components/settings/settings/EditSettingsForm.js", 291 "file": "src/components/settings/settings/EditSettingsForm.js",
279 "start": { 292 "start": {
280 "line": 106, 293 "line": 110,
281 "column": 23 294 "column": 23
282 }, 295 },
283 "end": { 296 "end": {
284 "line": 109, 297 "line": 113,
285 "column": 3 298 "column": 3
286 } 299 }
287 }, 300 },
@@ -290,11 +303,11 @@
290 "defaultMessage": "!!!Check for updates", 303 "defaultMessage": "!!!Check for updates",
291 "file": "src/components/settings/settings/EditSettingsForm.js", 304 "file": "src/components/settings/settings/EditSettingsForm.js",
292 "start": { 305 "start": {
293 "line": 110, 306 "line": 114,
294 "column": 25 307 "column": 25
295 }, 308 },
296 "end": { 309 "end": {
297 "line": 113, 310 "line": 117,
298 "column": 3 311 "column": 3
299 } 312 }
300 }, 313 },
@@ -303,11 +316,11 @@
303 "defaultMessage": "!!!Restart & install update", 316 "defaultMessage": "!!!Restart & install update",
304 "file": "src/components/settings/settings/EditSettingsForm.js", 317 "file": "src/components/settings/settings/EditSettingsForm.js",
305 "start": { 318 "start": {
306 "line": 114, 319 "line": 118,
307 "column": 23 320 "column": 23
308 }, 321 },
309 "end": { 322 "end": {
310 "line": 117, 323 "line": 121,
311 "column": 3 324 "column": 3
312 } 325 }
313 }, 326 },
@@ -316,11 +329,11 @@
316 "defaultMessage": "!!!Is searching for update", 329 "defaultMessage": "!!!Is searching for update",
317 "file": "src/components/settings/settings/EditSettingsForm.js", 330 "file": "src/components/settings/settings/EditSettingsForm.js",
318 "start": { 331 "start": {
319 "line": 118, 332 "line": 122,
320 "column": 25 333 "column": 25
321 }, 334 },
322 "end": { 335 "end": {
323 "line": 121, 336 "line": 125,
324 "column": 3 337 "column": 3
325 } 338 }
326 }, 339 },
@@ -329,11 +342,11 @@
329 "defaultMessage": "!!!Update available, downloading...", 342 "defaultMessage": "!!!Update available, downloading...",
330 "file": "src/components/settings/settings/EditSettingsForm.js", 343 "file": "src/components/settings/settings/EditSettingsForm.js",
331 "start": { 344 "start": {
332 "line": 122, 345 "line": 126,
333 "column": 25 346 "column": 25
334 }, 347 },
335 "end": { 348 "end": {
336 "line": 125, 349 "line": 129,
337 "column": 3 350 "column": 3
338 } 351 }
339 }, 352 },
@@ -342,11 +355,11 @@
342 "defaultMessage": "!!!You are using the latest version of Ferdi", 355 "defaultMessage": "!!!You are using the latest version of Ferdi",
343 "file": "src/components/settings/settings/EditSettingsForm.js", 356 "file": "src/components/settings/settings/EditSettingsForm.js",
344 "start": { 357 "start": {
345 "line": 126, 358 "line": 130,
346 "column": 24 359 "column": 24
347 }, 360 },
348 "end": { 361 "end": {
349 "line": 129, 362 "line": 133,
350 "column": 3 363 "column": 3
351 } 364 }
352 }, 365 },
@@ -355,11 +368,11 @@
355 "defaultMessage": "!!!Current version:", 368 "defaultMessage": "!!!Current version:",
356 "file": "src/components/settings/settings/EditSettingsForm.js", 369 "file": "src/components/settings/settings/EditSettingsForm.js",
357 "start": { 370 "start": {
358 "line": 130, 371 "line": 134,
359 "column": 18 372 "column": 18
360 }, 373 },
361 "end": { 374 "end": {
362 "line": 133, 375 "line": 137,
363 "column": 3 376 "column": 3
364 } 377 }
365 }, 378 },
@@ -368,11 +381,11 @@
368 "defaultMessage": "!!!Changes require restart", 381 "defaultMessage": "!!!Changes require restart",
369 "file": "src/components/settings/settings/EditSettingsForm.js", 382 "file": "src/components/settings/settings/EditSettingsForm.js",
370 "start": { 383 "start": {
371 "line": 134, 384 "line": 138,
372 "column": 29 385 "column": 29
373 }, 386 },
374 "end": { 387 "end": {
375 "line": 137, 388 "line": 141,
376 "column": 3 389 "column": 3
377 } 390 }
378 }, 391 },
@@ -381,11 +394,11 @@
381 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", 394 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.",
382 "file": "src/components/settings/settings/EditSettingsForm.js", 395 "file": "src/components/settings/settings/EditSettingsForm.js",
383 "start": { 396 "start": {
384 "line": 138, 397 "line": 142,
385 "column": 22 398 "column": 22
386 }, 399 },
387 "end": { 400 "end": {
388 "line": 141, 401 "line": 145,
389 "column": 3 402 "column": 3
390 } 403 }
391 } 404 }
diff --git a/src/i18n/messages/src/features/todos/components/TodosWebview.json b/src/i18n/messages/src/features/todos/components/TodosWebview.json
index 173389570..ff6e037fc 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": 27, 7 "line": 31,
8 "column": 15 8 "column": 15
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 30, 11 "line": 34,
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": 31, 20 "line": 35,
21 "column": 14 21 "column": 14
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 34, 24 "line": 38,
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": 35, 33 "line": 39,
34 "column": 15 34 "column": 15
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 38, 37 "line": 42,
38 "column": 3 38 "column": 3
39 } 39 }
40 } 40 }
diff --git a/src/models/Service.js b/src/models/Service.js
index 45dc55fce..4b5e8592d 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -1,5 +1,5 @@
1import { autorun, computed, observable } from 'mobx'; 1import { autorun, computed, observable } from 'mobx';
2import { ipcRenderer } from 'electron'; 2import { ipcRenderer, remote } from 'electron';
3import normalizeUrl from 'normalize-url'; 3import normalizeUrl from 'normalize-url';
4import path from 'path'; 4import path from 'path';
5 5
@@ -227,7 +227,7 @@ export default class Service {
227 227
228 228
229 initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) { 229 initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) {
230 const webContents = this.webview.getWebContents(); 230 const webContents = remote.webContents.fromId(this.webview.getWebContentsId());
231 231
232 // If the recipe has implemented modifyRequestHeaders, 232 // If the recipe has implemented modifyRequestHeaders,
233 // Send those headers to ipcMain so that it can be set in session 233 // Send those headers to ipcMain so that it can be set in session
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index a8d9cc1fb..448260638 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -618,7 +618,10 @@ export default class ServicesStore extends Store {
618 const service = this.one(serviceId); 618 const service = this.one(serviceId);
619 619
620 if (service.webview) { 620 if (service.webview) {
621 service.webview.send(channel, args); 621 // Make sure the args are clean, otherwise ElectronJS can't transmit them
622 const cleanArgs = JSON.parse(JSON.stringify(args));
623
624 service.webview.send(channel, cleanArgs);
622 } 625 }
623 } 626 }
624 627
@@ -895,10 +898,14 @@ export default class ServicesStore extends Store {
895 const service = this.one(serviceId); 898 const service = this.one(serviceId);
896 899
897 if (service.webview) { 900 if (service.webview) {
901 // We need to completely clone the object, otherwise Electron won't be able to send the object via IPC
902 const shareWithWebview = JSON.parse(JSON.stringify(service.shareWithWebview));
903
898 debug('Initialize recipe', service.recipe.id, service.name); 904 debug('Initialize recipe', service.recipe.id, service.name);
899 service.webview.send('initialize-recipe', Object.assign({ 905 service.webview.send('initialize-recipe', {
906 ...shareWithWebview,
900 franzVersion: app.getVersion(), 907 franzVersion: app.getVersion(),
901 }, service.shareWithWebview), service.recipe); 908 }, service.recipe);
902 } 909 }
903 } 910 }
904 911
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js
index 3a53d150d..c1ed2944a 100644
--- a/src/stores/UserStore.js
+++ b/src/stores/UserStore.js
@@ -99,7 +99,7 @@ export default class UserStore extends Store {
99 99
100 // Reactions 100 // Reactions
101 this.registerReactions([ 101 this.registerReactions([
102 this._requireAuthenticatedUser, 102 this._requireAuthenticatedUser.bind(this),
103 this._getUserData.bind(this), 103 this._getUserData.bind(this),
104 this._resetTrialActivationState.bind(this), 104 this._resetTrialActivationState.bind(this),
105 ]); 105 ]);
@@ -321,7 +321,7 @@ export default class UserStore extends Store {
321 } 321 }
322 322
323 const { router } = this.stores; 323 const { router } = this.stores;
324 const currentRoute = router.location.pathname; 324 const currentRoute = window.location.hash;
325 if (!this.isLoggedIn 325 if (!this.isLoggedIn
326 && currentRoute.includes('token=')) { 326 && currentRoute.includes('token=')) {
327 router.push(this.WELCOME_ROUTE); 327 router.push(this.WELCOME_ROUTE);
diff --git a/src/styles/button.scss b/src/styles/button.scss
index 38f8fd26d..cf2568fc4 100644
--- a/src/styles/button.scss
+++ b/src/styles/button.scss
@@ -110,3 +110,32 @@
110 z-index: 9999; 110 z-index: 9999;
111 } 111 }
112} 112}
113
114.ferdi__fab {
115 box-sizing: border-box;
116
117 width: 50px;
118 height: 50px;
119
120 border-radius: 25px;
121 white-space: nowrap;
122 z-index: 9998;
123 list-style: none;
124 background: $theme-brand-primary;
125
126 position: absolute;
127 bottom: 20px;
128 right: 20px;
129
130 cursor: pointer;
131
132 display: flex;
133 justify-content: center;
134 align-items: center;
135
136 a {
137 font-size: 30px;
138 color: #FFFFFF;
139 cursor: pointer;
140 }
141} \ No newline at end of file
diff --git a/src/webview/contextMenu.js b/src/webview/contextMenu.js
index eeb825ece..d04f90830 100644
--- a/src/webview/contextMenu.js
+++ b/src/webview/contextMenu.js
@@ -1,50 +1,14 @@
1import { remote } from 'electron'; 1import { remote } from 'electron';
2import { ContextMenuBuilder, ContextMenuListener } from 'electron-spellchecker'; 2import ContextMenuBuilder from './contextMenuBuilder';
3 3
4const webContents = remote.getCurrentWebContents(); 4const webContents = remote.getCurrentWebContents();
5 5
6export default async function setupContextMenu(handler) { 6export default async function setupContextMenu() {
7 const addCustomMenuItems = (menu, menuInfo) => {
8 // Add "Paste as plain text" item when right-clicking editable content
9 if (
10 menuInfo.editFlags.canPaste
11 && !menuInfo.linkText
12 && !menuInfo.hasImageContents
13 ) {
14 menu.insert(
15 3,
16 new remote.MenuItem({
17 label: 'Paste as plain text',
18 accelerator: 'CommandOrControl+Shift+V',
19 click: () => webContents.pasteAndMatchStyle(),
20 }),
21 );
22 }
23
24 // Add "Open Link in Ferdi" item for links
25 if (menuInfo.linkURL) {
26 menu.insert(
27 2,
28 new remote.MenuItem({
29 label: 'Open Link in Ferdi',
30 click: () => {
31 window.location.href = menuInfo.linkURL;
32 },
33 }),
34 );
35 }
36
37 return menu;
38 };
39
40 const contextMenuBuilder = new ContextMenuBuilder( 7 const contextMenuBuilder = new ContextMenuBuilder(
41 handler, 8 webContents,
42 null,
43 true,
44 addCustomMenuItems,
45 ); 9 );
46 // eslint-disable-next-line no-new 10
47 new ContextMenuListener((info) => { 11 webContents.on('context-menu', (event, params) => {
48 contextMenuBuilder.showPopupMenu(info); 12 contextMenuBuilder.showPopupMenu(params);
49 }); 13 });
50} 14}
diff --git a/src/webview/contextMenuBuilder.js b/src/webview/contextMenuBuilder.js
new file mode 100644
index 000000000..8adc3b432
--- /dev/null
+++ b/src/webview/contextMenuBuilder.js
@@ -0,0 +1,446 @@
1/**
2 * Context Menu builder.
3 *
4 * Based on "electron-spellchecker"'s ContextMenuBuilder but customized for Ferdi
5 * and for usage with Electron's build-in spellchecker
6 *
7 * Source: https://github.com/electron-userland/electron-spellchecker/blob/master/src/context-menu-builder.js
8 */
9const {
10 clipboard, nativeImage, remote, shell,
11} = require('electron');
12
13const { URL } = require('url');
14
15const { Menu, MenuItem } = remote;
16
17function matchesWord(string) {
18 const regex = /[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]+/g;
19
20 return string.match(regex);
21}
22
23const contextMenuStringTable = {
24 copyMail: () => 'Copy Email Address',
25 copyLinkUrl: () => 'Copy Link',
26 openLinkUrl: () => 'Open Link',
27 copyImageUrl: () => 'Copy Image URL',
28 copyImage: () => 'Copy Image',
29 addToDictionary: () => 'Add to Dictionary',
30 lookUpDefinition: ({ word }) => `Look Up "${word}"`,
31 searchGoogle: () => 'Search with Google',
32 cut: () => 'Cut',
33 copy: () => 'Copy',
34 paste: () => 'Paste',
35 inspectElement: () => 'Inspect Element',
36 goToHomePage: () => 'Go to Home Page',
37};
38
39/**
40 * ContextMenuBuilder creates context menus based on the content clicked - this
41 * information is derived from
42 * https://github.com/electron/electron/blob/master/docs/api/web-contents.md#event-context-menu,
43 * which we use to generate the menu. We also use the spell-check information to
44 * generate suggestions.
45 */
46module.exports = class ContextMenuBuilder {
47 /**
48 * Creates an instance of ContextMenuBuilder
49 *
50 * @param {webContents} webContents Current webContents
51 * @param {Boolean} debugMode If true, display the "Inspect Element" menu item.
52 * @param {function} processMenu If passed, this method will be passed the menu to change
53 * it prior to display. Signature: (menu, info) => menu
54 */
55 constructor(webContents, debugMode = false, processMenu = m => m) {
56 this.debugMode = debugMode;
57 this.processMenu = processMenu;
58 this.menu = null;
59 this.stringTable = Object.assign({}, contextMenuStringTable);
60 this.getWebContents = () => webContents;
61 }
62
63 /**
64 * Specify alternate string formatter for each context menu.
65 * String table consist of string formatter as function instead per each context menu item,
66 * allows to change string in runtime. All formatters are simply typeof () => string, except
67 * lookUpDefinition provides word, ({word}) => string.
68 *
69 * @param {Object} stringTable The object contains string foramtter function for context menu.
70 * It is allowed to specify only certain menu string as necessary, which will makes other string
71 * fall backs to default.
72 *
73 */
74 setAlternateStringFormatter(stringTable) {
75 this.stringTable = Object.assign(this.stringTable, stringTable);
76 }
77
78 /**
79 * Shows a popup menu given the information returned from the context-menu
80 * event. This is probably the only method you need to call in this class.
81 *
82 * @param {Object} contextInfo The object returned from the 'context-menu'
83 * Electron event.
84 *
85 * @return {Promise} Completion
86 */
87 async showPopupMenu(contextInfo) {
88 const menu = await this.buildMenuForElement(contextInfo);
89 if (!menu) return;
90 menu.popup({});
91 }
92
93 /**
94 * Builds a context menu specific to the given info that _would_ be shown
95 * immediately by {{showPopupMenu}}. Use this to add your own menu items to
96 * the list but use most of the default behavior.
97 *
98 * @return {Promise<Menu>} The newly created `Menu`
99 */
100 async buildMenuForElement(info) {
101 if (info.linkURL && info.linkURL.length > 0) {
102 return this.buildMenuForLink(info);
103 }
104
105 if (info.hasImageContents && info.srcURL && info.srcURL.length > 1) {
106 return this.buildMenuForImage(info);
107 }
108
109 if (info.isEditable || (info.inputFieldType && info.inputFieldType !== 'none')) {
110 return this.buildMenuForTextInput(info);
111 }
112
113 return this.buildMenuForText(info);
114 }
115
116 /**
117 * Builds a menu applicable to a text input field.
118 *
119 * @return {Menu} The `Menu`
120 */
121 buildMenuForTextInput(menuInfo) {
122 const menu = new Menu();
123
124 this.addSpellingItems(menu, menuInfo);
125 this.addSearchItems(menu, menuInfo);
126
127 this.addCut(menu, menuInfo);
128 this.addCopy(menu, menuInfo);
129 this.addPaste(menu, menuInfo);
130 this.addPastePlain(menu, menuInfo);
131 this.addInspectElement(menu, menuInfo);
132 this.processMenu(menu, menuInfo);
133
134 this.goToHomePage(menu, menuInfo);
135
136 return menu;
137 }
138
139 /**
140 * Builds a menu applicable to a link element.
141 *
142 * @return {Menu} The `Menu`
143 */
144 buildMenuForLink(menuInfo) {
145 const menu = new Menu();
146 const isEmailAddress = menuInfo.linkURL.startsWith('mailto:');
147
148 const copyLink = new MenuItem({
149 label: isEmailAddress ? this.stringTable.copyMail() : this.stringTable.copyLinkUrl(),
150 click: () => {
151 // Omit the mailto: portion of the link; we just want the address
152 clipboard.writeText(isEmailAddress
153 ? menuInfo.linkText : menuInfo.linkURL);
154 },
155 });
156
157 const openLink = new MenuItem({
158 label: this.stringTable.openLinkUrl(),
159 click: () => {
160 shell.openExternal(menuInfo.linkURL);
161 },
162 });
163
164 const openInFerdiLink = new MenuItem({
165 label: 'Open Link in Ferdi',
166 click: () => {
167 window.location.href = menuInfo.linkURL;
168 },
169 });
170
171 menu.append(copyLink);
172 menu.append(openLink);
173 menu.append(openInFerdiLink);
174
175 if (this.isSrcUrlValid(menuInfo)) {
176 this.addSeparator(menu);
177 this.addImageItems(menu, menuInfo);
178 }
179
180 this.addInspectElement(menu, menuInfo);
181 this.processMenu(menu, menuInfo);
182
183 this.goToHomePage(menu, menuInfo);
184
185 return menu;
186 }
187
188 /**
189 * Builds a menu applicable to a text field.
190 *
191 * @return {Menu} The `Menu`
192 */
193 buildMenuForText(menuInfo) {
194 const menu = new Menu();
195
196 this.addSearchItems(menu, menuInfo);
197 this.addCopy(menu, menuInfo);
198 this.addInspectElement(menu, menuInfo);
199 this.processMenu(menu, menuInfo);
200
201 this.goToHomePage(menu, menuInfo);
202
203 return menu;
204 }
205
206 /**
207 * Builds a menu applicable to an image.
208 *
209 * @return {Menu} The `Menu`
210 */
211 buildMenuForImage(menuInfo) {
212 const menu = new Menu();
213
214 if (this.isSrcUrlValid(menuInfo)) {
215 this.addImageItems(menu, menuInfo);
216 }
217 this.addInspectElement(menu, menuInfo);
218 this.processMenu(menu, menuInfo);
219
220 return menu;
221 }
222
223 /**
224 * Checks if the current text selection contains a single misspelled word and
225 * if so, adds suggested spellings as individual menu items.
226 */
227 addSpellingItems(menu, menuInfo) {
228 const target = this.getWebContents();
229 // Add each spelling suggestion
230 for (const suggestion of menuInfo.dictionarySuggestions) {
231 menu.append(new MenuItem({
232 label: suggestion,
233 // eslint-disable-next-line no-loop-func
234 click: () => target.replaceMisspelling(suggestion),
235 }));
236 }
237
238 // Allow users to add the misspelled word to the dictionary
239 if (menuInfo.misspelledWord) {
240 menu.append(
241 new MenuItem({
242 label: 'Add to dictionary',
243 click: () => target.session.addWordToSpellCheckerDictionary(menuInfo.misspelledWord),
244 }),
245 );
246 }
247
248 return menu;
249 }
250
251 /**
252 * Adds search-related menu items.
253 */
254 addSearchItems(menu, menuInfo) {
255 if (!menuInfo.selectionText || menuInfo.selectionText.length < 1) {
256 return menu;
257 }
258
259 const match = matchesWord(menuInfo.selectionText);
260 if (!match || match.length === 0) {
261 return menu;
262 }
263
264 if (process.platform === 'darwin') {
265 const target = this.getWebContents();
266
267 const lookUpDefinition = new MenuItem({
268 label: this.stringTable.lookUpDefinition({ word: menuInfo.selectionText.trim() }),
269 click: () => target.showDefinitionForSelection(),
270 });
271
272 menu.append(lookUpDefinition);
273 }
274
275 const search = new MenuItem({
276 label: this.stringTable.searchGoogle(),
277 click: () => {
278 const url = `https://www.google.com/#q=${encodeURIComponent(menuInfo.selectionText)}`;
279
280 shell.openExternal(url);
281 },
282 });
283
284 menu.append(search);
285 this.addSeparator(menu);
286
287 return menu;
288 }
289
290 isSrcUrlValid(menuInfo) {
291 return menuInfo.srcURL && menuInfo.srcURL.length > 0;
292 }
293
294 /**
295 * Adds "Copy Image" and "Copy Image URL" items when `src` is valid.
296 */
297 addImageItems(menu, menuInfo) {
298 const copyImage = new MenuItem({
299 label: this.stringTable.copyImage(),
300 click: () => this.convertImageToBase64(menuInfo.srcURL,
301 dataURL => clipboard.writeImage(nativeImage.createFromDataURL(dataURL))),
302 });
303
304 menu.append(copyImage);
305
306 const copyImageUrl = new MenuItem({
307 label: this.stringTable.copyImageUrl(),
308 click: () => clipboard.writeText(menuInfo.srcURL),
309 });
310
311 menu.append(copyImageUrl);
312 return menu;
313 }
314
315 /**
316 * Adds the Cut menu item
317 */
318 addCut(menu, menuInfo) {
319 const target = this.getWebContents();
320 menu.append(new MenuItem({
321 label: this.stringTable.cut(),
322 accelerator: 'CommandOrControl+X',
323 enabled: menuInfo.editFlags.canCut,
324 click: () => target.cut(),
325 }));
326
327 return menu;
328 }
329
330 /**
331 * Adds the Copy menu item.
332 */
333 addCopy(menu, menuInfo) {
334 const target = this.getWebContents();
335 menu.append(new MenuItem({
336 label: this.stringTable.copy(),
337 accelerator: 'CommandOrControl+C',
338 enabled: menuInfo.editFlags.canCopy,
339 click: () => target.copy(),
340 }));
341
342 return menu;
343 }
344
345 /**
346 * Adds the Paste menu item.
347 */
348 addPaste(menu, menuInfo) {
349 const target = this.getWebContents();
350 menu.append(new MenuItem({
351 label: this.stringTable.paste(),
352 accelerator: 'CommandOrControl+V',
353 enabled: menuInfo.editFlags.canPaste,
354 click: () => target.paste(),
355 }));
356
357 return menu;
358 }
359
360 addPastePlain(menu, menuInfo) {
361 if (
362 menuInfo.editFlags.canPaste
363 && !menuInfo.linkText
364 && !menuInfo.hasImageContents
365 ) {
366 const target = this.getWebContents();
367 menu.append(
368 new MenuItem({
369 label: 'Paste as plain text',
370 accelerator: 'CommandOrControl+Shift+V',
371 click: () => target.pasteAndMatchStyle(),
372 }),
373 );
374 }
375 }
376
377 /**
378 * Adds a separator item.
379 */
380 addSeparator(menu) {
381 menu.append(new MenuItem({ type: 'separator' }));
382 return menu;
383 }
384
385 /**
386 * Adds the "Inspect Element" menu item.
387 */
388 addInspectElement(menu, menuInfo, needsSeparator = true) {
389 const target = this.getWebContents();
390 if (!this.debugMode) return menu;
391 if (needsSeparator) this.addSeparator(menu);
392
393 const inspect = new MenuItem({
394 label: this.stringTable.inspectElement(),
395 click: () => target.inspectElement(menuInfo.x, menuInfo.y),
396 });
397
398 menu.append(inspect);
399 return menu;
400 }
401
402 /**
403 * Converts an image to a base-64 encoded string.
404 *
405 * @param {String} url The image URL
406 * @param {Function} callback A callback that will be invoked with the result
407 * @param {String} outputFormat The image format to use, defaults to 'image/png'
408 */
409 convertImageToBase64(url, callback, outputFormat = 'image/png') {
410 let canvas = document.createElement('CANVAS');
411 const ctx = canvas.getContext('2d');
412 // eslint-disable-next-line no-undef
413 const img = new Image();
414 img.crossOrigin = 'Anonymous';
415
416 img.onload = () => {
417 canvas.height = img.height;
418 canvas.width = img.width;
419 ctx.drawImage(img, 0, 0);
420
421 const dataURL = canvas.toDataURL(outputFormat);
422 canvas = null;
423 callback(dataURL);
424 };
425
426 img.src = url;
427 }
428
429 /**
430 * Adds the go to home menu item.
431 */
432 goToHomePage(menu, menuInfo) {
433 const baseURL = new URL(menuInfo.pageURL);
434 menu.append(new MenuItem({
435 label: this.stringTable.goToHomePage(),
436 accelerator: 'CommandOrControl+Home',
437 enabled: true,
438 click: () => {
439 // target.loadURL(baseURL.origin);
440 window.location.href = baseURL.origin;
441 },
442 }));
443
444 return menu;
445 }
446};
diff --git a/src/webview/recipe.js b/src/webview/recipe.js
index b0aefd9c1..c6724e35a 100644
--- a/src/webview/recipe.js
+++ b/src/webview/recipe.js
@@ -65,7 +65,18 @@ class RecipeController {
65 } 65 }
66 66
67 @computed get spellcheckerLanguage() { 67 @computed get spellcheckerLanguage() {
68 return this.settings.service.spellcheckerLanguage || this.settings.app.spellcheckerLanguage; 68 let selected;
69 const langs = this.settings.service.spellcheckerLanguage || this.settings.app.spellcheckerLanguage;
70 if (typeof langs === 'string' && langs.substr(0, 1) === '[') {
71 // Value is JSON encoded
72 selected = JSON.parse(langs);
73 } else if (typeof langs === 'object') {
74 selected = langs;
75 } else {
76 selected = [langs];
77 }
78
79 return selected;
69 } 80 }
70 81
71 cldIdentifier = null; 82 cldIdentifier = null;
@@ -165,11 +176,11 @@ class RecipeController {
165 176
166 if (this.settings.app.enableSpellchecking) { 177 if (this.settings.app.enableSpellchecking) {
167 debug('Setting spellchecker language to', this.spellcheckerLanguage); 178 debug('Setting spellchecker language to', this.spellcheckerLanguage);
168 let { spellcheckerLanguage } = this; 179 const { spellcheckerLanguage } = this;
169 if (spellcheckerLanguage === 'automatic') { 180 if (spellcheckerLanguage.includes('automatic')) {
170 this.automaticLanguageDetection(); 181 this.automaticLanguageDetection();
171 debug('Found `automatic` locale, falling back to user locale until detected', this.settings.app.locale); 182 debug('Found `automatic` locale, falling back to user locale until detected', this.settings.app.locale);
172 spellcheckerLanguage = this.settings.app.locale; 183 spellcheckerLanguage.push(this.settings.app.locale);
173 } else if (this.cldIdentifier) { 184 } else if (this.cldIdentifier) {
174 this.cldIdentifier.destroy(); 185 this.cldIdentifier.destroy();
175 } 186 }
@@ -318,7 +329,10 @@ class RecipeController {
318 const spellcheckerLocale = getSpellcheckerLocaleByFuzzyIdentifier(findResult.language); 329 const spellcheckerLocale = getSpellcheckerLocaleByFuzzyIdentifier(findResult.language);
319 debug('Language detected reliably, setting spellchecker language to', spellcheckerLocale); 330 debug('Language detected reliably, setting spellchecker language to', spellcheckerLocale);
320 if (spellcheckerLocale) { 331 if (spellcheckerLocale) {
321 switchDict(spellcheckerLocale); 332 switchDict([
333 ...this.spellcheckerLanguage,
334 spellcheckerLocale,
335 ]);
322 } 336 }
323 } 337 }
324 }, 225)); 338 }, 225));
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js
index a33a506b2..287c9cf11 100644
--- a/src/webview/spellchecker.js
+++ b/src/webview/spellchecker.js
@@ -1,53 +1,42 @@
1import { webFrame } from 'electron'; 1import { webFrame } from 'electron';
2import { SpellCheckHandler } from 'electron-spellchecker';
3import { SPELLCHECKER_LOCALES } from '../i18n/languages'; 2import { SPELLCHECKER_LOCALES } from '../i18n/languages';
4import setupContextMenu from './contextMenu'; 3import setupContextMenu from './contextMenu';
5 4
6const debug = require('debug')('Franz:spellchecker'); 5const debug = require('debug')('Franz:spellchecker');
7 6
8let handler;
9let currentDict;
10let _isEnabled = false; 7let _isEnabled = false;
11 8
12export async function switchDict(locale) { 9export async function switchDict(locales) {
13 try { 10 const { platform } = process;
14 debug('Trying to load dictionary', locale); 11 if (platform === 'darwin') {
15 12 // MacOS uses the build-in languages which cannot be changed
16 if (!handler) { 13 return;
17 console.warn('SpellcheckHandler not initialized'); 14 }
18
19 return;
20 }
21
22 if (locale === currentDict) {
23 console.warn('Dictionary is already used', currentDict);
24 15
25 return; 16 try {
26 } 17 debug('Trying to load dictionary', locales);
27 18
28 handler.switchLanguage(locale); 19 webFrame.session.setSpellCheckerLanguages([...locales, 'en-US']);
29 20
30 debug('Switched dictionary to', locale); 21 debug('Switched dictionary to', locales);
31 22
32 currentDict = locale;
33 _isEnabled = true; 23 _isEnabled = true;
34 } catch (err) { 24 } catch (err) {
35 console.error(err); 25 console.error(err);
36 } 26 }
37} 27}
38 28
39export default async function initialize(languageCode = 'en-us') { 29export default async function initialize(languages = ['en-us']) {
40 try { 30 try {
41 handler = new SpellCheckHandler();
42 setTimeout(() => handler.attachToInput(), 1000);
43 const locale = languageCode.toLowerCase();
44
45 debug('Init spellchecker'); 31 debug('Init spellchecker');
46 32
47 switchDict(locale); 33 switchDict([
48 setupContextMenu(handler); 34 navigator.language,
35 ...languages,
36 ]);
37 setupContextMenu();
49 38
50 return handler; 39 return true;
51 } catch (err) { 40 } catch (err) {
52 console.error(err); 41 console.error(err);
53 return false; 42 return false;
@@ -60,10 +49,7 @@ export function isEnabled() {
60 49
61export function disable() { 50export function disable() {
62 if (isEnabled()) { 51 if (isEnabled()) {
63 handler.unsubscribe(); 52 // TODO: How to disable build-in spellchecker?
64 webFrame.setSpellCheckProvider(currentDict, { spellCheck: () => true });
65 _isEnabled = false;
66 currentDict = null;
67 } 53 }
68} 54}
69 55