aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Amine Mouafik <amine@mouafik.fr>2020-03-11 04:36:02 +0100
committerLibravatar Amine Mouafik <amine@mouafik.fr>2020-03-11 04:36:02 +0100
commit063875d7395438ba6566327e0f26c7cda5fe5ba8 (patch)
tree7fff0347843a0376f7aee07eb34260c28c40808f
parentMerge branch 'develop' (diff)
parent5.4.4-beta.3 (diff)
downloadferdium-app-063875d7395438ba6566327e0f26c7cda5fe5ba8.tar.gz
ferdium-app-063875d7395438ba6566327e0f26c7cda5fe5ba8.tar.zst
ferdium-app-063875d7395438ba6566327e0f26c7cda5fe5ba8.zip
Merge branch 'develop'
-rw-r--r--.all-contributorsrc167
-rw-r--r--README.md61
-rw-r--r--branding/download.pngbin0 -> 29008 bytes
-rw-r--r--branding/download.psdbin0 -> 161099 bytes
-rw-r--r--package-lock.json7
-rw-r--r--package.json3
m---------recipes0
-rw-r--r--src/components/auth/Locked.js48
-rw-r--r--src/components/settings/settings/EditSettingsForm.js9
-rw-r--r--src/config.js2
-rw-r--r--src/containers/auth/LockedScreen.js14
-rw-r--r--src/containers/settings/EditSettingsScreen.js20
-rw-r--r--src/i18n/locales/af.json6
-rw-r--r--src/i18n/locales/ar.json6
-rw-r--r--src/i18n/locales/bs.json6
-rw-r--r--src/i18n/locales/ca.json6
-rw-r--r--src/i18n/locales/cs.json6
-rw-r--r--src/i18n/locales/da.json6
-rw-r--r--src/i18n/locales/de.json48
-rw-r--r--src/i18n/locales/defaultMessages.json640
-rw-r--r--src/i18n/locales/el.json6
-rw-r--r--src/i18n/locales/en-US.json6
-rw-r--r--src/i18n/locales/es.json6
-rw-r--r--src/i18n/locales/fi.json6
-rw-r--r--src/i18n/locales/fr.json36
-rw-r--r--src/i18n/locales/ga.json6
-rw-r--r--src/i18n/locales/he.json6
-rw-r--r--src/i18n/locales/hr.json6
-rw-r--r--src/i18n/locales/hu.json6
-rw-r--r--src/i18n/locales/id.json6
-rw-r--r--src/i18n/locales/it.json6
-rw-r--r--src/i18n/locales/ja.json6
-rw-r--r--src/i18n/locales/ka.json6
-rw-r--r--src/i18n/locales/ko.json6
-rw-r--r--src/i18n/locales/nl-BE.json6
-rw-r--r--src/i18n/locales/nl.json6
-rw-r--r--src/i18n/locales/no.json6
-rw-r--r--src/i18n/locales/pl.json6
-rw-r--r--src/i18n/locales/pt-BR.json654
-rw-r--r--src/i18n/locales/pt.json684
-rw-r--r--src/i18n/locales/ro.json6
-rw-r--r--src/i18n/locales/ru.json6
-rw-r--r--src/i18n/locales/sk.json6
-rw-r--r--src/i18n/locales/sl.json6
-rw-r--r--src/i18n/locales/sr.json6
-rw-r--r--src/i18n/locales/sv.json6
-rw-r--r--src/i18n/locales/tr.json6
-rw-r--r--src/i18n/locales/uk.json6
-rw-r--r--src/i18n/locales/vi.json6
-rw-r--r--src/i18n/locales/zh-HANT.json338
-rw-r--r--src/i18n/locales/zh.json6
-rw-r--r--src/i18n/messages/src/components/auth/Locked.json59
-rw-r--r--src/i18n/messages/src/components/settings/settings/EditSettingsForm.json124
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json142
-rw-r--r--src/i18n/messages/src/lib/Menu.json315
-rw-r--r--src/lib/Menu.js104
-rw-r--r--src/scripts/add-crowdin-contributors.js81
-rw-r--r--src/stores/AppStore.js2
-rw-r--r--src/stores/ServicesStore.js2
-rw-r--r--src/stores/SettingsStore.js7
-rw-r--r--src/styles/auth.scss31
-rw-r--r--src/webview/contextMenu.js355
-rw-r--r--src/webview/lib/RecipeWebview.js25
-rw-r--r--src/webview/recipe.js76
-rw-r--r--src/webview/spellchecker.js12
65 files changed, 2450 insertions, 1814 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 2da78ea6b..8ec44a2b9 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -9,6 +9,7 @@
9 "imageSize": 40, 9 "imageSize": 40,
10 "commit": true, 10 "commit": true,
11 "commitConvention": "none", 11 "commitConvention": "none",
12 "badgeTemplate": "<a href='#contributors-'><img src='https://img.shields.io/badge/contributors-<%= contributors.length %>-default.svg?logo=github' alt='Contributors'/></a>",
12 "contributors": [ 13 "contributors": [
13 { 14 {
14 "login": "vantezzen", 15 "login": "vantezzen",
@@ -32,6 +33,29 @@
32 ] 33 ]
33 }, 34 },
34 { 35 {
36 "login": "kytwb",
37 "name": "Amine Mouafik",
38 "avatar_url": "https://avatars0.githubusercontent.com/u/412895?v=4",
39 "profile": "https://twitter.com/kytwb",
40 "contributions": [
41 "code",
42 "design",
43 "doc",
44 "ideas",
45 "bug",
46 "content",
47 "infra",
48 "userTesting",
49 "question",
50 "projectManagement",
51 "review",
52 "maintenance",
53 "platform",
54 "fundingFinding",
55 "blog"
56 ]
57 },
58 {
35 "login": "adlk", 59 "login": "adlk",
36 "name": "Stefan Malzner", 60 "name": "Stefan Malzner",
37 "avatar_url": "https://avatars1.githubusercontent.com/u/3265004?v=4", 61 "avatar_url": "https://avatars1.githubusercontent.com/u/3265004?v=4",
@@ -49,22 +73,17 @@
49 ] 73 ]
50 }, 74 },
51 { 75 {
52 "login": "kytwb", 76 "login": "Makazzz",
53 "name": "Amine Mouafik", 77 "name": "Makazzz",
54 "avatar_url": "https://avatars0.githubusercontent.com/u/412895?v=4", 78 "avatar_url": "https://avatars2.githubusercontent.com/u/49844464?v=4",
55 "profile": "https://twitter.com/kytwb", 79 "profile": "https://github.com/Makazzz",
56 "contributions": [ 80 "contributions": [
57 "question", 81 "bug",
58 "code", 82 "code",
83 "translation",
84 "content",
59 "doc", 85 "doc",
60 "ideas", 86 "platform"
61 "maintenance",
62 "platform",
63 "projectManagement",
64 "review",
65 "infra",
66 "fundingFinding",
67 "blog"
68 ] 87 ]
69 }, 88 },
70 { 89 {
@@ -152,20 +171,6 @@
152 ] 171 ]
153 }, 172 },
154 { 173 {
155 "login": "Makazzz",
156 "name": "Makazzz",
157 "avatar_url": "https://avatars2.githubusercontent.com/u/49844464?v=4",
158 "profile": "https://github.com/Makazzz",
159 "contributions": [
160 "bug",
161 "code",
162 "translation",
163 "content",
164 "doc",
165 "platform"
166 ]
167 },
168 {
169 "login": "xthursdayx", 174 "login": "xthursdayx",
170 "name": "xthursdayx", 175 "name": "xthursdayx",
171 "avatar_url": "https://avatars0.githubusercontent.com/u/18044308?v=4", 176 "avatar_url": "https://avatars0.githubusercontent.com/u/18044308?v=4",
@@ -296,6 +301,114 @@
296 "contributions": [ 301 "contributions": [
297 "code" 302 "code"
298 ] 303 ]
304 },
305 {
306 "login": "Ali_Shiple",
307 "name": "Ali M. Shiple",
308 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/12895436/small/00917d09ca1b4b6d8e0ef36af07ecf6b.jpg",
309 "profile": "https://crowdin.com/profile/Ali_Shiple",
310 "contributions": [
311 "translation"
312 ]
313 },
314 {
315 "login": "elviseras",
316 "name": "elviseras",
317 "avatar_url": "https://www.gravatar.com/avatar/25c2cf0d8cb4a4141e71c3b8a2e9324f",
318 "profile": "https://crowdin.com/profile/elviseras",
319 "contributions": [
320 "translation"
321 ]
322 },
323 {
324 "login": "J370",
325 "name": "J370",
326 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/14141203/small/7b12b5db419d8796450221c2eaaf6003.png",
327 "profile": "https://crowdin.com/profile/J370",
328 "contributions": [
329 "translation"
330 ]
331 },
332 {
333 "login": "keunes",
334 "name": "Koen",
335 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/13018172/small/829115c606347b10218f34c637a2100c.png",
336 "profile": "https://crowdin.com/profile/keunes",
337 "contributions": [
338 "translation"
339 ]
340 },
341 {
342 "login": "leandrogehlen",
343 "name": "Leandro Gehlen",
344 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/14099621/small/1d9503523839c310dbce0af3c226e894.jpeg",
345 "profile": "https://crowdin.com/profile/leandrogehlen",
346 "contributions": [
347 "translation"
348 ]
349 },
350 {
351 "login": "Matthieu42",
352 "name": "Matthieu42",
353 "avatar_url": "https://www.gravatar.com/avatar/735217ccccf11ba97573deee517ddb19",
354 "profile": "https://crowdin.com/profile/Matthieu42",
355 "contributions": [
356 "translation"
357 ]
358 },
359 {
360 "login": "nicky18013",
361 "name": "Nikita Bibanaev",
362 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/13468928/small/2b31e7ac19645d950a79b33ffd5721b8.png",
363 "profile": "https://crowdin.com/profile/nicky18013",
364 "contributions": [
365 "translation"
366 ]
367 },
368 {
369 "login": "Tatjana1998",
370 "name": "Tatjana1998",
371 "avatar_url": "https://www.gravatar.com/avatar/ade202a04fcbb2c177e4f1d9936af29e",
372 "profile": "https://crowdin.com/profile/Tatjana1998",
373 "contributions": [
374 "translation"
375 ]
376 },
377 {
378 "login": "seayko",
379 "name": "tinect",
380 "avatar_url": "https://www.gravatar.com/avatar/65e2aef738ddf828f822d8463fd04918",
381 "profile": "https://crowdin.com/profile/seayko",
382 "contributions": [
383 "translation"
384 ]
385 },
386 {
387 "login": "Pusnow",
388 "name": "Wonsup Yoon",
389 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/13514833/small/65f0b45587cc7e34f2827830cd324b16.jpeg",
390 "profile": "https://crowdin.com/profile/Pusnow",
391 "contributions": [
392 "translation"
393 ]
394 },
395 {
396 "login": "zutt",
397 "name": "zutt",
398 "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/13320003/small/50fdf9f8c7e54a446925bd79696ea625.JPG",
399 "profile": "https://crowdin.com/profile/zutt",
400 "contributions": [
401 "translation"
402 ]
403 },
404 {
405 "login": "n0emis",
406 "name": "n0emis",
407 "avatar_url": "https://avatars3.githubusercontent.com/u/22817873?v=4",
408 "profile": "http://twitter.com/noemis_exec",
409 "contributions": [
410 "code"
411 ]
299 } 412 }
300 ], 413 ],
301 "contributorsPerLine": 6, 414 "contributorsPerLine": 6,
diff --git a/README.md b/README.md
index 6a3a8ff54..dcee800a9 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,21 @@
1<p align="center"> 1<p align="center">
2 <img src="./build-helpers/images/icon.png" alt="" width="200"/> 2 <a href="https://getferdi.com">
3 <img src="./build-helpers/images/icon.png" alt="" width="250"/>
4 </a>
5</p>
6<p align="center">
7 <a href="https://getferdi.com/download">
8 <img src="./branding/download.png" alt="Download" width="150"/>
9 </a>
3</p> 10</p>
4 11
5# Ferdi 12# Ferdi
6 13
7<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">
16<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
17<a href='#contributors-'><img src='https://img.shields.io/badge/contributors-39-default.svg?logo=github' alt='Contributors'/></a>
18<!-- ALL-CONTRIBUTORS-BADGE:END -->
8<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>
9<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>
10<a href="https://ci.appveyor.com/project/kytwb/ferdi"><img alt="Build Status Windows" src="https://img.shields.io/appveyor/ci/kytwb/ferdi/master?logo=appveyor"></a> 21<a href="https://ci.appveyor.com/project/kytwb/ferdi"><img alt="Build Status Windows" src="https://img.shields.io/appveyor/ci/kytwb/ferdi/master?logo=appveyor"></a>
@@ -39,7 +50,7 @@
39 - [Start development app](#start-development-app) 50 - [Start development app](#start-development-app)
40 - [Packaging](#packaging) 51 - [Packaging](#packaging)
41 - [Release](#release) 52 - [Release](#release)
42 - [Contributors ✨](#contributors-%e2%9c%a8) 53 - [Contributors ✨](#contributors-)
43 - [Backers via OpenCollective](#backers-via-opencollective) 54 - [Backers via OpenCollective](#backers-via-opencollective)
44 - [Sponsors via OpenCollective](#sponsors-via-opencollective) 55 - [Sponsors via OpenCollective](#sponsors-via-opencollective)
45</details> 56</details>
@@ -66,7 +77,7 @@ Ferdi is a messaging browser that allows you to combine your favorite messaging
66 77
67## Download Ferdi 78## Download Ferdi
68 79
69You can find the installers in the [latest stable release](https://github.com/getferdi/ferdi/releases/latest) assets and [all the other release here](https://github.com/getferdi/ferdi/releases). 80You can download Ferdi for Windows, Mac and Linux on [Ferdi's download page](https://getferdi.com/download) or you can find all variants in the [latest stable release](https://github.com/getferdi/ferdi/releases/latest) assets and [all the other release here](https://github.com/getferdi/ferdi/releases).
70 81
71### Or use homebrew (macOS only) 82### Or use homebrew (macOS only)
72 83
@@ -77,9 +88,9 @@ You can find the installers in the [latest stable release](https://github.com/ge
77### Or use AUR (Arch Linux) 88### Or use AUR (Arch Linux)
78 89
79Ferdi has three seperate AUR packages you can use: 90Ferdi has three seperate AUR packages you can use:
80- **[ferdi](https://aur.archlinux.org/packages/ferdi/)**: Uses your system electron version to run the latest release 91- **[ferdi](https://aur.archlinux.org/packages/ferdi/)**: Uses your system electron version to run the latest release - this version will work best on most systems.
81- **[ferdi-bin](https://aur.archlinux.org/packages/ferdi-bin/)**: Uses the latest Fedora release and extracts it to Arch 92- **[ferdi-bin](https://aur.archlinux.org/packages/ferdi-bin/)**: Uses the latest Fedora release and extracts it to Arch. Use this version if you are having trouble with the `ferdi` package.
82- **[ferdi-git](https://aur.archlinux.org/packages/ferdi-git/)**: Uses your system electron version to run the latest commit from the develop branch 93- **[ferdi-git](https://aur.archlinux.org/packages/ferdi-git/)**: Uses your system electron version to run the latest commit from the develop branch and may be unstable but may also give you features that are not yet available in other versions. Please only use `ferdi-git` if you accept these risks.
83 94
84If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`. 95If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`.
85 96
@@ -184,16 +195,16 @@ Run these two commands **simultaneously** in different terminals:
184 195
185```bash 196```bash
186$ npm run dev 197$ npm run dev
187$ npm run start 198$ DEBUG=Ferdi:* npm run start
188``` 199```
189 200
190Optionally, you can run both commands in one terminal with [misty](https://github.com/adlk/misty) (see [misty.yml](https://github.com/getferdi/ferdi/blob/develop/misty.yml)): 201Optionally, you can run both commands in one terminal with [misty](https://github.com/adlk/misty) (see [misty.yml](https://github.com/getferdi/ferdi/blob/develop/misty.yml)):
191 202
192```bash 203```bash
193$ npx misty 204$ DEBUG=Ferdi:* npx misty
194``` 205```
195 206
196Be aware that the development database will be reset regularly. 207Note: please prefer [`debug()`](https://github.com/visionmedia/debug) over `console.log()`.
197 208
198### Packaging 209### Packaging
199 210
@@ -228,22 +239,22 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
228<table> 239<table>
229 <tr> 240 <tr>
230 <td align="center"><a href="https://vantezzen.io"><img src="https://avatars2.githubusercontent.com/u/10333196?v=4" width="40px;" alt=""/><br /><sub><b>Bennett</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=vantezzen" title="Code">💻</a> <a href="#design-vantezzen" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=vantezzen" title="Documentation">📖</a> <a href="#ideas-vantezzen" title="Ideas, Planning, & Feedback">🤔</a> <a href="#translation-vantezzen" title="Translation">ðŸŒ</a> <a href="#example-vantezzen" title="Examples">💡</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Avantezzen" title="Bug reports">ðŸ›</a> <a href="#content-vantezzen" title="Content">🖋</a> <a href="#infra-vantezzen" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#userTesting-vantezzen" title="User Testing">📓</a> <a href="#question-vantezzen" title="Answering Questions">💬</a> <a href="#projectManagement-vantezzen" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/pulls?q=is%3Apr+reviewed-by%3Avantezzen" title="Reviewed Pull Requests">👀</a></td> 241 <td align="center"><a href="https://vantezzen.io"><img src="https://avatars2.githubusercontent.com/u/10333196?v=4" width="40px;" alt=""/><br /><sub><b>Bennett</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=vantezzen" title="Code">💻</a> <a href="#design-vantezzen" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=vantezzen" title="Documentation">📖</a> <a href="#ideas-vantezzen" title="Ideas, Planning, & Feedback">🤔</a> <a href="#translation-vantezzen" title="Translation">ðŸŒ</a> <a href="#example-vantezzen" title="Examples">💡</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Avantezzen" title="Bug reports">ðŸ›</a> <a href="#content-vantezzen" title="Content">🖋</a> <a href="#infra-vantezzen" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#userTesting-vantezzen" title="User Testing">📓</a> <a href="#question-vantezzen" title="Answering Questions">💬</a> <a href="#projectManagement-vantezzen" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/pulls?q=is%3Apr+reviewed-by%3Avantezzen" title="Reviewed Pull Requests">👀</a></td>
242 <td align="center"><a href="https://twitter.com/kytwb"><img src="https://avatars0.githubusercontent.com/u/412895?v=4" width="40px;" alt=""/><br /><sub><b>Amine Mouafik</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=kytwb" title="Code">💻</a> <a href="#design-kytwb" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=kytwb" title="Documentation">📖</a> <a href="#ideas-kytwb" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Akytwb" title="Bug reports">ðŸ›</a> <a href="#content-kytwb" title="Content">🖋</a> <a href="#infra-kytwb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#userTesting-kytwb" title="User Testing">📓</a> <a href="#question-kytwb" title="Answering Questions">💬</a> <a href="#projectManagement-kytwb" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/pulls?q=is%3Apr+reviewed-by%3Akytwb" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-kytwb" title="Maintenance">🚧</a> <a href="#platform-kytwb" title="Packaging/porting to new platform">📦</a> <a href="#fundingFinding-kytwb" title="Funding Finding">ðŸ”</a> <a href="#blog-kytwb" title="Blogposts">ðŸ“</a></td>
231 <td align="center"><a href="http://www.adlk.io"><img src="https://avatars1.githubusercontent.com/u/3265004?v=4" width="40px;" alt=""/><br /><sub><b>Stefan Malzner</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Code">💻</a> <a href="#content-adlk" title="Content">🖋</a> <a href="#design-adlk" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Documentation">📖</a> <a href="#ideas-adlk" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-adlk" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#projectManagement-adlk" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Tests">âš ï¸</a> <a href="#translation-adlk" title="Translation">ðŸŒ</a></td> 243 <td align="center"><a href="http://www.adlk.io"><img src="https://avatars1.githubusercontent.com/u/3265004?v=4" width="40px;" alt=""/><br /><sub><b>Stefan Malzner</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Code">💻</a> <a href="#content-adlk" title="Content">🖋</a> <a href="#design-adlk" title="Design">🎨</a> <a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Documentation">📖</a> <a href="#ideas-adlk" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-adlk" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#projectManagement-adlk" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/commits?author=adlk" title="Tests">âš ï¸</a> <a href="#translation-adlk" title="Translation">ðŸŒ</a></td>
232 <td align="center"><a href="https://twitter.com/kytwb"><img src="https://avatars0.githubusercontent.com/u/412895?v=4" width="40px;" alt=""/><br /><sub><b>Amine Mouafik</b></sub></a><br /><a href="#question-kytwb" title="Answering Questions">💬</a> <a href="https://github.com/getferdi/ferdi/commits?author=kytwb" title="Code">💻</a> <a href="https://github.com/getferdi/ferdi/commits?author=kytwb" title="Documentation">📖</a> <a href="#ideas-kytwb" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-kytwb" title="Maintenance">🚧</a> <a href="#platform-kytwb" title="Packaging/porting to new platform">📦</a> <a href="#projectManagement-kytwb" title="Project Management">📆</a> <a href="https://github.com/getferdi/ferdi/pulls?q=is%3Apr+reviewed-by%3Akytwb" title="Reviewed Pull Requests">👀</a> <a href="#infra-kytwb" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#fundingFinding-kytwb" title="Funding Finding">ðŸ”</a> <a href="#blog-kytwb" title="Blogposts">ðŸ“</a></td> 244 <td align="center"><a href="https://github.com/Makazzz"><img src="https://avatars2.githubusercontent.com/u/49844464?v=4" width="40px;" alt=""/><br /><sub><b>Makazzz</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3AMakazzz" title="Bug reports">ðŸ›</a> <a href="https://github.com/getferdi/ferdi/commits?author=Makazzz" title="Code">💻</a> <a href="#translation-Makazzz" title="Translation">ðŸŒ</a> <a href="#content-Makazzz" title="Content">🖋</a> <a href="https://github.com/getferdi/ferdi/commits?author=Makazzz" title="Documentation">📖</a> <a href="#platform-Makazzz" title="Packaging/porting to new platform">📦</a></td>
233 <td align="center"><a href="http://seriesgt.com"><img src="https://avatars3.githubusercontent.com/u/5977640?v=4" width="40px;" alt=""/><br /><sub><b>ZeroCool</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=ZeroCool940711" title="Code">💻</a> <a href="#ideas-ZeroCool940711" title="Ideas, Planning, & Feedback">🤔</a></td> 245 <td align="center"><a href="http://seriesgt.com"><img src="https://avatars3.githubusercontent.com/u/5977640?v=4" width="40px;" alt=""/><br /><sub><b>ZeroCool</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=ZeroCool940711" title="Code">💻</a> <a href="#ideas-ZeroCool940711" title="Ideas, Planning, & Feedback">🤔</a></td>
234 <td align="center"><a href="https://github.com/rseitbekov"><img src="https://avatars2.githubusercontent.com/u/35684439?v=4" width="40px;" alt=""/><br /><sub><b>rseitbekov</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=rseitbekov" title="Code">💻</a></td> 246 <td align="center"><a href="https://github.com/rseitbekov"><img src="https://avatars2.githubusercontent.com/u/35684439?v=4" width="40px;" alt=""/><br /><sub><b>rseitbekov</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=rseitbekov" title="Code">💻</a></td>
235 <td align="center"><a href="https://djangogigs.com/developers/peter-bittner/"><img src="https://avatars2.githubusercontent.com/u/665072?v=4" width="40px;" alt=""/><br /><sub><b>Peter Bittner</b></sub></a><br /><a href="#ideas-bittner" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Abittner" title="Bug reports">ðŸ›</a></td>
236 </tr> 247 </tr>
237 <tr> 248 <tr>
249 <td align="center"><a href="https://djangogigs.com/developers/peter-bittner/"><img src="https://avatars2.githubusercontent.com/u/665072?v=4" width="40px;" alt=""/><br /><sub><b>Peter Bittner</b></sub></a><br /><a href="#ideas-bittner" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3Abittner" title="Bug reports">ðŸ›</a></td>
238 <td align="center"><a href="https://github.com/justus-saul"><img src="https://avatars1.githubusercontent.com/u/5861826?v=4" width="40px;" alt=""/><br /><sub><b>Justus Saul</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3Ajustus-saul" title="Bug reports">ðŸ›</a> <a href="#ideas-justus-saul" title="Ideas, Planning, & Feedback">🤔</a></td> 250 <td align="center"><a href="https://github.com/justus-saul"><img src="https://avatars1.githubusercontent.com/u/5861826?v=4" width="40px;" alt=""/><br /><sub><b>Justus Saul</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3Ajustus-saul" title="Bug reports">ðŸ›</a> <a href="#ideas-justus-saul" title="Ideas, Planning, & Feedback">🤔</a></td>
239 <td align="center"><a href="https://github.com/igreil"><img src="https://avatars0.githubusercontent.com/u/17239151?v=4" width="40px;" alt=""/><br /><sub><b>igreil</b></sub></a><br /><a href="#ideas-igreil" title="Ideas, Planning, & Feedback">🤔</a></td> 251 <td align="center"><a href="https://github.com/igreil"><img src="https://avatars0.githubusercontent.com/u/17239151?v=4" width="40px;" alt=""/><br /><sub><b>igreil</b></sub></a><br /><a href="#ideas-igreil" title="Ideas, Planning, & Feedback">🤔</a></td>
240 <td align="center"><a href="http://marcolopes.eu"><img src="https://avatars1.githubusercontent.com/u/431889?v=4" width="40px;" alt=""/><br /><sub><b>Marco Lopes</b></sub></a><br /><a href="#ideas-marcolopes" title="Ideas, Planning, & Feedback">🤔</a></td> 252 <td align="center"><a href="http://marcolopes.eu"><img src="https://avatars1.githubusercontent.com/u/431889?v=4" width="40px;" alt=""/><br /><sub><b>Marco Lopes</b></sub></a><br /><a href="#ideas-marcolopes" title="Ideas, Planning, & Feedback">🤔</a></td>
241 <td align="center"><a href="https://github.com/dayzlun"><img src="https://avatars3.githubusercontent.com/u/17259690?v=4" width="40px;" alt=""/><br /><sub><b>dayzlun</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3Adayzlun" title="Bug reports">ðŸ›</a></td> 253 <td align="center"><a href="https://github.com/dayzlun"><img src="https://avatars3.githubusercontent.com/u/17259690?v=4" width="40px;" alt=""/><br /><sub><b>dayzlun</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3Adayzlun" title="Bug reports">ðŸ›</a></td>
242 <td align="center"><a href="https://twitter.com/tobigue_"><img src="https://avatars2.githubusercontent.com/u/1560152?v=4" width="40px;" alt=""/><br /><sub><b>Tobias Günther</b></sub></a><br /><a href="#ideas-tobigue" title="Ideas, Planning, & Feedback">🤔</a></td> 254 <td align="center"><a href="https://twitter.com/tobigue_"><img src="https://avatars2.githubusercontent.com/u/1560152?v=4" width="40px;" alt=""/><br /><sub><b>Tobias Günther</b></sub></a><br /><a href="#ideas-tobigue" title="Ideas, Planning, & Feedback">🤔</a></td>
243 <td align="center"><a href="https://github.com/AGCaesar"><img src="https://avatars3.githubusercontent.com/u/7844066?v=4" width="40px;" alt=""/><br /><sub><b>AGCaesar</b></sub></a><br /><a href="#platform-AGCaesar" title="Packaging/porting to new platform">📦</a></td>
244 </tr> 255 </tr>
245 <tr> 256 <tr>
246 <td align="center"><a href="https://github.com/Makazzz"><img src="https://avatars2.githubusercontent.com/u/49844464?v=4" width="40px;" alt=""/><br /><sub><b>Makazzz</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3AMakazzz" title="Bug reports">ðŸ›</a> <a href="https://github.com/getferdi/ferdi/commits?author=Makazzz" title="Code">💻</a> <a href="#translation-Makazzz" title="Translation">ðŸŒ</a> <a href="#content-Makazzz" title="Content">🖋</a> <a href="https://github.com/getferdi/ferdi/commits?author=Makazzz" title="Documentation">📖</a> <a href="#platform-Makazzz" title="Packaging/porting to new platform">📦</a></td> 257 <td align="center"><a href="https://github.com/AGCaesar"><img src="https://avatars3.githubusercontent.com/u/7844066?v=4" width="40px;" alt=""/><br /><sub><b>AGCaesar</b></sub></a><br /><a href="#platform-AGCaesar" title="Packaging/porting to new platform">📦</a></td>
247 <td align="center"><a href="https://github.com/xthursdayx"><img src="https://avatars0.githubusercontent.com/u/18044308?v=4" width="40px;" alt=""/><br /><sub><b>xthursdayx</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=xthursdayx" title="Code">💻</a> <a href="https://github.com/getferdi/ferdi/commits?author=xthursdayx" title="Documentation">📖</a> <a href="#infra-xthursdayx" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-xthursdayx" title="Packaging/porting to new platform">📦</a></td> 258 <td align="center"><a href="https://github.com/xthursdayx"><img src="https://avatars0.githubusercontent.com/u/18044308?v=4" width="40px;" alt=""/><br /><sub><b>xthursdayx</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=xthursdayx" title="Code">💻</a> <a href="https://github.com/getferdi/ferdi/commits?author=xthursdayx" title="Documentation">📖</a> <a href="#infra-xthursdayx" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-xthursdayx" title="Packaging/porting to new platform">📦</a></td>
248 <td align="center"><a href="https://github.com/Gaboris"><img src="https://avatars2.githubusercontent.com/u/9462372?v=4" width="40px;" alt=""/><br /><sub><b>Gaboris</b></sub></a><br /><a href="#question-Gaboris" title="Answering Questions">💬</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3AGaboris" title="Bug reports">ðŸ›</a></td> 259 <td align="center"><a href="https://github.com/Gaboris"><img src="https://avatars2.githubusercontent.com/u/9462372?v=4" width="40px;" alt=""/><br /><sub><b>Gaboris</b></sub></a><br /><a href="#question-Gaboris" title="Answering Questions">💬</a> <a href="https://github.com/getferdi/ferdi/issues?q=author%3AGaboris" title="Bug reports">ðŸ›</a></td>
249 <td align="center"><a href="http://www.cu3ed.com/"><img src="https://avatars1.githubusercontent.com/u/61343?v=4" width="40px;" alt=""/><br /><sub><b>Ce</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3Aincace" title="Bug reports">ðŸ›</a></td> 260 <td align="center"><a href="http://www.cu3ed.com/"><img src="https://avatars1.githubusercontent.com/u/61343?v=4" width="40px;" alt=""/><br /><sub><b>Ce</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/issues?q=author%3Aincace" title="Bug reports">ðŸ›</a></td>
@@ -262,6 +273,22 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
262 <td align="center"><a href="http://lhw.ring0.de"><img src="https://avatars2.githubusercontent.com/u/351875?v=4" width="40px;" alt=""/><br /><sub><b>Lennart Weller</b></sub></a><br /><a href="#platform-lhw" title="Packaging/porting to new platform">📦</a></td> 273 <td align="center"><a href="http://lhw.ring0.de"><img src="https://avatars2.githubusercontent.com/u/351875?v=4" width="40px;" alt=""/><br /><sub><b>Lennart Weller</b></sub></a><br /><a href="#platform-lhw" title="Packaging/porting to new platform">📦</a></td>
263 <td align="center"><a href="https://github.com/jereksel"><img src="https://avatars0.githubusercontent.com/u/1307829?v=4" width="40px;" alt=""/><br /><sub><b>Andrzej Ressel</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=jereksel" title="Code">💻</a></td> 274 <td align="center"><a href="https://github.com/jereksel"><img src="https://avatars0.githubusercontent.com/u/1307829?v=4" width="40px;" alt=""/><br /><sub><b>Andrzej Ressel</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=jereksel" title="Code">💻</a></td>
264 <td align="center"><a href="https://gitlab.com/dpeukert"><img src="https://avatars2.githubusercontent.com/u/3451904?v=4" width="40px;" alt=""/><br /><sub><b>Daniel Peukert</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=dpeukert" title="Code">💻</a></td> 275 <td align="center"><a href="https://gitlab.com/dpeukert"><img src="https://avatars2.githubusercontent.com/u/3451904?v=4" width="40px;" alt=""/><br /><sub><b>Daniel Peukert</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=dpeukert" title="Code">💻</a></td>
276 <td align="center"><a href="https://crowdin.com/profile/Ali_Shiple"><img src="https://crowdin-static.downloads.crowdin.com/avatar/12895436/small/00917d09ca1b4b6d8e0ef36af07ecf6b.jpg" width="40px;" alt=""/><br /><sub><b>Ali M. Shiple</b></sub></a><br /><a href="#translation-Ali_Shiple" title="Translation">ðŸŒ</a></td>
277 <td align="center"><a href="https://crowdin.com/profile/elviseras"><img src="https://www.gravatar.com/avatar/25c2cf0d8cb4a4141e71c3b8a2e9324f" width="40px;" alt=""/><br /><sub><b>elviseras</b></sub></a><br /><a href="#translation-elviseras" title="Translation">ðŸŒ</a></td>
278 <td align="center"><a href="https://crowdin.com/profile/J370"><img src="https://crowdin-static.downloads.crowdin.com/avatar/14141203/small/7b12b5db419d8796450221c2eaaf6003.png" width="40px;" alt=""/><br /><sub><b>J370</b></sub></a><br /><a href="#translation-J370" title="Translation">ðŸŒ</a></td>
279 </tr>
280 <tr>
281 <td align="center"><a href="https://crowdin.com/profile/keunes"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13018172/small/829115c606347b10218f34c637a2100c.png" width="40px;" alt=""/><br /><sub><b>Koen</b></sub></a><br /><a href="#translation-keunes" title="Translation">ðŸŒ</a></td>
282 <td align="center"><a href="https://crowdin.com/profile/leandrogehlen"><img src="https://crowdin-static.downloads.crowdin.com/avatar/14099621/small/1d9503523839c310dbce0af3c226e894.jpeg" width="40px;" alt=""/><br /><sub><b>Leandro Gehlen</b></sub></a><br /><a href="#translation-leandrogehlen" title="Translation">ðŸŒ</a></td>
283 <td align="center"><a href="https://crowdin.com/profile/Matthieu42"><img src="https://www.gravatar.com/avatar/735217ccccf11ba97573deee517ddb19" width="40px;" alt=""/><br /><sub><b>Matthieu42</b></sub></a><br /><a href="#translation-Matthieu42" title="Translation">ðŸŒ</a></td>
284 <td align="center"><a href="https://crowdin.com/profile/nicky18013"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13468928/small/2b31e7ac19645d950a79b33ffd5721b8.png" width="40px;" alt=""/><br /><sub><b>Nikita Bibanaev</b></sub></a><br /><a href="#translation-nicky18013" title="Translation">ðŸŒ</a></td>
285 <td align="center"><a href="https://crowdin.com/profile/Tatjana1998"><img src="https://www.gravatar.com/avatar/ade202a04fcbb2c177e4f1d9936af29e" width="40px;" alt=""/><br /><sub><b>Tatjana1998</b></sub></a><br /><a href="#translation-Tatjana1998" title="Translation">ðŸŒ</a></td>
286 <td align="center"><a href="https://crowdin.com/profile/seayko"><img src="https://www.gravatar.com/avatar/65e2aef738ddf828f822d8463fd04918" width="40px;" alt=""/><br /><sub><b>tinect</b></sub></a><br /><a href="#translation-seayko" title="Translation">ðŸŒ</a></td>
287 </tr>
288 <tr>
289 <td align="center"><a href="https://crowdin.com/profile/Pusnow"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13514833/small/65f0b45587cc7e34f2827830cd324b16.jpeg" width="40px;" alt=""/><br /><sub><b>Wonsup Yoon</b></sub></a><br /><a href="#translation-Pusnow" title="Translation">ðŸŒ</a></td>
290 <td align="center"><a href="https://crowdin.com/profile/zutt"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13320003/small/50fdf9f8c7e54a446925bd79696ea625.JPG" width="40px;" alt=""/><br /><sub><b>zutt</b></sub></a><br /><a href="#translation-zutt" title="Translation">ðŸŒ</a></td>
291 <td align="center"><a href="http://twitter.com/noemis_exec"><img src="https://avatars3.githubusercontent.com/u/22817873?v=4" width="40px;" alt=""/><br /><sub><b>n0emis</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=n0emis" title="Code">💻</a></td>
265 </tr> 292 </tr>
266</table> 293</table>
267 294
@@ -269,14 +296,6 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
269<!-- prettier-ignore-end --> 296<!-- prettier-ignore-end -->
270<!-- ALL-CONTRIBUTORS-LIST:END --> 297<!-- ALL-CONTRIBUTORS-LIST:END -->
271 298
272<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
273<!-- prettier-ignore-start -->
274<!-- markdownlint-disable -->
275<!-- markdownlint-enable -->
276<!-- prettier-ignore-end -->
277
278<!-- ALL-CONTRIBUTORS-LIST:END -->
279
280This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! 299This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
281 300
282## Backers via OpenCollective 301## Backers via OpenCollective
diff --git a/branding/download.png b/branding/download.png
new file mode 100644
index 000000000..7dcb0a92b
--- /dev/null
+++ b/branding/download.png
Binary files differ
diff --git a/branding/download.psd b/branding/download.psd
new file mode 100644
index 000000000..dacb396c8
--- /dev/null
+++ b/branding/download.psd
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 497e19a62..fd434bb90 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
1{ 1{
2 "name": "ferdi", 2 "name": "ferdi",
3 "version": "5.4.4-beta.2", 3 "version": "5.4.4-beta.3",
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
@@ -9774,6 +9774,11 @@
9774 "encoding": "^0.1.12" 9774 "encoding": "^0.1.12"
9775 } 9775 }
9776 }, 9776 },
9777 "electron-find": {
9778 "version": "1.0.6",
9779 "resolved": "https://registry.npmjs.org/electron-find/-/electron-find-1.0.6.tgz",
9780 "integrity": "sha512-RenjzlCCzX7edLywLy+qRYvzds11sBv8+SrJu/3l3eVLt9d9uNqCPk+uFZ525uAhSUaUalgZWDlhQdxIgT1khg=="
9781 },
9777 "electron-hunspell": { 9782 "electron-hunspell": {
9778 "version": "1.1.1", 9783 "version": "1.1.1",
9779 "resolved": "https://registry.npmjs.org/electron-hunspell/-/electron-hunspell-1.1.1.tgz", 9784 "resolved": "https://registry.npmjs.org/electron-hunspell/-/electron-hunspell-1.1.1.tgz",
diff --git a/package.json b/package.json
index 0e54b0f95..9f4f4b63e 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
2 "name": "ferdi", 2 "name": "ferdi",
3 "productName": "Ferdi", 3 "productName": "Ferdi",
4 "appId": "com.kytwb.ferdi", 4 "appId": "com.kytwb.ferdi",
5 "version": "5.4.4-beta.2", 5 "version": "5.4.4-beta.3",
6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", 6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.",
7 "copyright": "kytwb", 7 "copyright": "kytwb",
8 "main": "index.js", 8 "main": "index.js",
@@ -69,6 +69,7 @@
69 "du": "^0.1.0", 69 "du": "^0.1.0",
70 "electron-dl": "1.14.0", 70 "electron-dl": "1.14.0",
71 "electron-fetch": "1.4.0", 71 "electron-fetch": "1.4.0",
72 "electron-find": "1.0.6",
72 "electron-hunspell": "1.1.1", 73 "electron-hunspell": "1.1.1",
73 "electron-is-dev": "1.1.0", 74 "electron-is-dev": "1.1.0",
74 "electron-process-manager": "git+https://git@github.com/dizer/electron-process-manager.git", 75 "electron-process-manager": "git+https://git@github.com/dizer/electron-process-manager.git",
diff --git a/recipes b/recipes
Subproject 65ff976ebb463105ff409b93938cd673c797292 Subproject de6545a0858fa1aca1cea4b69764656bd583a80
diff --git a/src/components/auth/Locked.js b/src/components/auth/Locked.js
index e7f3dc78b..6142e78c6 100644
--- a/src/components/auth/Locked.js
+++ b/src/components/auth/Locked.js
@@ -1,3 +1,4 @@
1import { remote } from 'electron';
1import React, { Component } from 'react'; 2import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 3import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 4import { observer } from 'mobx-react';
@@ -10,6 +11,10 @@ import Infobox from '../ui/Infobox';
10 11
11import { globalError as globalErrorPropType } from '../../prop-types'; 12import { globalError as globalErrorPropType } from '../../prop-types';
12 13
14const {
15 systemPreferences,
16} = remote;
17
13const messages = defineMessages({ 18const messages = defineMessages({
14 headline: { 19 headline: {
15 id: 'locked.headline', 20 id: 'locked.headline',
@@ -19,6 +24,14 @@ const messages = defineMessages({
19 id: 'locked.info', 24 id: 'locked.info',
20 defaultMessage: '!!!Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.', 25 defaultMessage: '!!!Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.',
21 }, 26 },
27 touchId: {
28 id: 'locked.touchId',
29 defaultMessage: '!!!Unlock with Touch ID',
30 },
31 touchIdPrompt: {
32 id: 'locked.touchIdPrompt',
33 defaultMessage: '!!!unlock via Touch ID',
34 },
22 passwordLabel: { 35 passwordLabel: {
23 id: 'locked.password.label', 36 id: 'locked.password.label',
24 defaultMessage: '!!!Password', 37 defaultMessage: '!!!Password',
@@ -27,6 +40,10 @@ const messages = defineMessages({
27 id: 'locked.submit.label', 40 id: 'locked.submit.label',
28 defaultMessage: '!!!Unlock', 41 defaultMessage: '!!!Unlock',
29 }, 42 },
43 unlockWithPassword: {
44 id: 'locked.unlockWithPassword',
45 defaultMessage: '!!!Unlock with Password',
46 },
30 invalidCredentials: { 47 invalidCredentials: {
31 id: 'locked.invalidCredentials', 48 id: 'locked.invalidCredentials',
32 defaultMessage: '!!!Password invalid', 49 defaultMessage: '!!!Password invalid',
@@ -36,7 +53,9 @@ const messages = defineMessages({
36export default @observer class Locked extends Component { 53export default @observer class Locked extends Component {
37 static propTypes = { 54 static propTypes = {
38 onSubmit: PropTypes.func.isRequired, 55 onSubmit: PropTypes.func.isRequired,
56 unlock: PropTypes.func.isRequired,
39 isSubmitting: PropTypes.bool.isRequired, 57 isSubmitting: PropTypes.bool.isRequired,
58 useTouchIdToUnlock: PropTypes.bool.isRequired,
40 error: globalErrorPropType.isRequired, 59 error: globalErrorPropType.isRequired,
41 }; 60 };
42 61
@@ -64,14 +83,26 @@ export default @observer class Locked extends Component {
64 }); 83 });
65 } 84 }
66 85
86 touchIdUnlock() {
87 const { intl } = this.context;
88
89 systemPreferences.promptTouchID(intl.formatMessage(messages.touchIdPrompt)).then(() => {
90 this.props.unlock();
91 });
92 }
93
67 render() { 94 render() {
68 const { form } = this; 95 const { form } = this;
69 const { intl } = this.context; 96 const { intl } = this.context;
70 const { 97 const {
71 isSubmitting, 98 isSubmitting,
72 error, 99 error,
100 useTouchIdToUnlock,
73 } = this.props; 101 } = this.props;
74 102
103 const touchIdEnabled = useTouchIdToUnlock && systemPreferences.canPromptTouchID();
104 const submitButtonLabel = touchIdEnabled ? intl.formatMessage(messages.unlockWithPassword) : intl.formatMessage(messages.submitButtonLabel);
105
75 return ( 106 return (
76 <div className="auth__container"> 107 <div className="auth__container">
77 <form className="franz-form auth__form" onSubmit={e => this.submit(e)}> 108 <form className="franz-form auth__form" onSubmit={e => this.submit(e)}>
@@ -84,6 +115,19 @@ export default @observer class Locked extends Component {
84 <Infobox type="warning"> 115 <Infobox type="warning">
85 {intl.formatMessage(messages.info)} 116 {intl.formatMessage(messages.info)}
86 </Infobox> 117 </Infobox>
118
119 {touchIdEnabled && (
120 <>
121 <Button
122 className="auth__button touchid__button"
123 label={intl.formatMessage(messages.touchId)}
124 onClick={() => this.touchIdUnlock()}
125 type="button"
126 />
127 <hr className="locked__or_line" />
128 </>
129 )}
130
87 <Input 131 <Input
88 field={form.$('password')} 132 field={form.$('password')}
89 showPasswordToggle 133 showPasswordToggle
@@ -96,7 +140,7 @@ export default @observer class Locked extends Component {
96 <Button 140 <Button
97 className="auth__button is-loading" 141 className="auth__button is-loading"
98 buttonType="secondary" 142 buttonType="secondary"
99 label={`${intl.formatMessage(messages.submitButtonLabel)} ...`} 143 label={`${submitButtonLabel} ...`}
100 loaded={false} 144 loaded={false}
101 disabled 145 disabled
102 /> 146 />
@@ -104,7 +148,7 @@ export default @observer class Locked extends Component {
104 <Button 148 <Button
105 type="submit" 149 type="submit"
106 className="auth__button" 150 className="auth__button"
107 label={intl.formatMessage(messages.submitButtonLabel)} 151 label={submitButtonLabel}
108 /> 152 />
109 )} 153 )}
110 </form> 154 </form>
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index f41c7db8e..9564d837b 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -14,6 +14,10 @@ import Input from '../../ui/Input';
14import { FRANZ_TRANSLATION } from '../../../config'; 14import { FRANZ_TRANSLATION } from '../../../config';
15import { isMac } from '../../../environment'; 15import { isMac } from '../../../environment';
16 16
17const {
18 systemPreferences,
19} = remote;
20
17function escapeHtml(unsafe) { 21function escapeHtml(unsafe) {
18 return unsafe 22 return unsafe
19 .replace(/&/g, '&amp;') 23 .replace(/&/g, '&amp;')
@@ -251,6 +255,7 @@ export default @observer class EditSettingsForm extends Component {
251 <Toggle field={form.$('autoLaunchOnStart')} /> 255 <Toggle field={form.$('autoLaunchOnStart')} />
252 <Toggle field={form.$('runInBackground')} /> 256 <Toggle field={form.$('runInBackground')} />
253 <Toggle field={form.$('enableSystemTray')} /> 257 <Toggle field={form.$('enableSystemTray')} />
258 <Toggle field={form.$('reloadAfterResume')} />
254 {isTrayEnabled && <Toggle field={form.$('startMinimized')} />} 259 {isTrayEnabled && <Toggle field={form.$('startMinimized')} />}
255 {process.platform === 'win32' && ( 260 {process.platform === 'win32' && (
256 <Toggle field={form.$('minimizeToSystemTray')} /> 261 <Toggle field={form.$('minimizeToSystemTray')} />
@@ -355,6 +360,10 @@ export default @observer class EditSettingsForm extends Component {
355 <Toggle field={form.$('lockingFeatureEnabled')} /> 360 <Toggle field={form.$('lockingFeatureEnabled')} />
356 {lockingFeatureEnabled && ( 361 {lockingFeatureEnabled && (
357 <> 362 <>
363 {systemPreferences.canPromptTouchID() && (
364 <Toggle field={form.$('useTouchIdToUnlock')} />
365 )}
366
358 <Input 367 <Input
359 placeholder={intl.formatMessage(messages.lockedPassword)} 368 placeholder={intl.formatMessage(messages.lockedPassword)}
360 onChange={e => this.submit(e)} 369 onChange={e => this.submit(e)}
diff --git a/src/config.js b/src/config.js
index 283c20f84..af304232e 100644
--- a/src/config.js
+++ b/src/config.js
@@ -76,6 +76,7 @@ export const iconSizeBias = 20;
76export const DEFAULT_APP_SETTINGS = { 76export const DEFAULT_APP_SETTINGS = {
77 autoLaunchInBackground: false, 77 autoLaunchInBackground: false,
78 runInBackground: true, 78 runInBackground: true,
79 reloadAfterResume: true,
79 enableSystemTray: true, 80 enableSystemTray: true,
80 startMinimized: false, 81 startMinimized: false,
81 minimizeToSystemTray: false, 82 minimizeToSystemTray: false,
@@ -99,6 +100,7 @@ export const DEFAULT_APP_SETTINGS = {
99 lockingFeatureEnabled: false, 100 lockingFeatureEnabled: false,
100 locked: false, 101 locked: false,
101 lockedPassword: '', 102 lockedPassword: '',
103 useTouchIdToUnlock: true,
102 scheduledDNDEnabled: false, 104 scheduledDNDEnabled: false,
103 scheduledDNDStart: '17:00', 105 scheduledDNDStart: '17:00',
104 scheduledDNDEnd: '09:00', 106 scheduledDNDEnd: '09:00',
diff --git a/src/containers/auth/LockedScreen.js b/src/containers/auth/LockedScreen.js
index 671f2ccaf..aced64a98 100644
--- a/src/containers/auth/LockedScreen.js
+++ b/src/containers/auth/LockedScreen.js
@@ -19,6 +19,7 @@ export default @inject('stores', 'actions') @observer class LockedScreen extends
19 super(props); 19 super(props);
20 20
21 this.onSubmit = this.onSubmit.bind(this); 21 this.onSubmit = this.onSubmit.bind(this);
22 this.unlock = this.unlock.bind(this);
22 } 23 }
23 24
24 onSubmit(values) { 25 onSubmit(values) {
@@ -45,11 +46,24 @@ export default @inject('stores', 'actions') @observer class LockedScreen extends
45 } 46 }
46 } 47 }
47 48
49 unlock() {
50 this.props.actions.settings.update({
51 type: 'app',
52 data: {
53 locked: false,
54 },
55 });
56 }
57
48 render() { 58 render() {
49 const { stores, error } = this.props; 59 const { stores, error } = this.props;
60 const { useTouchIdToUnlock } = this.props.stores.settings.all.app;
61
50 return ( 62 return (
51 <Locked 63 <Locked
52 onSubmit={this.onSubmit} 64 onSubmit={this.onSubmit}
65 unlock={this.unlock}
66 useTouchIdToUnlock={useTouchIdToUnlock}
53 isSubmitting={stores.user.loginRequest.isExecuting} 67 isSubmitting={stores.user.loginRequest.isExecuting}
54 error={this.state.error || error} 68 error={this.state.error || error}
55 /> 69 />
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 6dd21f961..5221b0694 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -48,6 +48,10 @@ const messages = defineMessages({
48 id: 'settings.app.form.enableSystemTray', 48 id: 'settings.app.form.enableSystemTray',
49 defaultMessage: '!!!Always show Ferdi in system tray', 49 defaultMessage: '!!!Always show Ferdi in system tray',
50 }, 50 },
51 reloadAfterResume: {
52 id: 'settings.app.form.reloadAfterResume',
53 defaultMessage: '!!!Reload Ferdi after system resume',
54 },
51 minimizeToSystemTray: { 55 minimizeToSystemTray: {
52 id: 'settings.app.form.minimizeToSystemTray', 56 id: 'settings.app.form.minimizeToSystemTray',
53 defaultMessage: '!!!Minimize Ferdi to system tray', 57 defaultMessage: '!!!Minimize Ferdi to system tray',
@@ -88,6 +92,10 @@ const messages = defineMessages({
88 id: 'settings.app.form.lockPassword', 92 id: 'settings.app.form.lockPassword',
89 defaultMessage: '!!!Password', 93 defaultMessage: '!!!Password',
90 }, 94 },
95 useTouchIdToUnlock: {
96 id: 'settings.app.form.useTouchIdToUnlock',
97 defaultMessage: '!!!Allow using Touch ID to unlock',
98 },
91 inactivityLock: { 99 inactivityLock: {
92 id: 'settings.app.form.inactivityLock', 100 id: 'settings.app.form.inactivityLock',
93 defaultMessage: '!!!Lock after inactivity', 101 defaultMessage: '!!!Lock after inactivity',
@@ -191,6 +199,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
191 data: { 199 data: {
192 runInBackground: settingsData.runInBackground, 200 runInBackground: settingsData.runInBackground,
193 enableSystemTray: settingsData.enableSystemTray, 201 enableSystemTray: settingsData.enableSystemTray,
202 reloadAfterResume: settingsData.reloadAfterResume,
194 startMinimized: settingsData.startMinimized, 203 startMinimized: settingsData.startMinimized,
195 minimizeToSystemTray: settingsData.minimizeToSystemTray, 204 minimizeToSystemTray: settingsData.minimizeToSystemTray,
196 privateNotifications: settingsData.privateNotifications, 205 privateNotifications: settingsData.privateNotifications,
@@ -202,6 +211,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
202 todoServer: settingsData.todoServer, 211 todoServer: settingsData.todoServer,
203 lockingFeatureEnabled: settingsData.lockingFeatureEnabled, 212 lockingFeatureEnabled: settingsData.lockingFeatureEnabled,
204 lockedPassword: settingsData.lockedPassword, 213 lockedPassword: settingsData.lockedPassword,
214 useTouchIdToUnlock: settingsData.useTouchIdToUnlock,
205 inactivityLock: settingsData.inactivityLock, 215 inactivityLock: settingsData.inactivityLock,
206 scheduledDNDEnabled: settingsData.scheduledDNDEnabled, 216 scheduledDNDEnabled: settingsData.scheduledDNDEnabled,
207 scheduledDNDStart: settingsData.scheduledDNDStart, 217 scheduledDNDStart: settingsData.scheduledDNDStart,
@@ -312,6 +322,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
312 value: settings.all.app.enableSystemTray, 322 value: settings.all.app.enableSystemTray,
313 default: DEFAULT_APP_SETTINGS.enableSystemTray, 323 default: DEFAULT_APP_SETTINGS.enableSystemTray,
314 }, 324 },
325 reloadAfterResume: {
326 label: intl.formatMessage(messages.reloadAfterResume),
327 value: settings.all.app.reloadAfterResume,
328 default: DEFAULT_APP_SETTINGS.reloadAfterResume,
329 },
315 minimizeToSystemTray: { 330 minimizeToSystemTray: {
316 label: intl.formatMessage(messages.minimizeToSystemTray), 331 label: intl.formatMessage(messages.minimizeToSystemTray),
317 value: settings.all.app.minimizeToSystemTray, 332 value: settings.all.app.minimizeToSystemTray,
@@ -365,6 +380,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
365 default: '', 380 default: '',
366 type: 'password', 381 type: 'password',
367 }, 382 },
383 useTouchIdToUnlock: {
384 label: intl.formatMessage(messages.useTouchIdToUnlock),
385 value: settings.all.app.useTouchIdToUnlock,
386 default: DEFAULT_APP_SETTINGS.useTouchIdToUnlock,
387 },
368 inactivityLock: { 388 inactivityLock: {
369 label: intl.formatMessage(messages.inactivityLock), 389 label: intl.formatMessage(messages.inactivityLock),
370 value: settings.all.app.inactivityLock, 390 value: settings.all.app.inactivityLock,
diff --git a/src/i18n/locales/af.json b/src/i18n/locales/af.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/af.json
+++ b/src/i18n/locales/af.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json
index 29b461d17..8a201e1ae 100644
--- a/src/i18n/locales/ar.json
+++ b/src/i18n/locales/ar.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/bs.json b/src/i18n/locales/bs.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/bs.json
+++ b/src/i18n/locales/bs.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index c82819b9d..49b892332 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Retalla", 116 "menu.edit.cut": "Retalla",
114 "menu.edit.delete": "Suprimeix", 117 "menu.edit.delete": "Suprimeix",
115 "menu.edit.emojiSymbols": "Emoji i Símbols", 118 "menu.edit.emojiSymbols": "Emoji i Símbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Enganxa", 120 "menu.edit.paste": "Enganxa",
117 "menu.edit.pasteAndMatchStyle": "Enganxa amb els estils", 121 "menu.edit.pasteAndMatchStyle": "Enganxa amb els estils",
118 "menu.edit.redo": "Refés", 122 "menu.edit.redo": "Refés",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Mantén a Ferdi en segon pla en tancar la finestra", 295 "settings.app.form.runInBackground": "Mantén a Ferdi en segon pla en tancar la finestra",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Configuració", 308 "settings.app.headline": "Configuració",
303 "settings.app.headlineAdvanced": "Avançat", 309 "settings.app.headlineAdvanced": "Avançat",
304 "settings.app.headlineAppearance": "Aparença", 310 "settings.app.headlineAppearance": "Aparença",
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json
index a236d8f6c..36e1c9e22 100644
--- a/src/i18n/locales/cs.json
+++ b/src/i18n/locales/cs.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Vyjmout", 116 "menu.edit.cut": "Vyjmout",
114 "menu.edit.delete": "Smazat", 117 "menu.edit.delete": "Smazat",
115 "menu.edit.emojiSymbols": "Emoji a znaky", 118 "menu.edit.emojiSymbols": "Emoji a znaky",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Vložit", 120 "menu.edit.paste": "Vložit",
117 "menu.edit.pasteAndMatchStyle": "Vložit vÄetnÄ› formátování", 121 "menu.edit.pasteAndMatchStyle": "Vložit vÄetnÄ› formátování",
118 "menu.edit.redo": "Vpřed", 122 "menu.edit.redo": "Vpřed",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Ponechat Ferdie v pozadí při zavírání okna", 295 "settings.app.form.runInBackground": "Ponechat Ferdie v pozadí při zavírání okna",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Nastavení", 308 "settings.app.headline": "Nastavení",
303 "settings.app.headlineAdvanced": "PokroÄilé", 309 "settings.app.headlineAdvanced": "PokroÄilé",
304 "settings.app.headlineAppearance": "Vzhled", 310 "settings.app.headlineAppearance": "Vzhled",
diff --git a/src/i18n/locales/da.json b/src/i18n/locales/da.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/da.json
+++ b/src/i18n/locales/da.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index 82de95f8b..32cbd0cd8 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -2,7 +2,7 @@
2 "app.errorHandler.action": "Neu laden", 2 "app.errorHandler.action": "Neu laden",
3 "app.errorHandler.headline": "Es ist ein Fehler aufgetreten", 3 "app.errorHandler.headline": "Es ist ein Fehler aufgetreten",
4 "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 5 "feature.debugger.title": "Debug-Informationen veröffentlichen",
6 "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen", 6 "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen",
7 "feature.delayApp.text": "In {seconds} Sekunden geht's weiter!", 7 "feature.delayApp.text": "In {seconds} Sekunden geht's weiter!",
8 "feature.delayApp.trial.action": "Ja, ich möchte Ferdi Professional 14 Tage gratis testen", 8 "feature.delayApp.trial.action": "Ja, ich möchte Ferdi Professional 14 Tage gratis testen",
@@ -26,13 +26,13 @@
26 "feature.planSelection.personal.text": "Weitere Dienste, keine Wartezeiten - ideal für den persönlichen Gebrauch.", 26 "feature.planSelection.personal.text": "Weitere Dienste, keine Wartezeiten - ideal für den persönlichen Gebrauch.",
27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.", 29 "feature.publishDebugInfo.error": "Beim Veröffentlichen der Debug-Informationen ist ein Fehler aufgetreten. Bitte versuche es später noch einmal oder sehe dir die Konsole für weitere Informationen an.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service", 30 "feature.publishDebugInfo.info": "Die Veröffentlichung deiner Debug-Informationen hilft uns, Probleme und Fehler in Ferdi zu finden. Indem du deine Debug-Informationen veröffentlichst, akzeptierst du die Datenschutzbestimmungen und Nutzungsbedingungen vom Ferdi Debugger",
31 "feature.publishDebugInfo.privacy": "Privacy policy", 31 "feature.publishDebugInfo.privacy": "Datenschutzrichtlinien",
32 "feature.publishDebugInfo.publish": "Accept and publish", 32 "feature.publishDebugInfo.publish": "Akzeptieren & veröffentlichen",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 33 "feature.publishDebugInfo.published": "Deine Debug-Informationen wurden veröffentlicht und sind jetzt verfügbar unter",
34 "feature.publishDebugInfo.terms": "Nutzungsbedingungen", 34 "feature.publishDebugInfo.terms": "Nutzungsbedingungen",
35 "feature.publishDebugInfo.title": "Publish debug information", 35 "feature.publishDebugInfo.title": "Debug-Informationen veröffentlichen",
36 "feature.quickSwitch.info": "Wähle einen Service mit TAB, ↑ und ↓. Um einen Service zu öffnen, drücke ENTER.", 36 "feature.quickSwitch.info": "Wähle einen Service mit TAB, ↑ und ↓. Um einen Service zu öffnen, drücke ENTER.",
37 "feature.quickSwitch.search": "Suchen...", 37 "feature.quickSwitch.search": "Suchen...",
38 "feature.quickSwitch.title": "Schnellauswahl", 38 "feature.quickSwitch.title": "Schnellauswahl",
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Passwort ungültig", 85 "locked.invalidCredentials": "Passwort ungültig",
86 "locked.password.label": "Passwort", 86 "locked.password.label": "Passwort",
87 "locked.submit.label": "Entsperren", 87 "locked.submit.label": "Entsperren",
88 "locked.touchId": "Entsperren mit Touch ID",
89 "locked.touchIdPrompt": "entsperren mit Touch ID",
90 "locked.unlockWithPassword": "Entsperren mit Passwort",
88 "login.changeServer": "Server wechseln", 91 "login.changeServer": "Server wechseln",
89 "login.customServerQuestion": "Du benutzt ein Franz-Konto zum Anmelden?", 92 "login.customServerQuestion": "Du benutzt ein Franz-Konto zum Anmelden?",
90 "login.customServerSuggestion": "Versuche dein Franz-Konto in Ferdi zu importieren", 93 "login.customServerSuggestion": "Versuche dein Franz-Konto in Ferdi zu importieren",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Ausschneiden", 116 "menu.edit.cut": "Ausschneiden",
114 "menu.edit.delete": "Löschen", 117 "menu.edit.delete": "Löschen",
115 "menu.edit.emojiSymbols": "Emoji & Symbole", 118 "menu.edit.emojiSymbols": "Emoji & Symbole",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Einfügen", 120 "menu.edit.paste": "Einfügen",
117 "menu.edit.pasteAndMatchStyle": "Einfügen und Stil anpassen", 121 "menu.edit.pasteAndMatchStyle": "Einfügen und Stil anpassen",
118 "menu.edit.redo": "Wiederholen", 122 "menu.edit.redo": "Wiederholen",
@@ -130,7 +134,7 @@
130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debugging-Information", 134 "menu.help.debugInfoCopiedHeadline": "Ferdi Debugging-Information",
131 "menu.help.learnMore": "Mehr erfahren", 135 "menu.help.learnMore": "Mehr erfahren",
132 "menu.help.privacy": "Datenschutzerklärung", 136 "menu.help.privacy": "Datenschutzerklärung",
133 "menu.help.publishDebugInfo": "Publish Debug Information", 137 "menu.help.publishDebugInfo": "Debug-Informationen veröffentlichen",
134 "menu.help.support": "Hilfe", 138 "menu.help.support": "Hilfe",
135 "menu.help.tos": "Nutzungsbedingungen", 139 "menu.help.tos": "Nutzungsbedingungen",
136 "menu.services": "Dienste", 140 "menu.services": "Dienste",
@@ -266,11 +270,11 @@
266 "settings.app.cacheInfo": "Der Ferdi Cache belegt derzeit {size}.", 270 "settings.app.cacheInfo": "Der Ferdi Cache belegt derzeit {size}.",
267 "settings.app.currentVersion": "Aktuelle Version:", 271 "settings.app.currentVersion": "Aktuelle Version:",
268 "settings.app.form.accentColor": "Akzentfarbe", 272 "settings.app.form.accentColor": "Akzentfarbe",
269 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 273 "settings.app.form.adaptableDarkMode": "Synchronisiere den Dunkelmodus mit dem Dunkelmodus meines Macs",
270 "settings.app.form.autoLaunchInBackground": "Im Hintergrund öffnen", 274 "settings.app.form.autoLaunchInBackground": "Im Hintergrund öffnen",
271 "settings.app.form.autoLaunchOnStart": "Ferdi beim Systemstart ausführen", 275 "settings.app.form.autoLaunchOnStart": "Ferdi beim Systemstart ausführen",
272 "settings.app.form.beta": "Beta-Versionen einbeziehen", 276 "settings.app.form.beta": "Beta-Versionen einbeziehen",
273 "settings.app.form.darkMode": "Enable dark mode", 277 "settings.app.form.darkMode": "Dunkles Design verwenden",
274 "settings.app.form.enableGPUAcceleration": "Hardwarebeschleunigung aktivieren", 278 "settings.app.form.enableGPUAcceleration": "Hardwarebeschleunigung aktivieren",
275 "settings.app.form.enableLock": "Passwort-Sperre aktivieren", 279 "settings.app.form.enableLock": "Passwort-Sperre aktivieren",
276 "settings.app.form.enableSpellchecking": "Rechtschreibprüfung aktivieren", 280 "settings.app.form.enableSpellchecking": "Rechtschreibprüfung aktivieren",
@@ -278,27 +282,29 @@
278 "settings.app.form.enableTodos": "Ferdi Todos aktivieren", 282 "settings.app.form.enableTodos": "Ferdi Todos aktivieren",
279 "settings.app.form.hibernate": "\"Service Hibernation\" aktivieren", 283 "settings.app.form.hibernate": "\"Service Hibernation\" aktivieren",
280 "settings.app.form.hibernationStrategy": "\"Service Hibernation\"-Strategie", 284 "settings.app.form.hibernationStrategy": "\"Service Hibernation\"-Strategie",
281 "settings.app.form.iconSize": "Service icon size", 285 "settings.app.form.iconSize": "Service Symbolgröße",
282 "settings.app.form.inactivityLock": "Lock after inactivity", 286 "settings.app.form.inactivityLock": "Nach Inaktivität sperren",
283 "settings.app.form.keepAllWorkspacesLoaded": "Alle Arbeitsbereiche geladen lassen", 287 "settings.app.form.keepAllWorkspacesLoaded": "Alle Arbeitsbereiche geladen lassen",
284 "settings.app.form.language": "Sprache", 288 "settings.app.form.language": "Sprache",
285 "settings.app.form.lockPassword": "Passwort", 289 "settings.app.form.lockPassword": "Passwort",
286 "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren", 290 "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Verhalten der Navigationsleiste",
288 "settings.app.form.noUpdates": "Updates deaktivieren", 292 "settings.app.form.noUpdates": "Updates deaktivieren",
289 "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen", 293 "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen",
294 "settings.app.form.reloadAfterResume": "Ferdi nach dem aufwachen aus dem Standby neu laden",
290 "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird", 295 "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird",
291 "settings.app.form.scheduledDNDEnabled": "Geplante \"Nicht-stören\"-Funktion aktivieren", 296 "settings.app.form.scheduledDNDEnabled": "Geplante \"Nicht-stören\"-Funktion aktivieren",
292 "settings.app.form.scheduledDNDEnd": "Von", 297 "settings.app.form.scheduledDNDEnd": "Von",
293 "settings.app.form.scheduledDNDStart": "Bis", 298 "settings.app.form.scheduledDNDStart": "Bis",
294 "settings.app.form.sentry": "Send telemetry data", 299 "settings.app.form.sentry": "Telemetrie-Daten senden",
295 "settings.app.form.server": "Server", 300 "settings.app.form.server": "Server",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width", 301 "settings.app.form.serviceRibbonWidth": "Größe der Sidebar",
297 "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen", 302 "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen",
298 "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", 303 "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind",
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Minimiert starten",
300 "settings.app.form.todoServer": "Todo-Server", 305 "settings.app.form.todoServer": "Todo-Server",
301 "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren", 306 "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren",
307 "settings.app.form.useTouchIdToUnlock": "Verwenden von Touch ID zum Entsperren von Ferdi erlauben",
302 "settings.app.headline": "Einstellungen", 308 "settings.app.headline": "Einstellungen",
303 "settings.app.headlineAdvanced": "Erweitert", 309 "settings.app.headlineAdvanced": "Erweitert",
304 "settings.app.headlineAppearance": "Darstellung", 310 "settings.app.headlineAppearance": "Darstellung",
@@ -306,7 +312,7 @@
306 "settings.app.headlineLanguage": "Sprache", 312 "settings.app.headlineLanguage": "Sprache",
307 "settings.app.headlineUpdates": "Updates", 313 "settings.app.headlineUpdates": "Updates",
308 "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.", 314 "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.",
309 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 315 "settings.app.inactivityLockInfo": "Minuten der Inaktivität, nach denen Ferdi automatisch sperren soll. Verwenden Sie 0, um dies zu deaktivieren",
310 "settings.app.languageDisclaimer": "Offizielle Ãœbersetzungen: Englisch & Deutsch. Alle anderen Sprachen sind Ãœbersetzungen der Ferdi Community.", 316 "settings.app.languageDisclaimer": "Offizielle Ãœbersetzungen: Englisch & Deutsch. Alle anderen Sprachen sind Ãœbersetzungen der Ferdi Community.",
311 "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.", 317 "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.",
312 "settings.app.lockedPassword": "Passwort", 318 "settings.app.lockedPassword": "Passwort",
@@ -314,7 +320,7 @@
314 "settings.app.restartRequired": "Änderungen werden erst nach einem Neustart wirksam.", 320 "settings.app.restartRequired": "Änderungen werden erst nach einem Neustart wirksam.",
315 "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.", 321 "settings.app.scheduledDNDInfo": "Die geplante \"Nicht-stören\"-Funktion erlaubt es dir eine Zeitspanne festzulegen, in der du keine Benachrichtigungen von Ferdi erhalten möchtest.",
316 "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.", 322 "settings.app.scheduledDNDTimeInfo": "Zeiten im 24-Stunden-Format (z.B. 18:00). Endzeit kann vor Beginn der Startzeit sein (z.B. 17:00 Uhr, Ende 09:00), um die Funktion über Nacht zu aktivieren.",
317 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 323 "settings.app.sentryInfo": "Das Senden von Telemetrie-Daten ermöglicht es uns, Fehler in Ferdi zu finden - wir werden keine persönlichen Informationen wie deine Nachrichten versenden! Ändern dieser Option erfordert einen Neustart von Ferdi.",
318 "settings.app.serverInfo": "Wir empfehlen dir, dich nach dem Ändern des Servers abzumelden, da Ihre Einstellungen möglicherweise sonst nicht auf dem Server gespeichert werden können.", 324 "settings.app.serverInfo": "Wir empfehlen dir, dich nach dem Ändern des Servers abzumelden, da Ihre Einstellungen möglicherweise sonst nicht auf dem Server gespeichert werden können.",
319 "settings.app.serverMoneyInfo": "Du verwendest den Franz's offiziellen Server.\nWir wissen, dass Ferdi es dir erlaubt, alle Funktionen kostenlos zu nutzen, aber du verwendest immer noch Franz's Serverressourcen - für die Franz's Entwickler zahlen müssen.\nBitte überlege dir, [Link 1]für ein Franz Premium-Account zu zahlen[/Link] oder [Link 2]dir einen eigene Server einzurichten[/Link] (wenn du das Wissen und die Ressourcen dazu hast). \nDurch die Nutzung von Ferdi profitierst du noch immer stark von Franz's Diensten, Serverressourcen und seiner Entwicklung.", 325 "settings.app.serverMoneyInfo": "Du verwendest den Franz's offiziellen Server.\nWir wissen, dass Ferdi es dir erlaubt, alle Funktionen kostenlos zu nutzen, aber du verwendest immer noch Franz's Serverressourcen - für die Franz's Entwickler zahlen müssen.\nBitte überlege dir, [Link 1]für ein Franz Premium-Account zu zahlen[/Link] oder [Link 2]dir einen eigene Server einzurichten[/Link] (wenn du das Wissen und die Ressourcen dazu hast). \nDurch die Nutzung von Ferdi profitierst du noch immer stark von Franz's Diensten, Serverressourcen und seiner Entwicklung.",
320 "settings.app.subheadlineCache": "Cache", 326 "settings.app.subheadlineCache": "Cache",
@@ -374,8 +380,8 @@
374 "settings.service.form.isMutedInfo": "Sämtliche Wiedergabe von Tönen wird deaktiviert", 380 "settings.service.form.isMutedInfo": "Sämtliche Wiedergabe von Tönen wird deaktiviert",
375 "settings.service.form.name": "Name", 381 "settings.service.form.name": "Name",
376 "settings.service.form.openDarkmodeCss": "Öffne darkmode.css", 382 "settings.service.form.openDarkmodeCss": "Öffne darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css", 383 "settings.service.form.openUserCss": "Öffne user.css",
378 "settings.service.form.openUserJs": "Open user.js", 384 "settings.service.form.openUserJs": "Öffne user.js",
379 "settings.service.form.proxy.headline": "HTTP-/HTTPS-Proxy-Einstellungen", 385 "settings.service.form.proxy.headline": "HTTP-/HTTPS-Proxy-Einstellungen",
380 "settings.service.form.proxy.host": "Proxy Host/IP", 386 "settings.service.form.proxy.host": "Proxy Host/IP",
381 "settings.service.form.proxy.info": "Proxy-Einstellungen werden nicht mit den Ferdi Servern synchronisiert.", 387 "settings.service.form.proxy.info": "Proxy-Einstellungen werden nicht mit den Ferdi Servern synchronisiert.",
@@ -384,7 +390,7 @@
384 "settings.service.form.proxy.port": "Port", 390 "settings.service.form.proxy.port": "Port",
385 "settings.service.form.proxy.restartInfo": "Bitte starte Ferdi nach dem Ändern der Proxy-Einstellungen neu.", 391 "settings.service.form.proxy.restartInfo": "Bitte starte Ferdi nach dem Ändern der Proxy-Einstellungen neu.",
386 "settings.service.form.proxy.user": "Benutzer (optional)", 392 "settings.service.form.proxy.user": "Benutzer (optional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", 393 "settings.service.form.recipeFileInfo": "Deine \"user\" Dateien werden in die Webseite eingefügt, so dass du die Dienste in beliebiger Weise anpassen können. \"user\" Dateien werden nur lokal gespeichert und nicht auf andere Computer, welche das gleiche Konto nutzen, übertragen.",
388 "settings.service.form.saveButton": "Dienst speichern", 394 "settings.service.form.saveButton": "Dienst speichern",
389 "settings.service.form.tabHosted": "Gehostet", 395 "settings.service.form.tabHosted": "Gehostet",
390 "settings.service.form.tabOnPremise": "Selbst gehostet â­ï¸", 396 "settings.service.form.tabOnPremise": "Selbst gehostet â­ï¸",
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
index 211214d93..be0cd008b 100644
--- a/src/i18n/locales/defaultMessages.json
+++ b/src/i18n/locales/defaultMessages.json
@@ -202,65 +202,104 @@
202 "defaultMessage": "!!!Locked", 202 "defaultMessage": "!!!Locked",
203 "end": { 203 "end": {
204 "column": 3, 204 "column": 3,
205 "line": 17 205 "line": 22
206 }, 206 },
207 "file": "src/components/auth/Locked.js", 207 "file": "src/components/auth/Locked.js",
208 "id": "locked.headline", 208 "id": "locked.headline",
209 "start": { 209 "start": {
210 "column": 12, 210 "column": 12,
211 "line": 14 211 "line": 19
212 } 212 }
213 }, 213 },
214 { 214 {
215 "defaultMessage": "!!!Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 215 "defaultMessage": "!!!Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
216 "end": { 216 "end": {
217 "column": 3, 217 "column": 3,
218 "line": 21 218 "line": 26
219 }, 219 },
220 "file": "src/components/auth/Locked.js", 220 "file": "src/components/auth/Locked.js",
221 "id": "locked.info", 221 "id": "locked.info",
222 "start": { 222 "start": {
223 "column": 8, 223 "column": 8,
224 "line": 18 224 "line": 23
225 }
226 },
227 {
228 "defaultMessage": "!!!Unlock with Touch ID",
229 "end": {
230 "column": 3,
231 "line": 30
232 },
233 "file": "src/components/auth/Locked.js",
234 "id": "locked.touchId",
235 "start": {
236 "column": 11,
237 "line": 27
238 }
239 },
240 {
241 "defaultMessage": "!!!unlock via Touch ID",
242 "end": {
243 "column": 3,
244 "line": 34
245 },
246 "file": "src/components/auth/Locked.js",
247 "id": "locked.touchIdPrompt",
248 "start": {
249 "column": 17,
250 "line": 31
225 } 251 }
226 }, 252 },
227 { 253 {
228 "defaultMessage": "!!!Password", 254 "defaultMessage": "!!!Password",
229 "end": { 255 "end": {
230 "column": 3, 256 "column": 3,
231 "line": 25 257 "line": 38
232 }, 258 },
233 "file": "src/components/auth/Locked.js", 259 "file": "src/components/auth/Locked.js",
234 "id": "locked.password.label", 260 "id": "locked.password.label",
235 "start": { 261 "start": {
236 "column": 17, 262 "column": 17,
237 "line": 22 263 "line": 35
238 } 264 }
239 }, 265 },
240 { 266 {
241 "defaultMessage": "!!!Unlock", 267 "defaultMessage": "!!!Unlock",
242 "end": { 268 "end": {
243 "column": 3, 269 "column": 3,
244 "line": 29 270 "line": 42
245 }, 271 },
246 "file": "src/components/auth/Locked.js", 272 "file": "src/components/auth/Locked.js",
247 "id": "locked.submit.label", 273 "id": "locked.submit.label",
248 "start": { 274 "start": {
249 "column": 21, 275 "column": 21,
250 "line": 26 276 "line": 39
277 }
278 },
279 {
280 "defaultMessage": "!!!Unlock with Password",
281 "end": {
282 "column": 3,
283 "line": 46
284 },
285 "file": "src/components/auth/Locked.js",
286 "id": "locked.unlockWithPassword",
287 "start": {
288 "column": 22,
289 "line": 43
251 } 290 }
252 }, 291 },
253 { 292 {
254 "defaultMessage": "!!!Password invalid", 293 "defaultMessage": "!!!Password invalid",
255 "end": { 294 "end": {
256 "column": 3, 295 "column": 3,
257 "line": 33 296 "line": 50
258 }, 297 },
259 "file": "src/components/auth/Locked.js", 298 "file": "src/components/auth/Locked.js",
260 "id": "locked.invalidCredentials", 299 "id": "locked.invalidCredentials",
261 "start": { 300 "start": {
262 "column": 22, 301 "column": 22,
263 "line": 30 302 "line": 47
264 } 303 }
265 } 304 }
266 ], 305 ],
@@ -2673,403 +2712,403 @@
2673 "defaultMessage": "!!!Settings", 2712 "defaultMessage": "!!!Settings",
2674 "end": { 2713 "end": {
2675 "column": 3, 2714 "column": 3,
2676 "line": 30 2715 "line": 34
2677 }, 2716 },
2678 "file": "src/components/settings/settings/EditSettingsForm.js", 2717 "file": "src/components/settings/settings/EditSettingsForm.js",
2679 "id": "settings.app.headline", 2718 "id": "settings.app.headline",
2680 "start": { 2719 "start": {
2681 "column": 12, 2720 "column": 12,
2682 "line": 27 2721 "line": 31
2683 } 2722 }
2684 }, 2723 },
2685 { 2724 {
2686 "defaultMessage": "!!!General", 2725 "defaultMessage": "!!!General",
2687 "end": { 2726 "end": {
2688 "column": 3, 2727 "column": 3,
2689 "line": 34 2728 "line": 38
2690 }, 2729 },
2691 "file": "src/components/settings/settings/EditSettingsForm.js", 2730 "file": "src/components/settings/settings/EditSettingsForm.js",
2692 "id": "settings.app.headlineGeneral", 2731 "id": "settings.app.headlineGeneral",
2693 "start": { 2732 "start": {
2694 "column": 19, 2733 "column": 19,
2695 "line": 31 2734 "line": 35
2696 } 2735 }
2697 }, 2736 },
2698 { 2737 {
2699 "defaultMessage": "!!!Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 2738 "defaultMessage": "!!!Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.",
2700 "end": { 2739 "end": {
2701 "column": 3, 2740 "column": 3,
2702 "line": 38 2741 "line": 42
2703 }, 2742 },
2704 "file": "src/components/settings/settings/EditSettingsForm.js", 2743 "file": "src/components/settings/settings/EditSettingsForm.js",
2705 "id": "settings.app.sentryInfo", 2744 "id": "settings.app.sentryInfo",
2706 "start": { 2745 "start": {
2707 "column": 14, 2746 "column": 14,
2708 "line": 35 2747 "line": 39
2709 } 2748 }
2710 }, 2749 },
2711 { 2750 {
2712 "defaultMessage": "!!!By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", 2751 "defaultMessage": "!!!By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.",
2713 "end": { 2752 "end": {
2714 "column": 3, 2753 "column": 3,
2715 "line": 42 2754 "line": 46
2716 }, 2755 },
2717 "file": "src/components/settings/settings/EditSettingsForm.js", 2756 "file": "src/components/settings/settings/EditSettingsForm.js",
2718 "id": "settings.app.hibernateInfo", 2757 "id": "settings.app.hibernateInfo",
2719 "start": { 2758 "start": {
2720 "column": 17, 2759 "column": 17,
2721 "line": 39 2760 "line": 43
2722 } 2761 }
2723 }, 2762 },
2724 { 2763 {
2725 "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 2764 "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
2726 "end": { 2765 "end": {
2727 "column": 3, 2766 "column": 3,
2728 "line": 46 2767 "line": 50
2729 }, 2768 },
2730 "file": "src/components/settings/settings/EditSettingsForm.js", 2769 "file": "src/components/settings/settings/EditSettingsForm.js",
2731 "id": "settings.app.inactivityLockInfo", 2770 "id": "settings.app.inactivityLockInfo",
2732 "start": { 2771 "start": {
2733 "column": 22, 2772 "column": 22,
2734 "line": 43 2773 "line": 47
2735 } 2774 }
2736 }, 2775 },
2737 { 2776 {
2738 "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.", 2777 "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.",
2739 "end": { 2778 "end": {
2740 "column": 3, 2779 "column": 3,
2741 "line": 50 2780 "line": 54
2742 }, 2781 },
2743 "file": "src/components/settings/settings/EditSettingsForm.js", 2782 "file": "src/components/settings/settings/EditSettingsForm.js",
2744 "id": "settings.app.serverInfo", 2783 "id": "settings.app.serverInfo",
2745 "start": { 2784 "start": {
2746 "column": 14, 2785 "column": 14,
2747 "line": 47 2786 "line": 51
2748 } 2787 }
2749 }, 2788 },
2750 { 2789 {
2751 "defaultMessage": "!!!You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.", 2790 "defaultMessage": "!!!You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.",
2752 "end": { 2791 "end": {
2753 "column": 3, 2792 "column": 3,
2754 "line": 54 2793 "line": 58
2755 }, 2794 },
2756 "file": "src/components/settings/settings/EditSettingsForm.js", 2795 "file": "src/components/settings/settings/EditSettingsForm.js",
2757 "id": "settings.app.serverMoneyInfo", 2796 "id": "settings.app.serverMoneyInfo",
2758 "start": { 2797 "start": {
2759 "column": 19, 2798 "column": 19,
2760 "line": 51 2799 "line": 55
2761 } 2800 }
2762 }, 2801 },
2763 { 2802 {
2764 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", 2803 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)",
2765 "end": { 2804 "end": {
2766 "column": 3, 2805 "column": 3,
2767 "line": 58 2806 "line": 62
2768 }, 2807 },
2769 "file": "src/components/settings/settings/EditSettingsForm.js", 2808 "file": "src/components/settings/settings/EditSettingsForm.js",
2770 "id": "settings.app.todoServerInfo", 2809 "id": "settings.app.todoServerInfo",
2771 "start": { 2810 "start": {
2772 "column": 18, 2811 "column": 18,
2773 "line": 55 2812 "line": 59
2774 } 2813 }
2775 }, 2814 },
2776 { 2815 {
2777 "defaultMessage": "!!!Password", 2816 "defaultMessage": "!!!Password",
2778 "end": { 2817 "end": {
2779 "column": 3, 2818 "column": 3,
2780 "line": 62 2819 "line": 66
2781 }, 2820 },
2782 "file": "src/components/settings/settings/EditSettingsForm.js", 2821 "file": "src/components/settings/settings/EditSettingsForm.js",
2783 "id": "settings.app.lockedPassword", 2822 "id": "settings.app.lockedPassword",
2784 "start": { 2823 "start": {
2785 "column": 18, 2824 "column": 18,
2786 "line": 59 2825 "line": 63
2787 } 2826 }
2788 }, 2827 },
2789 { 2828 {
2790 "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 2829 "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
2791 "end": { 2830 "end": {
2792 "column": 3, 2831 "column": 3,
2793 "line": 66 2832 "line": 70
2794 }, 2833 },
2795 "file": "src/components/settings/settings/EditSettingsForm.js", 2834 "file": "src/components/settings/settings/EditSettingsForm.js",
2796 "id": "settings.app.lockedPasswordInfo", 2835 "id": "settings.app.lockedPasswordInfo",
2797 "start": { 2836 "start": {
2798 "column": 22, 2837 "column": 22,
2799 "line": 63 2838 "line": 67
2800 } 2839 }
2801 }, 2840 },
2802 { 2841 {
2803 "defaultMessage": "!!!Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", 2842 "defaultMessage": "!!!Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.",
2804 "end": { 2843 "end": {
2805 "column": 3, 2844 "column": 3,
2806 "line": 70 2845 "line": 74
2807 }, 2846 },
2808 "file": "src/components/settings/settings/EditSettingsForm.js", 2847 "file": "src/components/settings/settings/EditSettingsForm.js",
2809 "id": "settings.app.lockInfo", 2848 "id": "settings.app.lockInfo",
2810 "start": { 2849 "start": {
2811 "column": 12, 2850 "column": 12,
2812 "line": 67 2851 "line": 71
2813 } 2852 }
2814 }, 2853 },
2815 { 2854 {
2816 "defaultMessage": "!!!Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", 2855 "defaultMessage": "!!!Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.",
2817 "end": { 2856 "end": {
2818 "column": 3, 2857 "column": 3,
2819 "line": 74 2858 "line": 78
2820 }, 2859 },
2821 "file": "src/components/settings/settings/EditSettingsForm.js", 2860 "file": "src/components/settings/settings/EditSettingsForm.js",
2822 "id": "settings.app.scheduledDNDTimeInfo", 2861 "id": "settings.app.scheduledDNDTimeInfo",
2823 "start": { 2862 "start": {
2824 "column": 24, 2863 "column": 24,
2825 "line": 71 2864 "line": 75
2826 } 2865 }
2827 }, 2866 },
2828 { 2867 {
2829 "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", 2868 "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.",
2830 "end": { 2869 "end": {
2831 "column": 3, 2870 "column": 3,
2832 "line": 78 2871 "line": 82
2833 }, 2872 },
2834 "file": "src/components/settings/settings/EditSettingsForm.js", 2873 "file": "src/components/settings/settings/EditSettingsForm.js",
2835 "id": "settings.app.scheduledDNDInfo", 2874 "id": "settings.app.scheduledDNDInfo",
2836 "start": { 2875 "start": {
2837 "column": 20, 2876 "column": 20,
2838 "line": 75 2877 "line": 79
2839 } 2878 }
2840 }, 2879 },
2841 { 2880 {
2842 "defaultMessage": "!!!Language", 2881 "defaultMessage": "!!!Language",
2843 "end": { 2882 "end": {
2844 "column": 3, 2883 "column": 3,
2845 "line": 82 2884 "line": 86
2846 }, 2885 },
2847 "file": "src/components/settings/settings/EditSettingsForm.js", 2886 "file": "src/components/settings/settings/EditSettingsForm.js",
2848 "id": "settings.app.headlineLanguage", 2887 "id": "settings.app.headlineLanguage",
2849 "start": { 2888 "start": {
2850 "column": 20, 2889 "column": 20,
2851 "line": 79 2890 "line": 83
2852 } 2891 }
2853 }, 2892 },
2854 { 2893 {
2855 "defaultMessage": "!!!Updates", 2894 "defaultMessage": "!!!Updates",
2856 "end": { 2895 "end": {
2857 "column": 3, 2896 "column": 3,
2858 "line": 86 2897 "line": 90
2859 }, 2898 },
2860 "file": "src/components/settings/settings/EditSettingsForm.js", 2899 "file": "src/components/settings/settings/EditSettingsForm.js",
2861 "id": "settings.app.headlineUpdates", 2900 "id": "settings.app.headlineUpdates",
2862 "start": { 2901 "start": {
2863 "column": 19, 2902 "column": 19,
2864 "line": 83 2903 "line": 87
2865 } 2904 }
2866 }, 2905 },
2867 { 2906 {
2868 "defaultMessage": "!!!Appearance", 2907 "defaultMessage": "!!!Appearance",
2869 "end": { 2908 "end": {
2870 "column": 3, 2909 "column": 3,
2871 "line": 90 2910 "line": 94
2872 }, 2911 },
2873 "file": "src/components/settings/settings/EditSettingsForm.js", 2912 "file": "src/components/settings/settings/EditSettingsForm.js",
2874 "id": "settings.app.headlineAppearance", 2913 "id": "settings.app.headlineAppearance",
2875 "start": { 2914 "start": {
2876 "column": 22, 2915 "column": 22,
2877 "line": 87 2916 "line": 91
2878 } 2917 }
2879 }, 2918 },
2880 { 2919 {
2881 "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 2920 "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
2882 "end": { 2921 "end": {
2883 "column": 3, 2922 "column": 3,
2884 "line": 94 2923 "line": 98
2885 }, 2924 },
2886 "file": "src/components/settings/settings/EditSettingsForm.js", 2925 "file": "src/components/settings/settings/EditSettingsForm.js",
2887 "id": "settings.app.universalDarkModeInfo", 2926 "id": "settings.app.universalDarkModeInfo",
2888 "start": { 2927 "start": {
2889 "column": 25, 2928 "column": 25,
2890 "line": 91 2929 "line": 95
2891 } 2930 }
2892 }, 2931 },
2893 { 2932 {
2894 "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", 2933 "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)",
2895 "end": { 2934 "end": {
2896 "column": 3, 2935 "column": 3,
2897 "line": 98 2936 "line": 102
2898 }, 2937 },
2899 "file": "src/components/settings/settings/EditSettingsForm.js", 2938 "file": "src/components/settings/settings/EditSettingsForm.js",
2900 "id": "settings.app.accentColorInfo", 2939 "id": "settings.app.accentColorInfo",
2901 "start": { 2940 "start": {
2902 "column": 19, 2941 "column": 19,
2903 "line": 95 2942 "line": 99
2904 } 2943 }
2905 }, 2944 },
2906 { 2945 {
2907 "defaultMessage": "!!!Advanced", 2946 "defaultMessage": "!!!Advanced",
2908 "end": { 2947 "end": {
2909 "column": 3, 2948 "column": 3,
2910 "line": 102 2949 "line": 106
2911 }, 2950 },
2912 "file": "src/components/settings/settings/EditSettingsForm.js", 2951 "file": "src/components/settings/settings/EditSettingsForm.js",
2913 "id": "settings.app.headlineAdvanced", 2952 "id": "settings.app.headlineAdvanced",
2914 "start": { 2953 "start": {
2915 "column": 20, 2954 "column": 20,
2916 "line": 99 2955 "line": 103
2917 } 2956 }
2918 }, 2957 },
2919 { 2958 {
2920 "defaultMessage": "!!!Help us to translate Ferdi into your language.", 2959 "defaultMessage": "!!!Help us to translate Ferdi into your language.",
2921 "end": { 2960 "end": {
2922 "column": 3, 2961 "column": 3,
2923 "line": 106 2962 "line": 110
2924 }, 2963 },
2925 "file": "src/components/settings/settings/EditSettingsForm.js", 2964 "file": "src/components/settings/settings/EditSettingsForm.js",
2926 "id": "settings.app.translationHelp", 2965 "id": "settings.app.translationHelp",
2927 "start": { 2966 "start": {
2928 "column": 19, 2967 "column": 19,
2929 "line": 103 2968 "line": 107
2930 } 2969 }
2931 }, 2970 },
2932 { 2971 {
2933 "defaultMessage": "!!!Cache", 2972 "defaultMessage": "!!!Cache",
2934 "end": { 2973 "end": {
2935 "column": 3, 2974 "column": 3,
2936 "line": 110 2975 "line": 114
2937 }, 2976 },
2938 "file": "src/components/settings/settings/EditSettingsForm.js", 2977 "file": "src/components/settings/settings/EditSettingsForm.js",
2939 "id": "settings.app.subheadlineCache", 2978 "id": "settings.app.subheadlineCache",
2940 "start": { 2979 "start": {
2941 "column": 20, 2980 "column": 20,
2942 "line": 107 2981 "line": 111
2943 } 2982 }
2944 }, 2983 },
2945 { 2984 {
2946 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", 2985 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
2947 "end": { 2986 "end": {
2948 "column": 3, 2987 "column": 3,
2949 "line": 114 2988 "line": 118
2950 }, 2989 },
2951 "file": "src/components/settings/settings/EditSettingsForm.js", 2990 "file": "src/components/settings/settings/EditSettingsForm.js",
2952 "id": "settings.app.cacheInfo", 2991 "id": "settings.app.cacheInfo",
2953 "start": { 2992 "start": {
2954 "column": 13, 2993 "column": 13,
2955 "line": 111 2994 "line": 115
2956 } 2995 }
2957 }, 2996 },
2958 { 2997 {
2959 "defaultMessage": "!!!Clear cache", 2998 "defaultMessage": "!!!Clear cache",
2960 "end": { 2999 "end": {
2961 "column": 3, 3000 "column": 3,
2962 "line": 118 3001 "line": 122
2963 }, 3002 },
2964 "file": "src/components/settings/settings/EditSettingsForm.js", 3003 "file": "src/components/settings/settings/EditSettingsForm.js",
2965 "id": "settings.app.buttonClearAllCache", 3004 "id": "settings.app.buttonClearAllCache",
2966 "start": { 3005 "start": {
2967 "column": 23, 3006 "column": 23,
2968 "line": 115 3007 "line": 119
2969 } 3008 }
2970 }, 3009 },
2971 { 3010 {
2972 "defaultMessage": "!!!Check for updates", 3011 "defaultMessage": "!!!Check for updates",
2973 "end": { 3012 "end": {
2974 "column": 3, 3013 "column": 3,
2975 "line": 122 3014 "line": 126
2976 }, 3015 },
2977 "file": "src/components/settings/settings/EditSettingsForm.js", 3016 "file": "src/components/settings/settings/EditSettingsForm.js",
2978 "id": "settings.app.buttonSearchForUpdate", 3017 "id": "settings.app.buttonSearchForUpdate",
2979 "start": { 3018 "start": {
2980 "column": 25, 3019 "column": 25,
2981 "line": 119 3020 "line": 123
2982 } 3021 }
2983 }, 3022 },
2984 { 3023 {
2985 "defaultMessage": "!!!Restart & install update", 3024 "defaultMessage": "!!!Restart & install update",
2986 "end": { 3025 "end": {
2987 "column": 3, 3026 "column": 3,
2988 "line": 126 3027 "line": 130
2989 }, 3028 },
2990 "file": "src/components/settings/settings/EditSettingsForm.js", 3029 "file": "src/components/settings/settings/EditSettingsForm.js",
2991 "id": "settings.app.buttonInstallUpdate", 3030 "id": "settings.app.buttonInstallUpdate",
2992 "start": { 3031 "start": {
2993 "column": 23, 3032 "column": 23,
2994 "line": 123 3033 "line": 127
2995 } 3034 }
2996 }, 3035 },
2997 { 3036 {
2998 "defaultMessage": "!!!Is searching for update", 3037 "defaultMessage": "!!!Is searching for update",
2999 "end": { 3038 "end": {
3000 "column": 3, 3039 "column": 3,
3001 "line": 130 3040 "line": 134
3002 }, 3041 },
3003 "file": "src/components/settings/settings/EditSettingsForm.js", 3042 "file": "src/components/settings/settings/EditSettingsForm.js",
3004 "id": "settings.app.updateStatusSearching", 3043 "id": "settings.app.updateStatusSearching",
3005 "start": { 3044 "start": {
3006 "column": 25, 3045 "column": 25,
3007 "line": 127 3046 "line": 131
3008 } 3047 }
3009 }, 3048 },
3010 { 3049 {
3011 "defaultMessage": "!!!Update available, downloading...", 3050 "defaultMessage": "!!!Update available, downloading...",
3012 "end": { 3051 "end": {
3013 "column": 3, 3052 "column": 3,
3014 "line": 134 3053 "line": 138
3015 }, 3054 },
3016 "file": "src/components/settings/settings/EditSettingsForm.js", 3055 "file": "src/components/settings/settings/EditSettingsForm.js",
3017 "id": "settings.app.updateStatusAvailable", 3056 "id": "settings.app.updateStatusAvailable",
3018 "start": { 3057 "start": {
3019 "column": 25, 3058 "column": 25,
3020 "line": 131 3059 "line": 135
3021 } 3060 }
3022 }, 3061 },
3023 { 3062 {
3024 "defaultMessage": "!!!You are using the latest version of Ferdi", 3063 "defaultMessage": "!!!You are using the latest version of Ferdi",
3025 "end": { 3064 "end": {
3026 "column": 3, 3065 "column": 3,
3027 "line": 138 3066 "line": 142
3028 }, 3067 },
3029 "file": "src/components/settings/settings/EditSettingsForm.js", 3068 "file": "src/components/settings/settings/EditSettingsForm.js",
3030 "id": "settings.app.updateStatusUpToDate", 3069 "id": "settings.app.updateStatusUpToDate",
3031 "start": { 3070 "start": {
3032 "column": 24, 3071 "column": 24,
3033 "line": 135 3072 "line": 139
3034 } 3073 }
3035 }, 3074 },
3036 { 3075 {
3037 "defaultMessage": "!!!Current version:", 3076 "defaultMessage": "!!!Current version:",
3038 "end": { 3077 "end": {
3039 "column": 3, 3078 "column": 3,
3040 "line": 142 3079 "line": 146
3041 }, 3080 },
3042 "file": "src/components/settings/settings/EditSettingsForm.js", 3081 "file": "src/components/settings/settings/EditSettingsForm.js",
3043 "id": "settings.app.currentVersion", 3082 "id": "settings.app.currentVersion",
3044 "start": { 3083 "start": {
3045 "column": 18, 3084 "column": 18,
3046 "line": 139 3085 "line": 143
3047 } 3086 }
3048 }, 3087 },
3049 { 3088 {
3050 "defaultMessage": "!!!Changes require restart", 3089 "defaultMessage": "!!!Changes require restart",
3051 "end": { 3090 "end": {
3052 "column": 3, 3091 "column": 3,
3053 "line": 146 3092 "line": 150
3054 }, 3093 },
3055 "file": "src/components/settings/settings/EditSettingsForm.js", 3094 "file": "src/components/settings/settings/EditSettingsForm.js",
3056 "id": "settings.app.restartRequired", 3095 "id": "settings.app.restartRequired",
3057 "start": { 3096 "start": {
3058 "column": 29, 3097 "column": 29,
3059 "line": 143 3098 "line": 147
3060 } 3099 }
3061 }, 3100 },
3062 { 3101 {
3063 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", 3102 "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.",
3064 "end": { 3103 "end": {
3065 "column": 3, 3104 "column": 3,
3066 "line": 150 3105 "line": 154
3067 }, 3106 },
3068 "file": "src/components/settings/settings/EditSettingsForm.js", 3107 "file": "src/components/settings/settings/EditSettingsForm.js",
3069 "id": "settings.app.languageDisclaimer", 3108 "id": "settings.app.languageDisclaimer",
3070 "start": { 3109 "start": {
3071 "column": 22, 3110 "column": 22,
3072 "line": 147 3111 "line": 151
3073 } 3112 }
3074 } 3113 }
3075 ], 3114 ],
@@ -4188,380 +4227,406 @@
4188 } 4227 }
4189 }, 4228 },
4190 { 4229 {
4191 "defaultMessage": "!!!Minimize Ferdi to system tray", 4230 "defaultMessage": "!!!Reload Ferdi after system resume",
4192 "end": { 4231 "end": {
4193 "column": 3, 4232 "column": 3,
4194 "line": 54 4233 "line": 54
4195 }, 4234 },
4196 "file": "src/containers/settings/EditSettingsScreen.js", 4235 "file": "src/containers/settings/EditSettingsScreen.js",
4236 "id": "settings.app.form.reloadAfterResume",
4237 "start": {
4238 "column": 21,
4239 "line": 51
4240 }
4241 },
4242 {
4243 "defaultMessage": "!!!Minimize Ferdi to system tray",
4244 "end": {
4245 "column": 3,
4246 "line": 58
4247 },
4248 "file": "src/containers/settings/EditSettingsScreen.js",
4197 "id": "settings.app.form.minimizeToSystemTray", 4249 "id": "settings.app.form.minimizeToSystemTray",
4198 "start": { 4250 "start": {
4199 "column": 24, 4251 "column": 24,
4200 "line": 51 4252 "line": 55
4201 } 4253 }
4202 }, 4254 },
4203 { 4255 {
4204 "defaultMessage": "!!!Don't show message content in notifications", 4256 "defaultMessage": "!!!Don't show message content in notifications",
4205 "end": { 4257 "end": {
4206 "column": 3, 4258 "column": 3,
4207 "line": 58 4259 "line": 62
4208 }, 4260 },
4209 "file": "src/containers/settings/EditSettingsScreen.js", 4261 "file": "src/containers/settings/EditSettingsScreen.js",
4210 "id": "settings.app.form.privateNotifications", 4262 "id": "settings.app.form.privateNotifications",
4211 "start": { 4263 "start": {
4212 "column": 24, 4264 "column": 24,
4213 "line": 55 4265 "line": 59
4214 } 4266 }
4215 }, 4267 },
4216 { 4268 {
4217 "defaultMessage": "!!!Navigation bar behaviour", 4269 "defaultMessage": "!!!Navigation bar behaviour",
4218 "end": { 4270 "end": {
4219 "column": 3, 4271 "column": 3,
4220 "line": 62 4272 "line": 66
4221 }, 4273 },
4222 "file": "src/containers/settings/EditSettingsScreen.js", 4274 "file": "src/containers/settings/EditSettingsScreen.js",
4223 "id": "settings.app.form.navigationBarBehaviour", 4275 "id": "settings.app.form.navigationBarBehaviour",
4224 "start": { 4276 "start": {
4225 "column": 26, 4277 "column": 26,
4226 "line": 59 4278 "line": 63
4227 } 4279 }
4228 }, 4280 },
4229 { 4281 {
4230 "defaultMessage": "!!!Send telemetry data", 4282 "defaultMessage": "!!!Send telemetry data",
4231 "end": { 4283 "end": {
4232 "column": 3, 4284 "column": 3,
4233 "line": 66 4285 "line": 70
4234 }, 4286 },
4235 "file": "src/containers/settings/EditSettingsScreen.js", 4287 "file": "src/containers/settings/EditSettingsScreen.js",
4236 "id": "settings.app.form.sentry", 4288 "id": "settings.app.form.sentry",
4237 "start": { 4289 "start": {
4238 "column": 10, 4290 "column": 10,
4239 "line": 63 4291 "line": 67
4240 } 4292 }
4241 }, 4293 },
4242 { 4294 {
4243 "defaultMessage": "!!!Enable service hibernation", 4295 "defaultMessage": "!!!Enable service hibernation",
4244 "end": { 4296 "end": {
4245 "column": 3, 4297 "column": 3,
4246 "line": 70 4298 "line": 74
4247 }, 4299 },
4248 "file": "src/containers/settings/EditSettingsScreen.js", 4300 "file": "src/containers/settings/EditSettingsScreen.js",
4249 "id": "settings.app.form.hibernate", 4301 "id": "settings.app.form.hibernate",
4250 "start": { 4302 "start": {
4251 "column": 13, 4303 "column": 13,
4252 "line": 67 4304 "line": 71
4253 } 4305 }
4254 }, 4306 },
4255 { 4307 {
4256 "defaultMessage": "!!!Hibernation strategy", 4308 "defaultMessage": "!!!Hibernation strategy",
4257 "end": { 4309 "end": {
4258 "column": 3, 4310 "column": 3,
4259 "line": 74 4311 "line": 78
4260 }, 4312 },
4261 "file": "src/containers/settings/EditSettingsScreen.js", 4313 "file": "src/containers/settings/EditSettingsScreen.js",
4262 "id": "settings.app.form.hibernationStrategy", 4314 "id": "settings.app.form.hibernationStrategy",
4263 "start": { 4315 "start": {
4264 "column": 23, 4316 "column": 23,
4265 "line": 71 4317 "line": 75
4266 } 4318 }
4267 }, 4319 },
4268 { 4320 {
4269 "defaultMessage": "!!!Server", 4321 "defaultMessage": "!!!Server",
4270 "end": { 4322 "end": {
4271 "column": 3, 4323 "column": 3,
4272 "line": 78 4324 "line": 82
4273 }, 4325 },
4274 "file": "src/containers/settings/EditSettingsScreen.js", 4326 "file": "src/containers/settings/EditSettingsScreen.js",
4275 "id": "settings.app.form.server", 4327 "id": "settings.app.form.server",
4276 "start": { 4328 "start": {
4277 "column": 10, 4329 "column": 10,
4278 "line": 75 4330 "line": 79
4279 } 4331 }
4280 }, 4332 },
4281 { 4333 {
4282 "defaultMessage": "!!!Todo Server", 4334 "defaultMessage": "!!!Todo Server",
4283 "end": { 4335 "end": {
4284 "column": 3, 4336 "column": 3,
4285 "line": 82 4337 "line": 86
4286 }, 4338 },
4287 "file": "src/containers/settings/EditSettingsScreen.js", 4339 "file": "src/containers/settings/EditSettingsScreen.js",
4288 "id": "settings.app.form.todoServer", 4340 "id": "settings.app.form.todoServer",
4289 "start": { 4341 "start": {
4290 "column": 14, 4342 "column": 14,
4291 "line": 79 4343 "line": 83
4292 } 4344 }
4293 }, 4345 },
4294 { 4346 {
4295 "defaultMessage": "!!!Enable Password Lock", 4347 "defaultMessage": "!!!Enable Password Lock",
4296 "end": { 4348 "end": {
4297 "column": 3, 4349 "column": 3,
4298 "line": 86 4350 "line": 90
4299 }, 4351 },
4300 "file": "src/containers/settings/EditSettingsScreen.js", 4352 "file": "src/containers/settings/EditSettingsScreen.js",
4301 "id": "settings.app.form.enableLock", 4353 "id": "settings.app.form.enableLock",
4302 "start": { 4354 "start": {
4303 "column": 14, 4355 "column": 14,
4304 "line": 83 4356 "line": 87
4305 } 4357 }
4306 }, 4358 },
4307 { 4359 {
4308 "defaultMessage": "!!!Password", 4360 "defaultMessage": "!!!Password",
4309 "end": { 4361 "end": {
4310 "column": 3, 4362 "column": 3,
4311 "line": 90 4363 "line": 94
4312 }, 4364 },
4313 "file": "src/containers/settings/EditSettingsScreen.js", 4365 "file": "src/containers/settings/EditSettingsScreen.js",
4314 "id": "settings.app.form.lockPassword", 4366 "id": "settings.app.form.lockPassword",
4315 "start": { 4367 "start": {
4316 "column": 16, 4368 "column": 16,
4317 "line": 87 4369 "line": 91
4370 }
4371 },
4372 {
4373 "defaultMessage": "!!!Allow using Touch ID to unlock",
4374 "end": {
4375 "column": 3,
4376 "line": 98
4377 },
4378 "file": "src/containers/settings/EditSettingsScreen.js",
4379 "id": "settings.app.form.useTouchIdToUnlock",
4380 "start": {
4381 "column": 22,
4382 "line": 95
4318 } 4383 }
4319 }, 4384 },
4320 { 4385 {
4321 "defaultMessage": "!!!Lock after inactivity", 4386 "defaultMessage": "!!!Lock after inactivity",
4322 "end": { 4387 "end": {
4323 "column": 3, 4388 "column": 3,
4324 "line": 94 4389 "line": 102
4325 }, 4390 },
4326 "file": "src/containers/settings/EditSettingsScreen.js", 4391 "file": "src/containers/settings/EditSettingsScreen.js",
4327 "id": "settings.app.form.inactivityLock", 4392 "id": "settings.app.form.inactivityLock",
4328 "start": { 4393 "start": {
4329 "column": 18, 4394 "column": 18,
4330 "line": 91 4395 "line": 99
4331 } 4396 }
4332 }, 4397 },
4333 { 4398 {
4334 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 4399 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
4335 "end": { 4400 "end": {
4336 "column": 3, 4401 "column": 3,
4337 "line": 98 4402 "line": 106
4338 }, 4403 },
4339 "file": "src/containers/settings/EditSettingsScreen.js", 4404 "file": "src/containers/settings/EditSettingsScreen.js",
4340 "id": "settings.app.form.scheduledDNDEnabled", 4405 "id": "settings.app.form.scheduledDNDEnabled",
4341 "start": { 4406 "start": {
4342 "column": 23, 4407 "column": 23,
4343 "line": 95 4408 "line": 103
4344 } 4409 }
4345 }, 4410 },
4346 { 4411 {
4347 "defaultMessage": "!!!From", 4412 "defaultMessage": "!!!From",
4348 "end": { 4413 "end": {
4349 "column": 3, 4414 "column": 3,
4350 "line": 102 4415 "line": 110
4351 }, 4416 },
4352 "file": "src/containers/settings/EditSettingsScreen.js", 4417 "file": "src/containers/settings/EditSettingsScreen.js",
4353 "id": "settings.app.form.scheduledDNDStart", 4418 "id": "settings.app.form.scheduledDNDStart",
4354 "start": { 4419 "start": {
4355 "column": 21, 4420 "column": 21,
4356 "line": 99 4421 "line": 107
4357 } 4422 }
4358 }, 4423 },
4359 { 4424 {
4360 "defaultMessage": "!!!To", 4425 "defaultMessage": "!!!To",
4361 "end": { 4426 "end": {
4362 "column": 3, 4427 "column": 3,
4363 "line": 106 4428 "line": 114
4364 }, 4429 },
4365 "file": "src/containers/settings/EditSettingsScreen.js", 4430 "file": "src/containers/settings/EditSettingsScreen.js",
4366 "id": "settings.app.form.scheduledDNDEnd", 4431 "id": "settings.app.form.scheduledDNDEnd",
4367 "start": { 4432 "start": {
4368 "column": 19, 4433 "column": 19,
4369 "line": 103 4434 "line": 111
4370 } 4435 }
4371 }, 4436 },
4372 { 4437 {
4373 "defaultMessage": "!!!Language", 4438 "defaultMessage": "!!!Language",
4374 "end": { 4439 "end": {
4375 "column": 3, 4440 "column": 3,
4376 "line": 110 4441 "line": 118
4377 }, 4442 },
4378 "file": "src/containers/settings/EditSettingsScreen.js", 4443 "file": "src/containers/settings/EditSettingsScreen.js",
4379 "id": "settings.app.form.language", 4444 "id": "settings.app.form.language",
4380 "start": { 4445 "start": {
4381 "column": 12, 4446 "column": 12,
4382 "line": 107 4447 "line": 115
4383 } 4448 }
4384 }, 4449 },
4385 { 4450 {
4386 "defaultMessage": "!!!Dark Mode", 4451 "defaultMessage": "!!!Dark Mode",
4387 "end": { 4452 "end": {
4388 "column": 3, 4453 "column": 3,
4389 "line": 114 4454 "line": 122
4390 }, 4455 },
4391 "file": "src/containers/settings/EditSettingsScreen.js", 4456 "file": "src/containers/settings/EditSettingsScreen.js",
4392 "id": "settings.app.form.darkMode", 4457 "id": "settings.app.form.darkMode",
4393 "start": { 4458 "start": {
4394 "column": 12, 4459 "column": 12,
4395 "line": 111 4460 "line": 119
4396 } 4461 }
4397 }, 4462 },
4398 { 4463 {
4399 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", 4464 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting",
4400 "end": { 4465 "end": {
4401 "column": 3, 4466 "column": 3,
4402 "line": 118 4467 "line": 126
4403 }, 4468 },
4404 "file": "src/containers/settings/EditSettingsScreen.js", 4469 "file": "src/containers/settings/EditSettingsScreen.js",
4405 "id": "settings.app.form.adaptableDarkMode", 4470 "id": "settings.app.form.adaptableDarkMode",
4406 "start": { 4471 "start": {
4407 "column": 21, 4472 "column": 21,
4408 "line": 115 4473 "line": 123
4409 } 4474 }
4410 }, 4475 },
4411 { 4476 {
4412 "defaultMessage": "!!!Enable universal Dark Mode", 4477 "defaultMessage": "!!!Enable universal Dark Mode",
4413 "end": { 4478 "end": {
4414 "column": 3, 4479 "column": 3,
4415 "line": 122 4480 "line": 130
4416 }, 4481 },
4417 "file": "src/containers/settings/EditSettingsScreen.js", 4482 "file": "src/containers/settings/EditSettingsScreen.js",
4418 "id": "settings.app.form.universalDarkMode", 4483 "id": "settings.app.form.universalDarkMode",
4419 "start": { 4484 "start": {
4420 "column": 21, 4485 "column": 21,
4421 "line": 119 4486 "line": 127
4422 } 4487 }
4423 }, 4488 },
4424 { 4489 {
4425 "defaultMessage": "!!!Sidebar width", 4490 "defaultMessage": "!!!Sidebar width",
4426 "end": { 4491 "end": {
4427 "column": 3, 4492 "column": 3,
4428 "line": 126 4493 "line": 134
4429 }, 4494 },
4430 "file": "src/containers/settings/EditSettingsScreen.js", 4495 "file": "src/containers/settings/EditSettingsScreen.js",
4431 "id": "settings.app.form.serviceRibbonWidth", 4496 "id": "settings.app.form.serviceRibbonWidth",
4432 "start": { 4497 "start": {
4433 "column": 22, 4498 "column": 22,
4434 "line": 123 4499 "line": 131
4435 } 4500 }
4436 }, 4501 },
4437 { 4502 {
4438 "defaultMessage": "!!!Service icon size", 4503 "defaultMessage": "!!!Service icon size",
4439 "end": { 4504 "end": {
4440 "column": 3, 4505 "column": 3,
4441 "line": 130 4506 "line": 138
4442 }, 4507 },
4443 "file": "src/containers/settings/EditSettingsScreen.js", 4508 "file": "src/containers/settings/EditSettingsScreen.js",
4444 "id": "settings.app.form.iconSize", 4509 "id": "settings.app.form.iconSize",
4445 "start": { 4510 "start": {
4446 "column": 12, 4511 "column": 12,
4447 "line": 127 4512 "line": 135
4448 } 4513 }
4449 }, 4514 },
4450 { 4515 {
4451 "defaultMessage": "!!!Accent color", 4516 "defaultMessage": "!!!Accent color",
4452 "end": { 4517 "end": {
4453 "column": 3, 4518 "column": 3,
4454 "line": 134 4519 "line": 142
4455 }, 4520 },
4456 "file": "src/containers/settings/EditSettingsScreen.js", 4521 "file": "src/containers/settings/EditSettingsScreen.js",
4457 "id": "settings.app.form.accentColor", 4522 "id": "settings.app.form.accentColor",
4458 "start": { 4523 "start": {
4459 "column": 15, 4524 "column": 15,
4460 "line": 131 4525 "line": 139
4461 } 4526 }
4462 }, 4527 },
4463 { 4528 {
4464 "defaultMessage": "!!!Display disabled services tabs", 4529 "defaultMessage": "!!!Display disabled services tabs",
4465 "end": { 4530 "end": {
4466 "column": 3, 4531 "column": 3,
4467 "line": 138 4532 "line": 146
4468 }, 4533 },
4469 "file": "src/containers/settings/EditSettingsScreen.js", 4534 "file": "src/containers/settings/EditSettingsScreen.js",
4470 "id": "settings.app.form.showDisabledServices", 4535 "id": "settings.app.form.showDisabledServices",
4471 "start": { 4536 "start": {
4472 "column": 24, 4537 "column": 24,
4473 "line": 135 4538 "line": 143
4474 } 4539 }
4475 }, 4540 },
4476 { 4541 {
4477 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 4542 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
4478 "end": { 4543 "end": {
4479 "column": 3, 4544 "column": 3,
4480 "line": 142 4545 "line": 150
4481 }, 4546 },
4482 "file": "src/containers/settings/EditSettingsScreen.js", 4547 "file": "src/containers/settings/EditSettingsScreen.js",
4483 "id": "settings.app.form.showMessagesBadgesWhenMuted", 4548 "id": "settings.app.form.showMessagesBadgesWhenMuted",
4484 "start": { 4549 "start": {
4485 "column": 29, 4550 "column": 29,
4486 "line": 139 4551 "line": 147
4487 } 4552 }
4488 }, 4553 },
4489 { 4554 {
4490 "defaultMessage": "!!!Enable spell checking", 4555 "defaultMessage": "!!!Enable spell checking",
4491 "end": { 4556 "end": {
4492 "column": 3, 4557 "column": 3,
4493 "line": 146 4558 "line": 154
4494 }, 4559 },
4495 "file": "src/containers/settings/EditSettingsScreen.js", 4560 "file": "src/containers/settings/EditSettingsScreen.js",
4496 "id": "settings.app.form.enableSpellchecking", 4561 "id": "settings.app.form.enableSpellchecking",
4497 "start": { 4562 "start": {
4498 "column": 23, 4563 "column": 23,
4499 "line": 143 4564 "line": 151
4500 } 4565 }
4501 }, 4566 },
4502 { 4567 {
4503 "defaultMessage": "!!!Enable GPU Acceleration", 4568 "defaultMessage": "!!!Enable GPU Acceleration",
4504 "end": { 4569 "end": {
4505 "column": 3, 4570 "column": 3,
4506 "line": 150 4571 "line": 158
4507 }, 4572 },
4508 "file": "src/containers/settings/EditSettingsScreen.js", 4573 "file": "src/containers/settings/EditSettingsScreen.js",
4509 "id": "settings.app.form.enableGPUAcceleration", 4574 "id": "settings.app.form.enableGPUAcceleration",
4510 "start": { 4575 "start": {
4511 "column": 25, 4576 "column": 25,
4512 "line": 147 4577 "line": 155
4513 } 4578 }
4514 }, 4579 },
4515 { 4580 {
4516 "defaultMessage": "!!!Include beta versions", 4581 "defaultMessage": "!!!Include beta versions",
4517 "end": { 4582 "end": {
4518 "column": 3, 4583 "column": 3,
4519 "line": 154 4584 "line": 162
4520 }, 4585 },
4521 "file": "src/containers/settings/EditSettingsScreen.js", 4586 "file": "src/containers/settings/EditSettingsScreen.js",
4522 "id": "settings.app.form.beta", 4587 "id": "settings.app.form.beta",
4523 "start": { 4588 "start": {
4524 "column": 8, 4589 "column": 8,
4525 "line": 151 4590 "line": 159
4526 } 4591 }
4527 }, 4592 },
4528 { 4593 {
4529 "defaultMessage": "!!!Disable updates", 4594 "defaultMessage": "!!!Disable updates",
4530 "end": { 4595 "end": {
4531 "column": 3, 4596 "column": 3,
4532 "line": 158 4597 "line": 166
4533 }, 4598 },
4534 "file": "src/containers/settings/EditSettingsScreen.js", 4599 "file": "src/containers/settings/EditSettingsScreen.js",
4535 "id": "settings.app.form.noUpdates", 4600 "id": "settings.app.form.noUpdates",
4536 "start": { 4601 "start": {
4537 "column": 13, 4602 "column": 13,
4538 "line": 155 4603 "line": 163
4539 } 4604 }
4540 }, 4605 },
4541 { 4606 {
4542 "defaultMessage": "!!!Enable Franz Todos", 4607 "defaultMessage": "!!!Enable Franz Todos",
4543 "end": { 4608 "end": {
4544 "column": 3, 4609 "column": 3,
4545 "line": 162 4610 "line": 170
4546 }, 4611 },
4547 "file": "src/containers/settings/EditSettingsScreen.js", 4612 "file": "src/containers/settings/EditSettingsScreen.js",
4548 "id": "settings.app.form.enableTodos", 4613 "id": "settings.app.form.enableTodos",
4549 "start": { 4614 "start": {
4550 "column": 15, 4615 "column": 15,
4551 "line": 159 4616 "line": 167
4552 } 4617 }
4553 }, 4618 },
4554 { 4619 {
4555 "defaultMessage": "!!!Keep all workspaces loaded", 4620 "defaultMessage": "!!!Keep all workspaces loaded",
4556 "end": { 4621 "end": {
4557 "column": 3, 4622 "column": 3,
4558 "line": 166 4623 "line": 174
4559 }, 4624 },
4560 "file": "src/containers/settings/EditSettingsScreen.js", 4625 "file": "src/containers/settings/EditSettingsScreen.js",
4561 "id": "settings.app.form.keepAllWorkspacesLoaded", 4626 "id": "settings.app.form.keepAllWorkspacesLoaded",
4562 "start": { 4627 "start": {
4563 "column": 27, 4628 "column": 27,
4564 "line": 163 4629 "line": 171
4565 } 4630 }
4566 } 4631 }
4567 ], 4632 ],
@@ -6320,897 +6385,936 @@
6320 "defaultMessage": "!!!Edit", 6385 "defaultMessage": "!!!Edit",
6321 "end": { 6386 "end": {
6322 "column": 3, 6387 "column": 3,
6323 "line": 20 6388 "line": 21
6324 }, 6389 },
6325 "file": "src/lib/Menu.js", 6390 "file": "src/lib/Menu.js",
6326 "id": "menu.edit", 6391 "id": "menu.edit",
6327 "start": { 6392 "start": {
6328 "column": 8, 6393 "column": 8,
6329 "line": 17 6394 "line": 18
6330 } 6395 }
6331 }, 6396 },
6332 { 6397 {
6333 "defaultMessage": "!!!Undo", 6398 "defaultMessage": "!!!Undo",
6334 "end": { 6399 "end": {
6335 "column": 3, 6400 "column": 3,
6336 "line": 24 6401 "line": 25
6337 }, 6402 },
6338 "file": "src/lib/Menu.js", 6403 "file": "src/lib/Menu.js",
6339 "id": "menu.edit.undo", 6404 "id": "menu.edit.undo",
6340 "start": { 6405 "start": {
6341 "column": 8, 6406 "column": 8,
6342 "line": 21 6407 "line": 22
6343 } 6408 }
6344 }, 6409 },
6345 { 6410 {
6346 "defaultMessage": "!!!Redo", 6411 "defaultMessage": "!!!Redo",
6347 "end": { 6412 "end": {
6348 "column": 3, 6413 "column": 3,
6349 "line": 28 6414 "line": 29
6350 }, 6415 },
6351 "file": "src/lib/Menu.js", 6416 "file": "src/lib/Menu.js",
6352 "id": "menu.edit.redo", 6417 "id": "menu.edit.redo",
6353 "start": { 6418 "start": {
6354 "column": 8, 6419 "column": 8,
6355 "line": 25 6420 "line": 26
6356 } 6421 }
6357 }, 6422 },
6358 { 6423 {
6359 "defaultMessage": "!!!Cut", 6424 "defaultMessage": "!!!Cut",
6360 "end": { 6425 "end": {
6361 "column": 3, 6426 "column": 3,
6362 "line": 32 6427 "line": 33
6363 }, 6428 },
6364 "file": "src/lib/Menu.js", 6429 "file": "src/lib/Menu.js",
6365 "id": "menu.edit.cut", 6430 "id": "menu.edit.cut",
6366 "start": { 6431 "start": {
6367 "column": 7, 6432 "column": 7,
6368 "line": 29 6433 "line": 30
6369 } 6434 }
6370 }, 6435 },
6371 { 6436 {
6372 "defaultMessage": "!!!Copy", 6437 "defaultMessage": "!!!Copy",
6373 "end": { 6438 "end": {
6374 "column": 3, 6439 "column": 3,
6375 "line": 36 6440 "line": 37
6376 }, 6441 },
6377 "file": "src/lib/Menu.js", 6442 "file": "src/lib/Menu.js",
6378 "id": "menu.edit.copy", 6443 "id": "menu.edit.copy",
6379 "start": { 6444 "start": {
6380 "column": 8, 6445 "column": 8,
6381 "line": 33 6446 "line": 34
6382 } 6447 }
6383 }, 6448 },
6384 { 6449 {
6385 "defaultMessage": "!!!Paste", 6450 "defaultMessage": "!!!Paste",
6386 "end": { 6451 "end": {
6387 "column": 3, 6452 "column": 3,
6388 "line": 40 6453 "line": 41
6389 }, 6454 },
6390 "file": "src/lib/Menu.js", 6455 "file": "src/lib/Menu.js",
6391 "id": "menu.edit.paste", 6456 "id": "menu.edit.paste",
6392 "start": { 6457 "start": {
6393 "column": 9, 6458 "column": 9,
6394 "line": 37 6459 "line": 38
6395 } 6460 }
6396 }, 6461 },
6397 { 6462 {
6398 "defaultMessage": "!!!Paste And Match Style", 6463 "defaultMessage": "!!!Paste And Match Style",
6399 "end": { 6464 "end": {
6400 "column": 3, 6465 "column": 3,
6401 "line": 44 6466 "line": 45
6402 }, 6467 },
6403 "file": "src/lib/Menu.js", 6468 "file": "src/lib/Menu.js",
6404 "id": "menu.edit.pasteAndMatchStyle", 6469 "id": "menu.edit.pasteAndMatchStyle",
6405 "start": { 6470 "start": {
6406 "column": 22, 6471 "column": 22,
6407 "line": 41 6472 "line": 42
6408 } 6473 }
6409 }, 6474 },
6410 { 6475 {
6411 "defaultMessage": "!!!Delete", 6476 "defaultMessage": "!!!Delete",
6412 "end": { 6477 "end": {
6413 "column": 3, 6478 "column": 3,
6414 "line": 48 6479 "line": 49
6415 }, 6480 },
6416 "file": "src/lib/Menu.js", 6481 "file": "src/lib/Menu.js",
6417 "id": "menu.edit.delete", 6482 "id": "menu.edit.delete",
6418 "start": { 6483 "start": {
6419 "column": 10, 6484 "column": 10,
6420 "line": 45 6485 "line": 46
6421 } 6486 }
6422 }, 6487 },
6423 { 6488 {
6424 "defaultMessage": "!!!Select All", 6489 "defaultMessage": "!!!Select All",
6425 "end": { 6490 "end": {
6426 "column": 3, 6491 "column": 3,
6427 "line": 52 6492 "line": 53
6428 }, 6493 },
6429 "file": "src/lib/Menu.js", 6494 "file": "src/lib/Menu.js",
6430 "id": "menu.edit.selectAll", 6495 "id": "menu.edit.selectAll",
6431 "start": { 6496 "start": {
6432 "column": 13, 6497 "column": 13,
6433 "line": 49 6498 "line": 50
6499 }
6500 },
6501 {
6502 "defaultMessage": "!!!Find in Page",
6503 "end": {
6504 "column": 3,
6505 "line": 57
6506 },
6507 "file": "src/lib/Menu.js",
6508 "id": "menu.edit.findInPage",
6509 "start": {
6510 "column": 14,
6511 "line": 54
6434 } 6512 }
6435 }, 6513 },
6436 { 6514 {
6437 "defaultMessage": "!!!Speech", 6515 "defaultMessage": "!!!Speech",
6438 "end": { 6516 "end": {
6439 "column": 3, 6517 "column": 3,
6440 "line": 56 6518 "line": 61
6441 }, 6519 },
6442 "file": "src/lib/Menu.js", 6520 "file": "src/lib/Menu.js",
6443 "id": "menu.edit.speech", 6521 "id": "menu.edit.speech",
6444 "start": { 6522 "start": {
6445 "column": 10, 6523 "column": 10,
6446 "line": 53 6524 "line": 58
6447 } 6525 }
6448 }, 6526 },
6449 { 6527 {
6450 "defaultMessage": "!!!Start Speaking", 6528 "defaultMessage": "!!!Start Speaking",
6451 "end": { 6529 "end": {
6452 "column": 3, 6530 "column": 3,
6453 "line": 60 6531 "line": 65
6454 }, 6532 },
6455 "file": "src/lib/Menu.js", 6533 "file": "src/lib/Menu.js",
6456 "id": "menu.edit.startSpeaking", 6534 "id": "menu.edit.startSpeaking",
6457 "start": { 6535 "start": {
6458 "column": 17, 6536 "column": 17,
6459 "line": 57 6537 "line": 62
6460 } 6538 }
6461 }, 6539 },
6462 { 6540 {
6463 "defaultMessage": "!!!Stop Speaking", 6541 "defaultMessage": "!!!Stop Speaking",
6464 "end": { 6542 "end": {
6465 "column": 3, 6543 "column": 3,
6466 "line": 64 6544 "line": 69
6467 }, 6545 },
6468 "file": "src/lib/Menu.js", 6546 "file": "src/lib/Menu.js",
6469 "id": "menu.edit.stopSpeaking", 6547 "id": "menu.edit.stopSpeaking",
6470 "start": { 6548 "start": {
6471 "column": 16, 6549 "column": 16,
6472 "line": 61 6550 "line": 66
6473 } 6551 }
6474 }, 6552 },
6475 { 6553 {
6476 "defaultMessage": "!!!Start Dictation", 6554 "defaultMessage": "!!!Start Dictation",
6477 "end": { 6555 "end": {
6478 "column": 3, 6556 "column": 3,
6479 "line": 68 6557 "line": 73
6480 }, 6558 },
6481 "file": "src/lib/Menu.js", 6559 "file": "src/lib/Menu.js",
6482 "id": "menu.edit.startDictation", 6560 "id": "menu.edit.startDictation",
6483 "start": { 6561 "start": {
6484 "column": 18, 6562 "column": 18,
6485 "line": 65 6563 "line": 70
6486 } 6564 }
6487 }, 6565 },
6488 { 6566 {
6489 "defaultMessage": "!!!Emoji & Symbols", 6567 "defaultMessage": "!!!Emoji & Symbols",
6490 "end": { 6568 "end": {
6491 "column": 3, 6569 "column": 3,
6492 "line": 72 6570 "line": 77
6493 }, 6571 },
6494 "file": "src/lib/Menu.js", 6572 "file": "src/lib/Menu.js",
6495 "id": "menu.edit.emojiSymbols", 6573 "id": "menu.edit.emojiSymbols",
6496 "start": { 6574 "start": {
6497 "column": 16, 6575 "column": 16,
6498 "line": 69 6576 "line": 74
6499 } 6577 }
6500 }, 6578 },
6501 { 6579 {
6502 "defaultMessage": "!!!Open Quick Switch", 6580 "defaultMessage": "!!!Open Quick Switch",
6503 "end": { 6581 "end": {
6504 "column": 3, 6582 "column": 3,
6505 "line": 76 6583 "line": 81
6506 }, 6584 },
6507 "file": "src/lib/Menu.js", 6585 "file": "src/lib/Menu.js",
6508 "id": "menu.view.openQuickSwitch", 6586 "id": "menu.view.openQuickSwitch",
6509 "start": { 6587 "start": {
6510 "column": 19, 6588 "column": 19,
6511 "line": 73 6589 "line": 78
6512 } 6590 }
6513 }, 6591 },
6514 { 6592 {
6515 "defaultMessage": "!!!Back", 6593 "defaultMessage": "!!!Back",
6516 "end": { 6594 "end": {
6517 "column": 3, 6595 "column": 3,
6518 "line": 80 6596 "line": 85
6519 }, 6597 },
6520 "file": "src/lib/Menu.js", 6598 "file": "src/lib/Menu.js",
6521 "id": "menu.view.back", 6599 "id": "menu.view.back",
6522 "start": { 6600 "start": {
6523 "column": 8, 6601 "column": 8,
6524 "line": 77 6602 "line": 82
6525 } 6603 }
6526 }, 6604 },
6527 { 6605 {
6528 "defaultMessage": "!!!Forward", 6606 "defaultMessage": "!!!Forward",
6529 "end": { 6607 "end": {
6530 "column": 3, 6608 "column": 3,
6531 "line": 84 6609 "line": 89
6532 }, 6610 },
6533 "file": "src/lib/Menu.js", 6611 "file": "src/lib/Menu.js",
6534 "id": "menu.view.forward", 6612 "id": "menu.view.forward",
6535 "start": { 6613 "start": {
6536 "column": 11, 6614 "column": 11,
6537 "line": 81 6615 "line": 86
6538 } 6616 }
6539 }, 6617 },
6540 { 6618 {
6541 "defaultMessage": "!!!Actual Size", 6619 "defaultMessage": "!!!Actual Size",
6542 "end": { 6620 "end": {
6543 "column": 3, 6621 "column": 3,
6544 "line": 88 6622 "line": 93
6545 }, 6623 },
6546 "file": "src/lib/Menu.js", 6624 "file": "src/lib/Menu.js",
6547 "id": "menu.view.resetZoom", 6625 "id": "menu.view.resetZoom",
6548 "start": { 6626 "start": {
6549 "column": 13, 6627 "column": 13,
6550 "line": 85 6628 "line": 90
6551 } 6629 }
6552 }, 6630 },
6553 { 6631 {
6554 "defaultMessage": "!!!Zoom In", 6632 "defaultMessage": "!!!Zoom In",
6555 "end": { 6633 "end": {
6556 "column": 3, 6634 "column": 3,
6557 "line": 92 6635 "line": 97
6558 }, 6636 },
6559 "file": "src/lib/Menu.js", 6637 "file": "src/lib/Menu.js",
6560 "id": "menu.view.zoomIn", 6638 "id": "menu.view.zoomIn",
6561 "start": { 6639 "start": {
6562 "column": 10, 6640 "column": 10,
6563 "line": 89 6641 "line": 94
6564 } 6642 }
6565 }, 6643 },
6566 { 6644 {
6567 "defaultMessage": "!!!Zoom Out", 6645 "defaultMessage": "!!!Zoom Out",
6568 "end": { 6646 "end": {
6569 "column": 3, 6647 "column": 3,
6570 "line": 96 6648 "line": 101
6571 }, 6649 },
6572 "file": "src/lib/Menu.js", 6650 "file": "src/lib/Menu.js",
6573 "id": "menu.view.zoomOut", 6651 "id": "menu.view.zoomOut",
6574 "start": { 6652 "start": {
6575 "column": 11, 6653 "column": 11,
6576 "line": 93 6654 "line": 98
6577 } 6655 }
6578 }, 6656 },
6579 { 6657 {
6580 "defaultMessage": "!!!Enter Full Screen", 6658 "defaultMessage": "!!!Enter Full Screen",
6581 "end": { 6659 "end": {
6582 "column": 3, 6660 "column": 3,
6583 "line": 100 6661 "line": 105
6584 }, 6662 },
6585 "file": "src/lib/Menu.js", 6663 "file": "src/lib/Menu.js",
6586 "id": "menu.view.enterFullScreen", 6664 "id": "menu.view.enterFullScreen",
6587 "start": { 6665 "start": {
6588 "column": 19, 6666 "column": 19,
6589 "line": 97 6667 "line": 102
6590 } 6668 }
6591 }, 6669 },
6592 { 6670 {
6593 "defaultMessage": "!!!Exit Full Screen", 6671 "defaultMessage": "!!!Exit Full Screen",
6594 "end": { 6672 "end": {
6595 "column": 3, 6673 "column": 3,
6596 "line": 104 6674 "line": 109
6597 }, 6675 },
6598 "file": "src/lib/Menu.js", 6676 "file": "src/lib/Menu.js",
6599 "id": "menu.view.exitFullScreen", 6677 "id": "menu.view.exitFullScreen",
6600 "start": { 6678 "start": {
6601 "column": 18, 6679 "column": 18,
6602 "line": 101 6680 "line": 106
6603 } 6681 }
6604 }, 6682 },
6605 { 6683 {
6606 "defaultMessage": "!!!Toggle Full Screen", 6684 "defaultMessage": "!!!Toggle Full Screen",
6607 "end": { 6685 "end": {
6608 "column": 3, 6686 "column": 3,
6609 "line": 108 6687 "line": 113
6610 }, 6688 },
6611 "file": "src/lib/Menu.js", 6689 "file": "src/lib/Menu.js",
6612 "id": "menu.view.toggleFullScreen", 6690 "id": "menu.view.toggleFullScreen",
6613 "start": { 6691 "start": {
6614 "column": 20, 6692 "column": 20,
6615 "line": 105 6693 "line": 110
6616 } 6694 }
6617 }, 6695 },
6618 { 6696 {
6619 "defaultMessage": "!!!Toggle Developer Tools", 6697 "defaultMessage": "!!!Toggle Developer Tools",
6620 "end": { 6698 "end": {
6621 "column": 3, 6699 "column": 3,
6622 "line": 112 6700 "line": 117
6623 }, 6701 },
6624 "file": "src/lib/Menu.js", 6702 "file": "src/lib/Menu.js",
6625 "id": "menu.view.toggleDevTools", 6703 "id": "menu.view.toggleDevTools",
6626 "start": { 6704 "start": {
6627 "column": 18, 6705 "column": 18,
6628 "line": 109 6706 "line": 114
6629 } 6707 }
6630 }, 6708 },
6631 { 6709 {
6632 "defaultMessage": "!!!Toggle Todos Developer Tools", 6710 "defaultMessage": "!!!Toggle Todos Developer Tools",
6633 "end": { 6711 "end": {
6634 "column": 3, 6712 "column": 3,
6635 "line": 116 6713 "line": 121
6636 }, 6714 },
6637 "file": "src/lib/Menu.js", 6715 "file": "src/lib/Menu.js",
6638 "id": "menu.view.toggleTodosDevTools", 6716 "id": "menu.view.toggleTodosDevTools",
6639 "start": { 6717 "start": {
6640 "column": 23, 6718 "column": 23,
6641 "line": 113 6719 "line": 118
6642 } 6720 }
6643 }, 6721 },
6644 { 6722 {
6645 "defaultMessage": "!!!Toggle Service Developer Tools", 6723 "defaultMessage": "!!!Toggle Service Developer Tools",
6646 "end": { 6724 "end": {
6647 "column": 3, 6725 "column": 3,
6648 "line": 120 6726 "line": 125
6649 }, 6727 },
6650 "file": "src/lib/Menu.js", 6728 "file": "src/lib/Menu.js",
6651 "id": "menu.view.toggleServiceDevTools", 6729 "id": "menu.view.toggleServiceDevTools",
6652 "start": { 6730 "start": {
6653 "column": 25, 6731 "column": 25,
6654 "line": 117 6732 "line": 122
6655 } 6733 }
6656 }, 6734 },
6657 { 6735 {
6658 "defaultMessage": "!!!Reload Service", 6736 "defaultMessage": "!!!Reload Service",
6659 "end": { 6737 "end": {
6660 "column": 3, 6738 "column": 3,
6661 "line": 124 6739 "line": 129
6662 }, 6740 },
6663 "file": "src/lib/Menu.js", 6741 "file": "src/lib/Menu.js",
6664 "id": "menu.view.reloadService", 6742 "id": "menu.view.reloadService",
6665 "start": { 6743 "start": {
6666 "column": 17, 6744 "column": 17,
6667 "line": 121 6745 "line": 126
6668 } 6746 }
6669 }, 6747 },
6670 { 6748 {
6671 "defaultMessage": "!!!Reload Ferdi", 6749 "defaultMessage": "!!!Reload Ferdi",
6672 "end": { 6750 "end": {
6673 "column": 3, 6751 "column": 3,
6674 "line": 128 6752 "line": 133
6675 }, 6753 },
6676 "file": "src/lib/Menu.js", 6754 "file": "src/lib/Menu.js",
6677 "id": "menu.view.reloadFranz", 6755 "id": "menu.view.reloadFranz",
6678 "start": { 6756 "start": {
6679 "column": 15, 6757 "column": 15,
6680 "line": 125 6758 "line": 130
6681 } 6759 }
6682 }, 6760 },
6683 { 6761 {
6684 "defaultMessage": "!!!Lock Ferdi", 6762 "defaultMessage": "!!!Lock Ferdi",
6685 "end": { 6763 "end": {
6686 "column": 3, 6764 "column": 3,
6687 "line": 132 6765 "line": 137
6688 }, 6766 },
6689 "file": "src/lib/Menu.js", 6767 "file": "src/lib/Menu.js",
6690 "id": "menu.view.lockFerdi", 6768 "id": "menu.view.lockFerdi",
6691 "start": { 6769 "start": {
6692 "column": 13, 6770 "column": 13,
6693 "line": 129 6771 "line": 134
6694 } 6772 }
6695 }, 6773 },
6696 { 6774 {
6697 "defaultMessage": "!!!Minimize", 6775 "defaultMessage": "!!!Minimize",
6698 "end": { 6776 "end": {
6699 "column": 3, 6777 "column": 3,
6700 "line": 136 6778 "line": 141
6701 }, 6779 },
6702 "file": "src/lib/Menu.js", 6780 "file": "src/lib/Menu.js",
6703 "id": "menu.window.minimize", 6781 "id": "menu.window.minimize",
6704 "start": { 6782 "start": {
6705 "column": 12, 6783 "column": 12,
6706 "line": 133 6784 "line": 138
6707 } 6785 }
6708 }, 6786 },
6709 { 6787 {
6710 "defaultMessage": "!!!Close", 6788 "defaultMessage": "!!!Close",
6711 "end": { 6789 "end": {
6712 "column": 3, 6790 "column": 3,
6713 "line": 140 6791 "line": 145
6714 }, 6792 },
6715 "file": "src/lib/Menu.js", 6793 "file": "src/lib/Menu.js",
6716 "id": "menu.window.close", 6794 "id": "menu.window.close",
6717 "start": { 6795 "start": {
6718 "column": 9, 6796 "column": 9,
6719 "line": 137 6797 "line": 142
6720 } 6798 }
6721 }, 6799 },
6722 { 6800 {
6723 "defaultMessage": "!!!Learn More", 6801 "defaultMessage": "!!!Learn More",
6724 "end": { 6802 "end": {
6725 "column": 3, 6803 "column": 3,
6726 "line": 144 6804 "line": 149
6727 }, 6805 },
6728 "file": "src/lib/Menu.js", 6806 "file": "src/lib/Menu.js",
6729 "id": "menu.help.learnMore", 6807 "id": "menu.help.learnMore",
6730 "start": { 6808 "start": {
6731 "column": 13, 6809 "column": 13,
6732 "line": 141 6810 "line": 146
6733 } 6811 }
6734 }, 6812 },
6735 { 6813 {
6736 "defaultMessage": "!!!Changelog", 6814 "defaultMessage": "!!!Changelog",
6737 "end": { 6815 "end": {
6738 "column": 3, 6816 "column": 3,
6739 "line": 148 6817 "line": 153
6740 }, 6818 },
6741 "file": "src/lib/Menu.js", 6819 "file": "src/lib/Menu.js",
6742 "id": "menu.help.changelog", 6820 "id": "menu.help.changelog",
6743 "start": { 6821 "start": {
6744 "column": 13, 6822 "column": 13,
6745 "line": 145 6823 "line": 150
6746 } 6824 }
6747 }, 6825 },
6748 { 6826 {
6749 "defaultMessage": "!!!Support", 6827 "defaultMessage": "!!!Support",
6750 "end": { 6828 "end": {
6751 "column": 3, 6829 "column": 3,
6752 "line": 152 6830 "line": 157
6753 }, 6831 },
6754 "file": "src/lib/Menu.js", 6832 "file": "src/lib/Menu.js",
6755 "id": "menu.help.support", 6833 "id": "menu.help.support",
6756 "start": { 6834 "start": {
6757 "column": 11, 6835 "column": 11,
6758 "line": 149 6836 "line": 154
6759 } 6837 }
6760 }, 6838 },
6761 { 6839 {
6762 "defaultMessage": "!!!Copy Debug Information", 6840 "defaultMessage": "!!!Copy Debug Information",
6763 "end": { 6841 "end": {
6764 "column": 3, 6842 "column": 3,
6765 "line": 156 6843 "line": 161
6766 }, 6844 },
6767 "file": "src/lib/Menu.js", 6845 "file": "src/lib/Menu.js",
6768 "id": "menu.help.debugInfo", 6846 "id": "menu.help.debugInfo",
6769 "start": { 6847 "start": {
6770 "column": 13, 6848 "column": 13,
6771 "line": 153 6849 "line": 158
6772 } 6850 }
6773 }, 6851 },
6774 { 6852 {
6775 "defaultMessage": "!!!Publish Debug Information", 6853 "defaultMessage": "!!!Publish Debug Information",
6776 "end": { 6854 "end": {
6777 "column": 3, 6855 "column": 3,
6778 "line": 160 6856 "line": 165
6779 }, 6857 },
6780 "file": "src/lib/Menu.js", 6858 "file": "src/lib/Menu.js",
6781 "id": "menu.help.publishDebugInfo", 6859 "id": "menu.help.publishDebugInfo",
6782 "start": { 6860 "start": {
6783 "column": 20, 6861 "column": 20,
6784 "line": 157 6862 "line": 162
6785 } 6863 }
6786 }, 6864 },
6787 { 6865 {
6788 "defaultMessage": "!!!Ferdi Debug Information", 6866 "defaultMessage": "!!!Ferdi Debug Information",
6789 "end": { 6867 "end": {
6790 "column": 3, 6868 "column": 3,
6791 "line": 164 6869 "line": 169
6792 }, 6870 },
6793 "file": "src/lib/Menu.js", 6871 "file": "src/lib/Menu.js",
6794 "id": "menu.help.debugInfoCopiedHeadline", 6872 "id": "menu.help.debugInfoCopiedHeadline",
6795 "start": { 6873 "start": {
6796 "column": 27, 6874 "column": 27,
6797 "line": 161 6875 "line": 166
6798 } 6876 }
6799 }, 6877 },
6800 { 6878 {
6801 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 6879 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
6802 "end": { 6880 "end": {
6803 "column": 3, 6881 "column": 3,
6804 "line": 168 6882 "line": 173
6805 }, 6883 },
6806 "file": "src/lib/Menu.js", 6884 "file": "src/lib/Menu.js",
6807 "id": "menu.help.debugInfoCopiedBody", 6885 "id": "menu.help.debugInfoCopiedBody",
6808 "start": { 6886 "start": {
6809 "column": 23, 6887 "column": 23,
6810 "line": 165 6888 "line": 170
6889 }
6890 },
6891 {
6892 "defaultMessage": "!!!Unlock with Touch ID",
6893 "end": {
6894 "column": 3,
6895 "line": 177
6896 },
6897 "file": "src/lib/Menu.js",
6898 "id": "locked.touchId",
6899 "start": {
6900 "column": 11,
6901 "line": 174
6902 }
6903 },
6904 {
6905 "defaultMessage": "!!!unlock via Touch ID",
6906 "end": {
6907 "column": 3,
6908 "line": 181
6909 },
6910 "file": "src/lib/Menu.js",
6911 "id": "locked.touchIdPrompt",
6912 "start": {
6913 "column": 17,
6914 "line": 178
6811 } 6915 }
6812 }, 6916 },
6813 { 6917 {
6814 "defaultMessage": "!!!Terms of Service", 6918 "defaultMessage": "!!!Terms of Service",
6815 "end": { 6919 "end": {
6816 "column": 3, 6920 "column": 3,
6817 "line": 172 6921 "line": 185
6818 }, 6922 },
6819 "file": "src/lib/Menu.js", 6923 "file": "src/lib/Menu.js",
6820 "id": "menu.help.tos", 6924 "id": "menu.help.tos",
6821 "start": { 6925 "start": {
6822 "column": 7, 6926 "column": 7,
6823 "line": 169 6927 "line": 182
6824 } 6928 }
6825 }, 6929 },
6826 { 6930 {
6827 "defaultMessage": "!!!Privacy Statement", 6931 "defaultMessage": "!!!Privacy Statement",
6828 "end": { 6932 "end": {
6829 "column": 3, 6933 "column": 3,
6830 "line": 176 6934 "line": 189
6831 }, 6935 },
6832 "file": "src/lib/Menu.js", 6936 "file": "src/lib/Menu.js",
6833 "id": "menu.help.privacy", 6937 "id": "menu.help.privacy",
6834 "start": { 6938 "start": {
6835 "column": 11, 6939 "column": 11,
6836 "line": 173 6940 "line": 186
6837 } 6941 }
6838 }, 6942 },
6839 { 6943 {
6840 "defaultMessage": "!!!File", 6944 "defaultMessage": "!!!File",
6841 "end": { 6945 "end": {
6842 "column": 3, 6946 "column": 3,
6843 "line": 180 6947 "line": 193
6844 }, 6948 },
6845 "file": "src/lib/Menu.js", 6949 "file": "src/lib/Menu.js",
6846 "id": "menu.file", 6950 "id": "menu.file",
6847 "start": { 6951 "start": {
6848 "column": 8, 6952 "column": 8,
6849 "line": 177 6953 "line": 190
6850 } 6954 }
6851 }, 6955 },
6852 { 6956 {
6853 "defaultMessage": "!!!View", 6957 "defaultMessage": "!!!View",
6854 "end": { 6958 "end": {
6855 "column": 3, 6959 "column": 3,
6856 "line": 184 6960 "line": 197
6857 }, 6961 },
6858 "file": "src/lib/Menu.js", 6962 "file": "src/lib/Menu.js",
6859 "id": "menu.view", 6963 "id": "menu.view",
6860 "start": { 6964 "start": {
6861 "column": 8, 6965 "column": 8,
6862 "line": 181 6966 "line": 194
6863 } 6967 }
6864 }, 6968 },
6865 { 6969 {
6866 "defaultMessage": "!!!Services", 6970 "defaultMessage": "!!!Services",
6867 "end": { 6971 "end": {
6868 "column": 3, 6972 "column": 3,
6869 "line": 188 6973 "line": 201
6870 }, 6974 },
6871 "file": "src/lib/Menu.js", 6975 "file": "src/lib/Menu.js",
6872 "id": "menu.services", 6976 "id": "menu.services",
6873 "start": { 6977 "start": {
6874 "column": 12, 6978 "column": 12,
6875 "line": 185 6979 "line": 198
6876 } 6980 }
6877 }, 6981 },
6878 { 6982 {
6879 "defaultMessage": "!!!Window", 6983 "defaultMessage": "!!!Window",
6880 "end": { 6984 "end": {
6881 "column": 3, 6985 "column": 3,
6882 "line": 192 6986 "line": 205
6883 }, 6987 },
6884 "file": "src/lib/Menu.js", 6988 "file": "src/lib/Menu.js",
6885 "id": "menu.window", 6989 "id": "menu.window",
6886 "start": { 6990 "start": {
6887 "column": 10, 6991 "column": 10,
6888 "line": 189 6992 "line": 202
6889 } 6993 }
6890 }, 6994 },
6891 { 6995 {
6892 "defaultMessage": "!!!Help", 6996 "defaultMessage": "!!!Help",
6893 "end": { 6997 "end": {
6894 "column": 3, 6998 "column": 3,
6895 "line": 196 6999 "line": 209
6896 }, 7000 },
6897 "file": "src/lib/Menu.js", 7001 "file": "src/lib/Menu.js",
6898 "id": "menu.help", 7002 "id": "menu.help",
6899 "start": { 7003 "start": {
6900 "column": 8, 7004 "column": 8,
6901 "line": 193 7005 "line": 206
6902 } 7006 }
6903 }, 7007 },
6904 { 7008 {
6905 "defaultMessage": "!!!About Ferdi", 7009 "defaultMessage": "!!!About Ferdi",
6906 "end": { 7010 "end": {
6907 "column": 3, 7011 "column": 3,
6908 "line": 200 7012 "line": 213
6909 }, 7013 },
6910 "file": "src/lib/Menu.js", 7014 "file": "src/lib/Menu.js",
6911 "id": "menu.app.about", 7015 "id": "menu.app.about",
6912 "start": { 7016 "start": {
6913 "column": 9, 7017 "column": 9,
6914 "line": 197 7018 "line": 210
6915 } 7019 }
6916 }, 7020 },
6917 { 7021 {
6918 "defaultMessage": "!!!What's new?", 7022 "defaultMessage": "!!!What's new?",
6919 "end": { 7023 "end": {
6920 "column": 3, 7024 "column": 3,
6921 "line": 204 7025 "line": 217
6922 }, 7026 },
6923 "file": "src/lib/Menu.js", 7027 "file": "src/lib/Menu.js",
6924 "id": "menu.app.announcement", 7028 "id": "menu.app.announcement",
6925 "start": { 7029 "start": {
6926 "column": 16, 7030 "column": 16,
6927 "line": 201 7031 "line": 214
6928 } 7032 }
6929 }, 7033 },
6930 { 7034 {
6931 "defaultMessage": "!!!Settings", 7035 "defaultMessage": "!!!Settings",
6932 "end": { 7036 "end": {
6933 "column": 3, 7037 "column": 3,
6934 "line": 208 7038 "line": 221
6935 }, 7039 },
6936 "file": "src/lib/Menu.js", 7040 "file": "src/lib/Menu.js",
6937 "id": "menu.app.settings", 7041 "id": "menu.app.settings",
6938 "start": { 7042 "start": {
6939 "column": 12, 7043 "column": 12,
6940 "line": 205 7044 "line": 218
6941 } 7045 }
6942 }, 7046 },
6943 { 7047 {
6944 "defaultMessage": "!!!Check for updates", 7048 "defaultMessage": "!!!Check for updates",
6945 "end": { 7049 "end": {
6946 "column": 3, 7050 "column": 3,
6947 "line": 212 7051 "line": 225
6948 }, 7052 },
6949 "file": "src/lib/Menu.js", 7053 "file": "src/lib/Menu.js",
6950 "id": "menu.app.checkForUpdates", 7054 "id": "menu.app.checkForUpdates",
6951 "start": { 7055 "start": {
6952 "column": 19, 7056 "column": 19,
6953 "line": 209 7057 "line": 222
6954 } 7058 }
6955 }, 7059 },
6956 { 7060 {
6957 "defaultMessage": "!!!Hide", 7061 "defaultMessage": "!!!Hide",
6958 "end": { 7062 "end": {
6959 "column": 3, 7063 "column": 3,
6960 "line": 216 7064 "line": 229
6961 }, 7065 },
6962 "file": "src/lib/Menu.js", 7066 "file": "src/lib/Menu.js",
6963 "id": "menu.app.hide", 7067 "id": "menu.app.hide",
6964 "start": { 7068 "start": {
6965 "column": 8, 7069 "column": 8,
6966 "line": 213 7070 "line": 226
6967 } 7071 }
6968 }, 7072 },
6969 { 7073 {
6970 "defaultMessage": "!!!Hide Others", 7074 "defaultMessage": "!!!Hide Others",
6971 "end": { 7075 "end": {
6972 "column": 3, 7076 "column": 3,
6973 "line": 220 7077 "line": 233
6974 }, 7078 },
6975 "file": "src/lib/Menu.js", 7079 "file": "src/lib/Menu.js",
6976 "id": "menu.app.hideOthers", 7080 "id": "menu.app.hideOthers",
6977 "start": { 7081 "start": {
6978 "column": 14, 7082 "column": 14,
6979 "line": 217 7083 "line": 230
6980 } 7084 }
6981 }, 7085 },
6982 { 7086 {
6983 "defaultMessage": "!!!Unhide", 7087 "defaultMessage": "!!!Unhide",
6984 "end": { 7088 "end": {
6985 "column": 3, 7089 "column": 3,
6986 "line": 224 7090 "line": 237
6987 }, 7091 },
6988 "file": "src/lib/Menu.js", 7092 "file": "src/lib/Menu.js",
6989 "id": "menu.app.unhide", 7093 "id": "menu.app.unhide",
6990 "start": { 7094 "start": {
6991 "column": 10, 7095 "column": 10,
6992 "line": 221 7096 "line": 234
6993 } 7097 }
6994 }, 7098 },
6995 { 7099 {
6996 "defaultMessage": "!!!Auto-hide menu bar", 7100 "defaultMessage": "!!!Auto-hide menu bar",
6997 "end": { 7101 "end": {
6998 "column": 3, 7102 "column": 3,
6999 "line": 228 7103 "line": 241
7000 }, 7104 },
7001 "file": "src/lib/Menu.js", 7105 "file": "src/lib/Menu.js",
7002 "id": "menu.app.autohideMenuBar", 7106 "id": "menu.app.autohideMenuBar",
7003 "start": { 7107 "start": {
7004 "column": 19, 7108 "column": 19,
7005 "line": 225 7109 "line": 238
7006 } 7110 }
7007 }, 7111 },
7008 { 7112 {
7009 "defaultMessage": "!!!Quit", 7113 "defaultMessage": "!!!Quit",
7010 "end": { 7114 "end": {
7011 "column": 3, 7115 "column": 3,
7012 "line": 232 7116 "line": 245
7013 }, 7117 },
7014 "file": "src/lib/Menu.js", 7118 "file": "src/lib/Menu.js",
7015 "id": "menu.app.quit", 7119 "id": "menu.app.quit",
7016 "start": { 7120 "start": {
7017 "column": 8, 7121 "column": 8,
7018 "line": 229 7122 "line": 242
7019 } 7123 }
7020 }, 7124 },
7021 { 7125 {
7022 "defaultMessage": "!!!Add New Service...", 7126 "defaultMessage": "!!!Add New Service...",
7023 "end": { 7127 "end": {
7024 "column": 3, 7128 "column": 3,
7025 "line": 236 7129 "line": 249
7026 }, 7130 },
7027 "file": "src/lib/Menu.js", 7131 "file": "src/lib/Menu.js",
7028 "id": "menu.services.addNewService", 7132 "id": "menu.services.addNewService",
7029 "start": { 7133 "start": {
7030 "column": 17, 7134 "column": 17,
7031 "line": 233 7135 "line": 246
7032 } 7136 }
7033 }, 7137 },
7034 { 7138 {
7035 "defaultMessage": "!!!Add New Workspace...", 7139 "defaultMessage": "!!!Add New Workspace...",
7036 "end": { 7140 "end": {
7037 "column": 3, 7141 "column": 3,
7038 "line": 240 7142 "line": 253
7039 }, 7143 },
7040 "file": "src/lib/Menu.js", 7144 "file": "src/lib/Menu.js",
7041 "id": "menu.workspaces.addNewWorkspace", 7145 "id": "menu.workspaces.addNewWorkspace",
7042 "start": { 7146 "start": {
7043 "column": 19, 7147 "column": 19,
7044 "line": 237 7148 "line": 250
7045 } 7149 }
7046 }, 7150 },
7047 { 7151 {
7048 "defaultMessage": "!!!Open workspace drawer", 7152 "defaultMessage": "!!!Open workspace drawer",
7049 "end": { 7153 "end": {
7050 "column": 3, 7154 "column": 3,
7051 "line": 244 7155 "line": 257
7052 }, 7156 },
7053 "file": "src/lib/Menu.js", 7157 "file": "src/lib/Menu.js",
7054 "id": "menu.workspaces.openWorkspaceDrawer", 7158 "id": "menu.workspaces.openWorkspaceDrawer",
7055 "start": { 7159 "start": {
7056 "column": 23, 7160 "column": 23,
7057 "line": 241 7161 "line": 254
7058 } 7162 }
7059 }, 7163 },
7060 { 7164 {
7061 "defaultMessage": "!!!Close workspace drawer", 7165 "defaultMessage": "!!!Close workspace drawer",
7062 "end": { 7166 "end": {
7063 "column": 3, 7167 "column": 3,
7064 "line": 248 7168 "line": 261
7065 }, 7169 },
7066 "file": "src/lib/Menu.js", 7170 "file": "src/lib/Menu.js",
7067 "id": "menu.workspaces.closeWorkspaceDrawer", 7171 "id": "menu.workspaces.closeWorkspaceDrawer",
7068 "start": { 7172 "start": {
7069 "column": 24, 7173 "column": 24,
7070 "line": 245 7174 "line": 258
7071 } 7175 }
7072 }, 7176 },
7073 { 7177 {
7074 "defaultMessage": "!!!Activate next service...", 7178 "defaultMessage": "!!!Activate next service...",
7075 "end": { 7179 "end": {
7076 "column": 3, 7180 "column": 3,
7077 "line": 252 7181 "line": 265
7078 }, 7182 },
7079 "file": "src/lib/Menu.js", 7183 "file": "src/lib/Menu.js",
7080 "id": "menu.services.setNextServiceActive", 7184 "id": "menu.services.setNextServiceActive",
7081 "start": { 7185 "start": {
7082 "column": 23, 7186 "column": 23,
7083 "line": 249 7187 "line": 262
7084 } 7188 }
7085 }, 7189 },
7086 { 7190 {
7087 "defaultMessage": "!!!Activate previous service...", 7191 "defaultMessage": "!!!Activate previous service...",
7088 "end": { 7192 "end": {
7089 "column": 3, 7193 "column": 3,
7090 "line": 256 7194 "line": 269
7091 }, 7195 },
7092 "file": "src/lib/Menu.js", 7196 "file": "src/lib/Menu.js",
7093 "id": "menu.services.activatePreviousService", 7197 "id": "menu.services.activatePreviousService",
7094 "start": { 7198 "start": {
7095 "column": 27, 7199 "column": 27,
7096 "line": 253 7200 "line": 266
7097 } 7201 }
7098 }, 7202 },
7099 { 7203 {
7100 "defaultMessage": "!!!Disable notifications & audio", 7204 "defaultMessage": "!!!Disable notifications & audio",
7101 "end": { 7205 "end": {
7102 "column": 3, 7206 "column": 3,
7103 "line": 260 7207 "line": 273
7104 }, 7208 },
7105 "file": "src/lib/Menu.js", 7209 "file": "src/lib/Menu.js",
7106 "id": "sidebar.muteApp", 7210 "id": "sidebar.muteApp",
7107 "start": { 7211 "start": {
7108 "column": 11, 7212 "column": 11,
7109 "line": 257 7213 "line": 270
7110 } 7214 }
7111 }, 7215 },
7112 { 7216 {
7113 "defaultMessage": "!!!Enable notifications & audio", 7217 "defaultMessage": "!!!Enable notifications & audio",
7114 "end": { 7218 "end": {
7115 "column": 3, 7219 "column": 3,
7116 "line": 264 7220 "line": 277
7117 }, 7221 },
7118 "file": "src/lib/Menu.js", 7222 "file": "src/lib/Menu.js",
7119 "id": "sidebar.unmuteApp", 7223 "id": "sidebar.unmuteApp",
7120 "start": { 7224 "start": {
7121 "column": 13, 7225 "column": 13,
7122 "line": 261 7226 "line": 274
7123 } 7227 }
7124 }, 7228 },
7125 { 7229 {
7126 "defaultMessage": "!!!Workspaces", 7230 "defaultMessage": "!!!Workspaces",
7127 "end": { 7231 "end": {
7128 "column": 3, 7232 "column": 3,
7129 "line": 268 7233 "line": 281
7130 }, 7234 },
7131 "file": "src/lib/Menu.js", 7235 "file": "src/lib/Menu.js",
7132 "id": "menu.workspaces", 7236 "id": "menu.workspaces",
7133 "start": { 7237 "start": {
7134 "column": 14, 7238 "column": 14,
7135 "line": 265 7239 "line": 278
7136 } 7240 }
7137 }, 7241 },
7138 { 7242 {
7139 "defaultMessage": "!!!Default", 7243 "defaultMessage": "!!!Default",
7140 "end": { 7244 "end": {
7141 "column": 3, 7245 "column": 3,
7142 "line": 272 7246 "line": 285
7143 }, 7247 },
7144 "file": "src/lib/Menu.js", 7248 "file": "src/lib/Menu.js",
7145 "id": "menu.workspaces.defaultWorkspace", 7249 "id": "menu.workspaces.defaultWorkspace",
7146 "start": { 7250 "start": {
7147 "column": 20, 7251 "column": 20,
7148 "line": 269 7252 "line": 282
7149 } 7253 }
7150 }, 7254 },
7151 { 7255 {
7152 "defaultMessage": "!!!Todos", 7256 "defaultMessage": "!!!Todos",
7153 "end": { 7257 "end": {
7154 "column": 3, 7258 "column": 3,
7155 "line": 276 7259 "line": 289
7156 }, 7260 },
7157 "file": "src/lib/Menu.js", 7261 "file": "src/lib/Menu.js",
7158 "id": "menu.todos", 7262 "id": "menu.todos",
7159 "start": { 7263 "start": {
7160 "column": 9, 7264 "column": 9,
7161 "line": 273 7265 "line": 286
7162 } 7266 }
7163 }, 7267 },
7164 { 7268 {
7165 "defaultMessage": "!!!Open Todos drawer", 7269 "defaultMessage": "!!!Open Todos drawer",
7166 "end": { 7270 "end": {
7167 "column": 3, 7271 "column": 3,
7168 "line": 280 7272 "line": 293
7169 }, 7273 },
7170 "file": "src/lib/Menu.js", 7274 "file": "src/lib/Menu.js",
7171 "id": "menu.Todoss.openTodosDrawer", 7275 "id": "menu.Todoss.openTodosDrawer",
7172 "start": { 7276 "start": {
7173 "column": 19, 7277 "column": 19,
7174 "line": 277 7278 "line": 290
7175 } 7279 }
7176 }, 7280 },
7177 { 7281 {
7178 "defaultMessage": "!!!Close Todos drawer", 7282 "defaultMessage": "!!!Close Todos drawer",
7179 "end": { 7283 "end": {
7180 "column": 3, 7284 "column": 3,
7181 "line": 284 7285 "line": 297
7182 }, 7286 },
7183 "file": "src/lib/Menu.js", 7287 "file": "src/lib/Menu.js",
7184 "id": "menu.Todoss.closeTodosDrawer", 7288 "id": "menu.Todoss.closeTodosDrawer",
7185 "start": { 7289 "start": {
7186 "column": 20, 7290 "column": 20,
7187 "line": 281 7291 "line": 294
7188 } 7292 }
7189 }, 7293 },
7190 { 7294 {
7191 "defaultMessage": "!!!Enable Todos", 7295 "defaultMessage": "!!!Enable Todos",
7192 "end": { 7296 "end": {
7193 "column": 3, 7297 "column": 3,
7194 "line": 288 7298 "line": 301
7195 }, 7299 },
7196 "file": "src/lib/Menu.js", 7300 "file": "src/lib/Menu.js",
7197 "id": "menu.todos.enableTodos", 7301 "id": "menu.todos.enableTodos",
7198 "start": { 7302 "start": {
7199 "column": 15, 7303 "column": 15,
7200 "line": 285 7304 "line": 298
7201 } 7305 }
7202 }, 7306 },
7203 { 7307 {
7204 "defaultMessage": "!!!Home", 7308 "defaultMessage": "!!!Home",
7205 "end": { 7309 "end": {
7206 "column": 3, 7310 "column": 3,
7207 "line": 292 7311 "line": 305
7208 }, 7312 },
7209 "file": "src/lib/Menu.js", 7313 "file": "src/lib/Menu.js",
7210 "id": "menu.services.goHome", 7314 "id": "menu.services.goHome",
7211 "start": { 7315 "start": {
7212 "column": 17, 7316 "column": 17,
7213 "line": 289 7317 "line": 302
7214 } 7318 }
7215 } 7319 }
7216 ], 7320 ],
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json
index 091740ca6..9223ee44f 100644
--- a/src/i18n/locales/el.json
+++ b/src/i18n/locales/el.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Αποκοπή", 116 "menu.edit.cut": "Αποκοπή",
114 "menu.edit.delete": "ΔιαγÏαφή", 117 "menu.edit.delete": "ΔιαγÏαφή",
115 "menu.edit.emojiSymbols": "Emoji & ΣÏμβολα", 118 "menu.edit.emojiSymbols": "Emoji & ΣÏμβολα",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Επικόλληση", 120 "menu.edit.paste": "Επικόλληση",
117 "menu.edit.pasteAndMatchStyle": "Επικόλληση και διατήÏηση μοÏφοποίησης", 121 "menu.edit.pasteAndMatchStyle": "Επικόλληση και διατήÏηση μοÏφοποίησης",
118 "menu.edit.redo": "ΑκÏÏωση αναίÏεσης", 122 "menu.edit.redo": "ΑκÏÏωση αναίÏεσης",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "ΚÏατήστε το Ferdi στο παÏασκήνιο κατά το κλείσιμο του παÏαθÏÏου", 295 "settings.app.form.runInBackground": "ΚÏατήστε το Ferdi στο παÏασκήνιο κατά το κλείσιμο του παÏαθÏÏου",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Ρυθμίσεις", 308 "settings.app.headline": "Ρυθμίσεις",
303 "settings.app.headlineAdvanced": "Για Ï€ÏοχωÏημένους", 309 "settings.app.headlineAdvanced": "Για Ï€ÏοχωÏημένους",
304 "settings.app.headlineAppearance": "Εμφάνιση", 310 "settings.app.headlineAppearance": "Εμφάνιση",
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 36494724b..4c14c8f90 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a Franz account to log in?", 92 "login.customServerQuestion": "Using a Franz account to log in?",
90 "login.customServerSuggestion": "Try importing your Franz account into Ferdi", 93 "login.customServerSuggestion": "Try importing your Franz account into Ferdi",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 21d3c8228..654b1300f 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Contraseña incorrecta", 85 "locked.invalidCredentials": "Contraseña incorrecta",
86 "locked.password.label": "Contraseña", 86 "locked.password.label": "Contraseña",
87 "locked.submit.label": "Desbloquear", 87 "locked.submit.label": "Desbloquear",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Cambiar servidor", 91 "login.changeServer": "Cambiar servidor",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cortar", 116 "menu.edit.cut": "Cortar",
114 "menu.edit.delete": "Borrar", 117 "menu.edit.delete": "Borrar",
115 "menu.edit.emojiSymbols": "Emoji y Símbolos", 118 "menu.edit.emojiSymbols": "Emoji y Símbolos",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Pegar", 120 "menu.edit.paste": "Pegar",
117 "menu.edit.pasteAndMatchStyle": "Pegar con el mismo estilo", 121 "menu.edit.pasteAndMatchStyle": "Pegar con el mismo estilo",
118 "menu.edit.redo": "Rehacer", 122 "menu.edit.redo": "Rehacer",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Desactivar actualizaciones", 292 "settings.app.form.noUpdates": "Desactivar actualizaciones",
289 "settings.app.form.privateNotifications": "No mostrar contenido de mensajes en notificaciones", 293 "settings.app.form.privateNotifications": "No mostrar contenido de mensajes en notificaciones",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Mantener Ferdi en segundo plano al cerrar la ventana", 295 "settings.app.form.runInBackground": "Mantener Ferdi en segundo plano al cerrar la ventana",
291 "settings.app.form.scheduledDNDEnabled": "Activar programación \"No molestar\"", 296 "settings.app.form.scheduledDNDEnabled": "Activar programación \"No molestar\"",
292 "settings.app.form.scheduledDNDEnd": "A", 297 "settings.app.form.scheduledDNDEnd": "A",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Servidor de tareas", 305 "settings.app.form.todoServer": "Servidor de tareas",
301 "settings.app.form.universalDarkMode": "Activar modo oscuro universal", 306 "settings.app.form.universalDarkMode": "Activar modo oscuro universal",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Configuración", 308 "settings.app.headline": "Configuración",
303 "settings.app.headlineAdvanced": "Avanzado", 309 "settings.app.headlineAdvanced": "Avanzado",
304 "settings.app.headlineAppearance": "Apariencia", 310 "settings.app.headlineAppearance": "Apariencia",
diff --git a/src/i18n/locales/fi.json b/src/i18n/locales/fi.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/fi.json
+++ b/src/i18n/locales/fi.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index 0e767983d..f8d945ec0 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -45,7 +45,7 @@
45 "feature.shareFranz.shareText.twitter": "J'ai ajouté {count} services à Ferdi! Télécharge l'application gratuite pour WhatsApp, Messenger, Slack, Skype et autres sur www.getferdi.com /cc @FerdiMessenger", 45 "feature.shareFranz.shareText.twitter": "J'ai ajouté {count} services à Ferdi! Télécharge l'application gratuite pour WhatsApp, Messenger, Slack, Skype et autres sur www.getferdi.com /cc @FerdiMessenger",
46 "feature.shareFranz.text": "Dites à vos amis et collègues a quel point Ferdi est super et aidez nous à faire passer le mot.", 46 "feature.shareFranz.text": "Dites à vos amis et collègues a quel point Ferdi est super et aidez nous à faire passer le mot.",
47 "feature.todos.premium.info": "Ferdi Todos est disponible aux utilisateurs premium maintenant!", 47 "feature.todos.premium.info": "Ferdi Todos est disponible aux utilisateurs premium maintenant!",
48 "feature.todos.premium.rollout": "Tous le monde devra attendre un peux plus longtemps.", 48 "feature.todos.premium.rollout": "Tout le monde devra attendre un peux plus longtemps.",
49 "feature.todos.premium.upgrade": "Améliorez votre compte", 49 "feature.todos.premium.upgrade": "Améliorez votre compte",
50 "feature.trialStatusBar.cta": "Améliorer maintenant", 50 "feature.trialStatusBar.cta": "Améliorer maintenant",
51 "feature.trialStatusBar.expired": "Votre essai gratuit Ferdi {plan} a expiré, veuillez mettre à jour votre compte.", 51 "feature.trialStatusBar.expired": "Votre essai gratuit Ferdi {plan} a expiré, veuillez mettre à jour votre compte.",
@@ -61,12 +61,12 @@
61 "global.spellchecking.autodetect": "Détecter automatiquement la langue", 61 "global.spellchecking.autodetect": "Détecter automatiquement la langue",
62 "global.spellchecking.autodetect.short": "Automatiquement", 62 "global.spellchecking.autodetect.short": "Automatiquement",
63 "global.spellchecking.language": "Langue de la vérification orthographique", 63 "global.spellchecking.language": "Langue de la vérification orthographique",
64 "global.upgradeButton.upgradeToPro": "Améliorez à Ferdi Professionnel", 64 "global.upgradeButton.upgradeToPro": "Passez à Ferdi Professionnel",
65 "import.headline": "Importez vos services depuis la version 4 de Ferdi", 65 "import.headline": "Importez vos services depuis la version 4 de Ferdi",
66 "import.notSupportedHeadline": "Ces services ne sont pas encore supportés par la version 5 de Ferdi", 66 "import.notSupportedHeadline": "Ces services ne sont pas encore supportés par la version 5 de Ferdi",
67 "import.skip.label": "Je veux ajouter des services manuellement", 67 "import.skip.label": "Je veux ajouter des services manuellement",
68 "import.submit.label": "Importer des services", 68 "import.submit.label": "Importer des services",
69 "infobar.authRequestFailed": "Il y a eu des erreurs pendant l'authentification demandé. Essayer de vous déconnecter et de vous reconnecter pour voir si cette erreur persiste.", 69 "infobar.authRequestFailed": "Il y a eu des erreurs pendant l'authentification demandée. Essayer de vous déconnecter et de vous reconnecter pour voir si cette erreur persiste.",
70 "infobar.buttonChangelog": "Nouveautés?", 70 "infobar.buttonChangelog": "Nouveautés?",
71 "infobar.buttonInstallUpdate": "Redémarrer et installer la mise à jour", 71 "infobar.buttonInstallUpdate": "Redémarrer et installer la mise à jour",
72 "infobar.buttonReloadServices": "Recharger les services", 72 "infobar.buttonReloadServices": "Recharger les services",
@@ -81,12 +81,15 @@
81 "invite.submit.label": "Envoyer des invitations", 81 "invite.submit.label": "Envoyer des invitations",
82 "invite.successInfo": "Invitations envoyées avec succès", 82 "invite.successInfo": "Invitations envoyées avec succès",
83 "locked.headline": "Verrouiller", 83 "locked.headline": "Verrouiller",
84 "locked.info": "Ferdi est présentement verrouiller. S'il vous plaît déverrouiller Ferdi avec votre mot de passe pour voir vos messages.", 84 "locked.info": "Ferdi est actuellement verrouillé. Veuillez déverrouiller Ferdi avec votre mot de passe pour voir vos messages.",
85 "locked.invalidCredentials": "Mot de passe invalide", 85 "locked.invalidCredentials": "Mot de passe invalide",
86 "locked.password.label": "Mot de passe", 86 "locked.password.label": "Mot de passe",
87 "locked.submit.label": "Déverrouiller", 87 "locked.submit.label": "Déverrouiller",
88 "locked.touchId": "Déverrouiller avec Touch ID",
89 "locked.touchIdPrompt": "déverrouiller via Touch ID",
90 "locked.unlockWithPassword": "Déverrouiller avec le mot de passe",
88 "login.changeServer": "Changer de serveur", 91 "login.changeServer": "Changer de serveur",
89 "login.customServerQuestion": "Utiliser un serveur de Ferdi modifié?", 92 "login.customServerQuestion": "Utiliser un compte Franz pour se connecter ?",
90 "login.customServerSuggestion": "Essayer d'importer votre compte Franz dans Ferdi", 93 "login.customServerSuggestion": "Essayer d'importer votre compte Franz dans Ferdi",
91 "login.email.label": "Adresse Email", 94 "login.email.label": "Adresse Email",
92 "login.headline": "S'identifier", 95 "login.headline": "S'identifier",
@@ -101,7 +104,7 @@
101 "menu.Todoss.openTodosDrawer": "Ouvrir le tiroir Todos", 104 "menu.Todoss.openTodosDrawer": "Ouvrir le tiroir Todos",
102 "menu.app.about": "À propos de Ferdi", 105 "menu.app.about": "À propos de Ferdi",
103 "menu.app.announcement": "Quoi de neuf?", 106 "menu.app.announcement": "Quoi de neuf?",
104 "menu.app.autohideMenuBar": "Auto-caché la barre de menu", 107 "menu.app.autohideMenuBar": "Cacher automatiquement la barre de menu",
105 "menu.app.checkForUpdates": "Vérifier les mises à jour", 108 "menu.app.checkForUpdates": "Vérifier les mises à jour",
106 "menu.app.hide": "Masquer", 109 "menu.app.hide": "Masquer",
107 "menu.app.hideOthers": "Masquer les autres", 110 "menu.app.hideOthers": "Masquer les autres",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Couper", 116 "menu.edit.cut": "Couper",
114 "menu.edit.delete": "Supprimer", 117 "menu.edit.delete": "Supprimer",
115 "menu.edit.emojiSymbols": "Emoji & Symboles", 118 "menu.edit.emojiSymbols": "Emoji & Symboles",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Coller", 120 "menu.edit.paste": "Coller",
117 "menu.edit.pasteAndMatchStyle": "Coller et fusionner le style", 121 "menu.edit.pasteAndMatchStyle": "Coller et fusionner le style",
118 "menu.edit.redo": "Rétablir", 122 "menu.edit.redo": "Rétablir",
@@ -126,7 +130,7 @@
126 "menu.help": "Aide", 130 "menu.help": "Aide",
127 "menu.help.changelog": "Liste des modifications", 131 "menu.help.changelog": "Liste des modifications",
128 "menu.help.debugInfo": "Copier les informations de Debug", 132 "menu.help.debugInfo": "Copier les informations de Debug",
129 "menu.help.debugInfoCopiedBody": "Les informations de Debug ont été copié à votre presse-papier.", 133 "menu.help.debugInfoCopiedBody": "Les informations de Debug ont été copié dans votre presse-papier.",
130 "menu.help.debugInfoCopiedHeadline": "Information de Debug de Ferdi", 134 "menu.help.debugInfoCopiedHeadline": "Information de Debug de Ferdi",
131 "menu.help.learnMore": "En savoir plus", 135 "menu.help.learnMore": "En savoir plus",
132 "menu.help.privacy": "Déclaration de confidentialité", 136 "menu.help.privacy": "Déclaration de confidentialité",
@@ -152,7 +156,7 @@
152 "menu.view.resetZoom": "Taille actuelle", 156 "menu.view.resetZoom": "Taille actuelle",
153 "menu.view.toggleDevTools": "Activer les outils de développeur", 157 "menu.view.toggleDevTools": "Activer les outils de développeur",
154 "menu.view.toggleFullScreen": "Activer le mode plein écran", 158 "menu.view.toggleFullScreen": "Activer le mode plein écran",
155 "menu.view.toggleServiceDevTools": "Activer les outils de développement WebKit", 159 "menu.view.toggleServiceDevTools": "Activer les outils de développeur du service",
156 "menu.view.toggleTodosDevTools": "Activer les outils de développeur Todos", 160 "menu.view.toggleTodosDevTools": "Activer les outils de développeur Todos",
157 "menu.view.zoomIn": "Zoom Avant", 161 "menu.view.zoomIn": "Zoom Avant",
158 "menu.view.zoomOut": "Zoom Arrière", 162 "menu.view.zoomOut": "Zoom Arrière",
@@ -173,11 +177,11 @@
173 "password.successInfo": "Merci de consulter vos emails", 177 "password.successInfo": "Merci de consulter vos emails",
174 "premiumFeature.button.upgradeAccount": "Augmenter le niveau de mon compte", 178 "premiumFeature.button.upgradeAccount": "Augmenter le niveau de mon compte",
175 "pricing.features.accountSync": "Synchronisation de compte", 179 "pricing.features.accountSync": "Synchronisation de compte",
176 "pricing.features.adFree": "Toujours sans pub", 180 "pricing.features.adFree": "Sans pub, pour toujours",
177 "pricing.features.appDelays": "Plus d'écrans d'attente", 181 "pricing.features.appDelays": "Plus d'écrans d'attente",
178 "pricing.features.customWebsites": "Ajouter des sites web modifiés", 182 "pricing.features.customWebsites": "Ajouter des sites web modifiés",
179 "pricing.features.desktopNotifications": "Notifications de bureau", 183 "pricing.features.desktopNotifications": "Notifications de bureau",
180 "pricing.features.onPremise": "Services hébergés sur place et autre", 184 "pricing.features.onPremise": "Services hébergés sur place et autres",
181 "pricing.features.recipes": "Choisissez parmi de plus de 70 services", 185 "pricing.features.recipes": "Choisissez parmi de plus de 70 services",
182 "pricing.features.serviceProxies": "Service Proxy", 186 "pricing.features.serviceProxies": "Service Proxy",
183 "pricing.features.spellchecker": "Support du correcteur orthographique", 187 "pricing.features.spellchecker": "Support du correcteur orthographique",
@@ -221,12 +225,12 @@
221 "service.errorHandler.text": "Le chargement de {name} a échoué.", 225 "service.errorHandler.text": "Le chargement de {name} a échoué.",
222 "service.restrictedHandler.action": "Améliorez votre compte", 226 "service.restrictedHandler.action": "Améliorez votre compte",
223 "service.restrictedHandler.customUrl.headline": "Le Plan Ferdi Professionnel requis", 227 "service.restrictedHandler.customUrl.headline": "Le Plan Ferdi Professionnel requis",
224 "service.restrictedHandler.customUrl.text": "S'il vous plaît améliorer au Plan Ferdi Professionnel pour utilisé les urls modifié et les services hébergé soi-même.", 228 "service.restrictedHandler.customUrl.text": "Veuillez passer à Ferdi Professionnel pour pouvoir utiliser vos propres urls et services auto-hébergés.",
225 "service.restrictedHandler.serviceLimit.headline": "Vous avez atteint votre limite de service.", 229 "service.restrictedHandler.serviceLimit.headline": "Vous avez atteint votre limite de service.",
226 "service.restrictedHandler.serviceLimit.text": "S'il vous plaît améliorer votre compte pour utilisé plus que {count} services.", 230 "service.restrictedHandler.serviceLimit.text": "S'il vous plaît améliorer votre compte pour utilisé plus que {count} services.",
227 "service.webviewLoader.loading": "Chargement de {service}", 231 "service.webviewLoader.loading": "Chargement de {service}",
228 "services.getStarted": "Commencer", 232 "services.getStarted": "Commencer",
229 "services.login": "S'il vous plaît connectez-vous pour utiliser Ferdi.", 233 "services.login": "Veuillez vous connecter pour utiliser Ferdi.",
230 "services.serverInfo": "Optionnellement, vous pouvez changer votre serveur Ferdi en cliquant sur la roue dentée en bas au coin gauche.", 234 "services.serverInfo": "Optionnellement, vous pouvez changer votre serveur Ferdi en cliquant sur la roue dentée en bas au coin gauche.",
231 "services.serverless": "Utiliser Ferdi sans compte", 235 "services.serverless": "Utiliser Ferdi sans compte",
232 "services.welcome": "Bienvenue dans Ferdi", 236 "services.welcome": "Bienvenue dans Ferdi",
@@ -256,16 +260,16 @@
256 "settings.account.trialUpdateBillingInfo": "S'il vous plaît mettre à jour votre facturation pour utilisé {license} après votre période d’essais.", 260 "settings.account.trialUpdateBillingInfo": "S'il vous plaît mettre à jour votre facturation pour utilisé {license} après votre période d’essais.",
257 "settings.account.tryReloadServices": "Réessayer", 261 "settings.account.tryReloadServices": "Réessayer",
258 "settings.account.tryReloadUserInfoRequest": "Réessayer", 262 "settings.account.tryReloadUserInfoRequest": "Réessayer",
259 "settings.account.upgradeToPro.label": "Améliorez à Ferdi Professionnel", 263 "settings.account.upgradeToPro.label": "Passez à Ferdi Professionnel",
260 "settings.account.userInfoRequestFailed": "Impossible de charger les informations de l'utilisateur", 264 "settings.account.userInfoRequestFailed": "Impossible de charger les informations de l'utilisateur",
261 "settings.account.yourLicense": "Votre licence Ferdi", 265 "settings.account.yourLicense": "Votre licence Ferdi",
262 "settings.app.accentColorInfo": "Écrivez votre accent de couleur dans un format compatible avec CSS. (Par défaut : #7367f0)", 266 "settings.app.accentColorInfo": "Écrivez votre couleur d'accentuation dans un format compatible avec CSS. (Par défaut : #7367f0)",
263 "settings.app.buttonClearAllCache": "Vider le cache", 267 "settings.app.buttonClearAllCache": "Vider le cache",
264 "settings.app.buttonInstallUpdate": "Redémarrer et installer la mise à jour", 268 "settings.app.buttonInstallUpdate": "Redémarrer et installer la mise à jour",
265 "settings.app.buttonSearchForUpdate": "Vérifier les mises à jour", 269 "settings.app.buttonSearchForUpdate": "Vérifier les mises à jour",
266 "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.", 270 "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.",
267 "settings.app.currentVersion": "Version actuelle :", 271 "settings.app.currentVersion": "Version actuelle :",
268 "settings.app.form.accentColor": "Accent de couleur", 272 "settings.app.form.accentColor": "Couleur d'accentuation",
269 "settings.app.form.adaptableDarkMode": "Synchroniser le mode sombre avec les paramètres du mode sombre de mon Mac", 273 "settings.app.form.adaptableDarkMode": "Synchroniser le mode sombre avec les paramètres du mode sombre de mon Mac",
270 "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan", 274 "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan",
271 "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage", 275 "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Comportement de la barre de navigation", 291 "settings.app.form.navigationBarBehaviour": "Comportement de la barre de navigation",
288 "settings.app.form.noUpdates": "Désactiver les mises à jours", 292 "settings.app.form.noUpdates": "Désactiver les mises à jours",
289 "settings.app.form.privateNotifications": "Ne pas afficher le contenu des notifications", 293 "settings.app.form.privateNotifications": "Ne pas afficher le contenu des notifications",
294 "settings.app.form.reloadAfterResume": "Recharger Ferdi après la reprise du système",
290 "settings.app.form.runInBackground": "Garder Ferdi ouvert en arrière-plan à la fermeture de la fenêtre", 295 "settings.app.form.runInBackground": "Garder Ferdi ouvert en arrière-plan à la fermeture de la fenêtre",
291 "settings.app.form.scheduledDNDEnabled": "Activer Ne-pas-Déranger", 296 "settings.app.form.scheduledDNDEnabled": "Activer Ne-pas-Déranger",
292 "settings.app.form.scheduledDNDEnd": "À", 297 "settings.app.form.scheduledDNDEnd": "À",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Démarrer en mode réduit", 304 "settings.app.form.startMinimized": "Démarrer en mode réduit",
300 "settings.app.form.todoServer": "Serveur Todo", 305 "settings.app.form.todoServer": "Serveur Todo",
301 "settings.app.form.universalDarkMode": "Activer le mode sombre universel", 306 "settings.app.form.universalDarkMode": "Activer le mode sombre universel",
307 "settings.app.form.useTouchIdToUnlock": "Autoriser l'utilisation de TouchID pour déverrouiller Ferdi",
302 "settings.app.headline": "Paramètres", 308 "settings.app.headline": "Paramètres",
303 "settings.app.headlineAdvanced": "Paramètres avancés", 309 "settings.app.headlineAdvanced": "Paramètres avancés",
304 "settings.app.headlineAppearance": "Apparence", 310 "settings.app.headlineAppearance": "Apparence",
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json
index 2462110fd..f9b3a11b3 100644
--- a/src/i18n/locales/ga.json
+++ b/src/i18n/locales/ga.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Gearr", 116 "menu.edit.cut": "Gearr",
114 "menu.edit.delete": "Scrios", 117 "menu.edit.delete": "Scrios",
115 "menu.edit.emojiSymbols": "Straoiseoga ⊠siombailí", 118 "menu.edit.emojiSymbols": "Straoiseoga ⊠siombailí",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Greamaigh", 120 "menu.edit.paste": "Greamaigh",
117 "menu.edit.pasteAndMatchStyle": "Greamaigh agus cuir stíl in oiriúint", 121 "menu.edit.pasteAndMatchStyle": "Greamaigh agus cuir stíl in oiriúint",
118 "menu.edit.redo": "Athdhéan", 122 "menu.edit.redo": "Athdhéan",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Coimeád Ferdi sa chúlra nuair a dhúntar an fhuinneog", 295 "settings.app.form.runInBackground": "Coimeád Ferdi sa chúlra nuair a dhúntar an fhuinneog",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Socruithe", 308 "settings.app.headline": "Socruithe",
303 "settings.app.headlineAdvanced": "Casta", 309 "settings.app.headlineAdvanced": "Casta",
304 "settings.app.headlineAppearance": "Dealramh", 310 "settings.app.headlineAppearance": "Dealramh",
diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/he.json
+++ b/src/i18n/locales/he.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json
index 6b4e22f13..00f22fdaa 100644
--- a/src/i18n/locales/hr.json
+++ b/src/i18n/locales/hr.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Obriši", 117 "menu.edit.delete": "Obriši",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren", 295 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Postavke", 308 "settings.app.headline": "Postavke",
303 "settings.app.headlineAdvanced": "Napredne alatke", 309 "settings.app.headlineAdvanced": "Napredne alatke",
304 "settings.app.headlineAppearance": "Izgled", 310 "settings.app.headlineAppearance": "Izgled",
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json
index f829e12c0..f640289db 100644
--- a/src/i18n/locales/hu.json
+++ b/src/i18n/locales/hu.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Kivágás", 116 "menu.edit.cut": "Kivágás",
114 "menu.edit.delete": "Törlés", 117 "menu.edit.delete": "Törlés",
115 "menu.edit.emojiSymbols": "Emoji és Szimbólumok", 118 "menu.edit.emojiSymbols": "Emoji és Szimbólumok",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Beillesztés", 120 "menu.edit.paste": "Beillesztés",
117 "menu.edit.pasteAndMatchStyle": "Beillesztés ugyanazzal a megjelenéssel", 121 "menu.edit.pasteAndMatchStyle": "Beillesztés ugyanazzal a megjelenéssel",
118 "menu.edit.redo": "Újra", 122 "menu.edit.redo": "Újra",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Ferdi fusson a háttérben az ablak bezárásakor", 295 "settings.app.form.runInBackground": "Ferdi fusson a háttérben az ablak bezárásakor",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Beállítások", 308 "settings.app.headline": "Beállítások",
303 "settings.app.headlineAdvanced": "Haladó", 309 "settings.app.headlineAdvanced": "Haladó",
304 "settings.app.headlineAppearance": "Megjelenés", 310 "settings.app.headlineAppearance": "Megjelenés",
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json
index bb8f54d10..a1ece26cc 100644
--- a/src/i18n/locales/id.json
+++ b/src/i18n/locales/id.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Potong", 116 "menu.edit.cut": "Potong",
114 "menu.edit.delete": "Hapus", 117 "menu.edit.delete": "Hapus",
115 "menu.edit.emojiSymbols": "Emoji & Simbol", 118 "menu.edit.emojiSymbols": "Emoji & Simbol",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Tempel", 120 "menu.edit.paste": "Tempel",
117 "menu.edit.pasteAndMatchStyle": "Tempel dan Cocokkan Gaya", 121 "menu.edit.pasteAndMatchStyle": "Tempel dan Cocokkan Gaya",
118 "menu.edit.redo": "Ulangi lagi", 122 "menu.edit.redo": "Ulangi lagi",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Tetap jalankan Ferdi di latar belakang saat menutup jendela", 295 "settings.app.form.runInBackground": "Tetap jalankan Ferdi di latar belakang saat menutup jendela",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Pengaturan", 308 "settings.app.headline": "Pengaturan",
303 "settings.app.headlineAdvanced": "Tingkat Lanjut", 309 "settings.app.headlineAdvanced": "Tingkat Lanjut",
304 "settings.app.headlineAppearance": "Tampilan", 310 "settings.app.headlineAppearance": "Tampilan",
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index 3929b039c..e473de0cf 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Taglia", 116 "menu.edit.cut": "Taglia",
114 "menu.edit.delete": "Elimina", 117 "menu.edit.delete": "Elimina",
115 "menu.edit.emojiSymbols": "Emoji e simboli", 118 "menu.edit.emojiSymbols": "Emoji e simboli",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Incolla", 120 "menu.edit.paste": "Incolla",
117 "menu.edit.pasteAndMatchStyle": "Incolla e Mantieni Stile", 121 "menu.edit.pasteAndMatchStyle": "Incolla e Mantieni Stile",
118 "menu.edit.redo": "Ripeti", 122 "menu.edit.redo": "Ripeti",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra", 295 "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Impostazioni", 308 "settings.app.headline": "Impostazioni",
303 "settings.app.headlineAdvanced": "Avanzate", 309 "settings.app.headlineAdvanced": "Avanzate",
304 "settings.app.headlineAppearance": "Aspetto", 310 "settings.app.headlineAppearance": "Aspetto",
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index bb9c8cbbe..0acb0153c 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "切りå–ã‚Š", 116 "menu.edit.cut": "切りå–ã‚Š",
114 "menu.edit.delete": "削除", 117 "menu.edit.delete": "削除",
115 "menu.edit.emojiSymbols": "絵文字ã¨ã‚·ãƒ³ãƒœãƒ«", 118 "menu.edit.emojiSymbols": "絵文字ã¨ã‚·ãƒ³ãƒœãƒ«",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "貼り付ã‘", 120 "menu.edit.paste": "貼り付ã‘",
117 "menu.edit.pasteAndMatchStyle": "書å¼ã‚’統一ã—ã¦è²¼ã‚Šä»˜ã‘", 121 "menu.edit.pasteAndMatchStyle": "書å¼ã‚’統一ã—ã¦è²¼ã‚Šä»˜ã‘",
118 "menu.edit.redo": "ã‚„ã‚Šç›´ã—", 122 "menu.edit.redo": "ã‚„ã‚Šç›´ã—",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "ウインドウを閉ã˜ãŸéš›ã«Ferdiã‚’ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§å®Ÿè¡Œã•ã›ã¦ãŠã", 295 "settings.app.form.runInBackground": "ウインドウを閉ã˜ãŸéš›ã«Ferdiã‚’ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§å®Ÿè¡Œã•ã›ã¦ãŠã",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "設定", 308 "settings.app.headline": "設定",
303 "settings.app.headlineAdvanced": "詳細", 309 "settings.app.headlineAdvanced": "詳細",
304 "settings.app.headlineAppearance": "表示スタイル", 310 "settings.app.headlineAppearance": "表示スタイル",
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json
index 17eec6540..57479beba 100644
--- a/src/i18n/locales/ka.json
+++ b/src/i18n/locales/ka.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "áƒáƒ›áƒáƒ­áƒ áƒ", 116 "menu.edit.cut": "áƒáƒ›áƒáƒ­áƒ áƒ",
114 "menu.edit.delete": "წáƒáƒ¨áƒšáƒ", 117 "menu.edit.delete": "წáƒáƒ¨áƒšáƒ",
115 "menu.edit.emojiSymbols": "გრáƒáƒ¤áƒ˜áƒ™áƒ£áƒšáƒ˜ გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბები & სიმბáƒáƒšáƒáƒ”ბი", 118 "menu.edit.emojiSymbols": "გრáƒáƒ¤áƒ˜áƒ™áƒ£áƒšáƒ˜ გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბები & სიმბáƒáƒšáƒáƒ”ბი",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "ჩáƒáƒ¡áƒ›áƒ", 120 "menu.edit.paste": "ჩáƒáƒ¡áƒ›áƒ",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "áƒáƒ¦áƒ“გენáƒ", 122 "menu.edit.redo": "áƒáƒ¦áƒ“გენáƒ",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "დáƒáƒ¢áƒáƒ•áƒ”თ Ferdi გáƒáƒ¨áƒ•áƒ”ბული რáƒáƒ“ესáƒáƒª ფáƒáƒœáƒ¯áƒáƒ áƒ დáƒáƒ˜áƒ®áƒ£áƒ áƒ”ბáƒ", 295 "settings.app.form.runInBackground": "დáƒáƒ¢áƒáƒ•áƒ”თ Ferdi გáƒáƒ¨áƒ•áƒ”ბული რáƒáƒ“ესáƒáƒª ფáƒáƒœáƒ¯áƒáƒ áƒ დáƒáƒ˜áƒ®áƒ£áƒ áƒ”ბáƒ",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "პáƒáƒ áƒáƒ›áƒ”ტრები", 308 "settings.app.headline": "პáƒáƒ áƒáƒ›áƒ”ტრები",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json
index 7a1e21490..7c293513b 100644
--- a/src/i18n/locales/ko.json
+++ b/src/i18n/locales/ko.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index c1cbf070d..bacf7b6ec 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Knippen", 116 "menu.edit.cut": "Knippen",
114 "menu.edit.delete": "Verwijderen", 117 "menu.edit.delete": "Verwijderen",
115 "menu.edit.emojiSymbols": "Emoji & Symbolen", 118 "menu.edit.emojiSymbols": "Emoji & Symbolen",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Plakken", 120 "menu.edit.paste": "Plakken",
117 "menu.edit.pasteAndMatchStyle": "Plakken en stijl overeen laten komen", 121 "menu.edit.pasteAndMatchStyle": "Plakken en stijl overeen laten komen",
118 "menu.edit.redo": "Opnieuw doen", 122 "menu.edit.redo": "Opnieuw doen",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Houd Ferdi op de achtergrond wanneer het venster gesloten wordt", 295 "settings.app.form.runInBackground": "Houd Ferdi op de achtergrond wanneer het venster gesloten wordt",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Instellingen", 308 "settings.app.headline": "Instellingen",
303 "settings.app.headlineAdvanced": "Geavanceerd", 309 "settings.app.headlineAdvanced": "Geavanceerd",
304 "settings.app.headlineAppearance": "Weergave", 310 "settings.app.headlineAppearance": "Weergave",
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index adf587408..58cf063f0 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Verkeerd wachtwoord", 85 "locked.invalidCredentials": "Verkeerd wachtwoord",
86 "locked.password.label": "Wachtwoord", 86 "locked.password.label": "Wachtwoord",
87 "locked.submit.label": "Ontgrendelen", 87 "locked.submit.label": "Ontgrendelen",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Knippen", 116 "menu.edit.cut": "Knippen",
114 "menu.edit.delete": "Verwijderen", 117 "menu.edit.delete": "Verwijderen",
115 "menu.edit.emojiSymbols": "Emoji's en symbolen", 118 "menu.edit.emojiSymbols": "Emoji's en symbolen",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Plakken", 120 "menu.edit.paste": "Plakken",
117 "menu.edit.pasteAndMatchStyle": "Plakken en stijl overeen laten komen", 121 "menu.edit.pasteAndMatchStyle": "Plakken en stijl overeen laten komen",
118 "menu.edit.redo": "Opnieuw doen", 122 "menu.edit.redo": "Opnieuw doen",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Toon geen bericht-inhoud in meldingen", 293 "settings.app.form.privateNotifications": "Toon geen bericht-inhoud in meldingen",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Houd Ferdi open op de achtergrond wanneer het venster gesloten wordt", 295 "settings.app.form.runInBackground": "Houd Ferdi open op de achtergrond wanneer het venster gesloten wordt",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Instellingen", 308 "settings.app.headline": "Instellingen",
303 "settings.app.headlineAdvanced": "Geavanceerd", 309 "settings.app.headlineAdvanced": "Geavanceerd",
304 "settings.app.headlineAppearance": "Weergave", 310 "settings.app.headlineAppearance": "Weergave",
diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/no.json
+++ b/src/i18n/locales/no.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index 70cbb41f9..dcb74e709 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Wytnij", 116 "menu.edit.cut": "Wytnij",
114 "menu.edit.delete": "Usuń", 117 "menu.edit.delete": "Usuń",
115 "menu.edit.emojiSymbols": "Emoji i symbole", 118 "menu.edit.emojiSymbols": "Emoji i symbole",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Wklej", 120 "menu.edit.paste": "Wklej",
117 "menu.edit.pasteAndMatchStyle": "Wklej i dopasuj styl", 121 "menu.edit.pasteAndMatchStyle": "Wklej i dopasuj styl",
118 "menu.edit.redo": "Ponów", 122 "menu.edit.redo": "Ponów",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Zachowaj aplikację Ferdi w tle po zamknięciu okna", 295 "settings.app.form.runInBackground": "Zachowaj aplikację Ferdi w tle po zamknięciu okna",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Ustawienia", 308 "settings.app.headline": "Ustawienia",
303 "settings.app.headlineAdvanced": "Zaawansowane", 309 "settings.app.headlineAdvanced": "Zaawansowane",
304 "settings.app.headlineAppearance": "WyglÄ…d", 310 "settings.app.headlineAppearance": "WyglÄ…d",
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index b6e4fbe83..711c2c831 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -1,83 +1,83 @@
1{ 1{
2 "app.errorHandler.action": "Actualizar", 2 "app.errorHandler.action": "Recarregar",
3 "app.errorHandler.headline": "Uoops! Algo correu mal", 3 "app.errorHandler.headline": "Alguma coisa correu mal",
4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", 4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}",
5 "feature.debugger.title": "Publish debugging information", 5 "feature.debugger.title": "Publicar informações de depuração",
6 "feature.delayApp.headline": "Por favor, adquira uma licença Ferdi para não ter tempo de espera", 6 "feature.delayApp.headline": "Por favor compre uma licença Ferdi Supporter para saltar a fila de espera",
7 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.", 7 "feature.delayApp.text": "Ferdi irá continuar em {seconds} segundos.",
8 "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional", 8 "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias",
9 "feature.delayApp.trial.actionShort": "Ativar período de testes gratuito do Ferdi Professional", 9 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial",
10 "feature.delayApp.trial.headline": "Empieza el periodo de prueba de Ferdi Profesional por 14 días y cruza la linea.", 10 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line",
11 "feature.delayApp.upgrade.action": "Adquira uma licença de suporte Ferdi", 11 "feature.delayApp.upgrade.action": "Faz parte do grupo de apoio do Ferdi",
12 "feature.delayApp.upgrade.actionShort": "Atualizar conta", 12 "feature.delayApp.upgrade.actionShort": "Atualiza a tua conta",
13 "feature.planSelection.cta.ctaDowngradeFree": "Despromover para Gratuito", 13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
14 "feature.planSelection.cta.stayOnFree": "Continuar em Gratuito", 14 "feature.planSelection.cta.stayOnFree": "Stay on Free",
15 "feature.planSelection.cta.trial": "Iniciar meu teste grátis de 14 dias", 15 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
16 "feature.planSelection.cta.upgradePersonal": "Escolha Pessoal", 16 "feature.planSelection.cta.upgradePersonal": "Choose Personal",
17 "feature.planSelection.cta.upgradePro": "Escolha Profissional", 17 "feature.planSelection.cta.upgradePro": "Choose Professional",
18 "feature.planSelection.free.text": "Funcionalidade básica", 18 "feature.planSelection.free.text": "Basic functionality",
19 "feature.planSelection.fullFeatureList": "Comparação completa de todos os planos", 19 "feature.planSelection.fullFeatureList": "Complete comparison of all plans",
20 "feature.planSelection.fullscreen.dialog.cta.downgrade": "Despromover para Gratuito", 20 "feature.planSelection.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
21 "feature.planSelection.fullscreen.dialog.cta.upgrade": "Escolha Pessoal", 21 "feature.planSelection.fullscreen.dialog.cta.upgrade": "Choose Personal",
22 "feature.planSelection.fullscreen.dialog.message": "Você está prestes a fazer a despromoção para nossa conta gratuita. Você tem certeza? Clique aqui para obter mais serviços e funcionalidade por apenas {currency}{price} por mês.", 22 "feature.planSelection.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.",
23 "feature.planSelection.fullscreen.dialog.title": "Despromover o seu Plano Ferdi", 23 "feature.planSelection.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
24 "feature.planSelection.fullscreen.subheadline": "Agora tem de fazer uma escolha. O Ferdi trabalha melhor em nossos planos pessoais e profissionais. Por favor, compare estes planos e escolha o que melhor se adapta a si.", 24 "feature.planSelection.fullscreen.subheadline": "It's time to make a choice. Ferdi works best on our Personal and Professional plans. Please have a look and choose the best one for you.",
25 "feature.planSelection.fullscreen.welcome": "Está prestes a escolher, {name}", 25 "feature.planSelection.fullscreen.welcome": "Are you ready to choose, {name}",
26 "feature.planSelection.personal.text": "Mais serviços, sem espera - ideal para uso pessoal.", 26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
27 "feature.planSelection.pricesBasedOnAnnualPayment": "Todos os preços são baseados no pagamento anual", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
28 "feature.planSelection.pro.text": "Serviços ilimitados e recursos profissionais para si - e para a sua equipa.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.", 29 "feature.publishDebugInfo.error": "Ocorreu um erro ao tentar publicar as informações de depuração. Por favor tente novamente mais tarde ou verifique o console para mais informações.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service", 30 "feature.publishDebugInfo.info": "Publicar suas informações de depuração nos permite encontrar erros no Ferdi. Para publicar essas informações é necessário aceitar os termos privacidade e serviço do Ferdi Debugger",
31 "feature.publishDebugInfo.privacy": "Privacy policy", 31 "feature.publishDebugInfo.privacy": "Política de privacidade",
32 "feature.publishDebugInfo.publish": "Accept and publish", 32 "feature.publishDebugInfo.publish": "Aceitar e publicar",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 33 "feature.publishDebugInfo.published": "Seu log de depuração foi publicado e agora está disponível em",
34 "feature.publishDebugInfo.terms": "Termos de serviço", 34 "feature.publishDebugInfo.terms": "Termos do Serviço",
35 "feature.publishDebugInfo.title": "Publish debug information", 35 "feature.publishDebugInfo.title": "Publicar informações de depuração",
36 "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.", 36 "feature.quickSwitch.info": "Selecione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.",
37 "feature.quickSwitch.search": "A procurar...", 37 "feature.quickSwitch.search": "Localizar...",
38 "feature.quickSwitch.title": "Troca Rápida", 38 "feature.quickSwitch.title": "Troca Rápida",
39 "feature.serviceLimit.limitReached": "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.", 39 "feature.serviceLimit.limitReached": "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.",
40 "feature.shareFranz.action.email": "Enviar por e-mail", 40 "feature.shareFranz.action.email": "Enviar por e-mail",
41 "feature.shareFranz.action.facebook": "Compartilhar no Facebook", 41 "feature.shareFranz.action.facebook": "Compartilahr no Facebook",
42 "feature.shareFranz.action.twitter": "Compartilhar no Twitter", 42 "feature.shareFranz.action.twitter": "Compartilhar no Twitter",
43 "feature.shareFranz.headline": "Ferdi é melhor em grupo!", 43 "feature.shareFranz.headline": "Ferdi é melhor em grupo!",
44 "feature.shareFranz.shareText.email": "Eu adicionei {count} serviços ao Ferdi! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.getferdi.com", 44 "feature.shareFranz.shareText.email": "Eu adicionei {count} serviços ao Ferdi! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.getferdi.com",
45 "feature.shareFranz.shareText.twitter": "Eu adicionei uma contagem de serviços para o Ferdi! Baixe gratuitamente o aplicativo para WhatsApp, Messenger, Slack, Skype e outros em www.getferdi.com /cc @FerdiMessenger", 45 "feature.shareFranz.shareText.twitter": "Eu adicionei uma contagem de serviços para o Ferdi! Baixe gratuitamente o aplicativo para WhatsApp, Messenger, Slack, Skype e outros em www.getferdi.com /cc @FerdiMessenger",
46 "feature.shareFranz.text": "Conte aos seus amigos e colegas o quanto incrível o Ferdi é e nos ajude a espalhar a mensagem. ", 46 "feature.shareFranz.text": "Conte aos seus amigos e colegas o quanto incrível o Ferdi é e nos ajude a espalhar a mensagem.",
47 "feature.todos.premium.info": "As Listas de Tarefa do Ferdi estão disponíveis para usuários premium!", 47 "feature.todos.premium.info": "As Tarefas do Ferdi estão disponíveis para usuários premium!",
48 "feature.todos.premium.rollout": "As outras pessoas terão que esperar um pouquinho mais.", 48 "feature.todos.premium.rollout": "As outras pessoas terão que esperar um pouquinho mais.",
49 "feature.todos.premium.upgrade": "Actualizar cuenta", 49 "feature.todos.premium.upgrade": "Atualizar conta",
50 "feature.trialStatusBar.cta": "Promover agora", 50 "feature.trialStatusBar.cta": "Upgrade now",
51 "feature.trialStatusBar.expired": "Seu teste grátis Ferdi {plan} expirou, por favor actualize sua conta.", 51 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Despromover para Gratuito", 52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
53 "feature.trialStatusBar.fullscreen.dialog.cta.upgrade": "Escolha Pessoal", 53 "feature.trialStatusBar.fullscreen.dialog.cta.upgrade": "Choose Personal",
54 "feature.trialStatusBar.fullscreen.dialog.message": "Você está prestes a fazer a despromoção para nossa conta gratuita. Você tem certeza? Clique aqui para obter mais serviços e funcionalidade por apenas {currency}{price} por mês.", 54 "feature.trialStatusBar.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.",
55 "feature.trialStatusBar.fullscreen.dialog.title": "Despromover o seu Plano Ferdi", 55 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
56 "feature.trialStatusBar.restTime": "Seu teste grátis Ferdi {plan} termina em {time}.", 56 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.",
57 "global.api.unhealthy": "Não foi possível conectar-se aos serviços on-line do Ferdi.", 57 "global.api.unhealthy": "Não foi possível estabelecer ligação aos serviços do Ferdi",
58 "global.franzProRequired": "Se requiere una cuenta Ferdi Profesional", 58 "global.franzProRequired": "Ferdi Plano Profissional é necessário",
59 "global.notConnectedToTheInternet": "Você não está conectado à internet", 59 "global.notConnectedToTheInternet": "Não estás ligado à Internet",
60 "global.spellchecker.useDefault": "Use o padrão do sistema ({default})", 60 "global.spellchecker.useDefault": "Utilizar o Sistema por Omissão ({default})",
61 "global.spellchecking.autodetect": "Detectar idioma automaticamente.", 61 "global.spellchecking.autodetect": "Detectar a lingua automaticamente",
62 "global.spellchecking.autodetect.short": "Automático", 62 "global.spellchecking.autodetect.short": "Automático",
63 "global.spellchecking.language": "Idioma para verificação ortográfica", 63 "global.spellchecking.language": "Linguagem para correção ortográfica",
64 "global.upgradeButton.upgradeToPro": "Atualizar para o Ferdi Profissional", 64 "global.upgradeButton.upgradeToPro": "Atualizar para o Ferdi Profissional",
65 "import.headline": "Importe seus serviços do Ferdi 4 ", 65 "import.headline": "Importar os seus serviços do Ferdi",
66 "import.notSupportedHeadline": "Serviços ainda não suportados pelo Ferdi 5 ", 66 "import.notSupportedHeadline": "Estes serviços ainda não são suportados pelo Ferdi 5",
67 "import.skip.label": "Quero adicionar serviços manualmente", 67 "import.skip.label": "Eu quero adicionar serviços manualmente",
68 "import.submit.label": "Importar serviços", 68 "import.submit.label": "Importar serviços",
69 "infobar.authRequestFailed": "Houve erros ao tentar autenticar. Por favor, tente desconectar e autenticar novamente se o erro persistir.", 69 "infobar.authRequestFailed": "Ocorreram erros ao tentar autenticar. Por favor, tente desconectar e autenticar novamente se o erro persistir.",
70 "infobar.buttonChangelog": "O que há de novo?", 70 "infobar.buttonChangelog": "O que há de novo?",
71 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações ", 71 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações",
72 "infobar.buttonReloadServices": "Recarregar serviços", 72 "infobar.buttonReloadServices": "Recarregar serviços",
73 "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações de usuário", 73 "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações do utilizador",
74 "infobar.servicesUpdated": "Seus serviços foram atualizados.", 74 "infobar.servicesUpdated": "Os seus serviços foram atualizados.",
75 "infobar.trialActivated": "O seu período de testes foi ativado com sucesso! Boas mensagens!", 75 "infobar.trialActivated": "A tua versão experimental foi activada com êxito. Boas mensagens!",
76 "infobar.updateAvailable": "Uma nova atualização do Ferdi está disponível.", 76 "infobar.updateAvailable": "Está disponível uma nova atualização para o Ferdi",
77 "invite.email.label": "Endereço de E-mail", 77 "invite.email.label": "Endereço de e-mail",
78 "invite.headline.friends": "Convide 3 amigos ou colegas", 78 "invite.headline.friends": "Convide 3 amigos ou colegas",
79 "invite.name.label": "Nome", 79 "invite.name.label": "Nome",
80 "invite.skip.label": "Quero fazer isso depois", 80 "invite.skip.label": "Pretendo fazer isto mais tarde",
81 "invite.submit.label": "Enviar convites", 81 "invite.submit.label": "Enviar convites",
82 "invite.successInfo": "Convites enviados com sucesso", 82 "invite.successInfo": "Convites enviados com sucesso",
83 "locked.headline": "Bloqueado", 83 "locked.headline": "Bloqueado",
@@ -85,24 +85,27 @@
85 "locked.invalidCredentials": "Senha inválida", 85 "locked.invalidCredentials": "Senha inválida",
86 "locked.password.label": "Senha", 86 "locked.password.label": "Senha",
87 "locked.submit.label": "Desbloquear", 87 "locked.submit.label": "Desbloquear",
88 "locked.touchId": "Desbloquear com Touch ID",
89 "locked.touchIdPrompt": "desbloquear via Touch ID",
90 "locked.unlockWithPassword": "Desbloquear com Senha",
88 "login.changeServer": "Alterar servidor", 91 "login.changeServer": "Alterar servidor",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
91 "login.email.label": "Endereço de E-mail", 94 "login.email.label": "Endereço de e-mail",
92 "login.headline": "Entrar", 95 "login.headline": "Iniciar Sessão",
93 "login.invalidCredentials": "E-mail ou senha in¡lida", 96 "login.invalidCredentials": "O email ou a palavra-passe estão incorrectos",
94 "login.link.password": "Trocar a senha", 97 "login.link.password": "Repor a minha palavra-passe",
95 "login.link.signup": "Criar uma conta gratuita", 98 "login.link.signup": "Criar uma conta gratuita",
96 "login.password.label": "Senha", 99 "login.password.label": "Senha",
97 "login.serverLogout": "Sua sessão expirou, faça o login novamente.", 100 "login.serverLogout": "A sua sessão expirou, inicie sessão novamente.",
98 "login.submit.label": "Entrar", 101 "login.submit.label": "Iniciar Sessão",
99 "login.tokenExpired": "Sua sessão expirou, faça o login novamente.", 102 "login.tokenExpired": "A sua sessão expirou, inicie sessão novamente.",
100 "menu.Todoss.closeTodosDrawer": "Fechar a gaveta de Listas de Tarefa", 103 "menu.Todoss.closeTodosDrawer": "Fechar Tarefas",
101 "menu.Todoss.openTodosDrawer": "Abrir a gaveta de Listas de Tarefa", 104 "menu.Todoss.openTodosDrawer": "Abrir Tarefas",
102 "menu.app.about": "Sobre Ferdi", 105 "menu.app.about": "Sobre o Ferdi",
103 "menu.app.announcement": "Quais as novidades?", 106 "menu.app.announcement": "O que há de novo?",
104 "menu.app.autohideMenuBar": "Auto-ocultar barra de menu", 107 "menu.app.autohideMenuBar": "Auto-ocultar barra de menu",
105 "menu.app.checkForUpdates": "Verificar se há atualizações", 108 "menu.app.checkForUpdates": "Procurar atualizações",
106 "menu.app.hide": "Ocultar", 109 "menu.app.hide": "Ocultar",
107 "menu.app.hideOthers": "Ocultar Outros", 110 "menu.app.hideOthers": "Ocultar Outros",
108 "menu.app.quit": "Sair", 111 "menu.app.quit": "Sair",
@@ -111,79 +114,80 @@
111 "menu.edit": "Editar", 114 "menu.edit": "Editar",
112 "menu.edit.copy": "Copiar", 115 "menu.edit.copy": "Copiar",
113 "menu.edit.cut": "Cortar", 116 "menu.edit.cut": "Cortar",
114 "menu.edit.delete": "Excluir", 117 "menu.edit.delete": "Apagar",
115 "menu.edit.emojiSymbols": "Emoji & Símbolos", 118 "menu.edit.emojiSymbols": "Emojis e Símbolos",
119 "menu.edit.findInPage": "Localizar na página",
116 "menu.edit.paste": "Colar", 120 "menu.edit.paste": "Colar",
117 "menu.edit.pasteAndMatchStyle": "Colar e Corresponder ao Estilo", 121 "menu.edit.pasteAndMatchStyle": "Colar e Manter Estilo",
118 "menu.edit.redo": "Refazer", 122 "menu.edit.redo": "Refazer",
119 "menu.edit.selectAll": "Selecionar Tudo", 123 "menu.edit.selectAll": "Selecionar Tudo",
120 "menu.edit.speech": "Falar", 124 "menu.edit.speech": "Voz",
121 "menu.edit.startDictation": "Iniciar Digitação", 125 "menu.edit.startDictation": "Começar a ditar",
122 "menu.edit.startSpeaking": "Começar a Falar", 126 "menu.edit.startSpeaking": "Comece a falar",
123 "menu.edit.stopSpeaking": "Parar de Falar", 127 "menu.edit.stopSpeaking": "Pare de Falar",
124 "menu.edit.undo": "Desfazer", 128 "menu.edit.undo": "Desfazer",
125 "menu.file": "Arquivo", 129 "menu.file": "Arquivo",
126 "menu.help": "Ajuda", 130 "menu.help": "Ajuda",
127 "menu.help.changelog": "Registro de Alterações ", 131 "menu.help.changelog": "Registo de alterações",
128 "menu.help.debugInfo": "Copiar Informações de Depuração", 132 "menu.help.debugInfo": "Copiar a informação Debug",
129 "menu.help.debugInfoCopiedBody": "As Informações de Depuração foram copiadas para a área de transferência.", 133 "menu.help.debugInfoCopiedBody": "As Informações de Depuração foram copiadas para a área de transferência.",
130 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi", 134 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi",
131 "menu.help.learnMore": "Saiba Mais ", 135 "menu.help.learnMore": "Saber mais",
132 "menu.help.privacy": "Declaração de Privacidade ", 136 "menu.help.privacy": "Declaração de privacidade",
133 "menu.help.publishDebugInfo": "Publish Debug Information", 137 "menu.help.publishDebugInfo": "Publicar Informações de Depuração",
134 "menu.help.support": "Suporte", 138 "menu.help.support": "Suporte",
135 "menu.help.tos": "Termos de Serviço", 139 "menu.help.tos": "Termos do Serviço",
136 "menu.services": "Serviços", 140 "menu.services": "Serviços",
137 "menu.services.activatePreviousService": "Pular para serviço anterior", 141 "menu.services.activatePreviousService": "Ativar o serviço anterior",
138 "menu.services.addNewService": "Adicionar Novo Serviço", 142 "menu.services.addNewService": "Adicionar Novo Serviço...",
139 "menu.services.goHome": "Início", 143 "menu.services.goHome": "Início",
140 "menu.services.setNextServiceActive": "Pular para próximo serviço", 144 "menu.services.setNextServiceActive": "Ativar o próximo serviço",
141 "menu.todos": "Tareas pendientes", 145 "menu.todos": "Tarefas",
142 "menu.todos.enableTodos": "Habilitar Tareas pendientes", 146 "menu.todos.enableTodos": "Ativar Todos",
143 "menu.view": "Visualizar ", 147 "menu.view": "Ver",
144 "menu.view.back": "Anterior", 148 "menu.view.back": "Anterior",
145 "menu.view.enterFullScreen": "Modo Tela Cheia", 149 "menu.view.enterFullScreen": "Ativar Modo Tela Cheia",
146 "menu.view.exitFullScreen": "Sair da Tela Cheia", 150 "menu.view.exitFullScreen": "Sair do Modo Tela Cheia",
147 "menu.view.forward": "Seguinte", 151 "menu.view.forward": "Próximo",
148 "menu.view.lockFerdi": "Bloquear Ferdi", 152 "menu.view.lockFerdi": "Bloquear Ferdi",
149 "menu.view.openQuickSwitch": "Abrir Troca Rápida", 153 "menu.view.openQuickSwitch": "Abrir Troca Rápida",
150 "menu.view.reloadFranz": "Recarregar Ferdi", 154 "menu.view.reloadFranz": "Recarregar Ferdi",
151 "menu.view.reloadService": "Reiniciar o Serviço", 155 "menu.view.reloadService": "Recarregar serviço",
152 "menu.view.resetZoom": "Tamanho real", 156 "menu.view.resetZoom": "Tamanho Real",
153 "menu.view.toggleDevTools": "Ferramentas de Desenvolvedor", 157 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento",
154 "menu.view.toggleFullScreen": "Modo Tela Cheia", 158 "menu.view.toggleFullScreen": "Ativar/Desativar Tela Cheia",
155 "menu.view.toggleServiceDevTools": "Ferramentas de Serviços de Desenvolvedor", 159 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços",
156 "menu.view.toggleTodosDevTools": "Ativar as Ferramentas de Desenvolvedor das Listas de Tarefas ", 160 "menu.view.toggleTodosDevTools": "Ativar Ferramentas de Desenvolvedor das Tarefas",
157 "menu.view.zoomIn": "Ampliar", 161 "menu.view.zoomIn": "Aumentar",
158 "menu.view.zoomOut": "Reduzir", 162 "menu.view.zoomOut": "Reduzir",
159 "menu.window": "Modo Janela", 163 "menu.window": "Janela",
160 "menu.window.close": "Fechar", 164 "menu.window.close": "Fechar",
161 "menu.window.minimize": "Minimizar", 165 "menu.window.minimize": "Minimizar",
162 "menu.workspaces": "Ãreas de trabalho", 166 "menu.workspaces": "Ãreas de trabalho",
163 "menu.workspaces.addNewWorkspace": "Adicionar nova área de trabalho...", 167 "menu.workspaces.addNewWorkspace": "Adicionar novo Espaço de trabalho",
164 "menu.workspaces.closeWorkspaceDrawer": "Fechar menu da área de trabalho", 168 "menu.workspaces.closeWorkspaceDrawer": "Fechar a janela da Ãrea de trabalho",
165 "menu.workspaces.defaultWorkspace": "Todos os serviços", 169 "menu.workspaces.defaultWorkspace": "Todos os serviços",
166 "menu.workspaces.openWorkspaceDrawer": "Abrir o menu da área de trabalho", 170 "menu.workspaces.openWorkspaceDrawer": "Abrir a janela da Ãrea de trabalho",
167 "password.email.label": "Endereço de E-mail", 171 "password.email.label": "Endereço de e-mail",
168 "password.headline": "Trocar a senha", 172 "password.headline": "Repor a minha palavra-passe",
169 "password.link.login": "Fazer login na sua conta", 173 "password.link.login": "Iniciar sessão",
170 "password.link.signup": "Criar uma conta gratuita", 174 "password.link.signup": "Criar uma conta gratuita",
171 "password.noUser": "Nenhum usuário com este e-mail foi encontrado", 175 "password.noUser": "Não existe nenhuma conta associada a esse endereço de e-mail",
172 "password.submit.label": "Enviar", 176 "password.submit.label": "Submeter",
173 "password.successInfo": "Por favor, verifique o seu e-mail", 177 "password.successInfo": "Por favor verifique o seu endereço de e-mail",
174 "premiumFeature.button.upgradeAccount": "Atualizar conta", 178 "premiumFeature.button.upgradeAccount": "Atualiza a tua conta",
175 "pricing.features.accountSync": "Sincronização Automática", 179 "pricing.features.accountSync": "Sincronização Automática",
176 "pricing.features.adFree": "Sin anuncios para siempre!", 180 "pricing.features.adFree": "Sem publicidade para sempre",
177 "pricing.features.appDelays": "Sem Telas de Espera", 181 "pricing.features.appDelays": "Sem Telas de Espera",
178 "pricing.features.customWebsites": "Adicionar Websites Personalizados", 182 "pricing.features.customWebsites": "Adicionar Websites Personalizados",
179 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho", 183 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho",
180 "pricing.features.onPremise": "En sitio y otros servicios alojados", 184 "pricing.features.onPremise": "On-premise & other Hosted Services",
181 "pricing.features.recipes": "Escolha entre mais de 70 serviços", 185 "pricing.features.recipes": "Escolha entre mais de 70 serviços",
182 "pricing.features.serviceProxies": "Apoderados de Servicio", 186 "pricing.features.serviceProxies": "Serviços de proxy",
183 "pricing.features.spellchecker": "Soporte de corrector ortográfico", 187 "pricing.features.spellchecker": "Suporte ao corretor ortográfico",
184 "pricing.features.teamManagement": "Gestão de Time", 188 "pricing.features.teamManagement": "Gestão de Equipes",
185 "pricing.features.thirdPartyServices": "Instalar servicios de terceros", 189 "pricing.features.thirdPartyServices": "Instalar serviços de terceiros",
186 "pricing.features.unlimitedServices": "Agregar servicios ilimitados", 190 "pricing.features.unlimitedServices": "Instalar serviços ilimitados",
187 "pricing.features.upToSixServices": "Adicionar até 6 serviços", 191 "pricing.features.upToSixServices": "Adicionar até 6 serviços",
188 "pricing.features.upToThreeServices": "Adicionar até 3 serviços", 192 "pricing.features.upToThreeServices": "Adicionar até 3 serviços",
189 "pricing.features.workspaces": "Ãreas de trabalho", 193 "pricing.features.workspaces": "Ãreas de trabalho",
@@ -195,283 +199,285 @@
195 "pricing.plan.pro": "Ferdi Profissional", 199 "pricing.plan.pro": "Ferdi Profissional",
196 "pricing.plan.pro-monthly": "Ferdi Profissional Mensal", 200 "pricing.plan.pro-monthly": "Ferdi Profissional Mensal",
197 "pricing.plan.pro-yearly": "Ferdi Profissional Anual", 201 "pricing.plan.pro-yearly": "Ferdi Profissional Anual",
198 "pricing.trial.cta.accept": "Sim, atualizar minha conta para o Ferdi Profissional", 202 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional",
199 "pricing.trial.cta.skip": "Continuar para o Ferdi", 203 "pricing.trial.cta.skip": "Continue to Ferdi",
200 "pricing.trial.cta.start": "Começar a usar Ferdi", 204 "pricing.trial.cta.start": "Start using Ferdi",
201 "pricing.trial.error": "Desculpe, não conseguimos ativar o seu período de testes", 205 "pricing.trial.error": "Sorry, we could not activate your trial!",
202 "pricing.trial.features.headline": "Incluso no Ferdi Profissional:", 206 "pricing.trial.features.headline": "Ferdi Professional includes:",
203 "pricing.trial.headline.pro": "Olá {name}, bem-vindo/a ao Ferdi", 207 "pricing.trial.headline.pro": "Hi {name}, welcome to Ferdi",
204 "pricing.trial.intro.happyMessaging": "Mensagens felizes,", 208 "pricing.trial.intro.happyMessaging": "Happy messaging,",
205 "pricing.trial.intro.specialTreat": "Temos uma oferta especial para si.", 209 "pricing.trial.intro.specialTreat": "We have a special treat for you.",
206 "pricing.trial.intro.tryPro": "Aproveite a experiência completa de Ferdi Profissional completamente gratuita durante 14 dias.", 210 "pricing.trial.intro.tryPro": "Enjoy the full Ferdi Professional experience completely free for 14 days.",
207 "pricing.trial.terms.automaticTrialEnd": "Seu período de testes encerra automaticamente em 14 dias", 211 "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days",
208 "pricing.trial.terms.headline": "Sem vínculos", 212 "pricing.trial.terms.headline": "No strings attached",
209 "pricing.trial.terms.noCreditCard": "No necesita tarjeta de crédito", 213 "pricing.trial.terms.noCreditCard": "No credit card required",
210 "pricing.trial.terms.trialWorth": "Teste gratuito (normalmente {currency}{price} por mês)", 214 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
211 "service.crashHandler.action": "Recarregar {name}", 215 "service.crashHandler.action": "Recarregar {name}",
212 "service.crashHandler.autoReload": "Tentando reestabelecer {name} automaticamente em {seconds} segundos", 216 "service.crashHandler.autoReload": "A tentar restaurar automaticamente {name} em {seconds} segundos",
213 "service.crashHandler.headline": "Ah, não!", 217 "service.crashHandler.headline": "Oh não!",
214 "service.crashHandler.text": "{name} causou um erro.", 218 "service.crashHandler.text": "{name} causou um erro.",
215 "service.disabledHandler.action": "Ativar {name}", 219 "service.disabledHandler.action": "Ativar {name}",
216 "service.disabledHandler.headline": "{name} está desativado", 220 "service.disabledHandler.headline": "{name} está desativado",
217 "service.errorHandler.action": "Recarregar {name}", 221 "service.errorHandler.action": "Recarregar {name}",
218 "service.errorHandler.editAction": "Editar {name}", 222 "service.errorHandler.editAction": "Editar {name}",
219 "service.errorHandler.headline": "Ah, não!", 223 "service.errorHandler.headline": "Oh não!",
220 "service.errorHandler.message": "Erro", 224 "service.errorHandler.message": "Erro",
221 "service.errorHandler.text": "{name} não pôde ser carregado.", 225 "service.errorHandler.text": "{name} falhou o carregamento",
222 "service.restrictedHandler.action": "Actualizar cuenta", 226 "service.restrictedHandler.action": "Atualizar conta",
223 "service.restrictedHandler.customUrl.headline": "Necesita el Plan Ferdi Profesional", 227 "service.restrictedHandler.customUrl.headline": "É necessário um plano Ferdi Profissional",
224 "service.restrictedHandler.customUrl.text": "Por favor suscribase al Plan Ferdi Profesional para utilizar urls personalizadas y servicios auto alojados.", 228 "service.restrictedHandler.customUrl.text": "Por favor adquira um plano Ferdi Profesional para utilizar url's personalizadas e serviços próprios.",
225 "service.restrictedHandler.serviceLimit.headline": "Ha llegado al límite del servicio.", 229 "service.restrictedHandler.serviceLimit.headline": "Você atingiu seu limite de serviço.",
226 "service.restrictedHandler.serviceLimit.text": "Por favor mejore su cuenta para poder utilizar más de {count} servicios.", 230 "service.restrictedHandler.serviceLimit.text": "Por favor, atualize sua conta para usar mais do que {count} serviços.",
227 "service.webviewLoader.loading": "Loading {service}", 231 "service.webviewLoader.loading": "Carregando {service}",
228 "services.getStarted": "Iniciar", 232 "services.getStarted": "Vamos começar",
229 "services.login": "Por favor, inicie sua sessão para usar Ferdi.", 233 "services.login": "Por favor, inicie sua sessão para usar Ferdi.",
230 "services.serverInfo": "Opcionalmente, você pode mudar seu servidor Ferdi clicando no icon de roda dentada no canto inferior esquerdo.", 234 "services.serverInfo": "Opcionalmente, você pode mudar seu servidor Ferdi clicando no ícone de engrenagem localizada no canto inferior esquerdo.",
231 "services.serverless": "Use Ferdi sem uma conta", 235 "services.serverless": "Use Ferdi sem uma conta",
232 "services.welcome": "Bem-vindo ao Ferdi!", 236 "services.welcome": "Bem-vindo ao Ferdi",
233 "settings.account.account.editButton": "Editar conta", 237 "settings.account.account.editButton": "Editar conta",
234 "settings.account.accountType.basic": "Conta Básica", 238 "settings.account.accountType.basic": "Conta Básica",
235 "settings.account.accountType.premium": "Conta Apoiador Premium", 239 "settings.account.accountType.premium": "Conta Premium",
236 "settings.account.accountUnavailable": "Account is unavailable", 240 "settings.account.accountUnavailable": "Conta indisponível",
237 "settings.account.accountUnavailableInfo": "You are using Ferdi without an account. If you want to use Ferdi with an account and keep your services synchronized across installations, please select a server in the Settings tab then login.", 241 "settings.account.accountUnavailableInfo": "Você está utilizando Ferdis sem uma conta. Se você deseja usar o Ferdi com uma conta e manter seus serviços atualizados, Por favor selecione um servidor em Configurações seção Servidor.",
238 "settings.account.buttonSave": "Atualizar perfil", 242 "settings.account.buttonSave": "Atualizar o perfil",
239 "settings.account.deleteAccount": "Excluir conta", 243 "settings.account.deleteAccount": "Apagar conta",
240 "settings.account.deleteEmailSent": "Você recebeu um e-mail com um link para confirmar a exclusão da sua conta. Atenção! Sua conta e dados não poderão ser restaurados!", 244 "settings.account.deleteEmailSent": "Recebeu um email com um endereço para confirmar a remoção da sua conta. A sua conta e dados não poderão ser restaurados!",
241 "settings.account.deleteInfo": "Se você não precisa mais de sua conta Ferdi, pode exclui-la juntamente com todos os dados relacionados, aqui.", 245 "settings.account.deleteInfo": "Se já não necessita da sua conta Ferdi, pode apagar a sua conta e todos os dados aqui.",
242 "settings.account.headline": "Conta", 246 "settings.account.headline": "Conta",
243 "settings.account.headlineAccount": "Informações de conta", 247 "settings.account.headlineAccount": "Informação da conta",
244 "settings.account.headlineDangerZone": "Zona de Perigo", 248 "settings.account.headlineDangerZone": "Zona de perigo",
245 "settings.account.headlineInvoices": "Recibos", 249 "settings.account.headlineInvoices": "Faturas",
246 "settings.account.headlinePassword": "Mudar senha", 250 "settings.account.headlinePassword": "Alterar palavra-passe",
247 "settings.account.headlineProfile": "Atualizar perfil", 251 "settings.account.headlineProfile": "Atualizar o perfil",
248 "settings.account.headlineSubscription": "Sua assinatura", 252 "settings.account.headlineSubscription": "A sua subscrição",
249 "settings.account.headlineTrialUpgrade": "Consiga 14 días de prueba gratis de Ferdi Profesional ", 253 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial",
250 "settings.account.headlineUpgradeAccount": "Mejore su cuenta y reciba la experiencia completa de Ferdi", 254 "settings.account.headlineUpgradeAccount": "Dê um upgrade na sua conta e tenha uma completa experiência do Ferdi",
251 "settings.account.invoiceDownload": "Baixar", 255 "settings.account.invoiceDownload": "Transferir",
252 "settings.account.manageSubscription.label": "Gerencie a sua assinatura", 256 "settings.account.manageSubscription.label": "Gerenciar minhas inscrições",
253 "settings.account.successInfo": "Suas alterações foram gravadas", 257 "settings.account.successInfo": "As suas alterações foram efetuadas com sucesso",
254 "settings.account.trial": "Prueba Gratis", 258 "settings.account.trial": "Free Trial",
255 "settings.account.trialEndsIn": "Su prueba gratis finaliza en {duration}.", 259 "settings.account.trialEndsIn": "Your free trial ends in {duration}.",
256 "settings.account.trialUpdateBillingInfo": "Por favor actualice su información de facturación para continuar utilizando {license} luego del periodo de prueba.", 260 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.",
257 "settings.account.tryReloadServices": "Tente novamente", 261 "settings.account.tryReloadServices": "Tentar novamente",
258 "settings.account.tryReloadUserInfoRequest": "Tente novamente", 262 "settings.account.tryReloadUserInfoRequest": "Tentar novamente",
259 "settings.account.upgradeToPro.label": "Atualizar para o Ferdi Profissional", 263 "settings.account.upgradeToPro.label": "Atualizar para o Ferdi Profissional",
260 "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações do usuário", 264 "settings.account.userInfoRequestFailed": "Não é possível carregar a informação do utilizador",
261 "settings.account.yourLicense": "Su Licencia Ferdi", 265 "settings.account.yourLicense": "Sua lincença Ferdi",
262 "settings.app.accentColorInfo": "Escreva sua cor de destaque em um formato compatível com CSS. (Padrão: #7367f0)", 266 "settings.app.accentColorInfo": "Informe sua cor de destaque em um formato compatível com CSS. (Padrão: #7367f0)",
263 "settings.app.buttonClearAllCache": "Limpar cache", 267 "settings.app.buttonClearAllCache": "Limpar cache",
264 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações ", 268 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações",
265 "settings.app.buttonSearchForUpdate": "Verificar se há atualizações", 269 "settings.app.buttonSearchForUpdate": "Procurar atualizações",
266 "settings.app.cacheInfo": "O cache do Ferdi está usando {size} de espaço em disco atualmente.", 270 "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.",
267 "settings.app.currentVersion": "Versão atual:", 271 "settings.app.currentVersion": "Versão atual",
268 "settings.app.form.accentColor": "Cor de destaque", 272 "settings.app.form.accentColor": "Cor de destaque",
269 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 273 "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com as configurações do Mac",
270 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", 274 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano",
271 "settings.app.form.autoLaunchOnStart": "Abrir o Ferdi ao iniciar o sistema", 275 "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador",
272 "settings.app.form.beta": "Incluir versões beta", 276 "settings.app.form.beta": "Incluir versões instáveis (beta)",
273 "settings.app.form.darkMode": "Enable dark mode", 277 "settings.app.form.darkMode": "Habilitar modo noturno",
274 "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU", 278 "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU",
275 "settings.app.form.enableLock": "Enable Password Lock", 279 "settings.app.form.enableLock": "Habilitar bloqueio por senha",
276 "settings.app.form.enableSpellchecking": "Ativar correção ortográfica", 280 "settings.app.form.enableSpellchecking": "Ativar verificação ortográfica",
277 "settings.app.form.enableSystemTray": "Exibir o Ferdi na barra de sistema", 281 "settings.app.form.enableSystemTray": "Mostrar o Ferdi na barra do sistema",
278 "settings.app.form.enableTodos": "Activar Ferdi Todos", 282 "settings.app.form.enableTodos": "Ativar Tarefas",
279 "settings.app.form.hibernate": "Activar hibernação do serviço", 283 "settings.app.form.hibernate": "Ativar hibernação de serviço",
280 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação", 284 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação",
281 "settings.app.form.iconSize": "Service icon size", 285 "settings.app.form.iconSize": "Tamanho do ícone",
282 "settings.app.form.inactivityLock": "Lock after inactivity", 286 "settings.app.form.inactivityLock": "Bloquear após",
283 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Ãreas de trabajo cargadas", 287 "settings.app.form.keepAllWorkspacesLoaded": "Mater todos os workspaces carregados",
284 "settings.app.form.language": "Idioma", 288 "settings.app.form.language": "Idioma",
285 "settings.app.form.lockPassword": "Senha", 289 "settings.app.form.lockPassword": "Senha",
286 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a área de sistema", 290 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Comportamento da barra de navegação",
288 "settings.app.form.noUpdates": "Desactivar actualizações", 292 "settings.app.form.noUpdates": "Desativar atualizações",
289 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações", 293 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações",
290 "settings.app.form.runInBackground": "Manter o Ferdi no fundo quando fechar a janela", 294 "settings.app.form.reloadAfterResume": "Recarregar Ferdi após restabelecer o sistema",
291 "settings.app.form.scheduledDNDEnabled": "Activar Não-Perturbar agendado", 295 "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela",
296 "settings.app.form.scheduledDNDEnabled": "Ativar modo Não-Perturbar agendado",
292 "settings.app.form.scheduledDNDEnd": "Até", 297 "settings.app.form.scheduledDNDEnd": "Até",
293 "settings.app.form.scheduledDNDStart": "Desde", 298 "settings.app.form.scheduledDNDStart": "Desde",
294 "settings.app.form.sentry": "Send telemetry data", 299 "settings.app.form.sentry": "Enviar dados de telemetria",
295 "settings.app.form.server": "Servidor", 300 "settings.app.form.server": "Servidor",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width", 301 "settings.app.form.serviceRibbonWidth": "Largura da barra lateral",
297 "settings.app.form.showDisabledServices": "Mostrar abas de serviços desativados", 302 "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados",
298 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", 303 "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas",
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Iniciar minimizado na bandeja",
300 "settings.app.form.todoServer": "Tarefa do Servidor", 305 "settings.app.form.todoServer": "Servidor das Tarefas",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Habilitar modo noturno universal",
307 "settings.app.form.useTouchIdToUnlock": "Permitir usar TouchID para desbloquear Ferdi",
302 "settings.app.headline": "Configurações", 308 "settings.app.headline": "Configurações",
303 "settings.app.headlineAdvanced": "Avançado", 309 "settings.app.headlineAdvanced": "Avançado",
304 "settings.app.headlineAppearance": "Aparência", 310 "settings.app.headlineAppearance": "Aparência",
305 "settings.app.headlineGeneral": "Geral", 311 "settings.app.headlineGeneral": "Geral",
306 "settings.app.headlineLanguage": "Idioma", 312 "settings.app.headlineLanguage": "Idioma",
307 "settings.app.headlineUpdates": "Atualizações", 313 "settings.app.headlineUpdates": "Atualizações",
308 "settings.app.hibernateInfo": "By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", 314 "settings.app.hibernateInfo": "Por padrão, Ferdi irá manter todos seus serviços abertos e carregados, assim eles estarão disponíveis quando você for utilizar. O Serviço de Hibernação irá descarregar seus serviços após determinado tempo. Isso é útil para evitar consumo excessivo de memória RAM evitando também que seu computador fique lento.",
309 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 315 "settings.app.inactivityLockInfo": "Minutos de inatividade, após este tempo Ferdi irá automaticamente bloquear. Utilize 0 para desabilitar",
310 "settings.app.languageDisclaimer": "As traduções oficiais são em inglês e alemão. As demais traduções são baseadas na ajuda da comunidade.", 316 "settings.app.languageDisclaimer": "As traduções oficiais são em inglês e alemão. As demais traduções são baseadas na ajuda da comunidade.",
311 "settings.app.lockInfo": "Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", 317 "settings.app.lockInfo": "O bloqueio por senha permite a você proteger suas mensagens.\\nUsando o bloqueio por senha, será necessário informar sua senha toda veze que o Ferdi for iniciado ou você solicite o bloqueio.",
312 "settings.app.lockedPassword": "Senha", 318 "settings.app.lockedPassword": "Senha",
313 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 319 "settings.app.lockedPasswordInfo": "Tenha certeza que a senha definida será lembrada.\\nCaso você esqueça a senha, será necessário reinstalar o Ferdi.",
314 "settings.app.restartRequired": "As mudanças exigem reiniciar o sistema", 320 "settings.app.restartRequired": "Alterações requerem reinício",
315 "settings.app.scheduledDNDInfo": "Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", 321 "settings.app.scheduledDNDInfo": "O modo Não perturbe agendado permite definir um período de tempo em que você não deseja receber notificações do Ferdi.",
316 "settings.app.scheduledDNDTimeInfo": "Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", 322 "settings.app.scheduledDNDTimeInfo": "Horários no formato de 24 horas. O horário de término pode ser anterior ao horário de início (por exemplo, início às 17:00 e término às 09:00) para ativar a opção Não perturbe da noite para o dia.",
317 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 323 "settings.app.sentryInfo": "O envio de dados de telemetria nos permite encontrar erros no Ferdi. Não enviaremos nenhuma informação pessoal como seus dados de mensagem! Alterar esta opção requer que você reinicie o Ferdi.",
318 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", 324 "settings.app.serverInfo": "Aconselhamos que você efetue logout após alterar o servidor, pois suas configurações podem não serem salvas.",
319 "settings.app.serverMoneyInfo": "You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.", 325 "settings.app.serverMoneyInfo": "Você está usando o Franz Server oficial para Ferd.\\nSabemos que o Ferdi permite que você use todos os seus recursos de graça, mas você ainda está usando os recursos de servidor de Franz, pelos quais o criador de Franz precisa ser pago.\\nPor favor consider [Link 1]adquirir uma licença Franz[/Link] ou [Link 2]utilize hospede o seu próprio servidor ferdi-server[/Link] (se você tiver conhecimento e recursos). \\nUsando o Ferdi, você continua podendo utilizar os serviços da loja Franz, além dos recursos de servidor e desenvolvimento.",
320 "settings.app.subheadlineCache": "memória cache", 326 "settings.app.subheadlineCache": "Memória Cache",
321 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 327 "settings.app.todoServerInfo": "Servidor utilizado para as Tarefas. (Padrão: https://app.franztodos.com)",
322 "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para seu idioma.", 328 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.",
323 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 329 "settings.app.universalDarkModeInfo": "O Modo Noturno Universal tenta gerar dinamicamente estilos para serviços que, de outra forma, não são suportados no momento.",
324 "settings.app.updateStatusAvailable": "Atualização disponível, baixando...", 330 "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...",
325 "settings.app.updateStatusSearching": "Buscando atualizações", 331 "settings.app.updateStatusSearching": "A procurar atualizações",
326 "settings.app.updateStatusUpToDate": "Você está usando a última versão do Ferdi", 332 "settings.app.updateStatusUpToDate": "Está a usar a versão mais recente do Ferdi",
327 "settings.invite.headline": "Convidar Amigos", 333 "settings.invite.headline": "Convide Amigos",
328 "settings.navigation.account": "Conta", 334 "settings.navigation.account": "Conta",
329 "settings.navigation.availableServices": "Serviços disponíveis", 335 "settings.navigation.availableServices": "Serviços disponíveis",
330 "settings.navigation.logout": "Sair", 336 "settings.navigation.logout": "Terminar sessão",
331 "settings.navigation.settings": "Configurações", 337 "settings.navigation.settings": "Configurações",
332 "settings.navigation.supportFerdi": "Support Ferdi", 338 "settings.navigation.supportFerdi": "Apoie o Ferdi",
333 "settings.navigation.team": "Administrar a equipe", 339 "settings.navigation.team": "Gerenciar equipes",
334 "settings.navigation.yourServices": "Seus serviços", 340 "settings.navigation.yourServices": "Seus serviços",
335 "settings.navigation.yourWorkspaces": "Suas áreas de trabalho", 341 "settings.navigation.yourWorkspaces": "Suas áreas de trabalho",
336 "settings.recipes.all": "Todos os serviços", 342 "settings.recipes.all": "Todos os serviços",
337 "settings.recipes.custom": "Servicios Personalizados", 343 "settings.recipes.custom": "Servicios Personalizados",
338 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", 344 "settings.recipes.customService.headline.communityRecipes": "Serviços da comunidade",
339 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 345 "settings.recipes.customService.headline.customRecipes": "Serviços personalizados",
340 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 346 "settings.recipes.customService.headline.devRecipes": "Serviços em Desenvolvimento",
341 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 347 "settings.recipes.customService.intro": "Para adicionar um serviço personalizado, copie o serviço para:",
342 "settings.recipes.customService.openDevDocs": "Developer Documentation", 348 "settings.recipes.customService.openDevDocs": "Documentação do Desenvolvedor",
343 "settings.recipes.customService.openFolder": "Open folder", 349 "settings.recipes.customService.openFolder": "Abrir pasta",
344 "settings.recipes.headline": "Serviços disponíveis", 350 "settings.recipes.headline": "Serviços disponíveis",
345 "settings.recipes.missingService": "Sentiu falta de algum serviço?", 351 "settings.recipes.missingService": "Falta um serviço?",
346 "settings.recipes.mostPopular": "Mais populares", 352 "settings.recipes.mostPopular": "Os mais populares",
347 "settings.recipes.nothingFound": "Desculpe, mas nenhum serviço corresponde a sua pesquisa.", 353 "settings.recipes.nothingFound": "Lamentamos, nenhum serviço corresponde ao termo pesquisado.",
348 "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado", 354 "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado com sucesso",
349 "settings.searchService": "Procurar serviço", 355 "settings.searchService": "Pesquisar erviço",
350 "settings.service.error.goBack": "Voltar aos serviços", 356 "settings.service.error.goBack": "Voltar aos serviços",
351 "settings.service.error.headline": "Erro", 357 "settings.service.error.headline": "Erro",
352 "settings.service.error.message": "Não foi possível carregar a receita do serviço.", 358 "settings.service.error.message": "Não foi possível carregar a receita do serviço.",
353 "settings.service.form.addServiceHeadline": "Adicionar {name}", 359 "settings.service.form.addServiceHeadline": "Adicionar {name}",
354 "settings.service.form.availableServices": "Serviços disponíveis", 360 "settings.service.form.availableServices": "Serviços disponíveis",
355 "settings.service.form.customUrl": "Servidor personalizado", 361 "settings.service.form.customUrl": "Servidor personalizado",
356 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Ferdi Premium.", 362 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços com domínio próprio, é necessário uma Conta Premium no Ferdi.",
357 "settings.service.form.customUrlUpgradeAccount": "Atualize a sua conta", 363 "settings.service.form.customUrlUpgradeAccount": "Atualizar a conta",
358 "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor personalizado {name}.", 364 "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor {name}.",
359 "settings.service.form.deleteButton": "Apagar serviço", 365 "settings.service.form.deleteButton": "Apagar serviço",
360 "settings.service.form.editServiceHeadline": "Editar {name}", 366 "settings.service.form.editServiceHeadline": "Editar {name}",
361 "settings.service.form.enableAudio": "Ativar áudio", 367 "settings.service.form.enableAudio": "Ativar áudio",
362 "settings.service.form.enableBadge": "Mostrar aviso de mensagens não lidas", 368 "settings.service.form.enableBadge": "Mostrar emblemas de mensagens não lidas",
363 "settings.service.form.enableDarkMode": "Ativar modo noturno", 369 "settings.service.form.enableDarkMode": "Ativar o Tema Escuro",
364 "settings.service.form.enableNotification": "Ativar notificações", 370 "settings.service.form.enableNotification": "Ativar notificações",
365 "settings.service.form.enableService": "Ativar serviço", 371 "settings.service.form.enableService": "Ativar serviço",
366 "settings.service.form.headlineBadges": "Mensagens não lidas", 372 "settings.service.form.headlineBadges": "Emblema de mensagem não lida",
367 "settings.service.form.headlineGeneral": "Geral", 373 "settings.service.form.headlineGeneral": "Geral",
368 "settings.service.form.headlineNotifications": "Notificações", 374 "settings.service.form.headlineNotifications": "Notificações",
369 "settings.service.form.icon": "Ãcone personalizado", 375 "settings.service.form.icon": "Ãcone personalizado",
370 "settings.service.form.iconDelete": "Excluir", 376 "settings.service.form.iconDelete": "Apagar",
371 "settings.service.form.iconUpload": "Solte sua imagem ou clique aqui", 377 "settings.service.form.iconUpload": "Arraste a sua imagem, ou clique aqui",
372 "settings.service.form.indirectMessageInfo": "Você será notificado por todas as mensagens em um canal, não apenas @usuário, @channel, @here, ...", 378 "settings.service.form.indirectMessageInfo": "Será notificado sobre todas as novas mensagens num canal, não apenas @username, @channel, @here, ...",
373 "settings.service.form.indirectMessages": "Mostrar avisos para todas as mensagens", 379 "settings.service.form.indirectMessages": "Mostrar o emblema da mensagem para todas as novas mensagens",
374 "settings.service.form.isMutedInfo": "Quando desativado, as notificações sonoras e áudios ficarão em silêncio", 380 "settings.service.form.isMutedInfo": "Quando desativado, todos sons e reproduções de áudio serão silenciados",
375 "settings.service.form.name": "Nome", 381 "settings.service.form.name": "Nome",
376 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 382 "settings.service.form.openDarkmodeCss": "Abrir darkmode.css",
377 "settings.service.form.openUserCss": "Open user.css", 383 "settings.service.form.openUserCss": "Abrir user.css",
378 "settings.service.form.openUserJs": "Open user.js", 384 "settings.service.form.openUserJs": "Abrir user.js",
379 "settings.service.form.proxy.headline": "Configurações de HTTP/HTTPS Proxy", 385 "settings.service.form.proxy.headline": "Definições HTTP/HTTPS Proxy",
380 "settings.service.form.proxy.host": "Proxy Host/IP", 386 "settings.service.form.proxy.host": "Host/IP proxy",
381 "settings.service.form.proxy.info": "As configurações de proxy não serão sincronizadas com os servidores do Ferdi.", 387 "settings.service.form.proxy.info": "As definições do proxy não serão guardadas nos servidores do Ferdi.",
382 "settings.service.form.proxy.isEnabled": "Usar o Proxy", 388 "settings.service.form.proxy.isEnabled": "Usar Proxy",
383 "settings.service.form.proxy.password": "Senha (opcional)", 389 "settings.service.form.proxy.password": "Palavra-chave (opcional)",
384 "settings.service.form.proxy.port": "Porta", 390 "settings.service.form.proxy.port": "Porta",
385 "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdi após alterar as configurações de proxy.", 391 "settings.service.form.proxy.restartInfo": "Reinicie, por favor, após atualizar as definições do Ferdi",
386 "settings.service.form.proxy.user": "Usuário (opcional)", 392 "settings.service.form.proxy.user": "Utilizador (opcional)",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", 393 "settings.service.form.recipeFileInfo": "Seus arquivos de usuário serão inseridos na página web para que você possa personalizar os serviços da forma que preferir. Os arquivos de usuário são armazenados localmente e não são transferidos para outros computadores utilizando a mesma conta.",
388 "settings.service.form.saveButton": "Salvar serviço", 394 "settings.service.form.saveButton": "Salvar serviço",
389 "settings.service.form.tabHosted": "Hospedado", 395 "settings.service.form.tabHosted": "Com domínio",
390 "settings.service.form.tabOnPremise": "Auto-hospedado â­ï¸", 396 "settings.service.form.tabOnPremise": "Com domínio próprio â­ï¸",
391 "settings.service.form.team": "Equipe", 397 "settings.service.form.team": "Equipa",
392 "settings.service.form.useHostedService": "Use o serviço {name} hospedado.", 398 "settings.service.form.useHostedService": "Utilize o serviço oferecido por {name}.",
393 "settings.service.form.yourServices": "Seus serviços", 399 "settings.service.form.yourServices": "Seus serviços",
394 "settings.services.deletedInfo": "Serviço excluído", 400 "settings.services.deletedInfo": "O serviço foi apagado",
395 "settings.services.discoverServices": "Descobrir serviços", 401 "settings.services.discoverServices": "Descobrir serviços",
396 "settings.services.headline": "Seus serviços", 402 "settings.services.headline": "Seus serviços",
397 "settings.services.noServicesAdded": "Você ainda não adicionou nenhum serviço.", 403 "settings.services.noServicesAdded": "Ainda não adicionou nenhum serviço.",
398 "settings.services.servicesRequestFailed": "Não foi possível carregar os seus serviços", 404 "settings.services.servicesRequestFailed": "Não foi possível ler os seus serviços",
399 "settings.services.tooltip.isDisabled": "O serviço está desativado", 405 "settings.services.tooltip.isDisabled": "O serviço está desativado",
400 "settings.services.tooltip.isMuted": "Sem som", 406 "settings.services.tooltip.isMuted": "Todos os sons estão silenciados",
401 "settings.services.tooltip.notificationsDisabled": "Notificações desativadas", 407 "settings.services.tooltip.notificationsDisabled": "As notificações estão desativadas",
402 "settings.services.updatedInfo": "Suas alterações foram gravadas", 408 "settings.services.updatedInfo": "As suas alterações foram efetuadas com sucesso",
403 "settings.supportFerdi.github": "Star on GitHub", 409 "settings.supportFerdi.github": "Siga on GitHub",
404 "settings.supportFerdi.headline": "Support Ferdi", 410 "settings.supportFerdi.headline": "Apoie o Ferdi",
405 "settings.supportFerdi.openCollective": "Support our Open Collective", 411 "settings.supportFerdi.openCollective": "Apoie o desenvolvimento no Open Collective",
406 "settings.supportFerdi.share": "Tell your Friends", 412 "settings.supportFerdi.share": "Compartilhe com seus amigos",
407 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 413 "settings.supportFerdi.title": "Gostou do Ferdi? Compartilhe!",
408 "settings.team.contentHeadline": "Ferdi para Equipes", 414 "settings.team.contentHeadline": "Ferdi para equipas",
409 "settings.team.copy": "\"Ferdi para Equipes\" possui a opção de convidar ajudantes para a sua equipe através de mensagens por e-mail e gerenciar as inscrições deles em suas preferências de conta. Não perca tempo configurando as inscrições para membro da equipe individualmente, esqueça as múltiplas faturas e tempos de pagamento. Uma regra universal para todos os membros da equipe.", 415 "settings.team.copy": "\"Ferdi para Equipes\" possui a opção de convidar ajudantes para a sua equipe através de mensagens por e-mail e gerenciar as inscrições deles em suas preferências de conta. Não perca tempo configurando as inscrições para membro da equipe individualmente, esqueça as múltiplas faturas e tempos de pagamento. Uma regra universal para todos os membros da equipe.",
410 "settings.team.headline": "Equipe", 416 "settings.team.headline": "Equipa",
411 "settings.team.intro": "Você e sua equipe usam Ferdi? Você pode agora administrar as inscrições pagas de todos os seus colegas, amigos e membros da família que você quiser, tudo isso em uma única conta.", 417 "settings.team.intro": "Você e sua equipe usam Ferdi? Você pode agora administrar as inscrições pagas de todos os seus colegas, amigos e membros da família que você quiser, tudo isso em uma única conta.",
412 "settings.team.manageAction": "Gerencie sua Equipe no getferdi.com", 418 "settings.team.manageAction": "Gerenciar sua Equipe em getferdi.com",
413 "settings.team.teamsUnavailable": "Teams are unavailable", 419 "settings.team.teamsUnavailable": "A funcionalidade de Equipes está indisponível",
414 "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.", 420 "settings.team.teamsUnavailableInfo": "Atualmente a funcionalidade de Equipes está disponível apenas utilizando o servidor Franz após adquirir um plano Franz Profissional. Por favor altere o seridor par https://api.franzinfra.com para utilizar esta funcionalidade.",
415 "settings.team.upgradeAction": "Atualize a sua conta para versão paga", 421 "settings.team.upgradeAction": "Atualizar sua conta",
416 "settings.user.form.accountType.company": "Empresa", 422 "settings.user.form.accountType.company": "Empresa",
417 "settings.user.form.accountType.individual": "Pessoal", 423 "settings.user.form.accountType.individual": "Indivíduo",
418 "settings.user.form.accountType.label": "Tipo de conta", 424 "settings.user.form.accountType.label": "Tipo de conta",
419 "settings.user.form.accountType.non-profit": "Sem fins lucrativos", 425 "settings.user.form.accountType.non-profit": "Sem fins lucrativos",
420 "settings.user.form.currentPassword": "Senha atual", 426 "settings.user.form.currentPassword": "Palavra-passe atual",
421 "settings.user.form.email": "E-mail", 427 "settings.user.form.email": "E-mail",
422 "settings.user.form.firstname": "Nome", 428 "settings.user.form.firstname": "Primeiro Nome",
423 "settings.user.form.lastname": "Sobrenome", 429 "settings.user.form.lastname": "Último Nome",
424 "settings.user.form.newPassword": "Nova senha", 430 "settings.user.form.newPassword": "Nova palavra-passe",
425 "settings.workspace.add.form.name": "Nome", 431 "settings.workspace.add.form.name": "Nome",
426 "settings.workspace.add.form.submitButton": "Criar workspace", 432 "settings.workspace.add.form.submitButton": "Nova Ãrea de Trabalho",
427 "settings.workspace.form.buttonDelete": "Apagar workspace", 433 "settings.workspace.form.buttonDelete": "Excluir Ãrea de trabalho",
428 "settings.workspace.form.buttonSave": "Salvar workspace", 434 "settings.workspace.form.buttonSave": "Salvar Ãrea de Trabalho",
429 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 435 "settings.workspace.form.keepLoaded": "Maner todas a áreas de trabalhos carregadas*",
430 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 436 "settings.workspace.form.keepLoadedInfo": "*Esta opção será substituída pela configuração global \"Manter todas a áreas de trabalho carregada\".",
431 "settings.workspace.form.name": "Nome", 437 "settings.workspace.form.name": "Nome",
432 "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços neste Workspace", 438 "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços neste Workspace",
433 "settings.workspace.form.yourWorkspaces": "Suas áreas de trabalho", 439 "settings.workspace.form.yourWorkspaces": "Suas áreas de trabalho",
434 "settings.workspaces.deletedInfo": "Ãrea de trabalho deletada", 440 "settings.workspaces.deletedInfo": "O Espaço de trabalho foi apagado",
435 "settings.workspaces.headline": "Suas áreas de trabalho", 441 "settings.workspaces.headline": "Suas áreas de trabalho",
436 "settings.workspaces.noWorkspacesAdded": "Você não possui nenhuma área de trabalho adicionadas anteriormente.", 442 "settings.workspaces.noWorkspacesAdded": "Ainda não adicionou nenhum Espaço de trabalho",
437 "settings.workspaces.tryReloadWorkspaces": "Tente novamente", 443 "settings.workspaces.tryReloadWorkspaces": "Tentar novamente",
438 "settings.workspaces.updatedInfo": "Suas alterações foram gravadas", 444 "settings.workspaces.updatedInfo": "As suas alterações foram efetuadas com sucesso",
439 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo Workspaces do Ferdi", 445 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo as Ãreas de trabalho Ferdi",
440 "settings.workspaces.workspaceFeatureInfo": "As áreas de trabalho do Ferdi permite você focar no que realmente é importante agora. Configure diferentes conjuntos de serviços e alterne entre eles facilmente em qualquer momento. Você decide quais serviços você precisa e onde deseja colocá-los, então nós podemos te ajudar a aumentar a produtividade de suas tarefas. Ou facilmente deletar os aplicativos que você nunca irá precisar.", 446 "settings.workspaces.workspaceFeatureInfo": "As áreas de trabalho do Ferdi permite você focar no que realmente é importante agora. Configure diferentes conjuntos de serviços e alterne entre eles facilmente em qualquer momento. Você decide quais serviços você precisa e onde deseja colocá-los, então nós podemos te ajudar a aumentar a produtividade de suas tarefas. Ou facilmente deletar os aplicativos que você nunca irá precisar.",
441 "settings.workspaces.workspacesRequestFailed": "Não foi possível carregar suas áreas de trabalho", 447 "settings.workspaces.workspacesRequestFailed": "Não foi possível carregar suas áreas de trabalho",
442 "sidebar.addNewService": "Adicionar novo serviço", 448 "sidebar.addNewService": "Adicionar um novo serviço",
443 "sidebar.closeTodosDrawer": "Close Ferdi Todos", 449 "sidebar.closeTodosDrawer": "Fechar as Tarefas",
444 "sidebar.closeWorkspaceDrawer": "Fechar menu da área de trabalho", 450 "sidebar.closeWorkspaceDrawer": "Fechar a janela da Ãrea de trabalho",
445 "sidebar.lockFerdi": "Bloquear Ferdi", 451 "sidebar.lockFerdi": "Bloquear Ferdi",
446 "sidebar.muteApp": "Desativar notificações e áudio", 452 "sidebar.muteApp": "Desativar notificações e áudio",
447 "sidebar.openTodosDrawer": "Open Ferdi Todos", 453 "sidebar.openTodosDrawer": "Abrir as Tarefas",
448 "sidebar.openWorkspaceDrawer": "Abrir o menu da área de trabalho", 454 "sidebar.openWorkspaceDrawer": "Abrir a janela da Ãrea de trabalho",
449 "sidebar.settings": "Configurações", 455 "sidebar.settings": "Configurações",
450 "sidebar.unmuteApp": "Ativar notificações e áudio", 456 "sidebar.unmuteApp": "Ativar notificações e áudio",
451 "signup.email.label": "Endereço de E-mail", 457 "signup.email.label": "Endereço de e-mail",
452 "signup.emailDuplicate": "Já existe um usuário com este endereço de e-mail", 458 "signup.emailDuplicate": "Já existe uma conta associada a este endereço de email",
453 "signup.firstname.label": "Nome", 459 "signup.firstname.label": "Primeiro Nome",
454 "signup.headline": "Cadastrar-se", 460 "signup.headline": "Criar conta",
455 "signup.lastname.label": "Sobrenome", 461 "signup.lastname.label": "Último Nome",
456 "signup.legal.info": "Ao criar uma conta Ferdi, você aceita os ", 462 "signup.legal.info": "Ao criar uma conta Ferdi, aceita",
457 "signup.legal.privacy": "Declaração de Privacidade ", 463 "signup.legal.privacy": "Declaração de privacidade",
458 "signup.legal.terms": "Termos de serviço", 464 "signup.legal.terms": "Termos do Serviço",
459 "signup.link.login": "Já tem uma conta?", 465 "signup.link.login": "Já tem uma conta, iniciar sessão?",
460 "signup.password.label": "Senha", 466 "signup.password.label": "Senha",
461 "signup.submit.label": "Criar uma conta", 467 "signup.submit.label": "Criar uma conta",
462 "subscription.bestValue": "Best value", 468 "subscription.bestValue": "Best value",
463 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 469 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
464 "subscription.cta.allOptions": "See all options", 470 "subscription.cta.allOptions": "Ver todas as opções",
465 "subscription.cta.choosePlan": "Choose your plan", 471 "subscription.cta.choosePlan": "Escolha seu plano",
466 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", 472 "subscription.includedProFeatures": "O Ferdi Profissional incluí:",
467 "subscription.interval.per": "per {interval}", 473 "subscription.interval.per": "por {interval}",
468 "subscription.interval.perMonth": "per month", 474 "subscription.interval.perMonth": "por mês",
469 "subscription.interval.perMonthPerUser": "por mês e por utilizador", 475 "subscription.interval.perMonthPerUser": "por mês e por utilizador",
470 "subscription.planItem.upgradeAccount": "Actualizar cuenta", 476 "subscription.planItem.upgradeAccount": "Atualizar conta",
471 "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:", 477 "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:",
472 "subscription.teaser.intro": "O Ferdi 5 vem com uma variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas inclusas. Confira os nossos novos planos e encontre aquele que melhor serve para você!", 478 "subscription.teaser.intro": "O Ferdi 5 vem com uma variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas inclusas. Confira os nossos novos planos e encontre aquele que melhor serve para você!",
473 "subscriptionPopup.buttonCancel": "Cancelar", 479 "subscriptionPopup.buttonCancel": "Cancelar",
474 "subscriptionPopup.buttonDone": "Feito", 480 "subscriptionPopup.buttonDone": "Concluído",
475 "tabs.item.deleteService": "Apagar serviço", 481 "tabs.item.deleteService": "Apagar serviço",
476 "tabs.item.disableAudio": "Desativar áudio", 482 "tabs.item.disableAudio": "Desativar áudio",
477 "tabs.item.disableNotifications": "Desativar notificações", 483 "tabs.item.disableNotifications": "Desativar notificações",
@@ -480,28 +486,28 @@
480 "tabs.item.enableAudio": "Ativar áudio", 486 "tabs.item.enableAudio": "Ativar áudio",
481 "tabs.item.enableNotification": "Ativar notificações", 487 "tabs.item.enableNotification": "Ativar notificações",
482 "tabs.item.enableService": "Ativar serviço", 488 "tabs.item.enableService": "Ativar serviço",
483 "tabs.item.reload": "Actualizar", 489 "tabs.item.reload": "Recarregar",
484 "validation.email": "inválido", 490 "validation.email": "{field} não é válido",
485 "validation.minLength": "{campo} deve ter pelo menos {comprimento} mais caracteres ", 491 "validation.minLength": "{field} deveria ter pelo menos {length} caracteres",
486 "validation.oneRequired": "Necessário pelo menos um", 492 "validation.oneRequired": "É necessário pelo menos um",
487 "validation.required": "{campo} obrigatório", 493 "validation.required": "{field} é obrigatório",
488 "validation.url": "{campo} essa URL não é válida", 494 "validation.url": "{field} não é uma hiperligação válida",
489 "webControls.back": "Anterior", 495 "webControls.back": "Anterior",
490 "webControls.forward": "Seguinte", 496 "webControls.forward": "Próximo",
491 "webControls.goHome": "Início", 497 "webControls.goHome": "Início",
492 "webControls.openInBrowser": "Abrir no navegador", 498 "webControls.openInBrowser": "Abrir no navegador",
493 "webControls.reload": "Actualizar", 499 "webControls.reload": "Recarregar",
494 "welcome.loginButton": "Entrar na sua conta", 500 "welcome.loginButton": "Iniciar sessão",
495 "welcome.signupButton": "Criar uma conta gratuita", 501 "welcome.signupButton": "Criar uma conta gratuita",
496 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar uma nova área de trabalho", 502 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar uma nova área de trabalho",
497 "workspaceDrawer.allServices": "Todos os serviços", 503 "workspaceDrawer.allServices": "Todos os serviços",
498 "workspaceDrawer.headline": "Ãreas de trabalho", 504 "workspaceDrawer.headline": "Ãreas de trabalho",
499 "workspaceDrawer.item.contextMenuEdit": "editar", 505 "workspaceDrawer.item.contextMenuEdit": "editar",
500 "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço adicionado anteriormente", 506 "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço foi adicionado",
501 "workspaceDrawer.premiumCtaButtonLabel": "Crie sua primeira área de trabalho", 507 "workspaceDrawer.premiumCtaButtonLabel": "Crie sua primeira área de trabalho",
502 "workspaceDrawer.proFeatureBadge": "Vantagem paga oferecida aos assinantes", 508 "workspaceDrawer.proFeatureBadge": "Vantagem paga oferecida aos assinantes",
503 "workspaceDrawer.reactivatePremiumAccountLabel": "Reative sua conta paga", 509 "workspaceDrawer.reactivatePremiumAccountLabel": "Reative sua conta paga",
504 "workspaceDrawer.workspaceFeatureInfo": "<p>As áreas de trabalho do Ferdi te ajuda a focar no que realmente é importante agora. Configure diferente cenários para serviços e mude entre eles facilmente em qualquer momento. </p><p>Você decide quais serviços precisa e onde deseja posicioná-los, e então nós iremos te ajudar em aumentar a sua produtividade. Você pode desligar os serviços que não são úteis para você.</p>", 510 "workspaceDrawer.workspaceFeatureInfo": "<p>As áreas de trabalho do Ferdi te ajuda a focar no que realmente é importante agora. Configure diferente cenários para serviços e mude entre eles facilmente em qualquer momento. </p><p>Você decide quais serviços precisa e onde deseja posicioná-los, e então nós iremos te ajudar em aumentar a sua produtividade. Você pode desligar os serviços que não são úteis para você.</p>",
505 "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho", 511 "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho",
506 "workspaces.switchingIndicator.switchingTo": "Mudando para" 512 "workspaces.switchingIndicator.switchingTo": "Trocando para"
507} 513}
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index a00052a58..b5904bb0a 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -1,83 +1,83 @@
1{ 1{
2 "app.errorHandler.action": "Recarregar", 2 "app.errorHandler.action": "Actualizar",
3 "app.errorHandler.headline": "Alguma coisa correu mal", 3 "app.errorHandler.headline": "Uoops! Algo correu mal",
4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", 4 "feature.announcements.changelog.headline": "Alterações no Ferdi {version}",
5 "feature.debugger.title": "Publicar informações de depuração", 5 "feature.debugger.title": "Publish debugging information",
6 "feature.delayApp.headline": "Por favor compre uma licença Ferdi Supporter para saltar a fila de espera", 6 "feature.delayApp.headline": "Por favor, adquira uma licença Ferdi para não ter tempo de espera",
7 "feature.delayApp.text": "Ferdi irá continuar em {seconds} segundos.", 7 "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.",
8 "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias", 8 "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional",
9 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", 9 "feature.delayApp.trial.actionShort": "Ativar período de testes gratuito do Ferdi Professional",
10 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", 10 "feature.delayApp.trial.headline": "Empieza el periodo de prueba de Ferdi Profesional por 14 días y cruza la linea.",
11 "feature.delayApp.upgrade.action": "Faz parte do grupo de apoio do Ferdi", 11 "feature.delayApp.upgrade.action": "Adquira uma licença de suporte Ferdi",
12 "feature.delayApp.upgrade.actionShort": "Atualiza a tua conta", 12 "feature.delayApp.upgrade.actionShort": "Atualizar conta",
13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", 13 "feature.planSelection.cta.ctaDowngradeFree": "Despromover para Gratuito",
14 "feature.planSelection.cta.stayOnFree": "Stay on Free", 14 "feature.planSelection.cta.stayOnFree": "Continuar em Gratuito",
15 "feature.planSelection.cta.trial": "Start my free 14-days Trial", 15 "feature.planSelection.cta.trial": "Iniciar meu teste grátis de 14 dias",
16 "feature.planSelection.cta.upgradePersonal": "Choose Personal", 16 "feature.planSelection.cta.upgradePersonal": "Escolha Pessoal",
17 "feature.planSelection.cta.upgradePro": "Choose Professional", 17 "feature.planSelection.cta.upgradePro": "Escolha Profissional",
18 "feature.planSelection.free.text": "Basic functionality", 18 "feature.planSelection.free.text": "Funcionalidade básica",
19 "feature.planSelection.fullFeatureList": "Complete comparison of all plans", 19 "feature.planSelection.fullFeatureList": "Comparação completa de todos os planos",
20 "feature.planSelection.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 20 "feature.planSelection.fullscreen.dialog.cta.downgrade": "Despromover para Gratuito",
21 "feature.planSelection.fullscreen.dialog.cta.upgrade": "Choose Personal", 21 "feature.planSelection.fullscreen.dialog.cta.upgrade": "Escolha Pessoal",
22 "feature.planSelection.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", 22 "feature.planSelection.fullscreen.dialog.message": "Você está prestes a fazer a despromoção para nossa conta gratuita. Você tem certeza? Clique aqui para obter mais serviços e funcionalidade por apenas {currency}{price} por mês.",
23 "feature.planSelection.fullscreen.dialog.title": "Downgrade your Ferdi Plan", 23 "feature.planSelection.fullscreen.dialog.title": "Despromover o seu Plano Ferdi",
24 "feature.planSelection.fullscreen.subheadline": "It's time to make a choice. Ferdi works best on our Personal and Professional plans. Please have a look and choose the best one for you.", 24 "feature.planSelection.fullscreen.subheadline": "Agora tem de fazer uma escolha. O Ferdi trabalha melhor em nossos planos pessoais e profissionais. Por favor, compare estes planos e escolha o que melhor se adapta a si.",
25 "feature.planSelection.fullscreen.welcome": "Are you ready to choose, {name}", 25 "feature.planSelection.fullscreen.welcome": "Está prestes a escolher, {name}",
26 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 26 "feature.planSelection.personal.text": "Mais serviços, sem espera - ideal para uso pessoal.",
27 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 27 "feature.planSelection.pricesBasedOnAnnualPayment": "Todos os preços são baseados no pagamento anual",
28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Serviços ilimitados e recursos profissionais para si - e para a sua equipa.",
29 "feature.publishDebugInfo.error": "Ocorreu um erro ao tentar publicar as informações de depuração. Por favor tente novamente mais tarde ou verifique o console para mais informações.", 29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publicar suas informações de depuração nos permite encontrar erros no Ferdi. Para publicar essas informações é necessário aceitar os termos privacidade e serviço do Ferdi Debugger", 30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Política de privacidade", 31 "feature.publishDebugInfo.privacy": "Privacy policy",
32 "feature.publishDebugInfo.publish": "Aceitar e publicar", 32 "feature.publishDebugInfo.publish": "Accept and publish",
33 "feature.publishDebugInfo.published": "Seu log de depuração foi publicado e agora está disponível em", 33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "Termos do Serviço", 34 "feature.publishDebugInfo.terms": "Termos de serviço",
35 "feature.publishDebugInfo.title": "Publicar informações de depuração", 35 "feature.publishDebugInfo.title": "Publish debug information",
36 "feature.quickSwitch.info": "Selecione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.", 36 "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.",
37 "feature.quickSwitch.search": "Localizar...", 37 "feature.quickSwitch.search": "A procurar...",
38 "feature.quickSwitch.title": "Troca Rápida", 38 "feature.quickSwitch.title": "Troca Rápida",
39 "feature.serviceLimit.limitReached": "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.", 39 "feature.serviceLimit.limitReached": "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.",
40 "feature.shareFranz.action.email": "Enviar por e-mail", 40 "feature.shareFranz.action.email": "Enviar por e-mail",
41 "feature.shareFranz.action.facebook": "Compartilahr no Facebook", 41 "feature.shareFranz.action.facebook": "Compartilhar no Facebook",
42 "feature.shareFranz.action.twitter": "Compartilhar no Twitter", 42 "feature.shareFranz.action.twitter": "Compartilhar no Twitter",
43 "feature.shareFranz.headline": "Ferdi é melhor em grupo!", 43 "feature.shareFranz.headline": "Ferdi é melhor em grupo!",
44 "feature.shareFranz.shareText.email": "Eu adicionei {count} serviços ao Ferdi! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.getferdi.com", 44 "feature.shareFranz.shareText.email": "Eu adicionei {count} serviços ao Ferdi! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.getferdi.com",
45 "feature.shareFranz.shareText.twitter": "Eu adicionei uma contagem de serviços para o Ferdi! Baixe gratuitamente o aplicativo para WhatsApp, Messenger, Slack, Skype e outros em www.getferdi.com /cc @FerdiMessenger", 45 "feature.shareFranz.shareText.twitter": "Eu adicionei uma contagem de serviços para o Ferdi! Baixe gratuitamente o aplicativo para WhatsApp, Messenger, Slack, Skype e outros em www.getferdi.com /cc @FerdiMessenger",
46 "feature.shareFranz.text": "Conte aos seus amigos e colegas o quanto incrível o Ferdi é e nos ajude a espalhar a mensagem.", 46 "feature.shareFranz.text": "Conte aos seus amigos e colegas o quanto incrível o Ferdi é e nos ajude a espalhar a mensagem. ",
47 "feature.todos.premium.info": "As Tarefas do Ferdi estão disponíveis para usuários premium!", 47 "feature.todos.premium.info": "As Listas de Tarefa do Ferdi estão disponíveis para usuários premium!",
48 "feature.todos.premium.rollout": "As outras pessoas terão que esperar um pouquinho mais.", 48 "feature.todos.premium.rollout": "As outras pessoas terão que esperar um pouquinho mais.",
49 "feature.todos.premium.upgrade": "Atualizar conta", 49 "feature.todos.premium.upgrade": "Actualizar cuenta",
50 "feature.trialStatusBar.cta": "Upgrade now", 50 "feature.trialStatusBar.cta": "Promover agora",
51 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", 51 "feature.trialStatusBar.expired": "Seu teste grátis Ferdi {plan} expirou, por favor actualize sua conta.",
52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Despromover para Gratuito",
53 "feature.trialStatusBar.fullscreen.dialog.cta.upgrade": "Choose Personal", 53 "feature.trialStatusBar.fullscreen.dialog.cta.upgrade": "Escolha Pessoal",
54 "feature.trialStatusBar.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", 54 "feature.trialStatusBar.fullscreen.dialog.message": "Você está prestes a fazer a despromoção para nossa conta gratuita. Você tem certeza? Clique aqui para obter mais serviços e funcionalidade por apenas {currency}{price} por mês.",
55 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan", 55 "feature.trialStatusBar.fullscreen.dialog.title": "Despromover o seu Plano Ferdi",
56 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", 56 "feature.trialStatusBar.restTime": "Seu teste grátis Ferdi {plan} termina em {time}.",
57 "global.api.unhealthy": "Não foi possível estabelecer ligação aos serviços do Ferdi", 57 "global.api.unhealthy": "Não foi possível conectar-se aos serviços on-line do Ferdi.",
58 "global.franzProRequired": "Ferdi Plano Profissional é necessário", 58 "global.franzProRequired": "Se requiere una cuenta Ferdi Profesional",
59 "global.notConnectedToTheInternet": "Não estás ligado à Internet", 59 "global.notConnectedToTheInternet": "Você não está conectado à internet",
60 "global.spellchecker.useDefault": "Utilizar o Sistema por Omissão ({default})", 60 "global.spellchecker.useDefault": "Use o padrão do sistema ({default})",
61 "global.spellchecking.autodetect": "Detectar a lingua automaticamente", 61 "global.spellchecking.autodetect": "Detectar idioma automaticamente.",
62 "global.spellchecking.autodetect.short": "Automático", 62 "global.spellchecking.autodetect.short": "Automático",
63 "global.spellchecking.language": "Linguagem para correção ortográfica", 63 "global.spellchecking.language": "Idioma para verificação ortográfica",
64 "global.upgradeButton.upgradeToPro": "Atualizar para o Ferdi Profissional", 64 "global.upgradeButton.upgradeToPro": "Atualizar para o Ferdi Profissional",
65 "import.headline": "Importa os teus serviços do Ferdi", 65 "import.headline": "Importe seus serviços do Ferdi 4 ",
66 "import.notSupportedHeadline": "Estes serviços ainda não são suportados pelo Ferdi 5", 66 "import.notSupportedHeadline": "Serviços ainda não suportados pelo Ferdi 5 ",
67 "import.skip.label": "Eu quero adicionar serviços manualmente", 67 "import.skip.label": "Quero adicionar serviços manualmente",
68 "import.submit.label": "Importar serviços", 68 "import.submit.label": "Importar serviços",
69 "infobar.authRequestFailed": "Ocorreram erros ao tentar autenticar. Por favor, tente desconectar e autenticar novamente se o erro persistir.", 69 "infobar.authRequestFailed": "Houve erros ao tentar autenticar. Por favor, tente desconectar e autenticar novamente se o erro persistir.",
70 "infobar.buttonChangelog": "O que há de novo?", 70 "infobar.buttonChangelog": "O que há de novo?",
71 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações", 71 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações ",
72 "infobar.buttonReloadServices": "Recarregar serviços", 72 "infobar.buttonReloadServices": "Recarregar serviços",
73 "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações do utilizador", 73 "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações de usuário",
74 "infobar.servicesUpdated": "Os seus serviços foram atualizados.", 74 "infobar.servicesUpdated": "Seus serviços foram atualizados.",
75 "infobar.trialActivated": "A tua versão experimental foi activada com êxito. Boas mensagens!", 75 "infobar.trialActivated": "O seu período de testes foi ativado com sucesso! Boas mensagens!",
76 "infobar.updateAvailable": "Está disponível uma nova atualização para o Ferdi", 76 "infobar.updateAvailable": "Uma nova atualização do Ferdi está disponível.",
77 "invite.email.label": "Endereço de e-mail", 77 "invite.email.label": "Endereço de E-mail",
78 "invite.headline.friends": "Convide 3 amigos ou colegas", 78 "invite.headline.friends": "Convide 3 amigos ou colegas",
79 "invite.name.label": "Nome", 79 "invite.name.label": "Nome",
80 "invite.skip.label": "Pretendo fazer isto mais tarde", 80 "invite.skip.label": "Quero fazer isso depois",
81 "invite.submit.label": "Enviar convites", 81 "invite.submit.label": "Enviar convites",
82 "invite.successInfo": "Convites enviados com sucesso", 82 "invite.successInfo": "Convites enviados com sucesso",
83 "locked.headline": "Bloqueado", 83 "locked.headline": "Bloqueado",
@@ -85,108 +85,112 @@
85 "locked.invalidCredentials": "Senha inválida", 85 "locked.invalidCredentials": "Senha inválida",
86 "locked.password.label": "Senha", 86 "locked.password.label": "Senha",
87 "locked.submit.label": "Desbloquear", 87 "locked.submit.label": "Desbloquear",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Alterar servidor", 91 "login.changeServer": "Alterar servidor",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
91 "login.email.label": "Endereço de e-mail", 94 "login.email.label": "Endereço de E-mail",
92 "login.headline": "Iniciar Sessão", 95 "login.headline": "Entrar",
93 "login.invalidCredentials": "O email ou a palavra-passe estão incorrectos", 96 "login.invalidCredentials": "E-mail ou senha inválida",
94 "login.link.password": "Repor a minha palavra-passe", 97 "login.link.password": "Trocar a senha",
95 "login.link.signup": "Criar uma conta gratuita", 98 "login.link.signup": "Criar uma conta gratuita",
96 "login.password.label": "Senha", 99 "login.password.label": "Senha",
97 "login.serverLogout": "A sua sessão expirou, inicie sessão novamente.", 100 "login.serverLogout": "Sua sessão expirou, faça o login novamente.",
98 "login.submit.label": "Iniciar Sessão", 101 "login.submit.label": "Entrar",
99 "login.tokenExpired": "A sua sessão expirou, inicie sessão novamente.", 102 "login.tokenExpired": "Sua sessão expirou, faça o login novamente.",
100 "menu.Todoss.closeTodosDrawer": "Fechar a gaveta Todos", 103 "menu.Todoss.closeTodosDrawer": "Fechar a gaveta de Listas de Tarefa",
101 "menu.Todoss.openTodosDrawer": "Abrir a gaveta Todos", 104 "menu.Todoss.openTodosDrawer": "Abrir a gaveta de Listas de Tarefa",
102 "menu.app.about": "Sobre o Ferdi", 105 "menu.app.about": "Sobre Ferdi",
103 "menu.app.announcement": "O que há de novo?", 106 "menu.app.announcement": "Quais as novidades?",
104 "menu.app.autohideMenuBar": "Auto-ocultar barra de menu", 107 "menu.app.autohideMenuBar": "Auto-ocultar barra de menu",
105 "menu.app.checkForUpdates": "Procurar atualizações", 108 "menu.app.checkForUpdates": "Verificar se há atualizações",
106 "menu.app.hide": "Ocultar", 109 "menu.app.hide": "Ocultar",
107 "menu.app.hideOthers": "Ocultar Outros", 110 "menu.app.hideOthers": "Ocultar Outros",
108 "menu.app.quit": "Sair", 111 "menu.app.quit": "Sair",
109 "menu.app.settings": "Definições", 112 "menu.app.settings": "Configurações",
110 "menu.app.unhide": "Mostrar", 113 "menu.app.unhide": "Mostrar",
111 "menu.edit": "Editar", 114 "menu.edit": "Editar",
112 "menu.edit.copy": "Copiar", 115 "menu.edit.copy": "Copiar",
113 "menu.edit.cut": "Cortar", 116 "menu.edit.cut": "Cortar",
114 "menu.edit.delete": "Apagar", 117 "menu.edit.delete": "Excluir",
115 "menu.edit.emojiSymbols": "Emojis e Símbolos", 118 "menu.edit.emojiSymbols": "Emoji & Símbolos",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Colar", 120 "menu.edit.paste": "Colar",
117 "menu.edit.pasteAndMatchStyle": "Colar e Manter Estilo", 121 "menu.edit.pasteAndMatchStyle": "Colar e Corresponder ao Estilo",
118 "menu.edit.redo": "Refazer", 122 "menu.edit.redo": "Refazer",
119 "menu.edit.selectAll": "Selecionar Tudo", 123 "menu.edit.selectAll": "Selecionar Tudo",
120 "menu.edit.speech": "Voz", 124 "menu.edit.speech": "Falar",
121 "menu.edit.startDictation": "Começar a ditar", 125 "menu.edit.startDictation": "Iniciar Digitação",
122 "menu.edit.startSpeaking": "Comece a falar", 126 "menu.edit.startSpeaking": "Começar a Falar",
123 "menu.edit.stopSpeaking": "Pare de Falar", 127 "menu.edit.stopSpeaking": "Parar de Falar",
124 "menu.edit.undo": "Desfazer", 128 "menu.edit.undo": "Desfazer",
125 "menu.file": "Ficheiro", 129 "menu.file": "Arquivo",
126 "menu.help": "Ajuda", 130 "menu.help": "Ajuda",
127 "menu.help.changelog": "Registo de alterações", 131 "menu.help.changelog": "Registro de Alterações ",
128 "menu.help.debugInfo": "Copiar a informação Debug", 132 "menu.help.debugInfo": "Copiar Informações de Depuração",
129 "menu.help.debugInfoCopiedBody": "As Informações de Depuração foram copiadas para a área de transferência.", 133 "menu.help.debugInfoCopiedBody": "As Informações de Depuração foram copiadas para a área de transferência.",
130 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi", 134 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi",
131 "menu.help.learnMore": "Saber mais", 135 "menu.help.learnMore": "Saiba Mais ",
132 "menu.help.privacy": "Declaração de privacidade", 136 "menu.help.privacy": "Declaração de Privacidade ",
133 "menu.help.publishDebugInfo": "Publicar Informações de Depuração", 137 "menu.help.publishDebugInfo": "Publish Debug Information",
134 "menu.help.support": "Suporte", 138 "menu.help.support": "Suporte",
135 "menu.help.tos": "Termos do Serviço", 139 "menu.help.tos": "Termos de Serviço",
136 "menu.services": "Serviços", 140 "menu.services": "Serviços",
137 "menu.services.activatePreviousService": "Activar o serviço anterior", 141 "menu.services.activatePreviousService": "Pular para serviço anterior",
138 "menu.services.addNewService": "Adicionar Novo Serviço...", 142 "menu.services.addNewService": "Adicionar Novo Serviço",
139 "menu.services.goHome": "Início", 143 "menu.services.goHome": "Início",
140 "menu.services.setNextServiceActive": "Activar o próximo serviço", 144 "menu.services.setNextServiceActive": "Pular para próximo serviço",
141 "menu.todos": "Tarefas", 145 "menu.todos": "Tareas pendientes",
142 "menu.todos.enableTodos": "Activar Todos", 146 "menu.todos.enableTodos": "Habilitar Tareas pendientes",
143 "menu.view": "Ver", 147 "menu.view": "Visualizar ",
144 "menu.view.back": "Anterior", 148 "menu.view.back": "Anterior",
145 "menu.view.enterFullScreen": "Ativar Modo de Ecrã Completo", 149 "menu.view.enterFullScreen": "Modo Tela Cheia",
146 "menu.view.exitFullScreen": "Sair do Modo de Ecrã Completo", 150 "menu.view.exitFullScreen": "Sair da Tela Cheia",
147 "menu.view.forward": "Próximo", 151 "menu.view.forward": "Seguinte",
148 "menu.view.lockFerdi": "Bloquear Ferdi", 152 "menu.view.lockFerdi": "Bloquear Ferdi",
149 "menu.view.openQuickSwitch": "Abrir Troca Rápida", 153 "menu.view.openQuickSwitch": "Abrir Troca Rápida",
150 "menu.view.reloadFranz": "Recarregar Ferdi", 154 "menu.view.reloadFranz": "Recarregar Ferdi",
151 "menu.view.reloadService": "Recarregar serviço", 155 "menu.view.reloadService": "Reiniciar o Serviço",
152 "menu.view.resetZoom": "Tamanho Real", 156 "menu.view.resetZoom": "Tamanho real",
153 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento", 157 "menu.view.toggleDevTools": "Ferramentas de Desenvolvedor",
154 "menu.view.toggleFullScreen": "Ativar/Desativar Ecrã Completo", 158 "menu.view.toggleFullScreen": "Modo Tela Cheia",
155 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços", 159 "menu.view.toggleServiceDevTools": "Ferramentas de Serviços de Desenvolvedor",
156 "menu.view.toggleTodosDevTools": "Ativar Ferramentas de Desenvolvedor das Tarefas", 160 "menu.view.toggleTodosDevTools": "Ativar as Ferramentas de Desenvolvedor das Listas de Tarefas ",
157 "menu.view.zoomIn": "Aumentar", 161 "menu.view.zoomIn": "Ampliar",
158 "menu.view.zoomOut": "Reduzir", 162 "menu.view.zoomOut": "Reduzir",
159 "menu.window": "Janela", 163 "menu.window": "Modo Janela",
160 "menu.window.close": "Fechar", 164 "menu.window.close": "Fechar",
161 "menu.window.minimize": "Minimizar", 165 "menu.window.minimize": "Minimizar",
162 "menu.workspaces": "Espaços de trabalho", 166 "menu.workspaces": "Ãreas de trabalho",
163 "menu.workspaces.addNewWorkspace": "Adicionar novo Esp§o de trabalho", 167 "menu.workspaces.addNewWorkspace": "Adicionar nova área de trabalho...",
164 "menu.workspaces.closeWorkspaceDrawer": "Fechar a janela do Esp§o de trabalho", 168 "menu.workspaces.closeWorkspaceDrawer": "Fechar menu da área de trabalho",
165 "menu.workspaces.defaultWorkspace": "Todos os serviços", 169 "menu.workspaces.defaultWorkspace": "Todos os serviços",
166 "menu.workspaces.openWorkspaceDrawer": "Abrir a janela do Esp§o de trabalho", 170 "menu.workspaces.openWorkspaceDrawer": "Abrir o menu da área de trabalho",
167 "password.email.label": "Endereço de e-mail", 171 "password.email.label": "Endereço de E-mail",
168 "password.headline": "Repor a minha palavra-passe", 172 "password.headline": "Trocar a senha",
169 "password.link.login": "Iniciar sessão", 173 "password.link.login": "Fazer login na sua conta",
170 "password.link.signup": "Criar uma conta gratuita", 174 "password.link.signup": "Criar uma conta gratuita",
171 "password.noUser": "Não existe nenhuma conta associada a esse endereço de e-mail", 175 "password.noUser": "Nenhum usuário com este e-mail foi encontrado",
172 "password.submit.label": "Submeter", 176 "password.submit.label": "Enviar",
173 "password.successInfo": "Por favor verifique o seu endereço de e-mail", 177 "password.successInfo": "Por favor, verifique o seu e-mail",
174 "premiumFeature.button.upgradeAccount": "Atualiza a tua conta", 178 "premiumFeature.button.upgradeAccount": "Atualizar conta",
175 "pricing.features.accountSync": "Sincronização Automática", 179 "pricing.features.accountSync": "Sincronização Automática",
176 "pricing.features.adFree": "Sem publicidade para sempre", 180 "pricing.features.adFree": "Sin anuncios para siempre!",
177 "pricing.features.appDelays": "Sem Telas de Espera", 181 "pricing.features.appDelays": "Sem Telas de Espera",
178 "pricing.features.customWebsites": "Adicionar Websites Personalizados", 182 "pricing.features.customWebsites": "Adicionar Websites Personalizados",
179 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho", 183 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho",
180 "pricing.features.onPremise": "On-premise & other Hosted Services", 184 "pricing.features.onPremise": "En sitio y otros servicios alojados",
181 "pricing.features.recipes": "Escolha entre mais de 70 serviços", 185 "pricing.features.recipes": "Escolha entre mais de 70 serviços",
182 "pricing.features.serviceProxies": "Serviços de proxy", 186 "pricing.features.serviceProxies": "Apoderados de Servicio",
183 "pricing.features.spellchecker": "Suporte ao corretor ortográfico", 187 "pricing.features.spellchecker": "Soporte de corrector ortográfico",
184 "pricing.features.teamManagement": "Gestão de Equipes", 188 "pricing.features.teamManagement": "Gestão de Time",
185 "pricing.features.thirdPartyServices": "Instalar serviços de terceiros", 189 "pricing.features.thirdPartyServices": "Instalar servicios de terceros",
186 "pricing.features.unlimitedServices": "Instalar serviços ilimitados", 190 "pricing.features.unlimitedServices": "Agregar servicios ilimitados",
187 "pricing.features.upToSixServices": "Adicionar até 6 serviços", 191 "pricing.features.upToSixServices": "Adicionar até 6 serviços",
188 "pricing.features.upToThreeServices": "Adicionar até 3 serviços", 192 "pricing.features.upToThreeServices": "Adicionar até 3 serviços",
189 "pricing.features.workspaces": "Espaços de trabalho", 193 "pricing.features.workspaces": "Ãreas de trabalho",
190 "pricing.plan.free": "Ferdi Gratuito", 194 "pricing.plan.free": "Ferdi Gratuito",
191 "pricing.plan.legacy": "Ferdi Premium", 195 "pricing.plan.legacy": "Ferdi Premium",
192 "pricing.plan.personal": "Ferdi Pessoal", 196 "pricing.plan.personal": "Ferdi Pessoal",
@@ -195,283 +199,285 @@
195 "pricing.plan.pro": "Ferdi Profissional", 199 "pricing.plan.pro": "Ferdi Profissional",
196 "pricing.plan.pro-monthly": "Ferdi Profissional Mensal", 200 "pricing.plan.pro-monthly": "Ferdi Profissional Mensal",
197 "pricing.plan.pro-yearly": "Ferdi Profissional Anual", 201 "pricing.plan.pro-yearly": "Ferdi Profissional Anual",
198 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional", 202 "pricing.trial.cta.accept": "Sim, atualizar minha conta para o Ferdi Profissional",
199 "pricing.trial.cta.skip": "Continue to Ferdi", 203 "pricing.trial.cta.skip": "Continuar para o Ferdi",
200 "pricing.trial.cta.start": "Start using Ferdi", 204 "pricing.trial.cta.start": "Começar a usar Ferdi",
201 "pricing.trial.error": "Sorry, we could not activate your trial!", 205 "pricing.trial.error": "Desculpe, não conseguimos ativar o seu período de testes",
202 "pricing.trial.features.headline": "Ferdi Professional includes:", 206 "pricing.trial.features.headline": "Incluso no Ferdi Profissional:",
203 "pricing.trial.headline.pro": "Hi {name}, welcome to Ferdi", 207 "pricing.trial.headline.pro": "Olá {name}, bem-vindo/a ao Ferdi",
204 "pricing.trial.intro.happyMessaging": "Happy messaging,", 208 "pricing.trial.intro.happyMessaging": "Mensagens felizes,",
205 "pricing.trial.intro.specialTreat": "We have a special treat for you.", 209 "pricing.trial.intro.specialTreat": "Temos uma oferta especial para si.",
206 "pricing.trial.intro.tryPro": "Enjoy the full Ferdi Professional experience completely free for 14 days.", 210 "pricing.trial.intro.tryPro": "Aproveite a experiência completa de Ferdi Profissional completamente gratuita durante 14 dias.",
207 "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days", 211 "pricing.trial.terms.automaticTrialEnd": "Seu período de testes encerra automaticamente em 14 dias",
208 "pricing.trial.terms.headline": "No strings attached", 212 "pricing.trial.terms.headline": "Sem vínculos",
209 "pricing.trial.terms.noCreditCard": "No credit card required", 213 "pricing.trial.terms.noCreditCard": "No necesita tarjeta de crédito",
210 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", 214 "pricing.trial.terms.trialWorth": "Teste gratuito (normalmente {currency}{price} por mês)",
211 "service.crashHandler.action": "Recarregar {name}", 215 "service.crashHandler.action": "Recarregar {name}",
212 "service.crashHandler.autoReload": "A tentar restaurar automaticamente {name} em {seconds} segundos", 216 "service.crashHandler.autoReload": "Tentando reestabelecer {name} automaticamente em {seconds} segundos",
213 "service.crashHandler.headline": "Oh não!", 217 "service.crashHandler.headline": "Ah, não!",
214 "service.crashHandler.text": "{name} causou um erro.", 218 "service.crashHandler.text": "{name} causou um erro.",
215 "service.disabledHandler.action": "Ativar {name}", 219 "service.disabledHandler.action": "Ativar {name}",
216 "service.disabledHandler.headline": "{name} está desativado", 220 "service.disabledHandler.headline": "{name} está desativado",
217 "service.errorHandler.action": "Recarregar {name}", 221 "service.errorHandler.action": "Recarregar {name}",
218 "service.errorHandler.editAction": "Editar {name}", 222 "service.errorHandler.editAction": "Editar {name}",
219 "service.errorHandler.headline": "Oh não!", 223 "service.errorHandler.headline": "Ah, não!",
220 "service.errorHandler.message": "Erro", 224 "service.errorHandler.message": "Erro",
221 "service.errorHandler.text": "{name} falhou o carregamento", 225 "service.errorHandler.text": "{name} não pôde ser carregado.",
222 "service.restrictedHandler.action": "Atualizar conta", 226 "service.restrictedHandler.action": "Actualizar cuenta",
223 "service.restrictedHandler.customUrl.headline": "É necessário um plano Ferdi Profissional", 227 "service.restrictedHandler.customUrl.headline": "Necesita el Plan Ferdi Profesional",
224 "service.restrictedHandler.customUrl.text": "Por favor adquira um plano Ferdi Profesional para utilizar url's personalizadas e serviços próprios.", 228 "service.restrictedHandler.customUrl.text": "Por favor suscribase al Plan Ferdi Profesional para utilizar urls personalizadas y servicios auto alojados.",
225 "service.restrictedHandler.serviceLimit.headline": "Você atingiu seu limite de serviço.", 229 "service.restrictedHandler.serviceLimit.headline": "Ha llegado al límite del servicio.",
226 "service.restrictedHandler.serviceLimit.text": "Por favor, atualize sua conta para usar mais do que {count} serviços.", 230 "service.restrictedHandler.serviceLimit.text": "Por favor mejore su cuenta para poder utilizar más de {count} servicios.",
227 "service.webviewLoader.loading": "Carregando {service}", 231 "service.webviewLoader.loading": "Loading {service}",
228 "services.getStarted": "Vamos começar", 232 "services.getStarted": "Iniciar",
229 "services.login": "Por favor, inicie sua sessão para usar Ferdi.", 233 "services.login": "Por favor, inicie sua sessão para usar Ferdi.",
230 "services.serverInfo": "Opcionalmente, você pode mudar seu servidor Ferdi clicando no ícone de engrenagem localizada no canto inferior esquerdo.", 234 "services.serverInfo": "Opcionalmente, você pode mudar seu servidor Ferdi clicando no icon de roda dentada no canto inferior esquerdo.",
231 "services.serverless": "Use Ferdi sem uma conta", 235 "services.serverless": "Use Ferdi sem uma conta",
232 "services.welcome": "Bem-vindo ao Ferdi", 236 "services.welcome": "Bem-vindo ao Ferdi!",
233 "settings.account.account.editButton": "Editar conta", 237 "settings.account.account.editButton": "Editar conta",
234 "settings.account.accountType.basic": "Conta Básica", 238 "settings.account.accountType.basic": "Conta Básica",
235 "settings.account.accountType.premium": "Conta Premium", 239 "settings.account.accountType.premium": "Conta Apoiador Premium",
236 "settings.account.accountUnavailable": "Conta indisponível", 240 "settings.account.accountUnavailable": "Account is unavailable",
237 "settings.account.accountUnavailableInfo": "Você está utilizando Ferdis sem uma conta. Se você deseja usar o Ferdi com uma conta e manter seus serviços atualizados, Por favor selecione um servidor em Configurações seção Servidor.", 241 "settings.account.accountUnavailableInfo": "You are using Ferdi without an account. If you want to use Ferdi with an account and keep your services synchronized across installations, please select a server in the Settings tab then login.",
238 "settings.account.buttonSave": "Atualizar o perfil", 242 "settings.account.buttonSave": "Atualizar perfil",
239 "settings.account.deleteAccount": "Apagar conta", 243 "settings.account.deleteAccount": "Excluir conta",
240 "settings.account.deleteEmailSent": "Recebeu um email com um endereço para confirmar a remoção da sua conta. A sua conta e dados não poderão ser restaurados!", 244 "settings.account.deleteEmailSent": "Você recebeu um e-mail com um link para confirmar a exclusão da sua conta. Atenção! Sua conta e dados não poderão ser restaurados!",
241 "settings.account.deleteInfo": "Se já não necessita da sua conta Ferdi, pode apagar a sua conta e todos os dados aqui.", 245 "settings.account.deleteInfo": "Se você não precisa mais de sua conta Ferdi, pode exclui-la juntamente com todos os dados relacionados, aqui.",
242 "settings.account.headline": "Conta", 246 "settings.account.headline": "Conta",
243 "settings.account.headlineAccount": "Informação da conta", 247 "settings.account.headlineAccount": "Informações de conta",
244 "settings.account.headlineDangerZone": "Zona de perigo", 248 "settings.account.headlineDangerZone": "Zona de Perigo",
245 "settings.account.headlineInvoices": "Faturas", 249 "settings.account.headlineInvoices": "Recibos",
246 "settings.account.headlinePassword": "Alterar palavra-passe", 250 "settings.account.headlinePassword": "Mudar senha",
247 "settings.account.headlineProfile": "Atualizar o perfil", 251 "settings.account.headlineProfile": "Atualizar perfil",
248 "settings.account.headlineSubscription": "A sua subscrição", 252 "settings.account.headlineSubscription": "Sua assinatura",
249 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", 253 "settings.account.headlineTrialUpgrade": "Consiga 14 días de prueba gratis de Ferdi Profesional ",
250 "settings.account.headlineUpgradeAccount": "Dê um upgrade na sua conta e tenha uma completa experiência do Ferdi", 254 "settings.account.headlineUpgradeAccount": "Mejore su cuenta y reciba la experiencia completa de Ferdi",
251 "settings.account.invoiceDownload": "Transferir", 255 "settings.account.invoiceDownload": "Baixar",
252 "settings.account.manageSubscription.label": "Gerir as minhas subscrições", 256 "settings.account.manageSubscription.label": "Gerencie a sua assinatura",
253 "settings.account.successInfo": "As suas alterações foram efetuadas com sucesso", 257 "settings.account.successInfo": "Suas alterações foram gravadas",
254 "settings.account.trial": "Free Trial", 258 "settings.account.trial": "Prueba Gratis",
255 "settings.account.trialEndsIn": "Your free trial ends in {duration}.", 259 "settings.account.trialEndsIn": "Su prueba gratis finaliza en {duration}.",
256 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.", 260 "settings.account.trialUpdateBillingInfo": "Por favor actualice su información de facturación para continuar utilizando {license} luego del periodo de prueba.",
257 "settings.account.tryReloadServices": "Tentar novamente", 261 "settings.account.tryReloadServices": "Tente novamente",
258 "settings.account.tryReloadUserInfoRequest": "Tentar novamente", 262 "settings.account.tryReloadUserInfoRequest": "Tente novamente",
259 "settings.account.upgradeToPro.label": "Atualizar para o Ferdi Profissional", 263 "settings.account.upgradeToPro.label": "Atualizar para o Ferdi Profissional",
260 "settings.account.userInfoRequestFailed": "Não é possível carregar a informação do utilizador", 264 "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações do usuário",
261 "settings.account.yourLicense": "Sua lincença Ferdi", 265 "settings.account.yourLicense": "Su Licencia Ferdi",
262 "settings.app.accentColorInfo": "Informe sua cor de destaque em um formato compatível com CSS. (Padrão: #7367f0)", 266 "settings.app.accentColorInfo": "Escreva sua cor de destaque em um formato compatível com CSS. (Padrão: #7367f0)",
263 "settings.app.buttonClearAllCache": "Limpar cache", 267 "settings.app.buttonClearAllCache": "Limpar cache",
264 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações", 268 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações ",
265 "settings.app.buttonSearchForUpdate": "Procurar atualizações", 269 "settings.app.buttonSearchForUpdate": "Verificar se há atualizações",
266 "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.", 270 "settings.app.cacheInfo": "O cache do Ferdi está usando {size} de espaço em disco atualmente.",
267 "settings.app.currentVersion": "Versão atual", 271 "settings.app.currentVersion": "Versão atual:",
268 "settings.app.form.accentColor": "Cor de destaque", 272 "settings.app.form.accentColor": "Cor de destaque",
269 "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com as configurações do Mac", 273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting",
270 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", 274 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano",
271 "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador", 275 "settings.app.form.autoLaunchOnStart": "Abrir o Ferdi ao iniciar o sistema",
272 "settings.app.form.beta": "Incluir versões instáveis (beta)", 276 "settings.app.form.beta": "Incluir versões beta",
273 "settings.app.form.darkMode": "Habilitar modo noturno", 277 "settings.app.form.darkMode": "Enable dark mode",
274 "settings.app.form.enableGPUAcceleration": "Activar Aceleração de GPU", 278 "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU",
275 "settings.app.form.enableLock": "Habilitar bloqueio por senha", 279 "settings.app.form.enableLock": "Enable Password Lock",
276 "settings.app.form.enableSpellchecking": "Ativar verificação ortográfica", 280 "settings.app.form.enableSpellchecking": "Ativar correção ortográfica",
277 "settings.app.form.enableSystemTray": "Mostrar o Ferdi na barra do sistema", 281 "settings.app.form.enableSystemTray": "Exibir o Ferdi na barra de sistema",
278 "settings.app.form.enableTodos": "Ativar Tarefas", 282 "settings.app.form.enableTodos": "Activar Ferdi Todos",
279 "settings.app.form.hibernate": "Ativar hibernação de serviço", 283 "settings.app.form.hibernate": "Activar hibernação do serviço",
280 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação", 284 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação",
281 "settings.app.form.iconSize": "Tamanho do ícone", 285 "settings.app.form.iconSize": "Service icon size",
282 "settings.app.form.inactivityLock": "Bloquear após", 286 "settings.app.form.inactivityLock": "Lock after inactivity",
283 "settings.app.form.keepAllWorkspacesLoaded": "Mater todos os workspaces carregados", 287 "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Ãreas de trabajo cargadas",
284 "settings.app.form.language": "Idioma", 288 "settings.app.form.language": "Idioma",
285 "settings.app.form.lockPassword": "Senha", 289 "settings.app.form.lockPassword": "Senha",
286 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema", 290 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a área de sistema",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Desativar atualizações", 292 "settings.app.form.noUpdates": "Desactivar actualizações",
289 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações", 293 "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações",
290 "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela", 294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
291 "settings.app.form.scheduledDNDEnabled": "Ativar modo Não-Perturbar agendado", 295 "settings.app.form.runInBackground": "Manter o Ferdi no fundo quando fechar a janela",
296 "settings.app.form.scheduledDNDEnabled": "Activar Não-Perturbar agendado",
292 "settings.app.form.scheduledDNDEnd": "Até", 297 "settings.app.form.scheduledDNDEnd": "Até",
293 "settings.app.form.scheduledDNDStart": "Desde", 298 "settings.app.form.scheduledDNDStart": "Desde",
294 "settings.app.form.sentry": "Enviar dados de telemetria", 299 "settings.app.form.sentry": "Send telemetry data",
295 "settings.app.form.server": "Servidor", 300 "settings.app.form.server": "Servidor",
296 "settings.app.form.serviceRibbonWidth": "Largura da barra lateral", 301 "settings.app.form.serviceRibbonWidth": "Sidebar width",
297 "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados", 302 "settings.app.form.showDisabledServices": "Mostrar abas de serviços desativados",
298 "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", 303 "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas",
299 "settings.app.form.startMinimized": "Iniciar minimizado na bandeja", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Servidor das Tarefas", 305 "settings.app.form.todoServer": "Tarefa do Servidor",
301 "settings.app.form.universalDarkMode": "Habilitar modo noturno universal", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
302 "settings.app.headline": "Definições", 307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
308 "settings.app.headline": "Configurações",
303 "settings.app.headlineAdvanced": "Avançado", 309 "settings.app.headlineAdvanced": "Avançado",
304 "settings.app.headlineAppearance": "Aparência", 310 "settings.app.headlineAppearance": "Aparência",
305 "settings.app.headlineGeneral": "Geral", 311 "settings.app.headlineGeneral": "Geral",
306 "settings.app.headlineLanguage": "Idioma", 312 "settings.app.headlineLanguage": "Idioma",
307 "settings.app.headlineUpdates": "Atualizações", 313 "settings.app.headlineUpdates": "Atualizações",
308 "settings.app.hibernateInfo": "Por padrão, Ferdi irá manter todos seus serviços abertos e carregados, assim eles estarão disponíveis quando você for utilizar. O Serviço de Hibernação irá descarregar seus serviços após determinado tempo. Isso é útil para evitar consumo excessivo de memória RAM evitando também que seu computador fique lento.", 314 "settings.app.hibernateInfo": "By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.",
309 "settings.app.inactivityLockInfo": "Minutos de inatividade, após este tempo Ferdi irá automaticamente bloquear. Utilize 0 para desabilitar", 315 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
310 "settings.app.languageDisclaimer": "As traduções oficiais são em inglês e alemão. As demais traduções são baseadas na ajuda da comunidade.", 316 "settings.app.languageDisclaimer": "As traduções oficiais são em inglês e alemão. As demais traduções são baseadas na ajuda da comunidade.",
311 "settings.app.lockInfo": "O bloqueio por senha permite a você proteger suas mensagens.\\nUsando o bloqueio por senha, será necessário informar sua senha toda veze que o Ferdi for iniciado ou você solicite o bloqueio.", 317 "settings.app.lockInfo": "Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.",
312 "settings.app.lockedPassword": "Senha", 318 "settings.app.lockedPassword": "Senha",
313 "settings.app.lockedPasswordInfo": "Tenha certeza que a senha definida será lembrada.\\nCaso você esqueça a senha, será necessário reinstalar o Ferdi.", 319 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
314 "settings.app.restartRequired": "Alterações requerem reinício", 320 "settings.app.restartRequired": "As mudanças exigem reiniciar o sistema",
315 "settings.app.scheduledDNDInfo": "O modo Não perturbe agendado permite definir um período de tempo em que você não deseja receber notificações do Ferdi.", 321 "settings.app.scheduledDNDInfo": "Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.",
316 "settings.app.scheduledDNDTimeInfo": "Horários no formato de 24 horas. O horário de término pode ser anterior ao horário de início (por exemplo, início às 17:00 e término às 09:00) para ativar a opção Não perturbe da noite para o dia.", 322 "settings.app.scheduledDNDTimeInfo": "Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.",
317 "settings.app.sentryInfo": "O envio de dados de telemetria nos permite encontrar erros no Ferdi. Não enviaremos nenhuma informação pessoal como seus dados de mensagem! Alterar esta opção requer que você reinicie o Ferdi.", 323 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.",
318 "settings.app.serverInfo": "Aconselhamos que você efetue logout após alterar o servidor, pois suas configurações podem não serem salvas.", 324 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.",
319 "settings.app.serverMoneyInfo": "Você está usando o Franz Server oficial para Ferd.\\nSabemos que o Ferdi permite que você use todos os seus recursos de graça, mas você ainda está usando os recursos de servidor de Franz, pelos quais o criador de Franz precisa ser pago.\\nPor favor consider [Link 1]adquirir uma licença Franz[/Link] ou [Link 2]utilize hospede o seu próprio servidor ferdi-server[/Link] (se você tiver conhecimento e recursos). \\nUsando o Ferdi, você continua podendo utilizar os serviços da loja Franz, além dos recursos de servidor e desenvolvimento.", 325 "settings.app.serverMoneyInfo": "You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.",
320 "settings.app.subheadlineCache": "Memória Cache", 326 "settings.app.subheadlineCache": "memória cache",
321 "settings.app.todoServerInfo": "Servidor utilizado para as Tarefas. (Padrão: https://app.franztodos.com)", 327 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)",
322 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.", 328 "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para seu idioma.",
323 "settings.app.universalDarkModeInfo": "O Modo Noturno Universal tenta gerar dinamicamente estilos para serviços que, de outra forma, não são suportados no momento.", 329 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
324 "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...", 330 "settings.app.updateStatusAvailable": "Atualização disponível, baixando...",
325 "settings.app.updateStatusSearching": "A procurar atualizações", 331 "settings.app.updateStatusSearching": "Buscando atualizações",
326 "settings.app.updateStatusUpToDate": "Está a usar a versão mais recente do Ferdi", 332 "settings.app.updateStatusUpToDate": "Você está usando a última versão do Ferdi",
327 "settings.invite.headline": "Convide Amigos", 333 "settings.invite.headline": "Convidar Amigos",
328 "settings.navigation.account": "Conta", 334 "settings.navigation.account": "Conta",
329 "settings.navigation.availableServices": "Serviços disponíveis", 335 "settings.navigation.availableServices": "Serviços disponíveis",
330 "settings.navigation.logout": "Terminar sessão", 336 "settings.navigation.logout": "Sair",
331 "settings.navigation.settings": "Definições", 337 "settings.navigation.settings": "Configurações",
332 "settings.navigation.supportFerdi": "Apoie o Ferdi", 338 "settings.navigation.supportFerdi": "Support Ferdi",
333 "settings.navigation.team": "Gerir a equipa", 339 "settings.navigation.team": "Administrar a equipe",
334 "settings.navigation.yourServices": "Os seus serviços", 340 "settings.navigation.yourServices": "Seus serviços",
335 "settings.navigation.yourWorkspaces": "Os teus Espaços de trabalho", 341 "settings.navigation.yourWorkspaces": "Suas áreas de trabalho",
336 "settings.recipes.all": "Todos os serviços", 342 "settings.recipes.all": "Todos os serviços",
337 "settings.recipes.custom": "Servicios Personalizados", 343 "settings.recipes.custom": "Servicios Personalizados",
338 "settings.recipes.customService.headline.communityRecipes": "Serviços da comunidade", 344 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes",
339 "settings.recipes.customService.headline.customRecipes": "Serviços personalizados", 345 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes",
340 "settings.recipes.customService.headline.devRecipes": "Seus Serviços em Desenvolvimento", 346 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes",
341 "settings.recipes.customService.intro": "Para adicionar um serviço personalizado, copie o serviço para:", 347 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:",
342 "settings.recipes.customService.openDevDocs": "Documentação do Desenvolvedor", 348 "settings.recipes.customService.openDevDocs": "Developer Documentation",
343 "settings.recipes.customService.openFolder": "Abrir pasta", 349 "settings.recipes.customService.openFolder": "Open folder",
344 "settings.recipes.headline": "Serviços disponíveis", 350 "settings.recipes.headline": "Serviços disponíveis",
345 "settings.recipes.missingService": "Falta um serviço?", 351 "settings.recipes.missingService": "Sentiu falta de algum serviço?",
346 "settings.recipes.mostPopular": "Os mais populares", 352 "settings.recipes.mostPopular": "Mais populares",
347 "settings.recipes.nothingFound": "Lamentamos, nenhum serviço corresponde ao termo pesquisado.", 353 "settings.recipes.nothingFound": "Desculpe, mas nenhum serviço corresponde a sua pesquisa.",
348 "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado com sucesso", 354 "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado",
349 "settings.searchService": "Pesquisar erviço", 355 "settings.searchService": "Procurar serviço",
350 "settings.service.error.goBack": "Voltar aos serviços", 356 "settings.service.error.goBack": "Voltar aos serviços",
351 "settings.service.error.headline": "Erro", 357 "settings.service.error.headline": "Erro",
352 "settings.service.error.message": "Não foi possível carregar a receita do serviço.", 358 "settings.service.error.message": "Não foi possível carregar a receita do serviço.",
353 "settings.service.form.addServiceHeadline": "Adicionar {name}", 359 "settings.service.form.addServiceHeadline": "Adicionar {name}",
354 "settings.service.form.availableServices": "Serviços disponíveis", 360 "settings.service.form.availableServices": "Serviços disponíveis",
355 "settings.service.form.customUrl": "Servidor personalizado", 361 "settings.service.form.customUrl": "Servidor personalizado",
356 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços com domínio próprio, é necessário uma Conta Premium no Ferdi.", 362 "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Ferdi Premium.",
357 "settings.service.form.customUrlUpgradeAccount": "Atualizar a conta", 363 "settings.service.form.customUrlUpgradeAccount": "Atualize a sua conta",
358 "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor {name}.", 364 "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor personalizado {name}.",
359 "settings.service.form.deleteButton": "Apagar serviço", 365 "settings.service.form.deleteButton": "Apagar serviço",
360 "settings.service.form.editServiceHeadline": "Editar {name}", 366 "settings.service.form.editServiceHeadline": "Editar {name}",
361 "settings.service.form.enableAudio": "Ativar áudio", 367 "settings.service.form.enableAudio": "Ativar áudio",
362 "settings.service.form.enableBadge": "Mostrar emblemas de mensagens não lidas", 368 "settings.service.form.enableBadge": "Mostrar aviso de mensagens não lidas",
363 "settings.service.form.enableDarkMode": "Ativar o Tema Escuro", 369 "settings.service.form.enableDarkMode": "Ativar modo noturno",
364 "settings.service.form.enableNotification": "Ativar notificações", 370 "settings.service.form.enableNotification": "Ativar notificações",
365 "settings.service.form.enableService": "Ativar serviço", 371 "settings.service.form.enableService": "Ativar serviço",
366 "settings.service.form.headlineBadges": "Emblema de mensagem não lida", 372 "settings.service.form.headlineBadges": "Mensagens não lidas",
367 "settings.service.form.headlineGeneral": "Geral", 373 "settings.service.form.headlineGeneral": "Geral",
368 "settings.service.form.headlineNotifications": "Notificações", 374 "settings.service.form.headlineNotifications": "Notificações",
369 "settings.service.form.icon": "Ãcone personalizado", 375 "settings.service.form.icon": "Ãcone personalizado",
370 "settings.service.form.iconDelete": "Apagar", 376 "settings.service.form.iconDelete": "Excluir",
371 "settings.service.form.iconUpload": "Arraste a sua imagem, ou clique aqui", 377 "settings.service.form.iconUpload": "Solte sua imagem ou clique aqui",
372 "settings.service.form.indirectMessageInfo": "Será notificado sobre todas as novas mensagens num canal, não apenas @username, @channel, @here, ...", 378 "settings.service.form.indirectMessageInfo": "Você será notificado por todas as mensagens em um canal, não apenas @usuário, @channel, @here, ...",
373 "settings.service.form.indirectMessages": "Mostrar o emblema da mensagem para todas as novas mensagens", 379 "settings.service.form.indirectMessages": "Mostrar avisos para todas as mensagens",
374 "settings.service.form.isMutedInfo": "Quando desativado, todos sons e reproduções de áudio serão silenciados", 380 "settings.service.form.isMutedInfo": "Quando desativado, as notificações sonoras e áudios ficarão em silêncio",
375 "settings.service.form.name": "Nome", 381 "settings.service.form.name": "Nome",
376 "settings.service.form.openDarkmodeCss": "Abrir darkmode.css", 382 "settings.service.form.openDarkmodeCss": "Open darkmode.css",
377 "settings.service.form.openUserCss": "Abrir user.css", 383 "settings.service.form.openUserCss": "Open user.css",
378 "settings.service.form.openUserJs": "Abrir user.js", 384 "settings.service.form.openUserJs": "Open user.js",
379 "settings.service.form.proxy.headline": "Definições HTTP/HTTPS Proxy", 385 "settings.service.form.proxy.headline": "Configurações de HTTP/HTTPS Proxy",
380 "settings.service.form.proxy.host": "Host/IP proxy", 386 "settings.service.form.proxy.host": "Proxy Host/IP",
381 "settings.service.form.proxy.info": "As definições do proxy não serão guardadas nos servidores do Ferdi.", 387 "settings.service.form.proxy.info": "As configurações de proxy não serão sincronizadas com os servidores do Ferdi.",
382 "settings.service.form.proxy.isEnabled": "Usar Proxy", 388 "settings.service.form.proxy.isEnabled": "Usar o Proxy",
383 "settings.service.form.proxy.password": "Palavra-chave (opcional)", 389 "settings.service.form.proxy.password": "Senha (opcional)",
384 "settings.service.form.proxy.port": "Porta", 390 "settings.service.form.proxy.port": "Porta",
385 "settings.service.form.proxy.restartInfo": "Reinicie, por favor, após atualizar as definições do Ferdi", 391 "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdi após alterar as configurações de proxy.",
386 "settings.service.form.proxy.user": "Utilizador (opcional)", 392 "settings.service.form.proxy.user": "Usuário (opcional)",
387 "settings.service.form.recipeFileInfo": "Seus arquivos de usuário serão inseridos na página web para que você possa personalizar os serviços da forma que preferir. Os arquivos de usuário são armazenados localmente e não são transferidos para outros computadores utilizando a mesma conta.", 393 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
388 "settings.service.form.saveButton": "Guardar serviço", 394 "settings.service.form.saveButton": "Salvar serviço",
389 "settings.service.form.tabHosted": "Com domínio", 395 "settings.service.form.tabHosted": "Hospedado",
390 "settings.service.form.tabOnPremise": "Com domínio próprio â­ï¸", 396 "settings.service.form.tabOnPremise": "Auto-hospedado â­ï¸",
391 "settings.service.form.team": "Equipa", 397 "settings.service.form.team": "Equipe",
392 "settings.service.form.useHostedService": "Utilize o serviço oferecido por {name}.", 398 "settings.service.form.useHostedService": "Use o serviço {name} hospedado.",
393 "settings.service.form.yourServices": "Os seus serviços", 399 "settings.service.form.yourServices": "Seus serviços",
394 "settings.services.deletedInfo": "O serviço foi apagado", 400 "settings.services.deletedInfo": "Serviço excluído",
395 "settings.services.discoverServices": "Descobrir serviços", 401 "settings.services.discoverServices": "Descobrir serviços",
396 "settings.services.headline": "Os seus serviços", 402 "settings.services.headline": "Seus serviços",
397 "settings.services.noServicesAdded": "Ainda não adicionou nenhum serviço.", 403 "settings.services.noServicesAdded": "Você ainda não adicionou nenhum serviço.",
398 "settings.services.servicesRequestFailed": "Não foi possível ler os teus serviços", 404 "settings.services.servicesRequestFailed": "Não foi possível carregar os seus serviços",
399 "settings.services.tooltip.isDisabled": "O serviço está desativado", 405 "settings.services.tooltip.isDisabled": "O serviço está desativado",
400 "settings.services.tooltip.isMuted": "Todos os sons estão silenciados", 406 "settings.services.tooltip.isMuted": "Sem som",
401 "settings.services.tooltip.notificationsDisabled": "As notificações estão desativadas", 407 "settings.services.tooltip.notificationsDisabled": "Notificações desativadas",
402 "settings.services.updatedInfo": "As suas alterações foram efetuadas com sucesso", 408 "settings.services.updatedInfo": "Suas alterações foram gravadas",
403 "settings.supportFerdi.github": "Siga on GitHub", 409 "settings.supportFerdi.github": "Star on GitHub",
404 "settings.supportFerdi.headline": "Apoie o Ferdi", 410 "settings.supportFerdi.headline": "Support Ferdi",
405 "settings.supportFerdi.openCollective": "Apoie o desenvolvimento no Open Collective", 411 "settings.supportFerdi.openCollective": "Support our Open Collective",
406 "settings.supportFerdi.share": "Compartilhe com seus amigos", 412 "settings.supportFerdi.share": "Tell your Friends",
407 "settings.supportFerdi.title": "Gostou do Ferdi? Compartilhe!", 413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
408 "settings.team.contentHeadline": "Ferdi para equipas", 414 "settings.team.contentHeadline": "Ferdi para Equipes",
409 "settings.team.copy": "\"Ferdi para Equipes\" possui a opção de convidar ajudantes para a sua equipe através de mensagens por e-mail e gerenciar as inscrições deles em suas preferências de conta. Não perca tempo configurando as inscrições para membro da equipe individualmente, esqueça as múltiplas faturas e tempos de pagamento. Uma regra universal para todos os membros da equipe.", 415 "settings.team.copy": "\"Ferdi para Equipes\" possui a opção de convidar ajudantes para a sua equipe através de mensagens por e-mail e gerenciar as inscrições deles em suas preferências de conta. Não perca tempo configurando as inscrições para membro da equipe individualmente, esqueça as múltiplas faturas e tempos de pagamento. Uma regra universal para todos os membros da equipe.",
410 "settings.team.headline": "Equipa", 416 "settings.team.headline": "Equipe",
411 "settings.team.intro": "Você e sua equipe usam Ferdi? Você pode agora administrar as inscrições pagas de todos os seus colegas, amigos e membros da família que você quiser, tudo isso em uma única conta.", 417 "settings.team.intro": "Você e sua equipe usam Ferdi? Você pode agora administrar as inscrições pagas de todos os seus colegas, amigos e membros da família que você quiser, tudo isso em uma única conta.",
412 "settings.team.manageAction": "Gerir a tua Equipa em getferdi.com", 418 "settings.team.manageAction": "Gerencie sua Equipe no getferdi.com",
413 "settings.team.teamsUnavailable": "A funcionalidade de Equipes está indisponível", 419 "settings.team.teamsUnavailable": "Teams are unavailable",
414 "settings.team.teamsUnavailableInfo": "Atualmente a funcionalidade de Equipes está disponível apenas utilizando o servidor Franz após adquirir um plano Franz Profissional. Por favor altere o seridor par https://api.franzinfra.com para utilizar esta funcionalidade.", 420 "settings.team.teamsUnavailableInfo": "Teams are currently only available when using the Franz Server and after paying for Franz Professional. Please change your server to https://api.franzinfra.com to use teams.",
415 "settings.team.upgradeAction": "Atualizar sua conta", 421 "settings.team.upgradeAction": "Atualize a sua conta para versão paga",
416 "settings.user.form.accountType.company": "Empresa", 422 "settings.user.form.accountType.company": "Empresa",
417 "settings.user.form.accountType.individual": "Indivíduo", 423 "settings.user.form.accountType.individual": "Pessoal",
418 "settings.user.form.accountType.label": "Tipo de conta", 424 "settings.user.form.accountType.label": "Tipo de conta",
419 "settings.user.form.accountType.non-profit": "Sem fins lucrativos", 425 "settings.user.form.accountType.non-profit": "Sem fins lucrativos",
420 "settings.user.form.currentPassword": "Palavra-passe atual", 426 "settings.user.form.currentPassword": "Senha atual",
421 "settings.user.form.email": "E-mail", 427 "settings.user.form.email": "E-mail",
422 "settings.user.form.firstname": "Primeiro Nome", 428 "settings.user.form.firstname": "Nome",
423 "settings.user.form.lastname": "Último Nome", 429 "settings.user.form.lastname": "Sobrenome",
424 "settings.user.form.newPassword": "Nova palavra-passe", 430 "settings.user.form.newPassword": "Nova senha",
425 "settings.workspace.add.form.name": "Nome", 431 "settings.workspace.add.form.name": "Nome",
426 "settings.workspace.add.form.submitButton": "Criar um Espaço de trabalho", 432 "settings.workspace.add.form.submitButton": "Criar workspace",
427 "settings.workspace.form.buttonDelete": "Apagar um Espaço de trabalho", 433 "settings.workspace.form.buttonDelete": "Apagar workspace",
428 "settings.workspace.form.buttonSave": "Gravar um Espaço de trabalho", 434 "settings.workspace.form.buttonSave": "Salvar workspace",
429 "settings.workspace.form.keepLoaded": "Maner todas a áreas de trabalhos carregadas*", 435 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*",
430 "settings.workspace.form.keepLoadedInfo": "*Esta opção será substituída pela configuração global \"Manter todas a áreas de trabalho carregada\".", 436 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.",
431 "settings.workspace.form.name": "Nome", 437 "settings.workspace.form.name": "Nome",
432 "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços neste Workspace", 438 "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços neste Workspace",
433 "settings.workspace.form.yourWorkspaces": "Os teus Espaços de trabalho", 439 "settings.workspace.form.yourWorkspaces": "Suas áreas de trabalho",
434 "settings.workspaces.deletedInfo": "O Espaço de trabalho foi apagado", 440 "settings.workspaces.deletedInfo": "Ãrea de trabalho deletada",
435 "settings.workspaces.headline": "Os teus Espaços de trabalho", 441 "settings.workspaces.headline": "Suas áreas de trabalho",
436 "settings.workspaces.noWorkspacesAdded": "Ainda não adicionou nenhum Esp§o de trabalho", 442 "settings.workspaces.noWorkspacesAdded": "Você não possui nenhuma área de trabalho adicionadas anteriormente.",
437 "settings.workspaces.tryReloadWorkspaces": "Tentar novamente", 443 "settings.workspaces.tryReloadWorkspaces": "Tente novamente",
438 "settings.workspaces.updatedInfo": "As suas alterações foram efetuadas com sucesso", 444 "settings.workspaces.updatedInfo": "Suas alterações foram gravadas",
439 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo os Espaço de trabalho Ferdi", 445 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo Workspaces do Ferdi",
440 "settings.workspaces.workspaceFeatureInfo": "As áreas de trabalho do Ferdi permite você focar no que realmente é importante agora. Configure diferentes conjuntos de serviços e alterne entre eles facilmente em qualquer momento. Você decide quais serviços você precisa e onde deseja colocá-los, então nós podemos te ajudar a aumentar a produtividade de suas tarefas. Ou facilmente deletar os aplicativos que você nunca irá precisar.", 446 "settings.workspaces.workspaceFeatureInfo": "As áreas de trabalho do Ferdi permite você focar no que realmente é importante agora. Configure diferentes conjuntos de serviços e alterne entre eles facilmente em qualquer momento. Você decide quais serviços você precisa e onde deseja colocá-los, então nós podemos te ajudar a aumentar a produtividade de suas tarefas. Ou facilmente deletar os aplicativos que você nunca irá precisar.",
441 "settings.workspaces.workspacesRequestFailed": "Não foi possível carregar suas áreas de trabalho", 447 "settings.workspaces.workspacesRequestFailed": "Não foi possível carregar suas áreas de trabalho",
442 "sidebar.addNewService": "Adicionar um novo serviço", 448 "sidebar.addNewService": "Adicionar novo serviço",
443 "sidebar.closeTodosDrawer": "Fechar as Tarefas", 449 "sidebar.closeTodosDrawer": "Close Ferdi Todos",
444 "sidebar.closeWorkspaceDrawer": "Fechar a janela do Esp§o de trabalho", 450 "sidebar.closeWorkspaceDrawer": "Fechar menu da área de trabalho",
445 "sidebar.lockFerdi": "Bloquear Ferdi", 451 "sidebar.lockFerdi": "Bloquear Ferdi",
446 "sidebar.muteApp": "Desativar notificações e áudio", 452 "sidebar.muteApp": "Desativar notificações e áudio",
447 "sidebar.openTodosDrawer": "Abrir as Tarefas", 453 "sidebar.openTodosDrawer": "Open Ferdi Todos",
448 "sidebar.openWorkspaceDrawer": "Abrir a janela do Esp§o de trabalho", 454 "sidebar.openWorkspaceDrawer": "Abrir o menu da área de trabalho",
449 "sidebar.settings": "Definições", 455 "sidebar.settings": "Configurações",
450 "sidebar.unmuteApp": "Ativar notificações e áudio", 456 "sidebar.unmuteApp": "Ativar notificações e áudio",
451 "signup.email.label": "Endereço de e-mail", 457 "signup.email.label": "Endereço de E-mail",
452 "signup.emailDuplicate": "Já existe uma conta associada a este endereço de email", 458 "signup.emailDuplicate": "Já existe um usuário com este endereço de e-mail",
453 "signup.firstname.label": "Primeiro Nome", 459 "signup.firstname.label": "Nome",
454 "signup.headline": "Criar conta", 460 "signup.headline": "Cadastrar-se",
455 "signup.lastname.label": "Último Nome", 461 "signup.lastname.label": "Sobrenome",
456 "signup.legal.info": "Ao criar uma conta Ferdi, aceita", 462 "signup.legal.info": "Ao criar uma conta Ferdi, você aceita os ",
457 "signup.legal.privacy": "Declaração de privacidade", 463 "signup.legal.privacy": "Declaração de Privacidade ",
458 "signup.legal.terms": "Termos do Serviço", 464 "signup.legal.terms": "Termos de serviço",
459 "signup.link.login": "Já tem uma conta, iniciar sessão?", 465 "signup.link.login": "Já tem uma conta?",
460 "signup.password.label": "Senha", 466 "signup.password.label": "Senha",
461 "signup.submit.label": "Criar uma conta", 467 "signup.submit.label": "Criar uma conta",
462 "subscription.bestValue": "Best value", 468 "subscription.bestValue": "Best value",
463 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 469 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
464 "subscription.cta.allOptions": "Ver todas as opções", 470 "subscription.cta.allOptions": "See all options",
465 "subscription.cta.choosePlan": "Escolha seu plano", 471 "subscription.cta.choosePlan": "Choose your plan",
466 "subscription.includedProFeatures": "O Ferdi Profissional incluí:", 472 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:",
467 "subscription.interval.per": "por {interval}", 473 "subscription.interval.per": "per {interval}",
468 "subscription.interval.perMonth": "por mês", 474 "subscription.interval.perMonth": "per month",
469 "subscription.interval.perMonthPerUser": "por mês e por utilizador", 475 "subscription.interval.perMonthPerUser": "por mês e por utilizador",
470 "subscription.planItem.upgradeAccount": "Atualizar conta", 476 "subscription.planItem.upgradeAccount": "Actualizar cuenta",
471 "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:", 477 "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:",
472 "subscription.teaser.intro": "O Ferdi 5 vem com uma variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas inclusas. Confira os nossos novos planos e encontre aquele que melhor serve para você!", 478 "subscription.teaser.intro": "O Ferdi 5 vem com uma variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas inclusas. Confira os nossos novos planos e encontre aquele que melhor serve para você!",
473 "subscriptionPopup.buttonCancel": "Cancelar", 479 "subscriptionPopup.buttonCancel": "Cancelar",
474 "subscriptionPopup.buttonDone": "Concluído", 480 "subscriptionPopup.buttonDone": "Feito",
475 "tabs.item.deleteService": "Apagar serviço", 481 "tabs.item.deleteService": "Apagar serviço",
476 "tabs.item.disableAudio": "Desativar áudio", 482 "tabs.item.disableAudio": "Desativar áudio",
477 "tabs.item.disableNotifications": "Desativar notificações", 483 "tabs.item.disableNotifications": "Desativar notificações",
@@ -480,28 +486,28 @@
480 "tabs.item.enableAudio": "Ativar áudio", 486 "tabs.item.enableAudio": "Ativar áudio",
481 "tabs.item.enableNotification": "Ativar notificações", 487 "tabs.item.enableNotification": "Ativar notificações",
482 "tabs.item.enableService": "Ativar serviço", 488 "tabs.item.enableService": "Ativar serviço",
483 "tabs.item.reload": "Recarregar", 489 "tabs.item.reload": "Actualizar",
484 "validation.email": "{field} não é válido", 490 "validation.email": "inválido",
485 "validation.minLength": "{field} deveria ter pelo menos {length} caracteres", 491 "validation.minLength": "{campo} deve ter pelo menos {comprimento} mais caracteres ",
486 "validation.oneRequired": "É necessário pelo menos um", 492 "validation.oneRequired": "Necessário pelo menos um",
487 "validation.required": "{field} é obrigatório", 493 "validation.required": "{campo} obrigatório",
488 "validation.url": "{field} não é uma hiperligação válida", 494 "validation.url": "{campo} essa URL não é válida",
489 "webControls.back": "Anterior", 495 "webControls.back": "Anterior",
490 "webControls.forward": "Próximo", 496 "webControls.forward": "Seguinte",
491 "webControls.goHome": "Início", 497 "webControls.goHome": "Início",
492 "webControls.openInBrowser": "Abrir no navegador", 498 "webControls.openInBrowser": "Abrir no navegador",
493 "webControls.reload": "Recarregar", 499 "webControls.reload": "Actualizar",
494 "welcome.loginButton": "Iniciar sessão", 500 "welcome.loginButton": "Entrar na sua conta",
495 "welcome.signupButton": "Criar uma conta gratuita", 501 "welcome.signupButton": "Criar uma conta gratuita",
496 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar uma nova área de trabalho", 502 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar uma nova área de trabalho",
497 "workspaceDrawer.allServices": "Todos os serviços", 503 "workspaceDrawer.allServices": "Todos os serviços",
498 "workspaceDrawer.headline": "Espaços de trabalho", 504 "workspaceDrawer.headline": "Ãreas de trabalho",
499 "workspaceDrawer.item.contextMenuEdit": "editar", 505 "workspaceDrawer.item.contextMenuEdit": "editar",
500 "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço foi adicionado", 506 "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço adicionado anteriormente",
501 "workspaceDrawer.premiumCtaButtonLabel": "Crie sua primeira área de trabalho", 507 "workspaceDrawer.premiumCtaButtonLabel": "Crie sua primeira área de trabalho",
502 "workspaceDrawer.proFeatureBadge": "Vantagem paga oferecida aos assinantes", 508 "workspaceDrawer.proFeatureBadge": "Vantagem paga oferecida aos assinantes",
503 "workspaceDrawer.reactivatePremiumAccountLabel": "Reative sua conta paga", 509 "workspaceDrawer.reactivatePremiumAccountLabel": "Reative sua conta paga",
504 "workspaceDrawer.workspaceFeatureInfo": "<p>As áreas de trabalho do Ferdi te ajuda a focar no que realmente é importante agora. Configure diferente cenários para serviços e mude entre eles facilmente em qualquer momento. </p><p>Você decide quais serviços precisa e onde deseja posicioná-los, e então nós iremos te ajudar em aumentar a sua produtividade. Você pode desligar os serviços que não são úteis para você.</p>", 510 "workspaceDrawer.workspaceFeatureInfo": "<p>As áreas de trabalho do Ferdi te ajuda a focar no que realmente é importante agora. Configure diferente cenários para serviços e mude entre eles facilmente em qualquer momento. </p><p>Você decide quais serviços precisa e onde deseja posicioná-los, e então nós iremos te ajudar em aumentar a sua produtividade. Você pode desligar os serviços que não são úteis para você.</p>",
505 "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho", 511 "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho",
506 "workspaces.switchingIndicator.switchingTo": "Trocando para" 512 "workspaces.switchingIndicator.switchingTo": "Mudando para"
507} 513}
diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/ro.json
+++ b/src/i18n/locales/ro.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 58228c1ab..2bd7d3ebf 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Ðеверный пароль", 85 "locked.invalidCredentials": "Ðеверный пароль",
86 "locked.password.label": "Пароль", 86 "locked.password.label": "Пароль",
87 "locked.submit.label": "Разблокировать", 87 "locked.submit.label": "Разблокировать",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Изменить Ñервер", 91 "login.changeServer": "Изменить Ñервер",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Вырезать", 116 "menu.edit.cut": "Вырезать",
114 "menu.edit.delete": "Удалить", 117 "menu.edit.delete": "Удалить",
115 "menu.edit.emojiSymbols": "Эмодзи и Ñимволы", 118 "menu.edit.emojiSymbols": "Эмодзи и Ñимволы",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Ð’Ñтавить", 120 "menu.edit.paste": "Ð’Ñтавить",
117 "menu.edit.pasteAndMatchStyle": "Ð’Ñтавить Ñ Ñоблюдением ÑтилÑ", 121 "menu.edit.pasteAndMatchStyle": "Ð’Ñтавить Ñ Ñоблюдением ÑтилÑ",
118 "menu.edit.redo": "Вернуть", 122 "menu.edit.redo": "Вернуть",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "ОÑтавлÑÑ‚ÑŒ Ferdi в фоне при закрытии окна", 295 "settings.app.form.runInBackground": "ОÑтавлÑÑ‚ÑŒ Ferdi в фоне при закрытии окна",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "ÐаÑтройки", 308 "settings.app.headline": "ÐаÑтройки",
303 "settings.app.headlineAdvanced": "Дополнительно", 309 "settings.app.headlineAdvanced": "Дополнительно",
304 "settings.app.headlineAppearance": "Внешний вид", 310 "settings.app.headlineAppearance": "Внешний вид",
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json
index 177ead66a..f347a8341 100644
--- a/src/i18n/locales/sk.json
+++ b/src/i18n/locales/sk.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Vystrihnúť", 116 "menu.edit.cut": "Vystrihnúť",
114 "menu.edit.delete": "Zmazať", 117 "menu.edit.delete": "Zmazať",
115 "menu.edit.emojiSymbols": "Emoji a symboly", 118 "menu.edit.emojiSymbols": "Emoji a symboly",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Vložiť", 120 "menu.edit.paste": "Vložiť",
117 "menu.edit.pasteAndMatchStyle": "Vložiť s prevzatím jestvujúceho štýlu", 121 "menu.edit.pasteAndMatchStyle": "Vložiť s prevzatím jestvujúceho štýlu",
118 "menu.edit.redo": "Znovu", 122 "menu.edit.redo": "Znovu",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Po zatvorení okna ponechať Ferdi spustený na pozadí", 295 "settings.app.form.runInBackground": "Po zatvorení okna ponechať Ferdi spustený na pozadí",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Nastavenia", 308 "settings.app.headline": "Nastavenia",
303 "settings.app.headlineAdvanced": "PokroÄilé", 309 "settings.app.headlineAdvanced": "PokroÄilé",
304 "settings.app.headlineAppearance": "Vzhľad", 310 "settings.app.headlineAppearance": "Vzhľad",
diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/sl.json
+++ b/src/i18n/locales/sl.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json
index 25432a219..96787a6da 100644
--- a/src/i18n/locales/sr.json
+++ b/src/i18n/locales/sr.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Iseci", 116 "menu.edit.cut": "Iseci",
114 "menu.edit.delete": "Obriši", 117 "menu.edit.delete": "Obriši",
115 "menu.edit.emojiSymbols": "Smajliji i simboli", 118 "menu.edit.emojiSymbols": "Smajliji i simboli",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Nalepi", 120 "menu.edit.paste": "Nalepi",
117 "menu.edit.pasteAndMatchStyle": "Ðалепи не мењајући Ñтил", 121 "menu.edit.pasteAndMatchStyle": "Ðалепи не мењајући Ñтил",
118 "menu.edit.redo": "Понови", 122 "menu.edit.redo": "Понови",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren", 295 "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Postavke", 308 "settings.app.headline": "Postavke",
303 "settings.app.headlineAdvanced": "Napredne alatke", 309 "settings.app.headlineAdvanced": "Napredne alatke",
304 "settings.app.headlineAppearance": "Izgled", 310 "settings.app.headlineAppearance": "Izgled",
diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/sv.json
+++ b/src/i18n/locales/sv.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json
index 446753135..45b91e2cf 100644
--- a/src/i18n/locales/tr.json
+++ b/src/i18n/locales/tr.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Geçersiz şifre", 85 "locked.invalidCredentials": "Geçersiz şifre",
86 "locked.password.label": "Åžifre", 86 "locked.password.label": "Åžifre",
87 "locked.submit.label": "Kilidi aç", 87 "locked.submit.label": "Kilidi aç",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Sunucuyu deÄŸiÅŸtir", 91 "login.changeServer": "Sunucuyu deÄŸiÅŸtir",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Kes", 116 "menu.edit.cut": "Kes",
114 "menu.edit.delete": "Sil", 117 "menu.edit.delete": "Sil",
115 "menu.edit.emojiSymbols": "Emoji & Semboller", 118 "menu.edit.emojiSymbols": "Emoji & Semboller",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Yapıştır", 120 "menu.edit.paste": "Yapıştır",
117 "menu.edit.pasteAndMatchStyle": "Yapıştır ve Stili Eşleştir", 121 "menu.edit.pasteAndMatchStyle": "Yapıştır ve Stili Eşleştir",
118 "menu.edit.redo": "Yeniden Yap", 122 "menu.edit.redo": "Yeniden Yap",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Pencereyi kapatırken Ferdi'ı arka planda tut", 295 "settings.app.form.runInBackground": "Pencereyi kapatırken Ferdi'ı arka planda tut",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "Kime:", 297 "settings.app.form.scheduledDNDEnd": "Kime:",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Ayarlar", 308 "settings.app.headline": "Ayarlar",
303 "settings.app.headlineAdvanced": "GeliÅŸmiÅŸ", 309 "settings.app.headlineAdvanced": "GeliÅŸmiÅŸ",
304 "settings.app.headlineAppearance": "Görünüm", 310 "settings.app.headlineAppearance": "Görünüm",
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json
index b2bbf598f..2cfbdb501 100644
--- a/src/i18n/locales/uk.json
+++ b/src/i18n/locales/uk.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Вирізати", 116 "menu.edit.cut": "Вирізати",
114 "menu.edit.delete": "Видалити", 117 "menu.edit.delete": "Видалити",
115 "menu.edit.emojiSymbols": "Емодзі та Ñимволи", 118 "menu.edit.emojiSymbols": "Емодзі та Ñимволи",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Ð’Ñтавити", 120 "menu.edit.paste": "Ð’Ñтавити",
117 "menu.edit.pasteAndMatchStyle": "Ð’Ñтавити з дотриманнÑм Ñтилю", 121 "menu.edit.pasteAndMatchStyle": "Ð’Ñтавити з дотриманнÑм Ñтилю",
118 "menu.edit.redo": "Повернути", 122 "menu.edit.redo": "Повернути",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна", 295 "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "ÐалаштуваннÑ", 308 "settings.app.headline": "ÐалаштуваннÑ",
303 "settings.app.headlineAdvanced": "Додаткові налаштуваннÑ", 309 "settings.app.headlineAdvanced": "Додаткові налаштуваннÑ",
304 "settings.app.headlineAppearance": "ВиглÑд", 310 "settings.app.headlineAppearance": "ВиглÑд",
diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/vi.json
+++ b/src/i18n/locales/vi.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/locales/zh-HANT.json b/src/i18n/locales/zh-HANT.json
index 5d07476fd..5a35d4cf8 100644
--- a/src/i18n/locales/zh-HANT.json
+++ b/src/i18n/locales/zh-HANT.json
@@ -1,15 +1,15 @@
1{ 1{
2 "app.errorHandler.action": "Reload", 2 "app.errorHandler.action": "é‡æ–°åŠ è¼‰",
3 "app.errorHandler.headline": "Something went wrong", 3 "app.errorHandler.headline": "出ç¾éŒ¯èª¤",
4 "feature.announcements.changelog.headline": "Changes in Ferdi {version}", 4 "feature.announcements.changelog.headline": "Ferdi 有了更新 {version}",
5 "feature.debugger.title": "Publish debugging information", 5 "feature.debugger.title": "發布除錯訊æ¯",
6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", 6 "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting",
7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", 7 "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.",
8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", 8 "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional",
9 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", 9 "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial",
10 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", 10 "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line",
11 "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License", 11 "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License",
12 "feature.delayApp.upgrade.actionShort": "Upgrade account", 12 "feature.delayApp.upgrade.actionShort": "å‡ç´šå¸³æˆ¶",
13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", 13 "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free",
14 "feature.planSelection.cta.stayOnFree": "Stay on Free", 14 "feature.planSelection.cta.stayOnFree": "Stay on Free",
15 "feature.planSelection.cta.trial": "Start my free 14-days Trial", 15 "feature.planSelection.cta.trial": "Start my free 14-days Trial",
@@ -28,25 +28,25 @@
28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 28 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.", 29 "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.",
30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service", 30 "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdi. By publishing your debug information you accept Ferdi Debugger's privacy policy and terms of service",
31 "feature.publishDebugInfo.privacy": "Privacy policy", 31 "feature.publishDebugInfo.privacy": "éš±ç§æ¬Šæ”¿ç­–",
32 "feature.publishDebugInfo.publish": "Accept and publish", 32 "feature.publishDebugInfo.publish": "接å—並發佈",
33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", 33 "feature.publishDebugInfo.published": "Your debug log was published and is now availible at",
34 "feature.publishDebugInfo.terms": "æœå‹™æ¢æ¬¾", 34 "feature.publishDebugInfo.terms": "æœå‹™æ¢æ¬¾",
35 "feature.publishDebugInfo.title": "Publish debug information", 35 "feature.publishDebugInfo.title": "Publish debug information",
36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 36 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.",
37 "feature.quickSwitch.search": "Search...", 37 "feature.quickSwitch.search": "æœå°‹...",
38 "feature.quickSwitch.title": "QuickSwitch", 38 "feature.quickSwitch.title": "QuickSwitch",
39 "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", 39 "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.",
40 "feature.shareFranz.action.email": "Send as email", 40 "feature.shareFranz.action.email": "é€ä½œç‚ºé›»å­éƒµä»¶",
41 "feature.shareFranz.action.facebook": "Share on Facebook", 41 "feature.shareFranz.action.facebook": "在 Facebook 上分享",
42 "feature.shareFranz.action.twitter": "Share on Twitter", 42 "feature.shareFranz.action.twitter": "在 Twitter 上分享",
43 "feature.shareFranz.headline": "Ferdi is better together!", 43 "feature.shareFranz.headline": "Ferdi is better together!",
44 "feature.shareFranz.shareText.email": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com", 44 "feature.shareFranz.shareText.email": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com",
45 "feature.shareFranz.shareText.twitter": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com /cc @FerdiMessenger", 45 "feature.shareFranz.shareText.twitter": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com /cc @FerdiMessenger",
46 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.", 46 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.",
47 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!", 47 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!",
48 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", 48 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.",
49 "feature.todos.premium.upgrade": "Upgrade Account", 49 "feature.todos.premium.upgrade": "å‡çº§è´¦æˆ·",
50 "feature.trialStatusBar.cta": "Upgrade now", 50 "feature.trialStatusBar.cta": "Upgrade now",
51 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", 51 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 52 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
@@ -57,17 +57,17 @@
57 "global.api.unhealthy": "無法連接到Ferdi網路æœå‹™", 57 "global.api.unhealthy": "無法連接到Ferdi網路æœå‹™",
58 "global.franzProRequired": "Ferdi Professional Required", 58 "global.franzProRequired": "Ferdi Professional Required",
59 "global.notConnectedToTheInternet": "您未連上網際網路", 59 "global.notConnectedToTheInternet": "您未連上網際網路",
60 "global.spellchecker.useDefault": "Use System Default ({default})", 60 "global.spellchecker.useDefault": "使用系統é è¨­å€¼({default})",
61 "global.spellchecking.autodetect": "Detect language automatically", 61 "global.spellchecking.autodetect": "自動檢測語言",
62 "global.spellchecking.autodetect.short": "Automatic", 62 "global.spellchecking.autodetect.short": "自動",
63 "global.spellchecking.language": "Spell checking language", 63 "global.spellchecking.language": "拼字檢查語言",
64 "global.upgradeButton.upgradeToPro": "Upgrade to Ferdi Professional", 64 "global.upgradeButton.upgradeToPro": "Upgrade to Ferdi Professional",
65 "import.headline": "匯入您的 Ferdi 4 æœå‹™", 65 "import.headline": "匯入您的 Ferdi 4 æœå‹™",
66 "import.notSupportedHeadline": "æ­¤æœå‹™ä¸è¢« Ferdi 5 支æŒ", 66 "import.notSupportedHeadline": "æ­¤æœå‹™ä¸è¢« Ferdi 5 支æŒ",
67 "import.skip.label": "我想手動匯入", 67 "import.skip.label": "我想手動匯入",
68 "import.submit.label": "匯入æœå‹™", 68 "import.submit.label": "匯入æœå‹™",
69 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 69 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.",
70 "infobar.buttonChangelog": "What is new?", 70 "infobar.buttonChangelog": "最新消æ¯!",
71 "infobar.buttonInstallUpdate": "é‡æ–°å•Ÿå‹•ä¸¦ä¸”æ›´æ–°", 71 "infobar.buttonInstallUpdate": "é‡æ–°å•Ÿå‹•ä¸¦ä¸”æ›´æ–°",
72 "infobar.buttonReloadServices": "é‡æ–°è¼‰å…¥", 72 "infobar.buttonReloadServices": "é‡æ–°è¼‰å…¥",
73 "infobar.requiredRequestsFailed": "無法載入æœå‹™èˆ‡å¸³æˆ¶è³‡è¨Š", 73 "infobar.requiredRequestsFailed": "無法載入æœå‹™èˆ‡å¸³æˆ¶è³‡è¨Š",
@@ -78,14 +78,17 @@
78 "invite.headline.friends": "邀請三個人", 78 "invite.headline.friends": "邀請三個人",
79 "invite.name.label": "åå­", 79 "invite.name.label": "åå­",
80 "invite.skip.label": "我想晚點進行", 80 "invite.skip.label": "我想晚點進行",
81 "invite.submit.label": "Send invites", 81 "invite.submit.label": "發é€é‚€è«‹",
82 "invite.successInfo": "Invitations sent successfully", 82 "invite.successInfo": "å·²æˆåŠŸç™¼é€é‚€è«‹",
83 "locked.headline": "Locked", 83 "locked.headline": "已鎖定",
84 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 84 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.",
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "密碼無效",
86 "locked.password.label": "Password", 86 "locked.password.label": "密碼",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "解除å°éŽ–",
88 "login.changeServer": "Change server", 88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
91 "login.changeServer": "切æ›æœå‹™å™¨",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
91 "login.email.label": "é›»å­éƒµä»¶ä¿¡ç®±", 94 "login.email.label": "é›»å­éƒµä»¶ä¿¡ç®±",
@@ -93,77 +96,78 @@
93 "login.invalidCredentials": "é›»å­éƒµä»¶å¸³æˆ¶æˆ–密碼有誤", 96 "login.invalidCredentials": "é›»å­éƒµä»¶å¸³æˆ¶æˆ–密碼有誤",
94 "login.link.password": "密碼é‡è¨­", 97 "login.link.password": "密碼é‡è¨­",
95 "login.link.signup": "建立一個å…費帳戶", 98 "login.link.signup": "建立一個å…費帳戶",
96 "login.password.label": "Password", 99 "login.password.label": "密碼",
97 "login.serverLogout": "登入狀態éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥", 100 "login.serverLogout": "登入狀態éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥",
98 "login.submit.label": "登入", 101 "login.submit.label": "登入",
99 "login.tokenExpired": "登入狀態éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥", 102 "login.tokenExpired": "登入狀態éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥",
100 "menu.Todoss.closeTodosDrawer": "Close Todos drawer", 103 "menu.Todoss.closeTodosDrawer": "Close Todos drawer",
101 "menu.Todoss.openTodosDrawer": "Open Todos drawer", 104 "menu.Todoss.openTodosDrawer": "Open Todos drawer",
102 "menu.app.about": "About Ferdi", 105 "menu.app.about": "關於 Ferdi",
103 "menu.app.announcement": "What's new?", 106 "menu.app.announcement": "最新消æ¯!",
104 "menu.app.autohideMenuBar": "Auto-hide menu bar", 107 "menu.app.autohideMenuBar": "自動隱è—功能表列",
105 "menu.app.checkForUpdates": "Check for updates", 108 "menu.app.checkForUpdates": "檢查更新",
106 "menu.app.hide": "Hide", 109 "menu.app.hide": "éš±è—",
107 "menu.app.hideOthers": "Hide Others", 110 "menu.app.hideOthers": "éš±è—其他視窗",
108 "menu.app.quit": "Quit", 111 "menu.app.quit": "退出",
109 "menu.app.settings": "Settings", 112 "menu.app.settings": "設置",
110 "menu.app.unhide": "Unhide", 113 "menu.app.unhide": "顯示",
111 "menu.edit": "Edit", 114 "menu.edit": "編輯",
112 "menu.edit.copy": "Copy", 115 "menu.edit.copy": "複製",
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "剪下",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "刪除",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
116 "menu.edit.paste": "Paste", 119 "menu.edit.findInPage": "Find in Page",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 120 "menu.edit.paste": "貼上",
118 "menu.edit.redo": "Redo", 121 "menu.edit.pasteAndMatchStyle": "貼上並比å°æ¨£å¼",
119 "menu.edit.selectAll": "Select All", 122 "menu.edit.redo": "é‡åš",
120 "menu.edit.speech": "Speech", 123 "menu.edit.selectAll": "é¸å–全部",
121 "menu.edit.startDictation": "Start Dictation", 124 "menu.edit.speech": "語音",
122 "menu.edit.startSpeaking": "Start Speaking", 125 "menu.edit.startDictation": "開始è½å¯«",
123 "menu.edit.stopSpeaking": "Stop Speaking", 126 "menu.edit.startSpeaking": "開始朗讀",
124 "menu.edit.undo": "Undo", 127 "menu.edit.stopSpeaking": "åœæ­¢æœ—讀",
125 "menu.file": "File", 128 "menu.edit.undo": "復原",
126 "menu.help": "Help", 129 "menu.file": "檔案",
127 "menu.help.changelog": "Changelog", 130 "menu.help": "說明",
128 "menu.help.debugInfo": "Copy Debug Information", 131 "menu.help.changelog": "更新日誌",
132 "menu.help.debugInfo": "複製除錯資訊",
129 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 133 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.",
130 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 134 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information",
131 "menu.help.learnMore": "Learn More", 135 "menu.help.learnMore": "了解更多",
132 "menu.help.privacy": "Privacy Statement", 136 "menu.help.privacy": "éš±ç§è²æ˜Ž",
133 "menu.help.publishDebugInfo": "Publish Debug Information", 137 "menu.help.publishDebugInfo": "Publish Debug Information",
134 "menu.help.support": "Support", 138 "menu.help.support": "支æ´æœå‹™",
135 "menu.help.tos": "Terms of Service", 139 "menu.help.tos": "æœå‹™æ¢æ¬¾",
136 "menu.services": "Services", 140 "menu.services": "æœå‹™",
137 "menu.services.activatePreviousService": "Activate previous service", 141 "menu.services.activatePreviousService": "Activate previous service",
138 "menu.services.addNewService": "Add New Service...", 142 "menu.services.addNewService": "Add New Service...",
139 "menu.services.goHome": "Home", 143 "menu.services.goHome": "主é ",
140 "menu.services.setNextServiceActive": "Activate next service", 144 "menu.services.setNextServiceActive": "Activate next service",
141 "menu.todos": "Todos", 145 "menu.todos": "Todos",
142 "menu.todos.enableTodos": "Enable Todos", 146 "menu.todos.enableTodos": "Enable Todos",
143 "menu.view": "View", 147 "menu.view": "檢視",
144 "menu.view.back": "Back", 148 "menu.view.back": "返回",
145 "menu.view.enterFullScreen": "Enter Full Screen", 149 "menu.view.enterFullScreen": "進入全螢幕",
146 "menu.view.exitFullScreen": "Exit Full Screen", 150 "menu.view.exitFullScreen": "離開全螢幕",
147 "menu.view.forward": "Forward", 151 "menu.view.forward": "å‰é€²",
148 "menu.view.lockFerdi": "Lock Ferdi", 152 "menu.view.lockFerdi": "Lock Ferdi",
149 "menu.view.openQuickSwitch": "Open Quick Switch", 153 "menu.view.openQuickSwitch": "Open Quick Switch",
150 "menu.view.reloadFranz": "Reload Ferdi", 154 "menu.view.reloadFranz": "Reload Ferdi",
151 "menu.view.reloadService": "Reload Service", 155 "menu.view.reloadService": "é‡æ–°è¼‰å…¥",
152 "menu.view.resetZoom": "Actual Size", 156 "menu.view.resetZoom": "實際大å°",
153 "menu.view.toggleDevTools": "Toggle Developer Tools", 157 "menu.view.toggleDevTools": "切æ›é–‹ç™¼äººå“¡å·¥å…·",
154 "menu.view.toggleFullScreen": "Toggle Full Screen", 158 "menu.view.toggleFullScreen": "切æ›å…¨èž¢å¹•",
155 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", 159 "menu.view.toggleServiceDevTools": "切æ›é–‹ç™¼äººå“¡æœå‹™å·¥å…·",
156 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", 160 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools",
157 "menu.view.zoomIn": "Zoom In", 161 "menu.view.zoomIn": "放大",
158 "menu.view.zoomOut": "Zoom Out", 162 "menu.view.zoomOut": "縮å°",
159 "menu.window": "Window", 163 "menu.window": "窗å£",
160 "menu.window.close": "Close", 164 "menu.window.close": "關閉",
161 "menu.window.minimize": "Minimize", 165 "menu.window.minimize": "最å°åŒ–",
162 "menu.workspaces": "Workspaces", 166 "menu.workspaces": "工作å€",
163 "menu.workspaces.addNewWorkspace": "Add New Workspace...", 167 "menu.workspaces.addNewWorkspace": "新增工作å€â€¦",
164 "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", 168 "menu.workspaces.closeWorkspaceDrawer": "關閉工作å€",
165 "menu.workspaces.defaultWorkspace": "All services", 169 "menu.workspaces.defaultWorkspace": "所有æœå‹™",
166 "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", 170 "menu.workspaces.openWorkspaceDrawer": "打開工作å€",
167 "password.email.label": "é›»å­éƒµä»¶ä¿¡ç®±", 171 "password.email.label": "é›»å­éƒµä»¶ä¿¡ç®±",
168 "password.headline": "密碼é‡è¨­", 172 "password.headline": "密碼é‡è¨­",
169 "password.link.login": "登入您的帳戶", 173 "password.link.login": "登入您的帳戶",
@@ -171,12 +175,12 @@
171 "password.noUser": "此電å­éƒµä»¶å¸³æˆ¶ä¸å­˜åœ¨", 175 "password.noUser": "此電å­éƒµä»¶å¸³æˆ¶ä¸å­˜åœ¨",
172 "password.submit.label": "é€å‡º", 176 "password.submit.label": "é€å‡º",
173 "password.successInfo": "è«‹é‡æ–°ç¢ºèªæ‚¨çš„é›»å­éƒµä»¶ä¿¡ç®±", 177 "password.successInfo": "è«‹é‡æ–°ç¢ºèªæ‚¨çš„é›»å­éƒµä»¶ä¿¡ç®±",
174 "premiumFeature.button.upgradeAccount": "Upgrade account", 178 "premiumFeature.button.upgradeAccount": "å‡ç´šå¸³æˆ¶",
175 "pricing.features.accountSync": "Account Synchronisation", 179 "pricing.features.accountSync": "帳號åŒæ­¥",
176 "pricing.features.adFree": "Forever ad-free", 180 "pricing.features.adFree": "Forever ad-free",
177 "pricing.features.appDelays": "No Waiting Screens", 181 "pricing.features.appDelays": "No Waiting Screens",
178 "pricing.features.customWebsites": "Add Custom Websites", 182 "pricing.features.customWebsites": "添加自訂網站",
179 "pricing.features.desktopNotifications": "Desktop Notifications", 183 "pricing.features.desktopNotifications": "æ¡Œé¢é€šçŸ¥",
180 "pricing.features.onPremise": "On-premise & other Hosted Services", 184 "pricing.features.onPremise": "On-premise & other Hosted Services",
181 "pricing.features.recipes": "Choose from more than 70 Services", 185 "pricing.features.recipes": "Choose from more than 70 Services",
182 "pricing.features.serviceProxies": "Service Proxies", 186 "pricing.features.serviceProxies": "Service Proxies",
@@ -186,7 +190,7 @@
186 "pricing.features.unlimitedServices": "Add unlimited services", 190 "pricing.features.unlimitedServices": "Add unlimited services",
187 "pricing.features.upToSixServices": "Add up to 6 services", 191 "pricing.features.upToSixServices": "Add up to 6 services",
188 "pricing.features.upToThreeServices": "Add up to 3 services", 192 "pricing.features.upToThreeServices": "Add up to 3 services",
189 "pricing.features.workspaces": "Workspaces", 193 "pricing.features.workspaces": "工作å€",
190 "pricing.plan.free": "Ferdi Free", 194 "pricing.plan.free": "Ferdi Free",
191 "pricing.plan.legacy": "Ferdi Premium", 195 "pricing.plan.legacy": "Ferdi Premium",
192 "pricing.plan.personal": "Ferdi Personal", 196 "pricing.plan.personal": "Ferdi Personal",
@@ -210,39 +214,39 @@
210 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", 214 "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)",
211 "service.crashHandler.action": "Reload {name}", 215 "service.crashHandler.action": "Reload {name}",
212 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", 216 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds",
213 "service.crashHandler.headline": "Oh no!", 217 "service.crashHandler.headline": "唉呀 糟糕!",
214 "service.crashHandler.text": "{name} has caused an error.", 218 "service.crashHandler.text": "{name} 造æˆäº†å•é¡Œ",
215 "service.disabledHandler.action": "Enable {name}", 219 "service.disabledHandler.action": "啟用 {name}",
216 "service.disabledHandler.headline": "{name} is disabled", 220 "service.disabledHandler.headline": "{name} å·²åœç”¨",
217 "service.errorHandler.action": "Reload {name}", 221 "service.errorHandler.action": "Reload {name}",
218 "service.errorHandler.editAction": "Edit {name}", 222 "service.errorHandler.editAction": "編輯 {name}",
219 "service.errorHandler.headline": "Oh no!", 223 "service.errorHandler.headline": "唉呀 糟糕!",
220 "service.errorHandler.message": "Error", 224 "service.errorHandler.message": "錯誤",
221 "service.errorHandler.text": "{name} has failed to load.", 225 "service.errorHandler.text": "{name} has failed to load.",
222 "service.restrictedHandler.action": "Upgrade Account", 226 "service.restrictedHandler.action": "å‡çº§è´¦æˆ·",
223 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required", 227 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required",
224 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", 228 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.",
225 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", 229 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.",
226 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", 230 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.",
227 "service.webviewLoader.loading": "Loading {service}", 231 "service.webviewLoader.loading": "正在載入 {service}",
228 "services.getStarted": "開始使用", 232 "services.getStarted": "開始使用",
229 "services.login": "Please login to use Ferdi.", 233 "services.login": "登入至 Ferdi",
230 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", 234 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.",
231 "services.serverless": "Use Ferdi without an Account", 235 "services.serverless": "Use Ferdi without an Account",
232 "services.welcome": "歡迎使用 Ferdi", 236 "services.welcome": "歡迎使用 Ferdi",
233 "settings.account.account.editButton": "更改帳戶資訊", 237 "settings.account.account.editButton": "更改帳戶資訊",
234 "settings.account.accountType.basic": "基本帳戶", 238 "settings.account.accountType.basic": "基本帳戶",
235 "settings.account.accountType.premium": "Premium Supporter Account", 239 "settings.account.accountType.premium": "Premium Supporter Account",
236 "settings.account.accountUnavailable": "Account is unavailable", 240 "settings.account.accountUnavailable": "帳號無法使用",
237 "settings.account.accountUnavailableInfo": "You are using Ferdi without an account. If you want to use Ferdi with an account and keep your services synchronized across installations, please select a server in the Settings tab then login.", 241 "settings.account.accountUnavailableInfo": "You are using Ferdi without an account. If you want to use Ferdi with an account and keep your services synchronized across installations, please select a server in the Settings tab then login.",
238 "settings.account.buttonSave": "更新帳戶資訊", 242 "settings.account.buttonSave": "更新帳戶資訊",
239 "settings.account.deleteAccount": "Delete account", 243 "settings.account.deleteAccount": "删除å¸æˆ·",
240 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 244 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!",
241 "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.", 245 "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.",
242 "settings.account.headline": "帳戶", 246 "settings.account.headline": "帳戶",
243 "settings.account.headlineAccount": "帳戶資訊", 247 "settings.account.headlineAccount": "帳戶資訊",
244 "settings.account.headlineDangerZone": "Danger Zone", 248 "settings.account.headlineDangerZone": "å±éšªæ“作å€",
245 "settings.account.headlineInvoices": "Invoices", 249 "settings.account.headlineInvoices": "å‘票",
246 "settings.account.headlinePassword": "更改密碼", 250 "settings.account.headlinePassword": "更改密碼",
247 "settings.account.headlineProfile": "更新帳戶資訊", 251 "settings.account.headlineProfile": "更新帳戶資訊",
248 "settings.account.headlineSubscription": "您的訂閱", 252 "settings.account.headlineSubscription": "您的訂閱",
@@ -254,54 +258,56 @@
254 "settings.account.trial": "Free Trial", 258 "settings.account.trial": "Free Trial",
255 "settings.account.trialEndsIn": "Your free trial ends in {duration}.", 259 "settings.account.trialEndsIn": "Your free trial ends in {duration}.",
256 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.", 260 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.",
257 "settings.account.tryReloadServices": "Try again", 261 "settings.account.tryReloadServices": "å†è©¦ä¸€æ¬¡",
258 "settings.account.tryReloadUserInfoRequest": "Try again", 262 "settings.account.tryReloadUserInfoRequest": "å†è©¦ä¸€æ¬¡",
259 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional", 263 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional",
260 "settings.account.userInfoRequestFailed": "無法載入帳戶資訊", 264 "settings.account.userInfoRequestFailed": "無法載入帳戶資訊",
261 "settings.account.yourLicense": "Your Ferdi License", 265 "settings.account.yourLicense": "Your Ferdi License",
262 "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)", 266 "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)",
263 "settings.app.buttonClearAllCache": "Clear cache", 267 "settings.app.buttonClearAllCache": "清除緩存",
264 "settings.app.buttonInstallUpdate": "é‡æ–°å•Ÿå‹•ä¸¦ä¸”æ›´æ–°", 268 "settings.app.buttonInstallUpdate": "é‡æ–°å•Ÿå‹•ä¸¦ä¸”æ›´æ–°",
265 "settings.app.buttonSearchForUpdate": "Check for updates", 269 "settings.app.buttonSearchForUpdate": "檢查更新",
266 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", 270 "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.",
267 "settings.app.currentVersion": "當å‰ç‰ˆæœ¬ï¼š", 271 "settings.app.currentVersion": "當å‰ç‰ˆæœ¬ï¼š",
268 "settings.app.form.accentColor": "Accent color", 272 "settings.app.form.accentColor": "強調é¡è‰²",
269 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 273 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting",
270 "settings.app.form.autoLaunchInBackground": "背景啟動", 274 "settings.app.form.autoLaunchInBackground": "背景啟動",
271 "settings.app.form.autoLaunchOnStart": "開機時啟動", 275 "settings.app.form.autoLaunchOnStart": "開機時啟動",
272 "settings.app.form.beta": "包å«é–‹ç™¼ä¸­ç‰ˆæœ¬", 276 "settings.app.form.beta": "包å«é–‹ç™¼ä¸­ç‰ˆæœ¬",
273 "settings.app.form.darkMode": "Enable dark mode", 277 "settings.app.form.darkMode": "啟用夜間模å¼",
274 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 278 "settings.app.form.enableGPUAcceleration": "開啟顯示å¡ï¼ˆGPU)加速",
275 "settings.app.form.enableLock": "Enable Password Lock", 279 "settings.app.form.enableLock": "Enable Password Lock",
276 "settings.app.form.enableSpellchecking": "Enable spell checking", 280 "settings.app.form.enableSpellchecking": "Enable spell checking",
277 "settings.app.form.enableSystemTray": "在系統匣上顯示", 281 "settings.app.form.enableSystemTray": "在系統匣上顯示",
278 "settings.app.form.enableTodos": "Enable Ferdi Todos", 282 "settings.app.form.enableTodos": "Enable Ferdi Todos",
279 "settings.app.form.hibernate": "Enable service hibernation", 283 "settings.app.form.hibernate": "Enable service hibernation",
280 "settings.app.form.hibernationStrategy": "Hibernation strategy", 284 "settings.app.form.hibernationStrategy": "Hibernation strategy",
281 "settings.app.form.iconSize": "Service icon size", 285 "settings.app.form.iconSize": "æœå‹™åœ–示大å°",
282 "settings.app.form.inactivityLock": "Lock after inactivity", 286 "settings.app.form.inactivityLock": "Lock after inactivity",
283 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 287 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded",
284 "settings.app.form.language": "語言", 288 "settings.app.form.language": "語言",
285 "settings.app.form.lockPassword": "Password", 289 "settings.app.form.lockPassword": "密碼",
286 "settings.app.form.minimizeToSystemTray": "最å°åŒ–至系統匣", 290 "settings.app.form.minimizeToSystemTray": "最å°åŒ–至系統匣",
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "å–消更新",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "關閉時ä¿æŒåœ¨èƒŒæ™¯é‹ä½œ", 295 "settings.app.form.runInBackground": "關閉時ä¿æŒåœ¨èƒŒæ™¯é‹ä½œ",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "至",
293 "settings.app.form.scheduledDNDStart": "From", 298 "settings.app.form.scheduledDNDStart": "從",
294 "settings.app.form.sentry": "Send telemetry data", 299 "settings.app.form.sentry": "Send telemetry data",
295 "settings.app.form.server": "Server", 300 "settings.app.form.server": "伺æœå™¨",
296 "settings.app.form.serviceRibbonWidth": "Sidebar width", 301 "settings.app.form.serviceRibbonWidth": "Sidebar width",
297 "settings.app.form.showDisabledServices": "Display disabled services tabs", 302 "settings.app.form.showDisabledServices": "Display disabled services tabs",
298 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 303 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "開始時最å°åŒ–到系統匣",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
302 "settings.app.headline": "Settings", 307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
303 "settings.app.headlineAdvanced": "Advanced", 308 "settings.app.headline": "設置",
304 "settings.app.headlineAppearance": "Appearance", 309 "settings.app.headlineAdvanced": "高級設置",
310 "settings.app.headlineAppearance": "外觀",
305 "settings.app.headlineGeneral": "一般", 311 "settings.app.headlineGeneral": "一般",
306 "settings.app.headlineLanguage": "語言", 312 "settings.app.headlineLanguage": "語言",
307 "settings.app.headlineUpdates": "æ›´æ–°", 313 "settings.app.headlineUpdates": "æ›´æ–°",
@@ -309,9 +315,9 @@
309 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 315 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
310 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 316 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.",
311 "settings.app.lockInfo": "Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", 317 "settings.app.lockInfo": "Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.",
312 "settings.app.lockedPassword": "Password", 318 "settings.app.lockedPassword": "密碼",
313 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 319 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
314 "settings.app.restartRequired": "Changes require restart", 320 "settings.app.restartRequired": "更改需è¦é‡æ–°é–‹æ©Ÿ",
315 "settings.app.scheduledDNDInfo": "Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", 321 "settings.app.scheduledDNDInfo": "Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.",
316 "settings.app.scheduledDNDTimeInfo": "Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", 322 "settings.app.scheduledDNDTimeInfo": "Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.",
317 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 323 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.",
@@ -328,19 +334,19 @@
328 "settings.navigation.account": "帳戶", 334 "settings.navigation.account": "帳戶",
329 "settings.navigation.availableServices": "å¯ç”¨æœå‹™", 335 "settings.navigation.availableServices": "å¯ç”¨æœå‹™",
330 "settings.navigation.logout": "登出", 336 "settings.navigation.logout": "登出",
331 "settings.navigation.settings": "Settings", 337 "settings.navigation.settings": "設置",
332 "settings.navigation.supportFerdi": "Support Ferdi", 338 "settings.navigation.supportFerdi": "Support Ferdi",
333 "settings.navigation.team": "Manage Team", 339 "settings.navigation.team": "管ç†åœ˜éšŠ",
334 "settings.navigation.yourServices": "您的æœå‹™", 340 "settings.navigation.yourServices": "您的æœå‹™",
335 "settings.navigation.yourWorkspaces": "Your workspaces", 341 "settings.navigation.yourWorkspaces": "Your workspaces",
336 "settings.recipes.all": "All services", 342 "settings.recipes.all": "所有æœå‹™",
337 "settings.recipes.custom": "Custom Services", 343 "settings.recipes.custom": "Custom Services",
338 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", 344 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes",
339 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 345 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes",
340 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 346 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes",
341 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 347 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:",
342 "settings.recipes.customService.openDevDocs": "Developer Documentation", 348 "settings.recipes.customService.openDevDocs": "Developer Documentation",
343 "settings.recipes.customService.openFolder": "Open folder", 349 "settings.recipes.customService.openFolder": "開啟資料夾",
344 "settings.recipes.headline": "å¯ç”¨æœå‹™", 350 "settings.recipes.headline": "å¯ç”¨æœå‹™",
345 "settings.recipes.missingService": "Missing a service?", 351 "settings.recipes.missingService": "Missing a service?",
346 "settings.recipes.mostPopular": "熱門", 352 "settings.recipes.mostPopular": "熱門",
@@ -348,7 +354,7 @@
348 "settings.recipes.servicesSuccessfulAddedInfo": "新增æœå‹™æˆåŠŸ", 354 "settings.recipes.servicesSuccessfulAddedInfo": "新增æœå‹™æˆåŠŸ",
349 "settings.searchService": "Search service", 355 "settings.searchService": "Search service",
350 "settings.service.error.goBack": "返回", 356 "settings.service.error.goBack": "返回",
351 "settings.service.error.headline": "Error", 357 "settings.service.error.headline": "錯誤",
352 "settings.service.error.message": "無法載入æœå‹™å…ƒä»¶", 358 "settings.service.error.message": "無法載入æœå‹™å…ƒä»¶",
353 "settings.service.form.addServiceHeadline": "新增 {name}", 359 "settings.service.form.addServiceHeadline": "新增 {name}",
354 "settings.service.form.availableServices": "å¯ç”¨æœå‹™", 360 "settings.service.form.availableServices": "å¯ç”¨æœå‹™",
@@ -357,17 +363,17 @@
357 "settings.service.form.customUrlUpgradeAccount": "å‡ç´šå¸³æˆ¶", 363 "settings.service.form.customUrlUpgradeAccount": "å‡ç´šå¸³æˆ¶",
358 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", 364 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
359 "settings.service.form.deleteButton": "刪除", 365 "settings.service.form.deleteButton": "刪除",
360 "settings.service.form.editServiceHeadline": "Edit {name}", 366 "settings.service.form.editServiceHeadline": "編輯 {name}",
361 "settings.service.form.enableAudio": "Enable audio", 367 "settings.service.form.enableAudio": "啟用音效",
362 "settings.service.form.enableBadge": "Show unread message badges", 368 "settings.service.form.enableBadge": "Show unread message badges",
363 "settings.service.form.enableDarkMode": "Enable Dark Mode", 369 "settings.service.form.enableDarkMode": "啟用夜間模å¼",
364 "settings.service.form.enableNotification": "啟用通知", 370 "settings.service.form.enableNotification": "啟用通知",
365 "settings.service.form.enableService": "啟用æœå‹™", 371 "settings.service.form.enableService": "啟用æœå‹™",
366 "settings.service.form.headlineBadges": "Unread message badges", 372 "settings.service.form.headlineBadges": "Unread message badges",
367 "settings.service.form.headlineGeneral": "一般", 373 "settings.service.form.headlineGeneral": "一般",
368 "settings.service.form.headlineNotifications": "Notifications", 374 "settings.service.form.headlineNotifications": "æ示信æ¯",
369 "settings.service.form.icon": "Custom icon", 375 "settings.service.form.icon": "自訂圖示",
370 "settings.service.form.iconDelete": "Delete", 376 "settings.service.form.iconDelete": "刪除",
371 "settings.service.form.iconUpload": "Drop your image, or click here", 377 "settings.service.form.iconUpload": "Drop your image, or click here",
372 "settings.service.form.indirectMessageInfo": "除了 @username, @channel, @here 之外,當您åƒèˆ‡çš„é »é“有訊æ¯æ™‚,就會通知", 378 "settings.service.form.indirectMessageInfo": "除了 @username, @channel, @here 之外,當您åƒèˆ‡çš„é »é“有訊æ¯æ™‚,就會通知",
373 "settings.service.form.indirectMessages": "é‡å°å…¨éƒ¨è¨Šæ¯é¡¯ç¤ºé€šçŸ¥", 379 "settings.service.form.indirectMessages": "é‡å°å…¨éƒ¨è¨Šæ¯é¡¯ç¤ºé€šçŸ¥",
@@ -379,16 +385,16 @@
379 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 385 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
380 "settings.service.form.proxy.host": "Proxy Host/IP", 386 "settings.service.form.proxy.host": "Proxy Host/IP",
381 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", 387 "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.",
382 "settings.service.form.proxy.isEnabled": "Use Proxy", 388 "settings.service.form.proxy.isEnabled": "使用代ç†",
383 "settings.service.form.proxy.password": "Password (optional)", 389 "settings.service.form.proxy.password": "密碼(å¯é¸æ“‡ï¼‰",
384 "settings.service.form.proxy.port": "Port", 390 "settings.service.form.proxy.port": "連接埠",
385 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", 391 "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.",
386 "settings.service.form.proxy.user": "User (optional)", 392 "settings.service.form.proxy.user": "用戶(å¯é¸æ“‡ï¼‰",
387 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", 393 "settings.service.form.recipeFileInfo": "Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.",
388 "settings.service.form.saveButton": "儲存", 394 "settings.service.form.saveButton": "儲存",
389 "settings.service.form.tabHosted": "Hosted", 395 "settings.service.form.tabHosted": "Hosted",
390 "settings.service.form.tabOnPremise": "Self hosted â­ï¸", 396 "settings.service.form.tabOnPremise": "Self hosted â­ï¸",
391 "settings.service.form.team": "Team", 397 "settings.service.form.team": "團隊",
392 "settings.service.form.useHostedService": "Use the hosted {name} service.", 398 "settings.service.form.useHostedService": "Use the hosted {name} service.",
393 "settings.service.form.yourServices": "您的æœå‹™", 399 "settings.service.form.yourServices": "您的æœå‹™",
394 "settings.services.deletedInfo": "æœå‹™å·²åˆªé™¤", 400 "settings.services.deletedInfo": "æœå‹™å·²åˆªé™¤",
@@ -400,14 +406,14 @@
400 "settings.services.tooltip.isMuted": "All sounds are muted", 406 "settings.services.tooltip.isMuted": "All sounds are muted",
401 "settings.services.tooltip.notificationsDisabled": "å·²åœç”¨é€šçŸ¥", 407 "settings.services.tooltip.notificationsDisabled": "å·²åœç”¨é€šçŸ¥",
402 "settings.services.updatedInfo": "您的更改已經儲存", 408 "settings.services.updatedInfo": "您的更改已經儲存",
403 "settings.supportFerdi.github": "Star on GitHub", 409 "settings.supportFerdi.github": "到 GitHub 給星星",
404 "settings.supportFerdi.headline": "Support Ferdi", 410 "settings.supportFerdi.headline": "Support Ferdi",
405 "settings.supportFerdi.openCollective": "Support our Open Collective", 411 "settings.supportFerdi.openCollective": "Support our Open Collective",
406 "settings.supportFerdi.share": "Tell your Friends", 412 "settings.supportFerdi.share": "告訴你的朋å‹",
407 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 413 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!",
408 "settings.team.contentHeadline": "Ferdi for Teams", 414 "settings.team.contentHeadline": "Ferdi for Teams",
409 "settings.team.copy": "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 415 "settings.team.copy": "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!",
410 "settings.team.headline": "Team", 416 "settings.team.headline": "團隊",
411 "settings.team.intro": "You and your team use Ferdi? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 417 "settings.team.intro": "You and your team use Ferdi? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.",
412 "settings.team.manageAction": "Manage your Team on getferdi.com", 418 "settings.team.manageAction": "Manage your Team on getferdi.com",
413 "settings.team.teamsUnavailable": "Teams are unavailable", 419 "settings.team.teamsUnavailable": "Teams are unavailable",
@@ -423,9 +429,9 @@
423 "settings.user.form.lastname": "姓æ°", 429 "settings.user.form.lastname": "姓æ°",
424 "settings.user.form.newPassword": "新密碼", 430 "settings.user.form.newPassword": "新密碼",
425 "settings.workspace.add.form.name": "åå­", 431 "settings.workspace.add.form.name": "åå­",
426 "settings.workspace.add.form.submitButton": "Create workspace", 432 "settings.workspace.add.form.submitButton": "建立工作å€",
427 "settings.workspace.form.buttonDelete": "Delete workspace", 433 "settings.workspace.form.buttonDelete": "刪除工作å€",
428 "settings.workspace.form.buttonSave": "Save workspace", 434 "settings.workspace.form.buttonSave": "儲存工作å€åŸŸ",
429 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 435 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*",
430 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 436 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.",
431 "settings.workspace.form.name": "åå­", 437 "settings.workspace.form.name": "åå­",
@@ -433,75 +439,75 @@
433 "settings.workspace.form.yourWorkspaces": "Your workspaces", 439 "settings.workspace.form.yourWorkspaces": "Your workspaces",
434 "settings.workspaces.deletedInfo": "Workspace has been deleted", 440 "settings.workspaces.deletedInfo": "Workspace has been deleted",
435 "settings.workspaces.headline": "Your workspaces", 441 "settings.workspaces.headline": "Your workspaces",
436 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", 442 "settings.workspaces.noWorkspacesAdded": "您還沒加入任何工作å€",
437 "settings.workspaces.tryReloadWorkspaces": "Try again", 443 "settings.workspaces.tryReloadWorkspaces": "å†è©¦ä¸€æ¬¡",
438 "settings.workspaces.updatedInfo": "您的更改已經儲存", 444 "settings.workspaces.updatedInfo": "您的更改已經儲存",
439 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", 445 "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces",
440 "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.", 446 "settings.workspaces.workspaceFeatureInfo": "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.",
441 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", 447 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces",
442 "sidebar.addNewService": "Add new service", 448 "sidebar.addNewService": "添加新æœå‹™",
443 "sidebar.closeTodosDrawer": "Close Ferdi Todos", 449 "sidebar.closeTodosDrawer": "Close Ferdi Todos",
444 "sidebar.closeWorkspaceDrawer": "Close workspace drawer", 450 "sidebar.closeWorkspaceDrawer": "關閉工作å€",
445 "sidebar.lockFerdi": "Lock Ferdi", 451 "sidebar.lockFerdi": "Lock Ferdi",
446 "sidebar.muteApp": "Disable notifications & audio", 452 "sidebar.muteApp": "åœç”¨é€šçŸ¥",
447 "sidebar.openTodosDrawer": "Open Ferdi Todos", 453 "sidebar.openTodosDrawer": "Open Ferdi Todos",
448 "sidebar.openWorkspaceDrawer": "Open workspace drawer", 454 "sidebar.openWorkspaceDrawer": "打開工作å€",
449 "sidebar.settings": "Settings", 455 "sidebar.settings": "設置",
450 "sidebar.unmuteApp": "Enable notifications & audio", 456 "sidebar.unmuteApp": "啟用通知",
451 "signup.email.label": "é›»å­éƒµä»¶ä¿¡ç®±", 457 "signup.email.label": "é›»å­éƒµä»¶ä¿¡ç®±",
452 "signup.emailDuplicate": "此電å­éƒµä»¶ä¿¡ç®±å·²è¢«è¨»å†Š", 458 "signup.emailDuplicate": "此電å­éƒµä»¶ä¿¡ç®±å·²è¢«è¨»å†Š",
453 "signup.firstname.label": "åå­", 459 "signup.firstname.label": "åå­",
454 "signup.headline": "註冊", 460 "signup.headline": "註冊",
455 "signup.lastname.label": "姓æ°", 461 "signup.lastname.label": "姓æ°",
456 "signup.legal.info": "在建立帳戶åŒæ™‚,您åŒæ„:", 462 "signup.legal.info": "在建立帳戶åŒæ™‚,您åŒæ„:",
457 "signup.legal.privacy": "Privacy Statement", 463 "signup.legal.privacy": "éš±ç§è²æ˜Ž",
458 "signup.legal.terms": "æœå‹™æ¢æ¬¾", 464 "signup.legal.terms": "æœå‹™æ¢æ¬¾",
459 "signup.link.login": "您已有一個帳戶,請å•æ˜¯å¦è¦ç™»å…¥ï¼Ÿ", 465 "signup.link.login": "您已有一個帳戶,請å•æ˜¯å¦è¦ç™»å…¥ï¼Ÿ",
460 "signup.password.label": "Password", 466 "signup.password.label": "密碼",
461 "signup.submit.label": "建立帳戶", 467 "signup.submit.label": "建立帳戶",
462 "subscription.bestValue": "Best value", 468 "subscription.bestValue": "Best value",
463 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 469 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
464 "subscription.cta.allOptions": "See all options", 470 "subscription.cta.allOptions": "顯示所有é¸é …",
465 "subscription.cta.choosePlan": "Choose your plan", 471 "subscription.cta.choosePlan": "é¸æ“‡ä½ çš„計劃",
466 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", 472 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:",
467 "subscription.interval.per": "per {interval}", 473 "subscription.interval.per": "per {interval}",
468 "subscription.interval.perMonth": "per month", 474 "subscription.interval.perMonth": "æ¯æœˆ",
469 "subscription.interval.perMonthPerUser": "per month & user", 475 "subscription.interval.perMonthPerUser": "per month & user",
470 "subscription.planItem.upgradeAccount": "Upgrade Account", 476 "subscription.planItem.upgradeAccount": "å‡çº§è´¦æˆ·",
471 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", 477 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:",
472 "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!", 478 "subscription.teaser.intro": "Ferdi 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!",
473 "subscriptionPopup.buttonCancel": "å–消", 479 "subscriptionPopup.buttonCancel": "å–消",
474 "subscriptionPopup.buttonDone": "完æˆ", 480 "subscriptionPopup.buttonDone": "完æˆ",
475 "tabs.item.deleteService": "刪除", 481 "tabs.item.deleteService": "刪除",
476 "tabs.item.disableAudio": "Disable audio", 482 "tabs.item.disableAudio": "åœç”¨éŸ³æ•ˆ",
477 "tabs.item.disableNotifications": "åœç”¨é€šçŸ¥", 483 "tabs.item.disableNotifications": "åœç”¨é€šçŸ¥",
478 "tabs.item.disableService": "åœç”¨æœå‹™", 484 "tabs.item.disableService": "åœç”¨æœå‹™",
479 "tabs.item.edit": "Edit", 485 "tabs.item.edit": "編輯",
480 "tabs.item.enableAudio": "Enable audio", 486 "tabs.item.enableAudio": "啟用音效",
481 "tabs.item.enableNotification": "啟用通知", 487 "tabs.item.enableNotification": "啟用通知",
482 "tabs.item.enableService": "啟用æœå‹™", 488 "tabs.item.enableService": "啟用æœå‹™",
483 "tabs.item.reload": "Reload", 489 "tabs.item.reload": "é‡æ–°åŠ è¼‰",
484 "validation.email": "{field} is not valid", 490 "validation.email": "{field} is not valid",
485 "validation.minLength": "{field} should be at least {length} characters long", 491 "validation.minLength": "{field} should be at least {length} characters long",
486 "validation.oneRequired": "At least one is required", 492 "validation.oneRequired": "At least one is required",
487 "validation.required": "{field} is required", 493 "validation.required": "{field} is required",
488 "validation.url": "{field} is not a valid URL", 494 "validation.url": "{field} is not a valid URL",
489 "webControls.back": "Back", 495 "webControls.back": "返回",
490 "webControls.forward": "Forward", 496 "webControls.forward": "å‰é€²",
491 "webControls.goHome": "Home", 497 "webControls.goHome": "主é ",
492 "webControls.openInBrowser": "Open in Browser", 498 "webControls.openInBrowser": "在ç€è¦½å™¨ä¸­é–‹å•Ÿ",
493 "webControls.reload": "Reload", 499 "webControls.reload": "é‡æ–°åŠ è¼‰",
494 "welcome.loginButton": "登入", 500 "welcome.loginButton": "登入",
495 "welcome.signupButton": "建立一個å…費帳戶", 501 "welcome.signupButton": "建立一個å…費帳戶",
496 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 502 "workspaceDrawer.addNewWorkspaceLabel": "新增工作å€",
497 "workspaceDrawer.allServices": "All services", 503 "workspaceDrawer.allServices": "所有æœå‹™",
498 "workspaceDrawer.headline": "Workspaces", 504 "workspaceDrawer.headline": "工作å€",
499 "workspaceDrawer.item.contextMenuEdit": "edit", 505 "workspaceDrawer.item.contextMenuEdit": "編輯",
500 "workspaceDrawer.item.noServicesAddedYet": "No services added yet", 506 "workspaceDrawer.item.noServicesAddedYet": "未有添加æœå‹™",
501 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", 507 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace",
502 "workspaceDrawer.proFeatureBadge": "Premium feature", 508 "workspaceDrawer.proFeatureBadge": "Premium feature",
503 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", 509 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account",
504 "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>", 510 "workspaceDrawer.workspaceFeatureInfo": "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.</p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.</p>",
505 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", 511 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings",
506 "workspaces.switchingIndicator.switchingTo": "Switching to" 512 "workspaces.switchingIndicator.switchingTo": "切æ›åˆ°"
507} 513}
diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json
index ec5bd1a04..eedd34706 100644
--- a/src/i18n/locales/zh.json
+++ b/src/i18n/locales/zh.json
@@ -85,6 +85,9 @@
85 "locked.invalidCredentials": "Password invalid", 85 "locked.invalidCredentials": "Password invalid",
86 "locked.password.label": "Password", 86 "locked.password.label": "Password",
87 "locked.submit.label": "Unlock", 87 "locked.submit.label": "Unlock",
88 "locked.touchId": "Unlock with Touch ID",
89 "locked.touchIdPrompt": "unlock via Touch ID",
90 "locked.unlockWithPassword": "Unlock with Password",
88 "login.changeServer": "Change server", 91 "login.changeServer": "Change server",
89 "login.customServerQuestion": "Using a custom Ferdi server?", 92 "login.customServerQuestion": "Using a custom Ferdi server?",
90 "login.customServerSuggestion": "Try importing your Franz account", 93 "login.customServerSuggestion": "Try importing your Franz account",
@@ -113,6 +116,7 @@
113 "menu.edit.cut": "Cut", 116 "menu.edit.cut": "Cut",
114 "menu.edit.delete": "Delete", 117 "menu.edit.delete": "Delete",
115 "menu.edit.emojiSymbols": "Emoji & Symbols", 118 "menu.edit.emojiSymbols": "Emoji & Symbols",
119 "menu.edit.findInPage": "Find in Page",
116 "menu.edit.paste": "Paste", 120 "menu.edit.paste": "Paste",
117 "menu.edit.pasteAndMatchStyle": "Paste And Match Style", 121 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
118 "menu.edit.redo": "Redo", 122 "menu.edit.redo": "Redo",
@@ -287,6 +291,7 @@
287 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", 291 "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour",
288 "settings.app.form.noUpdates": "Disable updates", 292 "settings.app.form.noUpdates": "Disable updates",
289 "settings.app.form.privateNotifications": "Don't show message content in notifications", 293 "settings.app.form.privateNotifications": "Don't show message content in notifications",
294 "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume",
290 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", 295 "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window",
291 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 296 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb",
292 "settings.app.form.scheduledDNDEnd": "To", 297 "settings.app.form.scheduledDNDEnd": "To",
@@ -299,6 +304,7 @@
299 "settings.app.form.startMinimized": "Start minimized in tray", 304 "settings.app.form.startMinimized": "Start minimized in tray",
300 "settings.app.form.todoServer": "Todo Server", 305 "settings.app.form.todoServer": "Todo Server",
301 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 306 "settings.app.form.universalDarkMode": "Enable universal Dark Mode",
307 "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi",
302 "settings.app.headline": "Settings", 308 "settings.app.headline": "Settings",
303 "settings.app.headlineAdvanced": "Advanced", 309 "settings.app.headlineAdvanced": "Advanced",
304 "settings.app.headlineAppearance": "Appearance", 310 "settings.app.headlineAppearance": "Appearance",
diff --git a/src/i18n/messages/src/components/auth/Locked.json b/src/i18n/messages/src/components/auth/Locked.json
index 407e70484..ac6091c35 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": 14, 7 "line": 19,
8 "column": 12 8 "column": 12
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 17, 11 "line": 22,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,37 @@
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": 18, 20 "line": 23,
21 "column": 8 21 "column": 8
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 21, 24 "line": 26,
25 "column": 3
26 }
27 },
28 {
29 "id": "locked.touchId",
30 "defaultMessage": "!!!Unlock with Touch ID",
31 "file": "src/components/auth/Locked.js",
32 "start": {
33 "line": 27,
34 "column": 11
35 },
36 "end": {
37 "line": 30,
38 "column": 3
39 }
40 },
41 {
42 "id": "locked.touchIdPrompt",
43 "defaultMessage": "!!!unlock via Touch ID",
44 "file": "src/components/auth/Locked.js",
45 "start": {
46 "line": 31,
47 "column": 17
48 },
49 "end": {
50 "line": 34,
25 "column": 3 51 "column": 3
26 } 52 }
27 }, 53 },
@@ -30,11 +56,11 @@
30 "defaultMessage": "!!!Password", 56 "defaultMessage": "!!!Password",
31 "file": "src/components/auth/Locked.js", 57 "file": "src/components/auth/Locked.js",
32 "start": { 58 "start": {
33 "line": 22, 59 "line": 35,
34 "column": 17 60 "column": 17
35 }, 61 },
36 "end": { 62 "end": {
37 "line": 25, 63 "line": 38,
38 "column": 3 64 "column": 3
39 } 65 }
40 }, 66 },
@@ -43,11 +69,24 @@
43 "defaultMessage": "!!!Unlock", 69 "defaultMessage": "!!!Unlock",
44 "file": "src/components/auth/Locked.js", 70 "file": "src/components/auth/Locked.js",
45 "start": { 71 "start": {
46 "line": 26, 72 "line": 39,
47 "column": 21 73 "column": 21
48 }, 74 },
49 "end": { 75 "end": {
50 "line": 29, 76 "line": 42,
77 "column": 3
78 }
79 },
80 {
81 "id": "locked.unlockWithPassword",
82 "defaultMessage": "!!!Unlock with Password",
83 "file": "src/components/auth/Locked.js",
84 "start": {
85 "line": 43,
86 "column": 22
87 },
88 "end": {
89 "line": 46,
51 "column": 3 90 "column": 3
52 } 91 }
53 }, 92 },
@@ -56,11 +95,11 @@
56 "defaultMessage": "!!!Password invalid", 95 "defaultMessage": "!!!Password invalid",
57 "file": "src/components/auth/Locked.js", 96 "file": "src/components/auth/Locked.js",
58 "start": { 97 "start": {
59 "line": 30, 98 "line": 47,
60 "column": 22 99 "column": 22
61 }, 100 },
62 "end": { 101 "end": {
63 "line": 33, 102 "line": 50,
64 "column": 3 103 "column": 3
65 } 104 }
66 } 105 }
diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
index 8bdbf9f3a..994bb4fa5 100644
--- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
+++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Settings", 4 "defaultMessage": "!!!Settings",
5 "file": "src/components/settings/settings/EditSettingsForm.js", 5 "file": "src/components/settings/settings/EditSettingsForm.js",
6 "start": { 6 "start": {
7 "line": 27, 7 "line": 31,
8 "column": 12 8 "column": 12
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": "!!!General", 17 "defaultMessage": "!!!General",
18 "file": "src/components/settings/settings/EditSettingsForm.js", 18 "file": "src/components/settings/settings/EditSettingsForm.js",
19 "start": { 19 "start": {
20 "line": 31, 20 "line": 35,
21 "column": 19 21 "column": 19
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": "!!!Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 30 "defaultMessage": "!!!Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.",
31 "file": "src/components/settings/settings/EditSettingsForm.js", 31 "file": "src/components/settings/settings/EditSettingsForm.js",
32 "start": { 32 "start": {
33 "line": 35, 33 "line": 39,
34 "column": 14 34 "column": 14
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 38, 37 "line": 42,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", 43 "defaultMessage": "!!!By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.",
44 "file": "src/components/settings/settings/EditSettingsForm.js", 44 "file": "src/components/settings/settings/EditSettingsForm.js",
45 "start": { 45 "start": {
46 "line": 39, 46 "line": 43,
47 "column": 17 47 "column": 17
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 42, 50 "line": 46,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 56 "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable",
57 "file": "src/components/settings/settings/EditSettingsForm.js", 57 "file": "src/components/settings/settings/EditSettingsForm.js",
58 "start": { 58 "start": {
59 "line": 43, 59 "line": 47,
60 "column": 22 60 "column": 22
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 46, 63 "line": 50,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.", 69 "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.",
70 "file": "src/components/settings/settings/EditSettingsForm.js", 70 "file": "src/components/settings/settings/EditSettingsForm.js",
71 "start": { 71 "start": {
72 "line": 47, 72 "line": 51,
73 "column": 14 73 "column": 14
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 50, 76 "line": 54,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.", 82 "defaultMessage": "!!!You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.",
83 "file": "src/components/settings/settings/EditSettingsForm.js", 83 "file": "src/components/settings/settings/EditSettingsForm.js",
84 "start": { 84 "start": {
85 "line": 51, 85 "line": 55,
86 "column": 19 86 "column": 19
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 54, 89 "line": 58,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
@@ -95,11 +95,11 @@
95 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", 95 "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)",
96 "file": "src/components/settings/settings/EditSettingsForm.js", 96 "file": "src/components/settings/settings/EditSettingsForm.js",
97 "start": { 97 "start": {
98 "line": 55, 98 "line": 59,
99 "column": 18 99 "column": 18
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 58, 102 "line": 62,
103 "column": 3 103 "column": 3
104 } 104 }
105 }, 105 },
@@ -108,11 +108,11 @@
108 "defaultMessage": "!!!Password", 108 "defaultMessage": "!!!Password",
109 "file": "src/components/settings/settings/EditSettingsForm.js", 109 "file": "src/components/settings/settings/EditSettingsForm.js",
110 "start": { 110 "start": {
111 "line": 59, 111 "line": 63,
112 "column": 18 112 "column": 18
113 }, 113 },
114 "end": { 114 "end": {
115 "line": 62, 115 "line": 66,
116 "column": 3 116 "column": 3
117 } 117 }
118 }, 118 },
@@ -121,11 +121,11 @@
121 "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 121 "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.",
122 "file": "src/components/settings/settings/EditSettingsForm.js", 122 "file": "src/components/settings/settings/EditSettingsForm.js",
123 "start": { 123 "start": {
124 "line": 63, 124 "line": 67,
125 "column": 22 125 "column": 22
126 }, 126 },
127 "end": { 127 "end": {
128 "line": 66, 128 "line": 70,
129 "column": 3 129 "column": 3
130 } 130 }
131 }, 131 },
@@ -134,11 +134,11 @@
134 "defaultMessage": "!!!Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", 134 "defaultMessage": "!!!Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.",
135 "file": "src/components/settings/settings/EditSettingsForm.js", 135 "file": "src/components/settings/settings/EditSettingsForm.js",
136 "start": { 136 "start": {
137 "line": 67, 137 "line": 71,
138 "column": 12 138 "column": 12
139 }, 139 },
140 "end": { 140 "end": {
141 "line": 70, 141 "line": 74,
142 "column": 3 142 "column": 3
143 } 143 }
144 }, 144 },
@@ -147,11 +147,11 @@
147 "defaultMessage": "!!!Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", 147 "defaultMessage": "!!!Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.",
148 "file": "src/components/settings/settings/EditSettingsForm.js", 148 "file": "src/components/settings/settings/EditSettingsForm.js",
149 "start": { 149 "start": {
150 "line": 71, 150 "line": 75,
151 "column": 24 151 "column": 24
152 }, 152 },
153 "end": { 153 "end": {
154 "line": 74, 154 "line": 78,
155 "column": 3 155 "column": 3
156 } 156 }
157 }, 157 },
@@ -160,11 +160,11 @@
160 "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", 160 "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.",
161 "file": "src/components/settings/settings/EditSettingsForm.js", 161 "file": "src/components/settings/settings/EditSettingsForm.js",
162 "start": { 162 "start": {
163 "line": 75, 163 "line": 79,
164 "column": 20 164 "column": 20
165 }, 165 },
166 "end": { 166 "end": {
167 "line": 78, 167 "line": 82,
168 "column": 3 168 "column": 3
169 } 169 }
170 }, 170 },
@@ -173,11 +173,11 @@
173 "defaultMessage": "!!!Language", 173 "defaultMessage": "!!!Language",
174 "file": "src/components/settings/settings/EditSettingsForm.js", 174 "file": "src/components/settings/settings/EditSettingsForm.js",
175 "start": { 175 "start": {
176 "line": 79, 176 "line": 83,
177 "column": 20 177 "column": 20
178 }, 178 },
179 "end": { 179 "end": {
180 "line": 82, 180 "line": 86,
181 "column": 3 181 "column": 3
182 } 182 }
183 }, 183 },
@@ -186,11 +186,11 @@
186 "defaultMessage": "!!!Updates", 186 "defaultMessage": "!!!Updates",
187 "file": "src/components/settings/settings/EditSettingsForm.js", 187 "file": "src/components/settings/settings/EditSettingsForm.js",
188 "start": { 188 "start": {
189 "line": 83, 189 "line": 87,
190 "column": 19 190 "column": 19
191 }, 191 },
192 "end": { 192 "end": {
193 "line": 86, 193 "line": 90,
194 "column": 3 194 "column": 3
195 } 195 }
196 }, 196 },
@@ -199,11 +199,11 @@
199 "defaultMessage": "!!!Appearance", 199 "defaultMessage": "!!!Appearance",
200 "file": "src/components/settings/settings/EditSettingsForm.js", 200 "file": "src/components/settings/settings/EditSettingsForm.js",
201 "start": { 201 "start": {
202 "line": 87, 202 "line": 91,
203 "column": 22 203 "column": 22
204 }, 204 },
205 "end": { 205 "end": {
206 "line": 90, 206 "line": 94,
207 "column": 3 207 "column": 3
208 } 208 }
209 }, 209 },
@@ -212,11 +212,11 @@
212 "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 212 "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.",
213 "file": "src/components/settings/settings/EditSettingsForm.js", 213 "file": "src/components/settings/settings/EditSettingsForm.js",
214 "start": { 214 "start": {
215 "line": 91, 215 "line": 95,
216 "column": 25 216 "column": 25
217 }, 217 },
218 "end": { 218 "end": {
219 "line": 94, 219 "line": 98,
220 "column": 3 220 "column": 3
221 } 221 }
222 }, 222 },
@@ -225,11 +225,11 @@
225 "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", 225 "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)",
226 "file": "src/components/settings/settings/EditSettingsForm.js", 226 "file": "src/components/settings/settings/EditSettingsForm.js",
227 "start": { 227 "start": {
228 "line": 95, 228 "line": 99,
229 "column": 19 229 "column": 19
230 }, 230 },
231 "end": { 231 "end": {
232 "line": 98, 232 "line": 102,
233 "column": 3 233 "column": 3
234 } 234 }
235 }, 235 },
@@ -238,11 +238,11 @@
238 "defaultMessage": "!!!Advanced", 238 "defaultMessage": "!!!Advanced",
239 "file": "src/components/settings/settings/EditSettingsForm.js", 239 "file": "src/components/settings/settings/EditSettingsForm.js",
240 "start": { 240 "start": {
241 "line": 99, 241 "line": 103,
242 "column": 20 242 "column": 20
243 }, 243 },
244 "end": { 244 "end": {
245 "line": 102, 245 "line": 106,
246 "column": 3 246 "column": 3
247 } 247 }
248 }, 248 },
@@ -251,11 +251,11 @@
251 "defaultMessage": "!!!Help us to translate Ferdi into your language.", 251 "defaultMessage": "!!!Help us to translate Ferdi into your language.",
252 "file": "src/components/settings/settings/EditSettingsForm.js", 252 "file": "src/components/settings/settings/EditSettingsForm.js",
253 "start": { 253 "start": {
254 "line": 103, 254 "line": 107,
255 "column": 19 255 "column": 19
256 }, 256 },
257 "end": { 257 "end": {
258 "line": 106, 258 "line": 110,
259 "column": 3 259 "column": 3
260 } 260 }
261 }, 261 },
@@ -264,11 +264,11 @@
264 "defaultMessage": "!!!Cache", 264 "defaultMessage": "!!!Cache",
265 "file": "src/components/settings/settings/EditSettingsForm.js", 265 "file": "src/components/settings/settings/EditSettingsForm.js",
266 "start": { 266 "start": {
267 "line": 107, 267 "line": 111,
268 "column": 20 268 "column": 20
269 }, 269 },
270 "end": { 270 "end": {
271 "line": 110, 271 "line": 114,
272 "column": 3 272 "column": 3
273 } 273 }
274 }, 274 },
@@ -277,11 +277,11 @@
277 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", 277 "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.",
278 "file": "src/components/settings/settings/EditSettingsForm.js", 278 "file": "src/components/settings/settings/EditSettingsForm.js",
279 "start": { 279 "start": {
280 "line": 111, 280 "line": 115,
281 "column": 13 281 "column": 13
282 }, 282 },
283 "end": { 283 "end": {
284 "line": 114, 284 "line": 118,
285 "column": 3 285 "column": 3
286 } 286 }
287 }, 287 },
@@ -290,11 +290,11 @@
290 "defaultMessage": "!!!Clear cache", 290 "defaultMessage": "!!!Clear cache",
291 "file": "src/components/settings/settings/EditSettingsForm.js", 291 "file": "src/components/settings/settings/EditSettingsForm.js",
292 "start": { 292 "start": {
293 "line": 115, 293 "line": 119,
294 "column": 23 294 "column": 23
295 }, 295 },
296 "end": { 296 "end": {
297 "line": 118, 297 "line": 122,
298 "column": 3 298 "column": 3
299 } 299 }
300 }, 300 },
@@ -303,11 +303,11 @@
303 "defaultMessage": "!!!Check for updates", 303 "defaultMessage": "!!!Check for updates",
304 "file": "src/components/settings/settings/EditSettingsForm.js", 304 "file": "src/components/settings/settings/EditSettingsForm.js",
305 "start": { 305 "start": {
306 "line": 119, 306 "line": 123,
307 "column": 25 307 "column": 25
308 }, 308 },
309 "end": { 309 "end": {
310 "line": 122, 310 "line": 126,
311 "column": 3 311 "column": 3
312 } 312 }
313 }, 313 },
@@ -316,11 +316,11 @@
316 "defaultMessage": "!!!Restart & install update", 316 "defaultMessage": "!!!Restart & install update",
317 "file": "src/components/settings/settings/EditSettingsForm.js", 317 "file": "src/components/settings/settings/EditSettingsForm.js",
318 "start": { 318 "start": {
319 "line": 123, 319 "line": 127,
320 "column": 23 320 "column": 23
321 }, 321 },
322 "end": { 322 "end": {
323 "line": 126, 323 "line": 130,
324 "column": 3 324 "column": 3
325 } 325 }
326 }, 326 },
@@ -329,11 +329,11 @@
329 "defaultMessage": "!!!Is searching for update", 329 "defaultMessage": "!!!Is searching for update",
330 "file": "src/components/settings/settings/EditSettingsForm.js", 330 "file": "src/components/settings/settings/EditSettingsForm.js",
331 "start": { 331 "start": {
332 "line": 127, 332 "line": 131,
333 "column": 25 333 "column": 25
334 }, 334 },
335 "end": { 335 "end": {
336 "line": 130, 336 "line": 134,
337 "column": 3 337 "column": 3
338 } 338 }
339 }, 339 },
@@ -342,11 +342,11 @@
342 "defaultMessage": "!!!Update available, downloading...", 342 "defaultMessage": "!!!Update available, downloading...",
343 "file": "src/components/settings/settings/EditSettingsForm.js", 343 "file": "src/components/settings/settings/EditSettingsForm.js",
344 "start": { 344 "start": {
345 "line": 131, 345 "line": 135,
346 "column": 25 346 "column": 25
347 }, 347 },
348 "end": { 348 "end": {
349 "line": 134, 349 "line": 138,
350 "column": 3 350 "column": 3
351 } 351 }
352 }, 352 },
@@ -355,11 +355,11 @@
355 "defaultMessage": "!!!You are using the latest version of Ferdi", 355 "defaultMessage": "!!!You are using the latest version of Ferdi",
356 "file": "src/components/settings/settings/EditSettingsForm.js", 356 "file": "src/components/settings/settings/EditSettingsForm.js",
357 "start": { 357 "start": {
358 "line": 135, 358 "line": 139,
359 "column": 24 359 "column": 24
360 }, 360 },
361 "end": { 361 "end": {
362 "line": 138, 362 "line": 142,
363 "column": 3 363 "column": 3
364 } 364 }
365 }, 365 },
@@ -368,11 +368,11 @@
368 "defaultMessage": "!!!Current version:", 368 "defaultMessage": "!!!Current version:",
369 "file": "src/components/settings/settings/EditSettingsForm.js", 369 "file": "src/components/settings/settings/EditSettingsForm.js",
370 "start": { 370 "start": {
371 "line": 139, 371 "line": 143,
372 "column": 18 372 "column": 18
373 }, 373 },
374 "end": { 374 "end": {
375 "line": 142, 375 "line": 146,
376 "column": 3 376 "column": 3
377 } 377 }
378 }, 378 },
@@ -381,11 +381,11 @@
381 "defaultMessage": "!!!Changes require restart", 381 "defaultMessage": "!!!Changes require restart",
382 "file": "src/components/settings/settings/EditSettingsForm.js", 382 "file": "src/components/settings/settings/EditSettingsForm.js",
383 "start": { 383 "start": {
384 "line": 143, 384 "line": 147,
385 "column": 29 385 "column": 29
386 }, 386 },
387 "end": { 387 "end": {
388 "line": 146, 388 "line": 150,
389 "column": 3 389 "column": 3
390 } 390 }
391 }, 391 },
@@ -394,11 +394,11 @@
394 "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.",
395 "file": "src/components/settings/settings/EditSettingsForm.js", 395 "file": "src/components/settings/settings/EditSettingsForm.js",
396 "start": { 396 "start": {
397 "line": 147, 397 "line": 151,
398 "column": 22 398 "column": 22
399 }, 399 },
400 "end": { 400 "end": {
401 "line": 150, 401 "line": 154,
402 "column": 3 402 "column": 3
403 } 403 }
404 } 404 }
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
index fdf49bbb6..0d3265c51 100644
--- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
+++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
@@ -65,15 +65,28 @@
65 } 65 }
66 }, 66 },
67 { 67 {
68 "id": "settings.app.form.reloadAfterResume",
69 "defaultMessage": "!!!Reload Ferdi after system resume",
70 "file": "src/containers/settings/EditSettingsScreen.js",
71 "start": {
72 "line": 51,
73 "column": 21
74 },
75 "end": {
76 "line": 54,
77 "column": 3
78 }
79 },
80 {
68 "id": "settings.app.form.minimizeToSystemTray", 81 "id": "settings.app.form.minimizeToSystemTray",
69 "defaultMessage": "!!!Minimize Ferdi to system tray", 82 "defaultMessage": "!!!Minimize Ferdi to system tray",
70 "file": "src/containers/settings/EditSettingsScreen.js", 83 "file": "src/containers/settings/EditSettingsScreen.js",
71 "start": { 84 "start": {
72 "line": 51, 85 "line": 55,
73 "column": 24 86 "column": 24
74 }, 87 },
75 "end": { 88 "end": {
76 "line": 54, 89 "line": 58,
77 "column": 3 90 "column": 3
78 } 91 }
79 }, 92 },
@@ -82,11 +95,11 @@
82 "defaultMessage": "!!!Don't show message content in notifications", 95 "defaultMessage": "!!!Don't show message content in notifications",
83 "file": "src/containers/settings/EditSettingsScreen.js", 96 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": { 97 "start": {
85 "line": 55, 98 "line": 59,
86 "column": 24 99 "column": 24
87 }, 100 },
88 "end": { 101 "end": {
89 "line": 58, 102 "line": 62,
90 "column": 3 103 "column": 3
91 } 104 }
92 }, 105 },
@@ -95,11 +108,11 @@
95 "defaultMessage": "!!!Navigation bar behaviour", 108 "defaultMessage": "!!!Navigation bar behaviour",
96 "file": "src/containers/settings/EditSettingsScreen.js", 109 "file": "src/containers/settings/EditSettingsScreen.js",
97 "start": { 110 "start": {
98 "line": 59, 111 "line": 63,
99 "column": 26 112 "column": 26
100 }, 113 },
101 "end": { 114 "end": {
102 "line": 62, 115 "line": 66,
103 "column": 3 116 "column": 3
104 } 117 }
105 }, 118 },
@@ -108,11 +121,11 @@
108 "defaultMessage": "!!!Send telemetry data", 121 "defaultMessage": "!!!Send telemetry data",
109 "file": "src/containers/settings/EditSettingsScreen.js", 122 "file": "src/containers/settings/EditSettingsScreen.js",
110 "start": { 123 "start": {
111 "line": 63, 124 "line": 67,
112 "column": 10 125 "column": 10
113 }, 126 },
114 "end": { 127 "end": {
115 "line": 66, 128 "line": 70,
116 "column": 3 129 "column": 3
117 } 130 }
118 }, 131 },
@@ -121,11 +134,11 @@
121 "defaultMessage": "!!!Enable service hibernation", 134 "defaultMessage": "!!!Enable service hibernation",
122 "file": "src/containers/settings/EditSettingsScreen.js", 135 "file": "src/containers/settings/EditSettingsScreen.js",
123 "start": { 136 "start": {
124 "line": 67, 137 "line": 71,
125 "column": 13 138 "column": 13
126 }, 139 },
127 "end": { 140 "end": {
128 "line": 70, 141 "line": 74,
129 "column": 3 142 "column": 3
130 } 143 }
131 }, 144 },
@@ -134,11 +147,11 @@
134 "defaultMessage": "!!!Hibernation strategy", 147 "defaultMessage": "!!!Hibernation strategy",
135 "file": "src/containers/settings/EditSettingsScreen.js", 148 "file": "src/containers/settings/EditSettingsScreen.js",
136 "start": { 149 "start": {
137 "line": 71, 150 "line": 75,
138 "column": 23 151 "column": 23
139 }, 152 },
140 "end": { 153 "end": {
141 "line": 74, 154 "line": 78,
142 "column": 3 155 "column": 3
143 } 156 }
144 }, 157 },
@@ -147,11 +160,11 @@
147 "defaultMessage": "!!!Server", 160 "defaultMessage": "!!!Server",
148 "file": "src/containers/settings/EditSettingsScreen.js", 161 "file": "src/containers/settings/EditSettingsScreen.js",
149 "start": { 162 "start": {
150 "line": 75, 163 "line": 79,
151 "column": 10 164 "column": 10
152 }, 165 },
153 "end": { 166 "end": {
154 "line": 78, 167 "line": 82,
155 "column": 3 168 "column": 3
156 } 169 }
157 }, 170 },
@@ -160,11 +173,11 @@
160 "defaultMessage": "!!!Todo Server", 173 "defaultMessage": "!!!Todo Server",
161 "file": "src/containers/settings/EditSettingsScreen.js", 174 "file": "src/containers/settings/EditSettingsScreen.js",
162 "start": { 175 "start": {
163 "line": 79, 176 "line": 83,
164 "column": 14 177 "column": 14
165 }, 178 },
166 "end": { 179 "end": {
167 "line": 82, 180 "line": 86,
168 "column": 3 181 "column": 3
169 } 182 }
170 }, 183 },
@@ -173,11 +186,11 @@
173 "defaultMessage": "!!!Enable Password Lock", 186 "defaultMessage": "!!!Enable Password Lock",
174 "file": "src/containers/settings/EditSettingsScreen.js", 187 "file": "src/containers/settings/EditSettingsScreen.js",
175 "start": { 188 "start": {
176 "line": 83, 189 "line": 87,
177 "column": 14 190 "column": 14
178 }, 191 },
179 "end": { 192 "end": {
180 "line": 86, 193 "line": 90,
181 "column": 3 194 "column": 3
182 } 195 }
183 }, 196 },
@@ -186,11 +199,24 @@
186 "defaultMessage": "!!!Password", 199 "defaultMessage": "!!!Password",
187 "file": "src/containers/settings/EditSettingsScreen.js", 200 "file": "src/containers/settings/EditSettingsScreen.js",
188 "start": { 201 "start": {
189 "line": 87, 202 "line": 91,
190 "column": 16 203 "column": 16
191 }, 204 },
192 "end": { 205 "end": {
193 "line": 90, 206 "line": 94,
207 "column": 3
208 }
209 },
210 {
211 "id": "settings.app.form.useTouchIdToUnlock",
212 "defaultMessage": "!!!Allow using Touch ID to unlock",
213 "file": "src/containers/settings/EditSettingsScreen.js",
214 "start": {
215 "line": 95,
216 "column": 22
217 },
218 "end": {
219 "line": 98,
194 "column": 3 220 "column": 3
195 } 221 }
196 }, 222 },
@@ -199,11 +225,11 @@
199 "defaultMessage": "!!!Lock after inactivity", 225 "defaultMessage": "!!!Lock after inactivity",
200 "file": "src/containers/settings/EditSettingsScreen.js", 226 "file": "src/containers/settings/EditSettingsScreen.js",
201 "start": { 227 "start": {
202 "line": 91, 228 "line": 99,
203 "column": 18 229 "column": 18
204 }, 230 },
205 "end": { 231 "end": {
206 "line": 94, 232 "line": 102,
207 "column": 3 233 "column": 3
208 } 234 }
209 }, 235 },
@@ -212,11 +238,11 @@
212 "defaultMessage": "!!!Enable scheduled Do-not-Disturb", 238 "defaultMessage": "!!!Enable scheduled Do-not-Disturb",
213 "file": "src/containers/settings/EditSettingsScreen.js", 239 "file": "src/containers/settings/EditSettingsScreen.js",
214 "start": { 240 "start": {
215 "line": 95, 241 "line": 103,
216 "column": 23 242 "column": 23
217 }, 243 },
218 "end": { 244 "end": {
219 "line": 98, 245 "line": 106,
220 "column": 3 246 "column": 3
221 } 247 }
222 }, 248 },
@@ -225,11 +251,11 @@
225 "defaultMessage": "!!!From", 251 "defaultMessage": "!!!From",
226 "file": "src/containers/settings/EditSettingsScreen.js", 252 "file": "src/containers/settings/EditSettingsScreen.js",
227 "start": { 253 "start": {
228 "line": 99, 254 "line": 107,
229 "column": 21 255 "column": 21
230 }, 256 },
231 "end": { 257 "end": {
232 "line": 102, 258 "line": 110,
233 "column": 3 259 "column": 3
234 } 260 }
235 }, 261 },
@@ -238,11 +264,11 @@
238 "defaultMessage": "!!!To", 264 "defaultMessage": "!!!To",
239 "file": "src/containers/settings/EditSettingsScreen.js", 265 "file": "src/containers/settings/EditSettingsScreen.js",
240 "start": { 266 "start": {
241 "line": 103, 267 "line": 111,
242 "column": 19 268 "column": 19
243 }, 269 },
244 "end": { 270 "end": {
245 "line": 106, 271 "line": 114,
246 "column": 3 272 "column": 3
247 } 273 }
248 }, 274 },
@@ -251,11 +277,11 @@
251 "defaultMessage": "!!!Language", 277 "defaultMessage": "!!!Language",
252 "file": "src/containers/settings/EditSettingsScreen.js", 278 "file": "src/containers/settings/EditSettingsScreen.js",
253 "start": { 279 "start": {
254 "line": 107, 280 "line": 115,
255 "column": 12 281 "column": 12
256 }, 282 },
257 "end": { 283 "end": {
258 "line": 110, 284 "line": 118,
259 "column": 3 285 "column": 3
260 } 286 }
261 }, 287 },
@@ -264,11 +290,11 @@
264 "defaultMessage": "!!!Dark Mode", 290 "defaultMessage": "!!!Dark Mode",
265 "file": "src/containers/settings/EditSettingsScreen.js", 291 "file": "src/containers/settings/EditSettingsScreen.js",
266 "start": { 292 "start": {
267 "line": 111, 293 "line": 119,
268 "column": 12 294 "column": 12
269 }, 295 },
270 "end": { 296 "end": {
271 "line": 114, 297 "line": 122,
272 "column": 3 298 "column": 3
273 } 299 }
274 }, 300 },
@@ -277,11 +303,11 @@
277 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", 303 "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting",
278 "file": "src/containers/settings/EditSettingsScreen.js", 304 "file": "src/containers/settings/EditSettingsScreen.js",
279 "start": { 305 "start": {
280 "line": 115, 306 "line": 123,
281 "column": 21 307 "column": 21
282 }, 308 },
283 "end": { 309 "end": {
284 "line": 118, 310 "line": 126,
285 "column": 3 311 "column": 3
286 } 312 }
287 }, 313 },
@@ -290,11 +316,11 @@
290 "defaultMessage": "!!!Enable universal Dark Mode", 316 "defaultMessage": "!!!Enable universal Dark Mode",
291 "file": "src/containers/settings/EditSettingsScreen.js", 317 "file": "src/containers/settings/EditSettingsScreen.js",
292 "start": { 318 "start": {
293 "line": 119, 319 "line": 127,
294 "column": 21 320 "column": 21
295 }, 321 },
296 "end": { 322 "end": {
297 "line": 122, 323 "line": 130,
298 "column": 3 324 "column": 3
299 } 325 }
300 }, 326 },
@@ -303,11 +329,11 @@
303 "defaultMessage": "!!!Sidebar width", 329 "defaultMessage": "!!!Sidebar width",
304 "file": "src/containers/settings/EditSettingsScreen.js", 330 "file": "src/containers/settings/EditSettingsScreen.js",
305 "start": { 331 "start": {
306 "line": 123, 332 "line": 131,
307 "column": 22 333 "column": 22
308 }, 334 },
309 "end": { 335 "end": {
310 "line": 126, 336 "line": 134,
311 "column": 3 337 "column": 3
312 } 338 }
313 }, 339 },
@@ -316,11 +342,11 @@
316 "defaultMessage": "!!!Service icon size", 342 "defaultMessage": "!!!Service icon size",
317 "file": "src/containers/settings/EditSettingsScreen.js", 343 "file": "src/containers/settings/EditSettingsScreen.js",
318 "start": { 344 "start": {
319 "line": 127, 345 "line": 135,
320 "column": 12 346 "column": 12
321 }, 347 },
322 "end": { 348 "end": {
323 "line": 130, 349 "line": 138,
324 "column": 3 350 "column": 3
325 } 351 }
326 }, 352 },
@@ -329,11 +355,11 @@
329 "defaultMessage": "!!!Accent color", 355 "defaultMessage": "!!!Accent color",
330 "file": "src/containers/settings/EditSettingsScreen.js", 356 "file": "src/containers/settings/EditSettingsScreen.js",
331 "start": { 357 "start": {
332 "line": 131, 358 "line": 139,
333 "column": 15 359 "column": 15
334 }, 360 },
335 "end": { 361 "end": {
336 "line": 134, 362 "line": 142,
337 "column": 3 363 "column": 3
338 } 364 }
339 }, 365 },
@@ -342,11 +368,11 @@
342 "defaultMessage": "!!!Display disabled services tabs", 368 "defaultMessage": "!!!Display disabled services tabs",
343 "file": "src/containers/settings/EditSettingsScreen.js", 369 "file": "src/containers/settings/EditSettingsScreen.js",
344 "start": { 370 "start": {
345 "line": 135, 371 "line": 143,
346 "column": 24 372 "column": 24
347 }, 373 },
348 "end": { 374 "end": {
349 "line": 138, 375 "line": 146,
350 "column": 3 376 "column": 3
351 } 377 }
352 }, 378 },
@@ -355,11 +381,11 @@
355 "defaultMessage": "!!!Show unread message badge when notifications are disabled", 381 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
356 "file": "src/containers/settings/EditSettingsScreen.js", 382 "file": "src/containers/settings/EditSettingsScreen.js",
357 "start": { 383 "start": {
358 "line": 139, 384 "line": 147,
359 "column": 29 385 "column": 29
360 }, 386 },
361 "end": { 387 "end": {
362 "line": 142, 388 "line": 150,
363 "column": 3 389 "column": 3
364 } 390 }
365 }, 391 },
@@ -368,11 +394,11 @@
368 "defaultMessage": "!!!Enable spell checking", 394 "defaultMessage": "!!!Enable spell checking",
369 "file": "src/containers/settings/EditSettingsScreen.js", 395 "file": "src/containers/settings/EditSettingsScreen.js",
370 "start": { 396 "start": {
371 "line": 143, 397 "line": 151,
372 "column": 23 398 "column": 23
373 }, 399 },
374 "end": { 400 "end": {
375 "line": 146, 401 "line": 154,
376 "column": 3 402 "column": 3
377 } 403 }
378 }, 404 },
@@ -381,11 +407,11 @@
381 "defaultMessage": "!!!Enable GPU Acceleration", 407 "defaultMessage": "!!!Enable GPU Acceleration",
382 "file": "src/containers/settings/EditSettingsScreen.js", 408 "file": "src/containers/settings/EditSettingsScreen.js",
383 "start": { 409 "start": {
384 "line": 147, 410 "line": 155,
385 "column": 25 411 "column": 25
386 }, 412 },
387 "end": { 413 "end": {
388 "line": 150, 414 "line": 158,
389 "column": 3 415 "column": 3
390 } 416 }
391 }, 417 },
@@ -394,11 +420,11 @@
394 "defaultMessage": "!!!Include beta versions", 420 "defaultMessage": "!!!Include beta versions",
395 "file": "src/containers/settings/EditSettingsScreen.js", 421 "file": "src/containers/settings/EditSettingsScreen.js",
396 "start": { 422 "start": {
397 "line": 151, 423 "line": 159,
398 "column": 8 424 "column": 8
399 }, 425 },
400 "end": { 426 "end": {
401 "line": 154, 427 "line": 162,
402 "column": 3 428 "column": 3
403 } 429 }
404 }, 430 },
@@ -407,11 +433,11 @@
407 "defaultMessage": "!!!Disable updates", 433 "defaultMessage": "!!!Disable updates",
408 "file": "src/containers/settings/EditSettingsScreen.js", 434 "file": "src/containers/settings/EditSettingsScreen.js",
409 "start": { 435 "start": {
410 "line": 155, 436 "line": 163,
411 "column": 13 437 "column": 13
412 }, 438 },
413 "end": { 439 "end": {
414 "line": 158, 440 "line": 166,
415 "column": 3 441 "column": 3
416 } 442 }
417 }, 443 },
@@ -420,11 +446,11 @@
420 "defaultMessage": "!!!Enable Franz Todos", 446 "defaultMessage": "!!!Enable Franz Todos",
421 "file": "src/containers/settings/EditSettingsScreen.js", 447 "file": "src/containers/settings/EditSettingsScreen.js",
422 "start": { 448 "start": {
423 "line": 159, 449 "line": 167,
424 "column": 15 450 "column": 15
425 }, 451 },
426 "end": { 452 "end": {
427 "line": 162, 453 "line": 170,
428 "column": 3 454 "column": 3
429 } 455 }
430 }, 456 },
@@ -433,11 +459,11 @@
433 "defaultMessage": "!!!Keep all workspaces loaded", 459 "defaultMessage": "!!!Keep all workspaces loaded",
434 "file": "src/containers/settings/EditSettingsScreen.js", 460 "file": "src/containers/settings/EditSettingsScreen.js",
435 "start": { 461 "start": {
436 "line": 163, 462 "line": 171,
437 "column": 27 463 "column": 27
438 }, 464 },
439 "end": { 465 "end": {
440 "line": 166, 466 "line": 174,
441 "column": 3 467 "column": 3
442 } 468 }
443 } 469 }
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json
index e323d6174..15f5ff75f 100644
--- a/src/i18n/messages/src/lib/Menu.json
+++ b/src/i18n/messages/src/lib/Menu.json
@@ -4,11 +4,11 @@
4 "defaultMessage": "!!!Edit", 4 "defaultMessage": "!!!Edit",
5 "file": "src/lib/Menu.js", 5 "file": "src/lib/Menu.js",
6 "start": { 6 "start": {
7 "line": 17, 7 "line": 18,
8 "column": 8 8 "column": 8
9 }, 9 },
10 "end": { 10 "end": {
11 "line": 20, 11 "line": 21,
12 "column": 3 12 "column": 3
13 } 13 }
14 }, 14 },
@@ -17,11 +17,11 @@
17 "defaultMessage": "!!!Undo", 17 "defaultMessage": "!!!Undo",
18 "file": "src/lib/Menu.js", 18 "file": "src/lib/Menu.js",
19 "start": { 19 "start": {
20 "line": 21, 20 "line": 22,
21 "column": 8 21 "column": 8
22 }, 22 },
23 "end": { 23 "end": {
24 "line": 24, 24 "line": 25,
25 "column": 3 25 "column": 3
26 } 26 }
27 }, 27 },
@@ -30,11 +30,11 @@
30 "defaultMessage": "!!!Redo", 30 "defaultMessage": "!!!Redo",
31 "file": "src/lib/Menu.js", 31 "file": "src/lib/Menu.js",
32 "start": { 32 "start": {
33 "line": 25, 33 "line": 26,
34 "column": 8 34 "column": 8
35 }, 35 },
36 "end": { 36 "end": {
37 "line": 28, 37 "line": 29,
38 "column": 3 38 "column": 3
39 } 39 }
40 }, 40 },
@@ -43,11 +43,11 @@
43 "defaultMessage": "!!!Cut", 43 "defaultMessage": "!!!Cut",
44 "file": "src/lib/Menu.js", 44 "file": "src/lib/Menu.js",
45 "start": { 45 "start": {
46 "line": 29, 46 "line": 30,
47 "column": 7 47 "column": 7
48 }, 48 },
49 "end": { 49 "end": {
50 "line": 32, 50 "line": 33,
51 "column": 3 51 "column": 3
52 } 52 }
53 }, 53 },
@@ -56,11 +56,11 @@
56 "defaultMessage": "!!!Copy", 56 "defaultMessage": "!!!Copy",
57 "file": "src/lib/Menu.js", 57 "file": "src/lib/Menu.js",
58 "start": { 58 "start": {
59 "line": 33, 59 "line": 34,
60 "column": 8 60 "column": 8
61 }, 61 },
62 "end": { 62 "end": {
63 "line": 36, 63 "line": 37,
64 "column": 3 64 "column": 3
65 } 65 }
66 }, 66 },
@@ -69,11 +69,11 @@
69 "defaultMessage": "!!!Paste", 69 "defaultMessage": "!!!Paste",
70 "file": "src/lib/Menu.js", 70 "file": "src/lib/Menu.js",
71 "start": { 71 "start": {
72 "line": 37, 72 "line": 38,
73 "column": 9 73 "column": 9
74 }, 74 },
75 "end": { 75 "end": {
76 "line": 40, 76 "line": 41,
77 "column": 3 77 "column": 3
78 } 78 }
79 }, 79 },
@@ -82,11 +82,11 @@
82 "defaultMessage": "!!!Paste And Match Style", 82 "defaultMessage": "!!!Paste And Match Style",
83 "file": "src/lib/Menu.js", 83 "file": "src/lib/Menu.js",
84 "start": { 84 "start": {
85 "line": 41, 85 "line": 42,
86 "column": 22 86 "column": 22
87 }, 87 },
88 "end": { 88 "end": {
89 "line": 44, 89 "line": 45,
90 "column": 3 90 "column": 3
91 } 91 }
92 }, 92 },
@@ -95,11 +95,11 @@
95 "defaultMessage": "!!!Delete", 95 "defaultMessage": "!!!Delete",
96 "file": "src/lib/Menu.js", 96 "file": "src/lib/Menu.js",
97 "start": { 97 "start": {
98 "line": 45, 98 "line": 46,
99 "column": 10 99 "column": 10
100 }, 100 },
101 "end": { 101 "end": {
102 "line": 48, 102 "line": 49,
103 "column": 3 103 "column": 3
104 } 104 }
105 }, 105 },
@@ -108,11 +108,24 @@
108 "defaultMessage": "!!!Select All", 108 "defaultMessage": "!!!Select All",
109 "file": "src/lib/Menu.js", 109 "file": "src/lib/Menu.js",
110 "start": { 110 "start": {
111 "line": 49, 111 "line": 50,
112 "column": 13 112 "column": 13
113 }, 113 },
114 "end": { 114 "end": {
115 "line": 52, 115 "line": 53,
116 "column": 3
117 }
118 },
119 {
120 "id": "menu.edit.findInPage",
121 "defaultMessage": "!!!Find in Page",
122 "file": "src/lib/Menu.js",
123 "start": {
124 "line": 54,
125 "column": 14
126 },
127 "end": {
128 "line": 57,
116 "column": 3 129 "column": 3
117 } 130 }
118 }, 131 },
@@ -121,11 +134,11 @@
121 "defaultMessage": "!!!Speech", 134 "defaultMessage": "!!!Speech",
122 "file": "src/lib/Menu.js", 135 "file": "src/lib/Menu.js",
123 "start": { 136 "start": {
124 "line": 53, 137 "line": 58,
125 "column": 10 138 "column": 10
126 }, 139 },
127 "end": { 140 "end": {
128 "line": 56, 141 "line": 61,
129 "column": 3 142 "column": 3
130 } 143 }
131 }, 144 },
@@ -134,11 +147,11 @@
134 "defaultMessage": "!!!Start Speaking", 147 "defaultMessage": "!!!Start Speaking",
135 "file": "src/lib/Menu.js", 148 "file": "src/lib/Menu.js",
136 "start": { 149 "start": {
137 "line": 57, 150 "line": 62,
138 "column": 17 151 "column": 17
139 }, 152 },
140 "end": { 153 "end": {
141 "line": 60, 154 "line": 65,
142 "column": 3 155 "column": 3
143 } 156 }
144 }, 157 },
@@ -147,11 +160,11 @@
147 "defaultMessage": "!!!Stop Speaking", 160 "defaultMessage": "!!!Stop Speaking",
148 "file": "src/lib/Menu.js", 161 "file": "src/lib/Menu.js",
149 "start": { 162 "start": {
150 "line": 61, 163 "line": 66,
151 "column": 16 164 "column": 16
152 }, 165 },
153 "end": { 166 "end": {
154 "line": 64, 167 "line": 69,
155 "column": 3 168 "column": 3
156 } 169 }
157 }, 170 },
@@ -160,11 +173,11 @@
160 "defaultMessage": "!!!Start Dictation", 173 "defaultMessage": "!!!Start Dictation",
161 "file": "src/lib/Menu.js", 174 "file": "src/lib/Menu.js",
162 "start": { 175 "start": {
163 "line": 65, 176 "line": 70,
164 "column": 18 177 "column": 18
165 }, 178 },
166 "end": { 179 "end": {
167 "line": 68, 180 "line": 73,
168 "column": 3 181 "column": 3
169 } 182 }
170 }, 183 },
@@ -173,11 +186,11 @@
173 "defaultMessage": "!!!Emoji & Symbols", 186 "defaultMessage": "!!!Emoji & Symbols",
174 "file": "src/lib/Menu.js", 187 "file": "src/lib/Menu.js",
175 "start": { 188 "start": {
176 "line": 69, 189 "line": 74,
177 "column": 16 190 "column": 16
178 }, 191 },
179 "end": { 192 "end": {
180 "line": 72, 193 "line": 77,
181 "column": 3 194 "column": 3
182 } 195 }
183 }, 196 },
@@ -186,11 +199,11 @@
186 "defaultMessage": "!!!Open Quick Switch", 199 "defaultMessage": "!!!Open Quick Switch",
187 "file": "src/lib/Menu.js", 200 "file": "src/lib/Menu.js",
188 "start": { 201 "start": {
189 "line": 73, 202 "line": 78,
190 "column": 19 203 "column": 19
191 }, 204 },
192 "end": { 205 "end": {
193 "line": 76, 206 "line": 81,
194 "column": 3 207 "column": 3
195 } 208 }
196 }, 209 },
@@ -199,11 +212,11 @@
199 "defaultMessage": "!!!Back", 212 "defaultMessage": "!!!Back",
200 "file": "src/lib/Menu.js", 213 "file": "src/lib/Menu.js",
201 "start": { 214 "start": {
202 "line": 77, 215 "line": 82,
203 "column": 8 216 "column": 8
204 }, 217 },
205 "end": { 218 "end": {
206 "line": 80, 219 "line": 85,
207 "column": 3 220 "column": 3
208 } 221 }
209 }, 222 },
@@ -212,11 +225,11 @@
212 "defaultMessage": "!!!Forward", 225 "defaultMessage": "!!!Forward",
213 "file": "src/lib/Menu.js", 226 "file": "src/lib/Menu.js",
214 "start": { 227 "start": {
215 "line": 81, 228 "line": 86,
216 "column": 11 229 "column": 11
217 }, 230 },
218 "end": { 231 "end": {
219 "line": 84, 232 "line": 89,
220 "column": 3 233 "column": 3
221 } 234 }
222 }, 235 },
@@ -225,11 +238,11 @@
225 "defaultMessage": "!!!Actual Size", 238 "defaultMessage": "!!!Actual Size",
226 "file": "src/lib/Menu.js", 239 "file": "src/lib/Menu.js",
227 "start": { 240 "start": {
228 "line": 85, 241 "line": 90,
229 "column": 13 242 "column": 13
230 }, 243 },
231 "end": { 244 "end": {
232 "line": 88, 245 "line": 93,
233 "column": 3 246 "column": 3
234 } 247 }
235 }, 248 },
@@ -238,11 +251,11 @@
238 "defaultMessage": "!!!Zoom In", 251 "defaultMessage": "!!!Zoom In",
239 "file": "src/lib/Menu.js", 252 "file": "src/lib/Menu.js",
240 "start": { 253 "start": {
241 "line": 89, 254 "line": 94,
242 "column": 10 255 "column": 10
243 }, 256 },
244 "end": { 257 "end": {
245 "line": 92, 258 "line": 97,
246 "column": 3 259 "column": 3
247 } 260 }
248 }, 261 },
@@ -251,11 +264,11 @@
251 "defaultMessage": "!!!Zoom Out", 264 "defaultMessage": "!!!Zoom Out",
252 "file": "src/lib/Menu.js", 265 "file": "src/lib/Menu.js",
253 "start": { 266 "start": {
254 "line": 93, 267 "line": 98,
255 "column": 11 268 "column": 11
256 }, 269 },
257 "end": { 270 "end": {
258 "line": 96, 271 "line": 101,
259 "column": 3 272 "column": 3
260 } 273 }
261 }, 274 },
@@ -264,11 +277,11 @@
264 "defaultMessage": "!!!Enter Full Screen", 277 "defaultMessage": "!!!Enter Full Screen",
265 "file": "src/lib/Menu.js", 278 "file": "src/lib/Menu.js",
266 "start": { 279 "start": {
267 "line": 97, 280 "line": 102,
268 "column": 19 281 "column": 19
269 }, 282 },
270 "end": { 283 "end": {
271 "line": 100, 284 "line": 105,
272 "column": 3 285 "column": 3
273 } 286 }
274 }, 287 },
@@ -277,11 +290,11 @@
277 "defaultMessage": "!!!Exit Full Screen", 290 "defaultMessage": "!!!Exit Full Screen",
278 "file": "src/lib/Menu.js", 291 "file": "src/lib/Menu.js",
279 "start": { 292 "start": {
280 "line": 101, 293 "line": 106,
281 "column": 18 294 "column": 18
282 }, 295 },
283 "end": { 296 "end": {
284 "line": 104, 297 "line": 109,
285 "column": 3 298 "column": 3
286 } 299 }
287 }, 300 },
@@ -290,11 +303,11 @@
290 "defaultMessage": "!!!Toggle Full Screen", 303 "defaultMessage": "!!!Toggle Full Screen",
291 "file": "src/lib/Menu.js", 304 "file": "src/lib/Menu.js",
292 "start": { 305 "start": {
293 "line": 105, 306 "line": 110,
294 "column": 20 307 "column": 20
295 }, 308 },
296 "end": { 309 "end": {
297 "line": 108, 310 "line": 113,
298 "column": 3 311 "column": 3
299 } 312 }
300 }, 313 },
@@ -303,11 +316,11 @@
303 "defaultMessage": "!!!Toggle Developer Tools", 316 "defaultMessage": "!!!Toggle Developer Tools",
304 "file": "src/lib/Menu.js", 317 "file": "src/lib/Menu.js",
305 "start": { 318 "start": {
306 "line": 109, 319 "line": 114,
307 "column": 18 320 "column": 18
308 }, 321 },
309 "end": { 322 "end": {
310 "line": 112, 323 "line": 117,
311 "column": 3 324 "column": 3
312 } 325 }
313 }, 326 },
@@ -316,11 +329,11 @@
316 "defaultMessage": "!!!Toggle Todos Developer Tools", 329 "defaultMessage": "!!!Toggle Todos Developer Tools",
317 "file": "src/lib/Menu.js", 330 "file": "src/lib/Menu.js",
318 "start": { 331 "start": {
319 "line": 113, 332 "line": 118,
320 "column": 23 333 "column": 23
321 }, 334 },
322 "end": { 335 "end": {
323 "line": 116, 336 "line": 121,
324 "column": 3 337 "column": 3
325 } 338 }
326 }, 339 },
@@ -329,11 +342,11 @@
329 "defaultMessage": "!!!Toggle Service Developer Tools", 342 "defaultMessage": "!!!Toggle Service Developer Tools",
330 "file": "src/lib/Menu.js", 343 "file": "src/lib/Menu.js",
331 "start": { 344 "start": {
332 "line": 117, 345 "line": 122,
333 "column": 25 346 "column": 25
334 }, 347 },
335 "end": { 348 "end": {
336 "line": 120, 349 "line": 125,
337 "column": 3 350 "column": 3
338 } 351 }
339 }, 352 },
@@ -342,11 +355,11 @@
342 "defaultMessage": "!!!Reload Service", 355 "defaultMessage": "!!!Reload Service",
343 "file": "src/lib/Menu.js", 356 "file": "src/lib/Menu.js",
344 "start": { 357 "start": {
345 "line": 121, 358 "line": 126,
346 "column": 17 359 "column": 17
347 }, 360 },
348 "end": { 361 "end": {
349 "line": 124, 362 "line": 129,
350 "column": 3 363 "column": 3
351 } 364 }
352 }, 365 },
@@ -355,11 +368,11 @@
355 "defaultMessage": "!!!Reload Ferdi", 368 "defaultMessage": "!!!Reload Ferdi",
356 "file": "src/lib/Menu.js", 369 "file": "src/lib/Menu.js",
357 "start": { 370 "start": {
358 "line": 125, 371 "line": 130,
359 "column": 15 372 "column": 15
360 }, 373 },
361 "end": { 374 "end": {
362 "line": 128, 375 "line": 133,
363 "column": 3 376 "column": 3
364 } 377 }
365 }, 378 },
@@ -368,11 +381,11 @@
368 "defaultMessage": "!!!Lock Ferdi", 381 "defaultMessage": "!!!Lock Ferdi",
369 "file": "src/lib/Menu.js", 382 "file": "src/lib/Menu.js",
370 "start": { 383 "start": {
371 "line": 129, 384 "line": 134,
372 "column": 13 385 "column": 13
373 }, 386 },
374 "end": { 387 "end": {
375 "line": 132, 388 "line": 137,
376 "column": 3 389 "column": 3
377 } 390 }
378 }, 391 },
@@ -381,11 +394,11 @@
381 "defaultMessage": "!!!Minimize", 394 "defaultMessage": "!!!Minimize",
382 "file": "src/lib/Menu.js", 395 "file": "src/lib/Menu.js",
383 "start": { 396 "start": {
384 "line": 133, 397 "line": 138,
385 "column": 12 398 "column": 12
386 }, 399 },
387 "end": { 400 "end": {
388 "line": 136, 401 "line": 141,
389 "column": 3 402 "column": 3
390 } 403 }
391 }, 404 },
@@ -394,11 +407,11 @@
394 "defaultMessage": "!!!Close", 407 "defaultMessage": "!!!Close",
395 "file": "src/lib/Menu.js", 408 "file": "src/lib/Menu.js",
396 "start": { 409 "start": {
397 "line": 137, 410 "line": 142,
398 "column": 9 411 "column": 9
399 }, 412 },
400 "end": { 413 "end": {
401 "line": 140, 414 "line": 145,
402 "column": 3 415 "column": 3
403 } 416 }
404 }, 417 },
@@ -407,11 +420,11 @@
407 "defaultMessage": "!!!Learn More", 420 "defaultMessage": "!!!Learn More",
408 "file": "src/lib/Menu.js", 421 "file": "src/lib/Menu.js",
409 "start": { 422 "start": {
410 "line": 141, 423 "line": 146,
411 "column": 13 424 "column": 13
412 }, 425 },
413 "end": { 426 "end": {
414 "line": 144, 427 "line": 149,
415 "column": 3 428 "column": 3
416 } 429 }
417 }, 430 },
@@ -420,11 +433,11 @@
420 "defaultMessage": "!!!Changelog", 433 "defaultMessage": "!!!Changelog",
421 "file": "src/lib/Menu.js", 434 "file": "src/lib/Menu.js",
422 "start": { 435 "start": {
423 "line": 145, 436 "line": 150,
424 "column": 13 437 "column": 13
425 }, 438 },
426 "end": { 439 "end": {
427 "line": 148, 440 "line": 153,
428 "column": 3 441 "column": 3
429 } 442 }
430 }, 443 },
@@ -433,11 +446,11 @@
433 "defaultMessage": "!!!Support", 446 "defaultMessage": "!!!Support",
434 "file": "src/lib/Menu.js", 447 "file": "src/lib/Menu.js",
435 "start": { 448 "start": {
436 "line": 149, 449 "line": 154,
437 "column": 11 450 "column": 11
438 }, 451 },
439 "end": { 452 "end": {
440 "line": 152, 453 "line": 157,
441 "column": 3 454 "column": 3
442 } 455 }
443 }, 456 },
@@ -446,11 +459,11 @@
446 "defaultMessage": "!!!Copy Debug Information", 459 "defaultMessage": "!!!Copy Debug Information",
447 "file": "src/lib/Menu.js", 460 "file": "src/lib/Menu.js",
448 "start": { 461 "start": {
449 "line": 153, 462 "line": 158,
450 "column": 13 463 "column": 13
451 }, 464 },
452 "end": { 465 "end": {
453 "line": 156, 466 "line": 161,
454 "column": 3 467 "column": 3
455 } 468 }
456 }, 469 },
@@ -459,11 +472,11 @@
459 "defaultMessage": "!!!Publish Debug Information", 472 "defaultMessage": "!!!Publish Debug Information",
460 "file": "src/lib/Menu.js", 473 "file": "src/lib/Menu.js",
461 "start": { 474 "start": {
462 "line": 157, 475 "line": 162,
463 "column": 20 476 "column": 20
464 }, 477 },
465 "end": { 478 "end": {
466 "line": 160, 479 "line": 165,
467 "column": 3 480 "column": 3
468 } 481 }
469 }, 482 },
@@ -472,11 +485,11 @@
472 "defaultMessage": "!!!Ferdi Debug Information", 485 "defaultMessage": "!!!Ferdi Debug Information",
473 "file": "src/lib/Menu.js", 486 "file": "src/lib/Menu.js",
474 "start": { 487 "start": {
475 "line": 161, 488 "line": 166,
476 "column": 27 489 "column": 27
477 }, 490 },
478 "end": { 491 "end": {
479 "line": 164, 492 "line": 169,
480 "column": 3 493 "column": 3
481 } 494 }
482 }, 495 },
@@ -485,11 +498,37 @@
485 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", 498 "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.",
486 "file": "src/lib/Menu.js", 499 "file": "src/lib/Menu.js",
487 "start": { 500 "start": {
488 "line": 165, 501 "line": 170,
489 "column": 23 502 "column": 23
490 }, 503 },
491 "end": { 504 "end": {
492 "line": 168, 505 "line": 173,
506 "column": 3
507 }
508 },
509 {
510 "id": "locked.touchId",
511 "defaultMessage": "!!!Unlock with Touch ID",
512 "file": "src/lib/Menu.js",
513 "start": {
514 "line": 174,
515 "column": 11
516 },
517 "end": {
518 "line": 177,
519 "column": 3
520 }
521 },
522 {
523 "id": "locked.touchIdPrompt",
524 "defaultMessage": "!!!unlock via Touch ID",
525 "file": "src/lib/Menu.js",
526 "start": {
527 "line": 178,
528 "column": 17
529 },
530 "end": {
531 "line": 181,
493 "column": 3 532 "column": 3
494 } 533 }
495 }, 534 },
@@ -498,11 +537,11 @@
498 "defaultMessage": "!!!Terms of Service", 537 "defaultMessage": "!!!Terms of Service",
499 "file": "src/lib/Menu.js", 538 "file": "src/lib/Menu.js",
500 "start": { 539 "start": {
501 "line": 169, 540 "line": 182,
502 "column": 7 541 "column": 7
503 }, 542 },
504 "end": { 543 "end": {
505 "line": 172, 544 "line": 185,
506 "column": 3 545 "column": 3
507 } 546 }
508 }, 547 },
@@ -511,11 +550,11 @@
511 "defaultMessage": "!!!Privacy Statement", 550 "defaultMessage": "!!!Privacy Statement",
512 "file": "src/lib/Menu.js", 551 "file": "src/lib/Menu.js",
513 "start": { 552 "start": {
514 "line": 173, 553 "line": 186,
515 "column": 11 554 "column": 11
516 }, 555 },
517 "end": { 556 "end": {
518 "line": 176, 557 "line": 189,
519 "column": 3 558 "column": 3
520 } 559 }
521 }, 560 },
@@ -524,11 +563,11 @@
524 "defaultMessage": "!!!File", 563 "defaultMessage": "!!!File",
525 "file": "src/lib/Menu.js", 564 "file": "src/lib/Menu.js",
526 "start": { 565 "start": {
527 "line": 177, 566 "line": 190,
528 "column": 8 567 "column": 8
529 }, 568 },
530 "end": { 569 "end": {
531 "line": 180, 570 "line": 193,
532 "column": 3 571 "column": 3
533 } 572 }
534 }, 573 },
@@ -537,11 +576,11 @@
537 "defaultMessage": "!!!View", 576 "defaultMessage": "!!!View",
538 "file": "src/lib/Menu.js", 577 "file": "src/lib/Menu.js",
539 "start": { 578 "start": {
540 "line": 181, 579 "line": 194,
541 "column": 8 580 "column": 8
542 }, 581 },
543 "end": { 582 "end": {
544 "line": 184, 583 "line": 197,
545 "column": 3 584 "column": 3
546 } 585 }
547 }, 586 },
@@ -550,11 +589,11 @@
550 "defaultMessage": "!!!Services", 589 "defaultMessage": "!!!Services",
551 "file": "src/lib/Menu.js", 590 "file": "src/lib/Menu.js",
552 "start": { 591 "start": {
553 "line": 185, 592 "line": 198,
554 "column": 12 593 "column": 12
555 }, 594 },
556 "end": { 595 "end": {
557 "line": 188, 596 "line": 201,
558 "column": 3 597 "column": 3
559 } 598 }
560 }, 599 },
@@ -563,11 +602,11 @@
563 "defaultMessage": "!!!Window", 602 "defaultMessage": "!!!Window",
564 "file": "src/lib/Menu.js", 603 "file": "src/lib/Menu.js",
565 "start": { 604 "start": {
566 "line": 189, 605 "line": 202,
567 "column": 10 606 "column": 10
568 }, 607 },
569 "end": { 608 "end": {
570 "line": 192, 609 "line": 205,
571 "column": 3 610 "column": 3
572 } 611 }
573 }, 612 },
@@ -576,11 +615,11 @@
576 "defaultMessage": "!!!Help", 615 "defaultMessage": "!!!Help",
577 "file": "src/lib/Menu.js", 616 "file": "src/lib/Menu.js",
578 "start": { 617 "start": {
579 "line": 193, 618 "line": 206,
580 "column": 8 619 "column": 8
581 }, 620 },
582 "end": { 621 "end": {
583 "line": 196, 622 "line": 209,
584 "column": 3 623 "column": 3
585 } 624 }
586 }, 625 },
@@ -589,11 +628,11 @@
589 "defaultMessage": "!!!About Ferdi", 628 "defaultMessage": "!!!About Ferdi",
590 "file": "src/lib/Menu.js", 629 "file": "src/lib/Menu.js",
591 "start": { 630 "start": {
592 "line": 197, 631 "line": 210,
593 "column": 9 632 "column": 9
594 }, 633 },
595 "end": { 634 "end": {
596 "line": 200, 635 "line": 213,
597 "column": 3 636 "column": 3
598 } 637 }
599 }, 638 },
@@ -602,11 +641,11 @@
602 "defaultMessage": "!!!What's new?", 641 "defaultMessage": "!!!What's new?",
603 "file": "src/lib/Menu.js", 642 "file": "src/lib/Menu.js",
604 "start": { 643 "start": {
605 "line": 201, 644 "line": 214,
606 "column": 16 645 "column": 16
607 }, 646 },
608 "end": { 647 "end": {
609 "line": 204, 648 "line": 217,
610 "column": 3 649 "column": 3
611 } 650 }
612 }, 651 },
@@ -615,11 +654,11 @@
615 "defaultMessage": "!!!Settings", 654 "defaultMessage": "!!!Settings",
616 "file": "src/lib/Menu.js", 655 "file": "src/lib/Menu.js",
617 "start": { 656 "start": {
618 "line": 205, 657 "line": 218,
619 "column": 12 658 "column": 12
620 }, 659 },
621 "end": { 660 "end": {
622 "line": 208, 661 "line": 221,
623 "column": 3 662 "column": 3
624 } 663 }
625 }, 664 },
@@ -628,11 +667,11 @@
628 "defaultMessage": "!!!Check for updates", 667 "defaultMessage": "!!!Check for updates",
629 "file": "src/lib/Menu.js", 668 "file": "src/lib/Menu.js",
630 "start": { 669 "start": {
631 "line": 209, 670 "line": 222,
632 "column": 19 671 "column": 19
633 }, 672 },
634 "end": { 673 "end": {
635 "line": 212, 674 "line": 225,
636 "column": 3 675 "column": 3
637 } 676 }
638 }, 677 },
@@ -641,11 +680,11 @@
641 "defaultMessage": "!!!Hide", 680 "defaultMessage": "!!!Hide",
642 "file": "src/lib/Menu.js", 681 "file": "src/lib/Menu.js",
643 "start": { 682 "start": {
644 "line": 213, 683 "line": 226,
645 "column": 8 684 "column": 8
646 }, 685 },
647 "end": { 686 "end": {
648 "line": 216, 687 "line": 229,
649 "column": 3 688 "column": 3
650 } 689 }
651 }, 690 },
@@ -654,11 +693,11 @@
654 "defaultMessage": "!!!Hide Others", 693 "defaultMessage": "!!!Hide Others",
655 "file": "src/lib/Menu.js", 694 "file": "src/lib/Menu.js",
656 "start": { 695 "start": {
657 "line": 217, 696 "line": 230,
658 "column": 14 697 "column": 14
659 }, 698 },
660 "end": { 699 "end": {
661 "line": 220, 700 "line": 233,
662 "column": 3 701 "column": 3
663 } 702 }
664 }, 703 },
@@ -667,11 +706,11 @@
667 "defaultMessage": "!!!Unhide", 706 "defaultMessage": "!!!Unhide",
668 "file": "src/lib/Menu.js", 707 "file": "src/lib/Menu.js",
669 "start": { 708 "start": {
670 "line": 221, 709 "line": 234,
671 "column": 10 710 "column": 10
672 }, 711 },
673 "end": { 712 "end": {
674 "line": 224, 713 "line": 237,
675 "column": 3 714 "column": 3
676 } 715 }
677 }, 716 },
@@ -680,11 +719,11 @@
680 "defaultMessage": "!!!Auto-hide menu bar", 719 "defaultMessage": "!!!Auto-hide menu bar",
681 "file": "src/lib/Menu.js", 720 "file": "src/lib/Menu.js",
682 "start": { 721 "start": {
683 "line": 225, 722 "line": 238,
684 "column": 19 723 "column": 19
685 }, 724 },
686 "end": { 725 "end": {
687 "line": 228, 726 "line": 241,
688 "column": 3 727 "column": 3
689 } 728 }
690 }, 729 },
@@ -693,11 +732,11 @@
693 "defaultMessage": "!!!Quit", 732 "defaultMessage": "!!!Quit",
694 "file": "src/lib/Menu.js", 733 "file": "src/lib/Menu.js",
695 "start": { 734 "start": {
696 "line": 229, 735 "line": 242,
697 "column": 8 736 "column": 8
698 }, 737 },
699 "end": { 738 "end": {
700 "line": 232, 739 "line": 245,
701 "column": 3 740 "column": 3
702 } 741 }
703 }, 742 },
@@ -706,11 +745,11 @@
706 "defaultMessage": "!!!Add New Service...", 745 "defaultMessage": "!!!Add New Service...",
707 "file": "src/lib/Menu.js", 746 "file": "src/lib/Menu.js",
708 "start": { 747 "start": {
709 "line": 233, 748 "line": 246,
710 "column": 17 749 "column": 17
711 }, 750 },
712 "end": { 751 "end": {
713 "line": 236, 752 "line": 249,
714 "column": 3 753 "column": 3
715 } 754 }
716 }, 755 },
@@ -719,11 +758,11 @@
719 "defaultMessage": "!!!Add New Workspace...", 758 "defaultMessage": "!!!Add New Workspace...",
720 "file": "src/lib/Menu.js", 759 "file": "src/lib/Menu.js",
721 "start": { 760 "start": {
722 "line": 237, 761 "line": 250,
723 "column": 19 762 "column": 19
724 }, 763 },
725 "end": { 764 "end": {
726 "line": 240, 765 "line": 253,
727 "column": 3 766 "column": 3
728 } 767 }
729 }, 768 },
@@ -732,11 +771,11 @@
732 "defaultMessage": "!!!Open workspace drawer", 771 "defaultMessage": "!!!Open workspace drawer",
733 "file": "src/lib/Menu.js", 772 "file": "src/lib/Menu.js",
734 "start": { 773 "start": {
735 "line": 241, 774 "line": 254,
736 "column": 23 775 "column": 23
737 }, 776 },
738 "end": { 777 "end": {
739 "line": 244, 778 "line": 257,
740 "column": 3 779 "column": 3
741 } 780 }
742 }, 781 },
@@ -745,11 +784,11 @@
745 "defaultMessage": "!!!Close workspace drawer", 784 "defaultMessage": "!!!Close workspace drawer",
746 "file": "src/lib/Menu.js", 785 "file": "src/lib/Menu.js",
747 "start": { 786 "start": {
748 "line": 245, 787 "line": 258,
749 "column": 24 788 "column": 24
750 }, 789 },
751 "end": { 790 "end": {
752 "line": 248, 791 "line": 261,
753 "column": 3 792 "column": 3
754 } 793 }
755 }, 794 },
@@ -758,11 +797,11 @@
758 "defaultMessage": "!!!Activate next service...", 797 "defaultMessage": "!!!Activate next service...",
759 "file": "src/lib/Menu.js", 798 "file": "src/lib/Menu.js",
760 "start": { 799 "start": {
761 "line": 249, 800 "line": 262,
762 "column": 23 801 "column": 23
763 }, 802 },
764 "end": { 803 "end": {
765 "line": 252, 804 "line": 265,
766 "column": 3 805 "column": 3
767 } 806 }
768 }, 807 },
@@ -771,11 +810,11 @@
771 "defaultMessage": "!!!Activate previous service...", 810 "defaultMessage": "!!!Activate previous service...",
772 "file": "src/lib/Menu.js", 811 "file": "src/lib/Menu.js",
773 "start": { 812 "start": {
774 "line": 253, 813 "line": 266,
775 "column": 27 814 "column": 27
776 }, 815 },
777 "end": { 816 "end": {
778 "line": 256, 817 "line": 269,
779 "column": 3 818 "column": 3
780 } 819 }
781 }, 820 },
@@ -784,11 +823,11 @@
784 "defaultMessage": "!!!Disable notifications & audio", 823 "defaultMessage": "!!!Disable notifications & audio",
785 "file": "src/lib/Menu.js", 824 "file": "src/lib/Menu.js",
786 "start": { 825 "start": {
787 "line": 257, 826 "line": 270,
788 "column": 11 827 "column": 11
789 }, 828 },
790 "end": { 829 "end": {
791 "line": 260, 830 "line": 273,
792 "column": 3 831 "column": 3
793 } 832 }
794 }, 833 },
@@ -797,11 +836,11 @@
797 "defaultMessage": "!!!Enable notifications & audio", 836 "defaultMessage": "!!!Enable notifications & audio",
798 "file": "src/lib/Menu.js", 837 "file": "src/lib/Menu.js",
799 "start": { 838 "start": {
800 "line": 261, 839 "line": 274,
801 "column": 13 840 "column": 13
802 }, 841 },
803 "end": { 842 "end": {
804 "line": 264, 843 "line": 277,
805 "column": 3 844 "column": 3
806 } 845 }
807 }, 846 },
@@ -810,11 +849,11 @@
810 "defaultMessage": "!!!Workspaces", 849 "defaultMessage": "!!!Workspaces",
811 "file": "src/lib/Menu.js", 850 "file": "src/lib/Menu.js",
812 "start": { 851 "start": {
813 "line": 265, 852 "line": 278,
814 "column": 14 853 "column": 14
815 }, 854 },
816 "end": { 855 "end": {
817 "line": 268, 856 "line": 281,
818 "column": 3 857 "column": 3
819 } 858 }
820 }, 859 },
@@ -823,11 +862,11 @@
823 "defaultMessage": "!!!Default", 862 "defaultMessage": "!!!Default",
824 "file": "src/lib/Menu.js", 863 "file": "src/lib/Menu.js",
825 "start": { 864 "start": {
826 "line": 269, 865 "line": 282,
827 "column": 20 866 "column": 20
828 }, 867 },
829 "end": { 868 "end": {
830 "line": 272, 869 "line": 285,
831 "column": 3 870 "column": 3
832 } 871 }
833 }, 872 },
@@ -836,11 +875,11 @@
836 "defaultMessage": "!!!Todos", 875 "defaultMessage": "!!!Todos",
837 "file": "src/lib/Menu.js", 876 "file": "src/lib/Menu.js",
838 "start": { 877 "start": {
839 "line": 273, 878 "line": 286,
840 "column": 9 879 "column": 9
841 }, 880 },
842 "end": { 881 "end": {
843 "line": 276, 882 "line": 289,
844 "column": 3 883 "column": 3
845 } 884 }
846 }, 885 },
@@ -849,11 +888,11 @@
849 "defaultMessage": "!!!Open Todos drawer", 888 "defaultMessage": "!!!Open Todos drawer",
850 "file": "src/lib/Menu.js", 889 "file": "src/lib/Menu.js",
851 "start": { 890 "start": {
852 "line": 277, 891 "line": 290,
853 "column": 19 892 "column": 19
854 }, 893 },
855 "end": { 894 "end": {
856 "line": 280, 895 "line": 293,
857 "column": 3 896 "column": 3
858 } 897 }
859 }, 898 },
@@ -862,11 +901,11 @@
862 "defaultMessage": "!!!Close Todos drawer", 901 "defaultMessage": "!!!Close Todos drawer",
863 "file": "src/lib/Menu.js", 902 "file": "src/lib/Menu.js",
864 "start": { 903 "start": {
865 "line": 281, 904 "line": 294,
866 "column": 20 905 "column": 20
867 }, 906 },
868 "end": { 907 "end": {
869 "line": 284, 908 "line": 297,
870 "column": 3 909 "column": 3
871 } 910 }
872 }, 911 },
@@ -875,11 +914,11 @@
875 "defaultMessage": "!!!Enable Todos", 914 "defaultMessage": "!!!Enable Todos",
876 "file": "src/lib/Menu.js", 915 "file": "src/lib/Menu.js",
877 "start": { 916 "start": {
878 "line": 285, 917 "line": 298,
879 "column": 15 918 "column": 15
880 }, 919 },
881 "end": { 920 "end": {
882 "line": 288, 921 "line": 301,
883 "column": 3 922 "column": 3
884 } 923 }
885 }, 924 },
@@ -888,11 +927,11 @@
888 "defaultMessage": "!!!Home", 927 "defaultMessage": "!!!Home",
889 "file": "src/lib/Menu.js", 928 "file": "src/lib/Menu.js",
890 "start": { 929 "start": {
891 "line": 289, 930 "line": 302,
892 "column": 17 931 "column": 17
893 }, 932 },
894 "end": { 933 "end": {
895 "line": 292, 934 "line": 305,
896 "column": 3 935 "column": 3
897 } 936 }
898 } 937 }
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index 91e7c981a..4547e84f9 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -10,8 +10,9 @@ import { CUSTOM_WEBSITE_ID } from '../features/webControls/constants';
10import { workspaceActions } from '../features/workspaces/actions'; 10import { workspaceActions } from '../features/workspaces/actions';
11import { workspaceStore } from '../features/workspaces/index'; 11import { workspaceStore } from '../features/workspaces/index';
12 12
13 13const {
14const { app, Menu, dialog } = remote; 14 app, Menu, dialog, systemPreferences,
15} = remote;
15 16
16const menuItems = defineMessages({ 17const menuItems = defineMessages({
17 edit: { 18 edit: {
@@ -50,6 +51,10 @@ const menuItems = defineMessages({
50 id: 'menu.edit.selectAll', 51 id: 'menu.edit.selectAll',
51 defaultMessage: '!!!Select All', 52 defaultMessage: '!!!Select All',
52 }, 53 },
54 findInPage: {
55 id: 'menu.edit.findInPage',
56 defaultMessage: '!!!Find in Page',
57 },
53 speech: { 58 speech: {
54 id: 'menu.edit.speech', 59 id: 'menu.edit.speech',
55 defaultMessage: '!!!Speech', 60 defaultMessage: '!!!Speech',
@@ -166,6 +171,14 @@ const menuItems = defineMessages({
166 id: 'menu.help.debugInfoCopiedBody', 171 id: 'menu.help.debugInfoCopiedBody',
167 defaultMessage: '!!!Your Debug Information has been copied to your clipboard.', 172 defaultMessage: '!!!Your Debug Information has been copied to your clipboard.',
168 }, 173 },
174 touchId: {
175 id: 'locked.touchId',
176 defaultMessage: '!!!Unlock with Touch ID',
177 },
178 touchIdPrompt: {
179 id: 'locked.touchIdPrompt',
180 defaultMessage: '!!!unlock via Touch ID',
181 },
169 tos: { 182 tos: {
170 id: 'menu.help.tos', 183 id: 'menu.help.tos',
171 defaultMessage: '!!!Terms of Service', 184 defaultMessage: '!!!Terms of Service',
@@ -367,6 +380,27 @@ const _templateFactory = (intl, locked) => [
367 type: 'separator', 380 type: 'separator',
368 }, 381 },
369 { 382 {
383 label: intl.formatMessage(menuItems.findInPage),
384 accelerator: 'CmdOrCtrl+F',
385 click() {
386 // Check if there is a service active
387 if (!window.ferdi.stores.services.active) return;
388
389 // Focus webview so find in page popup gets focused
390 window.ferdi.stores.services.active.webview.focus();
391
392 const currentService = window.ferdi.stores.services.active.id;
393 window.ferdi.actions.service.sendIPCMessage({
394 serviceId: currentService,
395 channel: 'find-in-page',
396 args: {},
397 });
398 },
399 },
400 {
401 type: 'separator',
402 },
403 {
370 label: intl.formatMessage(menuItems.back), 404 label: intl.formatMessage(menuItems.back),
371 accelerator: 'CmdOrCtrl+Left', 405 accelerator: 'CmdOrCtrl+Left',
372 click() { 406 click() {
@@ -575,6 +609,27 @@ const _titleBarTemplateFactory = (intl, locked) => [
575 type: 'separator', 609 type: 'separator',
576 }, 610 },
577 { 611 {
612 label: intl.formatMessage(menuItems.findInPage),
613 accelerator: 'CmdOrCtrl+F',
614 click() {
615 // Check if there is a service active
616 if (!window.ferdi.stores.services.active) return;
617
618 // Focus webview so find in page popup gets focused
619 window.ferdi.stores.services.active.webview.focus();
620
621 const currentService = window.ferdi.stores.services.active.id;
622 window.ferdi.actions.service.sendIPCMessage({
623 serviceId: currentService,
624 channel: 'find-in-page',
625 args: {},
626 });
627 },
628 },
629 {
630 type: 'separator',
631 },
632 {
578 label: intl.formatMessage(menuItems.back), 633 label: intl.formatMessage(menuItems.back),
579 accelerator: 'CmdOrCtrl+Left', 634 accelerator: 'CmdOrCtrl+Left',
580 click() { 635 click() {
@@ -755,7 +810,7 @@ export default class FranzMenu {
755 : _titleBarTemplateFactory(intl, this.stores.settings.app.locked); 810 : _titleBarTemplateFactory(intl, this.stores.settings.app.locked);
756 const { actions } = this; 811 const { actions } = this;
757 812
758 if (this.stores.settings.app.locked) { 813 if (!this.stores.settings.app.locked) {
759 tpl[1].submenu.push({ 814 tpl[1].submenu.push({
760 type: 'separator', 815 type: 'separator',
761 }, { 816 }, {
@@ -819,7 +874,7 @@ export default class FranzMenu {
819 locked: true, 874 locked: true,
820 }, 875 },
821 }); 876 });
822 } 877 },
823 }); 878 });
824 879
825 if (serviceTpl.length > 0) { 880 if (serviceTpl.length > 0) {
@@ -833,6 +888,27 @@ export default class FranzMenu {
833 if (todosStore.isFeatureEnabled) { 888 if (todosStore.isFeatureEnabled) {
834 tpl[5].submenu = this.todosMenu(); 889 tpl[5].submenu = this.todosMenu();
835 } 890 }
891 } else {
892 const touchIdEnabled = this.stores.settings.app.useTouchIdToUnlock && systemPreferences.canPromptTouchID();
893
894 tpl[0].submenu.unshift({
895 label: intl.formatMessage(menuItems.touchId),
896 accelerator: 'CmdOrCtrl+Shift+L',
897 visible: touchIdEnabled,
898 click() {
899 systemPreferences.promptTouchID(intl.formatMessage(menuItems.touchIdPrompt)).then(() => {
900 actions.settings.update({
901 type: 'app',
902 data: {
903 locked: false,
904 },
905 });
906 });
907 },
908 }, {
909 type: 'separator',
910 visible: touchIdEnabled,
911 });
836 } 912 }
837 913
838 tpl.unshift({ 914 tpl.unshift({
@@ -964,19 +1040,19 @@ export default class FranzMenu {
964 }, about); 1040 }, about);
965 } 1041 }
966 1042
967 if (serviceTpl.length > 0) { 1043 if (!this.stores.settings.app.locked) {
968 tpl[3].submenu = serviceTpl; 1044 if (serviceTpl.length > 0) {
969 } 1045 tpl[3].submenu = serviceTpl;
1046 }
970 1047
971 if (workspaceStore.isFeatureEnabled) { 1048 if (workspaceStore.isFeatureEnabled) {
972 tpl[4].submenu = this.workspacesMenu(); 1049 tpl[4].submenu = this.workspacesMenu();
973 } 1050 }
974 1051
975 if (todosStore.isFeatureEnabled) { 1052 if (todosStore.isFeatureEnabled) {
976 tpl[5].submenu = this.todosMenu(); 1053 tpl[5].submenu = this.todosMenu();
977 } 1054 }
978 1055
979 if (!this.stores.settings.app.locked) {
980 tpl[tpl.length - 1].submenu.push({ 1056 tpl[tpl.length - 1].submenu.push({
981 type: 'separator', 1057 type: 'separator',
982 }, ...this.debugMenu()); 1058 }, ...this.debugMenu());
diff --git a/src/scripts/add-crowdin-contributors.js b/src/scripts/add-crowdin-contributors.js
new file mode 100644
index 000000000..7ad3df0ed
--- /dev/null
+++ b/src/scripts/add-crowdin-contributors.js
@@ -0,0 +1,81 @@
1/**
2 * Add CrowdIn Contributors to AllContributors list
3 *
4 * This script will add CrowdIn Contributors to the list of all contributors.
5 * As the CrowdIn API doesn't give good access to the data needed, this script
6 * requires you to manually execute a script on the members page of CrowdIn
7 * and paste its output into this script.
8 *
9 * Usage:
10 * 1. Open https://crowdin.com/project/getferdi/settings#members
11 * 2. Open the console and execute the script below:
12
13const members = [];
14// All elements containing members
15const membersEl = [...document.querySelectorAll('.ps-members-name')];
16// Remove the first 4 contributors as they are already in the list
17for (let i = 0; i < 4; i += 1) {
18 membersEl.shift();
19}
20membersEl.forEach((el) => {
21 const text = el.innerText;
22 let picture = el.querySelector('img').getAttribute('src');
23 picture = picture.replace(/\?.+/, '');
24
25 // Check if the text includes a seperate username
26 if (text.includes('(')) {
27 const username = /(?<=\()\w*(?=\))/.exec(text)[0];
28 const name = /^.*(?= \()/.exec(text)[0];
29
30 if (username) {
31 members.push({
32 name: name || username,
33 login: username,
34 avatar_url: picture,
35 });
36 return;
37 }
38 }
39 members.push({
40 name: text,
41 login: text,
42 avatar_url: picture,
43 });
44});
45
46// Output data to console
47console.clear();
48console.log(JSON.stringify(members));
49
50 * 3. Paste the output of the script (JSON Array) below to set 'list' to that value
51 * 4. Execute this script using 'node src/scripts/add-crowdin-contributors.js'
52 * 5. Regenerate the README table using the CLI ('all-contributors generate')
53 * Please check if the generated data is ok and no data is lost.
54*/
55const list = [];
56
57const fs = require('fs-extra');
58const path = require('path');
59const allContributors = require('all-contributors-cli');
60
61const infoPath = path.join(__dirname, '../../.all-contributorsrc');
62
63(async () => {
64 const info = await fs.readJSON(infoPath);
65
66 for (const user of list) {
67 // eslint-disable-next-line no-await-in-loop
68 info.contributors = await allContributors.addContributorWithDetails({
69 ...user,
70 contributions: ['translation'],
71 profile: `https://crowdin.com/profile/${user.login}`,
72 options: {
73 contributors: info.contributors,
74 },
75 });
76 }
77
78 fs.writeJSON(infoPath, info, {
79 spaces: 2,
80 });
81})();
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js
index 36e6efd4f..593bf341e 100644
--- a/src/stores/AppStore.js
+++ b/src/stores/AppStore.js
@@ -202,7 +202,7 @@ export default class AppStore extends Store {
202 powerMonitor.on('resume', () => { 202 powerMonitor.on('resume', () => {
203 debug('System resumed, last suspended on', this.timeSuspensionStart.toString()); 203 debug('System resumed, last suspended on', this.timeSuspensionStart.toString());
204 204
205 if (this.timeSuspensionStart.add(10, 'm').isBefore(moment())) { 205 if (this.timeSuspensionStart.add(10, 'm').isBefore(moment()) && this.stores.settings.app.get('reloadAfterResume')) {
206 debug('Reloading services, user info and features'); 206 debug('Reloading services, user info and features');
207 207
208 setTimeout(() => { 208 setTimeout(() => {
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index ae6ba11c5..985887d2d 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -766,7 +766,7 @@ export default class ServicesStore extends Store {
766 const isMuted = isAppMuted || service.isMuted; 766 const isMuted = isAppMuted || service.isMuted;
767 767
768 if (isAttached) { 768 if (isAttached) {
769 service.webview.audioMuted = isMuted; 769 service.webview.setAudioMuted(isMuted);
770 } 770 }
771 }); 771 });
772 } 772 }
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js
index 26e83b725..71d4e1702 100644
--- a/src/stores/SettingsStore.js
+++ b/src/stores/SettingsStore.js
@@ -1,5 +1,7 @@
1import { ipcRenderer, remote } from 'electron'; 1import { ipcRenderer, remote } from 'electron';
2import { action, computed, observable, reaction } from 'mobx'; 2import {
3 action, computed, observable, reaction,
4} from 'mobx';
3import localStorage from 'mobx-localstorage'; 5import localStorage from 'mobx-localstorage';
4import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES, LOCAL_SERVER } from '../config'; 6import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES, LOCAL_SERVER } from '../config';
5import { API } from '../environment'; 7import { API } from '../environment';
@@ -12,6 +14,7 @@ const debug = require('debug')('Ferdi:SettingsStore');
12 14
13export default class SettingsStore extends Store { 15export default class SettingsStore extends Store {
14 @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings'); 16 @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings');
17
15 startup = true; 18 startup = true;
16 19
17 fileSystemSettingsTypes = FILE_SYSTEM_SETTINGS_TYPES; 20 fileSystemSettingsTypes = FILE_SYSTEM_SETTINGS_TYPES;
@@ -103,7 +106,7 @@ export default class SettingsStore extends Store {
103 // So we lock manually 106 // So we lock manually
104 window.ferdi.stores.router.push('/auth/locked'); 107 window.ferdi.stores.router.push('/auth/locked');
105 } 108 }
106 }) 109 });
107 } 110 }
108 debug('Get appSettings resolves', resp.type, resp.data); 111 debug('Get appSettings resolves', resp.type, resp.data);
109 Object.assign(this._fileSystemSettingsCache[resp.type], resp.data); 112 Object.assign(this._fileSystemSettingsCache[resp.type], resp.data);
diff --git a/src/styles/auth.scss b/src/styles/auth.scss
index 44c752677..b40ed971d 100644
--- a/src/styles/auth.scss
+++ b/src/styles/auth.scss
@@ -24,6 +24,15 @@
24 24
25 a { color: $dark-theme-gray-lightest; } 25 a { color: $dark-theme-gray-lightest; }
26 } 26 }
27
28 .locked__or_line {
29 border-top: 2px solid $dark-theme-text-color;
30 color: $dark-theme-text-color;
31
32 &:after {
33 background: $dark-theme-gray-darker;
34 }
35 }
27} 36}
28 37
29.auth { 38.auth {
@@ -76,6 +85,28 @@
76 &.auth__button--skip { margin: 10px auto 0; } 85 &.auth__button--skip { margin: 10px auto 0; }
77 } 86 }
78 87
88 .touchid__button {
89 margin-bottom: 25px;
90 }
91
92 .locked__or_line {
93 border: none;
94 border-top: 2px solid $theme-gray;
95 color: $theme-gray;
96 overflow: visible;
97 text-align: center;
98 height: 5px;
99 margin-bottom: 20px;
100
101 &:after {
102 background: #FFF;
103 content: 'or';
104 padding: 0 10px;
105 position: relative;
106 top: -9px;
107 }
108 }
109
79 .auth__links { 110 .auth__links {
80 background: $theme-gray-lighter; 111 background: $theme-gray-lighter;
81 border-bottom-left-radius: $theme-border-radius; 112 border-bottom-left-radius: $theme-border-radius;
diff --git a/src/webview/contextMenu.js b/src/webview/contextMenu.js
index acd62d675..eeb825ece 100644
--- a/src/webview/contextMenu.js
+++ b/src/webview/contextMenu.js
@@ -1,323 +1,50 @@
1// This is heavily based on https://github.com/sindresorhus/electron-context-menu 1import { remote } from 'electron';
2// ⤠@sindresorhus 2import { ContextMenuBuilder, ContextMenuListener } from 'electron-spellchecker';
3 3
4import {
5 clipboard, remote, ipcRenderer, shell,
6} from 'electron';
7
8import { isDevMode, isMac } from '../environment';
9import { SPELLCHECKER_LOCALES } from '../i18n/languages';
10
11const debug = require('debug')('Ferdi:contextMenu');
12
13const { Menu } = remote;
14
15// const win = remote.getCurrentWindow();
16const webContents = remote.getCurrentWebContents(); 4const webContents = remote.getCurrentWebContents();
17 5
18function delUnusedElements(menuTpl) { 6export default async function setupContextMenu(handler) {
19 let notDeletedPrevEl; 7 const addCustomMenuItems = (menu, menuInfo) => {
20 return menuTpl.filter(el => el.visible !== false).filter((el, i, array) => { 8 // Add "Paste as plain text" item when right-clicking editable content
21 const toDelete = el.type === 'separator' && (!notDeletedPrevEl || i === array.length - 1 || array[i + 1].type === 'separator'); 9 if (
22 notDeletedPrevEl = toDelete ? notDeletedPrevEl : el; 10 menuInfo.editFlags.canPaste
23 return !toDelete; 11 && !menuInfo.linkText
24 }); 12 && !menuInfo.hasImageContents
25} 13 ) {
26 14 menu.insert(
27const buildMenuTpl = (props, suggestions, isSpellcheckEnabled, defaultSpellcheckerLanguage, spellcheckerLanguage) => { 15 3,
28 const { editFlags } = props; 16 new remote.MenuItem({
29 const textSelection = props.selectionText.trim(); 17 label: 'Paste as plain text',
30 const hasText = textSelection.length > 0; 18 accelerator: 'CommandOrControl+Shift+V',
31 const can = type => editFlags[`can${type}`] && hasText; 19 click: () => webContents.pasteAndMatchStyle(),
32 20 }),
33 const canGoBack = webContents.canGoBack(); 21 );
34 const canGoForward = webContents.canGoForward(); 22 }
35 23
36 // @adlk: we can't use roles here due to a bug with electron where electron.remote.webContents.getFocusedWebContents() returns the first webview in DOM instead of the focused one 24 // Add "Open Link in Ferdi" item for links
37 // Github issue creation is pending 25 if (menuInfo.linkURL) {
38 let menuTpl = [ 26 menu.insert(
39 { 27 2,
40 type: 'separator', 28 new remote.MenuItem({
41 }, { 29 label: 'Open Link in Ferdi',
42 id: 'createTodo', 30 click: () => {
43 label: `Create todo: "${textSelection.length > 15 ? `${textSelection.slice(0, 15)}...` : textSelection}"`, 31 window.location.href = menuInfo.linkURL;
44 visible: hasText,
45 click() {
46 debug('Create todo from selected text', textSelection);
47 ipcRenderer.sendToHost('feature:todos', {
48 action: 'todos:create',
49 data: {
50 title: textSelection,
51 url: window.location.href,
52 }, 32 },
53 }); 33 }),
54 }, 34 );
55 },
56 {
57 type: 'separator',
58 }, {
59 id: 'lookup',
60 label: `Look Up "${textSelection.length > 15 ? `${textSelection.slice(0, 15)}...` : textSelection}"`,
61 visible: isMac && props.mediaType === 'none' && hasText,
62 click() {
63 debug('Show definition for selection', textSelection);
64 webContents.showDefinitionForSelection();
65 },
66 }, {
67 type: 'separator',
68 }, {
69 id: 'cut',
70 label: 'Cut',
71 click() {
72 if (can('Cut')) {
73 webContents.cut();
74 }
75 },
76 enabled: can('Cut'),
77 visible: hasText && props.isEditable,
78 }, {
79 id: 'copy',
80 label: 'Copy',
81 click() {
82 if (can('Copy')) {
83 webContents.copy();
84 }
85 },
86 enabled: can('Copy'),
87 visible: props.isEditable || hasText,
88 }, {
89 id: 'paste',
90 label: 'Paste',
91 click() {
92 if (editFlags.canPaste) {
93 webContents.paste();
94 }
95 },
96 enabled: editFlags.canPaste,
97 visible: props.isEditable,
98 }, {
99 type: 'separator',
100 visible: props.isEditable && hasText,
101 }, {
102 id: 'searchTextSelection',
103 label: `Search Google for "${textSelection.length > 15 ? `${textSelection.slice(0, 15)}...` : textSelection}"`,
104 visible: hasText,
105 click() {
106 const url = `https://www.google.com/search?q=${textSelection}`;
107 debug('Search on Google', url);
108 shell.openExternal(url);
109 },
110 }, {
111 type: 'separator',
112 },
113 ];
114
115 if (props.linkURL && props.mediaType === 'none') {
116 menuTpl = [{
117 type: 'separator',
118 }, {
119 id: 'openLink',
120 label: 'Open Link in Browser',
121 click() {
122 debug('Open link in Browser', props.linkURL);
123 shell.openExternal(props.linkURL);
124 },
125 }, {
126 id: 'copyLink',
127 label: 'Copy Link',
128 click() {
129 clipboard.write({
130 bookmark: props.linkText,
131 text: props.linkURL,
132 });
133 },
134 }, {
135 type: 'separator',
136 }];
137 }
138
139 if (props.mediaType === 'image') {
140 menuTpl.push({
141 type: 'separator',
142 }, {
143 id: 'openImage',
144 label: 'Open Image in Browser',
145 click() {
146 debug('Open image in Browser', props.srcURL);
147 shell.openExternal(props.srcURL);
148 },
149 }, {
150 id: 'copyImageAddress',
151 label: 'Copy Image Address',
152 click() {
153 clipboard.write({
154 bookmark: props.srcURL,
155 text: props.srcURL,
156 });
157 },
158 }, {
159 type: 'separator',
160 });
161 }
162
163 if (props.mediaType === 'image') {
164 menuTpl.push({
165 id: 'saveImageAs',
166 label: 'Save Image As…',
167 async click() {
168 if (props.srcURL.startsWith('blob:')) {
169 const url = new window.URL(props.srcURL.substr(5));
170 const fileName = url.pathname.substr(1);
171 const resp = await window.fetch(props.srcURL);
172 const blob = await resp.blob();
173 const reader = new window.FileReader();
174 reader.readAsDataURL(blob);
175 reader.onloadend = () => {
176 const base64data = reader.result;
177
178 ipcRenderer.send('download-file', {
179 content: base64data,
180 fileOptions: {
181 name: fileName,
182 mime: blob.type,
183 },
184 });
185 };
186 debug('binary string', blob);
187 } else {
188 ipcRenderer.send('download-file', { url: props.srcURL });
189 }
190 },
191 }, {
192 type: 'separator',
193 });
194 }
195
196 if (suggestions.length > 0) {
197 suggestions.reverse().map(suggestion => menuTpl.unshift({
198 id: `suggestion-${suggestion}`,
199 label: suggestion,
200 click() {
201 webContents.replaceMisspelling(suggestion);
202 },
203 }));
204 }
205
206 if (canGoBack || canGoForward) {
207 menuTpl.push({
208 type: 'separator',
209 }, {
210 id: 'goBack',
211 label: 'Go Back',
212 enabled: canGoBack,
213 click() {
214 webContents.goBack();
215 },
216 }, {
217 id: 'goForward',
218 label: 'Go Forward',
219 enabled: canGoForward,
220 click() {
221 webContents.goForward();
222 },
223 }, {
224 type: 'separator',
225 });
226 }
227
228 const spellcheckingLanguages = [];
229 Object.keys(SPELLCHECKER_LOCALES).sort(Intl.Collator().compare).forEach((key) => {
230 spellcheckingLanguages.push({
231 id: `lang-${key}`,
232 label: SPELLCHECKER_LOCALES[key],
233 type: 'radio',
234 checked: spellcheckerLanguage === key,
235 click() {
236 debug('Setting service spellchecker to', key);
237 ipcRenderer.sendToHost('set-service-spellchecker-language', key);
238 },
239 });
240 });
241
242 menuTpl.push({
243 type: 'separator',
244 }, {
245 id: 'spellchecker',
246 label: 'Spell Checking',
247 visible: isSpellcheckEnabled,
248 submenu: [
249 {
250 id: 'spellchecker',
251 label: 'Available Languages',
252 enabled: false,
253 }, {
254 type: 'separator',
255 },
256 {
257 id: 'resetToDefault',
258 label: `Reset to system default (${defaultSpellcheckerLanguage === 'automatic' ? 'Automatic' : SPELLCHECKER_LOCALES[defaultSpellcheckerLanguage]})`,
259 type: 'radio',
260 visible: defaultSpellcheckerLanguage !== spellcheckerLanguage || (defaultSpellcheckerLanguage !== 'automatic' && spellcheckerLanguage === 'automatic'),
261 click() {
262 debug('Resetting service spellchecker to system default');
263 ipcRenderer.sendToHost('set-service-spellchecker-language', 'reset');
264 },
265 },
266 {
267 id: 'automaticDetection',
268 label: 'Automatic language detection',
269 type: 'radio',
270 checked: spellcheckerLanguage === 'automatic',
271 click() {
272 debug('Detect language automatically');
273 ipcRenderer.sendToHost('set-service-spellchecker-language', 'automatic');
274 },
275 },
276 {
277 type: 'separator',
278 visible: defaultSpellcheckerLanguage !== spellcheckerLanguage,
279 },
280 ...spellcheckingLanguages],
281 });
282
283
284 if (isDevMode) {
285 menuTpl.push({
286 type: 'separator',
287 }, {
288 id: 'inspect',
289 label: 'Inspect Element',
290 click() {
291 webContents.inspectElement(props.x, props.y);
292 },
293 });
294 }
295
296 return delUnusedElements(menuTpl);
297};
298
299export default function contextMenu(spellcheckProvider, isSpellcheckEnabled, getDefaultSpellcheckerLanguage, getSpellcheckerLanguage) {
300 webContents.on('context-menu', async (e, props) => {
301 e.preventDefault();
302
303 let suggestions = [];
304 if (spellcheckProvider && props.misspelledWord) {
305 debug('Mispelled word', props.misspelledWord);
306 suggestions = await spellcheckProvider.getSuggestion(props.misspelledWord);
307
308 debug('Suggestions', suggestions);
309 } 35 }
310 36
311 const menu = Menu.buildFromTemplate( 37 return menu;
312 buildMenuTpl( 38 };
313 props, 39
314 suggestions.slice(0, 5), 40 const contextMenuBuilder = new ContextMenuBuilder(
315 isSpellcheckEnabled(), 41 handler,
316 getDefaultSpellcheckerLanguage(), 42 null,
317 getSpellcheckerLanguage(), 43 true,
318 ), 44 addCustomMenuItems,
319 ); 45 );
320 46 // eslint-disable-next-line no-new
321 menu.popup(); 47 new ContextMenuListener((info) => {
48 contextMenuBuilder.showPopupMenu(info);
322 }); 49 });
323} 50}
diff --git a/src/webview/lib/RecipeWebview.js b/src/webview/lib/RecipeWebview.js
index 74d05fc2d..4fac21c55 100644
--- a/src/webview/lib/RecipeWebview.js
+++ b/src/webview/lib/RecipeWebview.js
@@ -19,6 +19,8 @@ class RecipeWebview {
19 19
20 loopFunc = () => null; 20 loopFunc = () => null;
21 21
22 darkModeHandler = false;
23
22 /** 24 /**
23 * Initialize the loop 25 * Initialize the loop
24 * 26 *
@@ -67,17 +69,28 @@ class RecipeWebview {
67 * be an absolute path to the file 69 * be an absolute path to the file
68 */ 70 */
69 injectCSS(...files) { 71 injectCSS(...files) {
70 files.forEach((file) => { 72 files.forEach(async (file) => {
71 const data = fs.readFileSync(file); 73 if (await fs.exists(file)) {
72 const styles = document.createElement('style'); 74 const data = await fs.readFile(file);
73 styles.innerHTML = data.toString(); 75 const styles = document.createElement('style');
76 styles.innerHTML = data.toString();
74 77
75 document.querySelector('head').appendChild(styles); 78 document.querySelector('head').appendChild(styles);
76 79
77 debug('Append styles', styles); 80 debug('Append styles', styles);
81 }
78 }); 82 });
79 } 83 }
80 84
85 /**
86 * Set a custom handler for turning on and off dark mode
87 *
88 * @param {function} handler
89 */
90 handleDarkMode(handler) {
91 this.darkModeHandler = handler;
92 }
93
81 onNotify(fn) { 94 onNotify(fn) {
82 if (typeof fn === 'function') { 95 if (typeof fn === 'function') {
83 window.Notification.prototype.onNotify = fn; 96 window.Notification.prototype.onNotify = fn;
diff --git a/src/webview/recipe.js b/src/webview/recipe.js
index 1a22542d8..bad5a93b2 100644
--- a/src/webview/recipe.js
+++ b/src/webview/recipe.js
@@ -1,10 +1,11 @@
1/* eslint-disable import/first */ 1/* eslint-disable import/first */
2import { ipcRenderer } from 'electron'; 2import { ipcRenderer, remote } from 'electron';
3import path from 'path'; 3import path from 'path';
4import { autorun, computed, observable } from 'mobx'; 4import { autorun, computed, observable } from 'mobx';
5import fs from 'fs-extra'; 5import fs from 'fs-extra';
6import { loadModule } from 'cld3-asm'; 6import { loadModule } from 'cld3-asm';
7import { debounce } from 'lodash'; 7import { debounce } from 'lodash';
8import { FindInPage } from 'electron-find';
8 9
9// For some services darkreader tries to use the chrome extension message API 10// For some services darkreader tries to use the chrome extension message API
10// This will cause the service to fail loading 11// This will cause the service to fail loading
@@ -23,7 +24,6 @@ import RecipeWebview from './lib/RecipeWebview';
23 24
24import spellchecker, { switchDict, disable as disableSpellchecker, getSpellcheckerLocaleByFuzzyIdentifier } from './spellchecker'; 25import spellchecker, { switchDict, disable as disableSpellchecker, getSpellcheckerLocaleByFuzzyIdentifier } from './spellchecker';
25import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode'; 26import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode';
26import contextMenu from './contextMenu';
27import './notifications'; 27import './notifications';
28 28
29import { DEFAULT_APP_SETTINGS } from '../config'; 29import { DEFAULT_APP_SETTINGS } from '../config';
@@ -48,10 +48,15 @@ class RecipeController {
48 'settings-update': 'updateAppSettings', 48 'settings-update': 'updateAppSettings',
49 'service-settings-update': 'updateServiceSettings', 49 'service-settings-update': 'updateServiceSettings',
50 'get-service-id': 'serviceIdEcho', 50 'get-service-id': 'serviceIdEcho',
51 'find-in-page': 'openFindInPage',
51 }; 52 };
52 53
53 universalDarkModeInjected = false; 54 universalDarkModeInjected = false;
54 55
56 recipe = null;
57
58 hasUpdatedBeforeRecipeLoaded = false;
59
55 constructor() { 60 constructor() {
56 this.initialize(); 61 this.initialize();
57 } 62 }
@@ -62,6 +67,8 @@ class RecipeController {
62 67
63 cldIdentifier = null; 68 cldIdentifier = null;
64 69
70 findInPage = null;
71
65 async initialize() { 72 async initialize() {
66 Object.keys(this.ipcEvents).forEach((channel) => { 73 Object.keys(this.ipcEvents).forEach((channel) => {
67 ipcRenderer.on(channel, (...args) => { 74 ipcRenderer.on(channel, (...args) => {
@@ -72,16 +79,15 @@ class RecipeController {
72 79
73 debug('Send "hello" to host'); 80 debug('Send "hello" to host');
74 setTimeout(() => ipcRenderer.sendToHost('hello'), 100); 81 setTimeout(() => ipcRenderer.sendToHost('hello'), 100);
75 82 await spellchecker();
76 this.spellcheckingProvider = await spellchecker();
77 contextMenu(
78 this.spellcheckingProvider,
79 () => this.settings.app.enableSpellchecking,
80 () => this.settings.app.spellcheckerLanguage,
81 () => this.spellcheckerLanguage,
82 );
83
84 autorun(() => this.update()); 83 autorun(() => this.update());
84
85 document.addEventListener('DOMContentLoaded', () => {
86 this.findInPage = new FindInPage(remote.getCurrentWebContents(), {
87 inputFocusColor: '#CE9FFC',
88 textColor: '#212121',
89 });
90 });
85 } 91 }
86 92
87 loadRecipeModule(event, config, recipe) { 93 loadRecipeModule(event, config, recipe) {
@@ -91,11 +97,15 @@ class RecipeController {
91 // Delete module from cache 97 // Delete module from cache
92 delete require.cache[require.resolve(modulePath)]; 98 delete require.cache[require.resolve(modulePath)];
93 try { 99 try {
100 this.recipe = new RecipeWebview();
94 // eslint-disable-next-line 101 // eslint-disable-next-line
95 require(modulePath)(new RecipeWebview(), {...config, recipe,}); 102 require(modulePath)(this.recipe, {...config, recipe,});
96 debug('Initialize Recipe', config, recipe); 103 debug('Initialize Recipe', config, recipe);
97 104
98 this.settings.service = Object.assign(config, { recipe }); 105 this.settings.service = Object.assign(config, { recipe });
106
107 // Make sure to update the WebView, otherwise the custom darkmode handler may not be used
108 this.update();
99 } catch (err) { 109 } catch (err) {
100 console.error('Recipe initialization failed', err); 110 console.error('Recipe initialization failed', err);
101 } 111 }
@@ -134,6 +144,10 @@ class RecipeController {
134 } 144 }
135 } 145 }
136 146
147 openFindInPage() {
148 this.findInPage.openFindWindow();
149 }
150
137 update() { 151 update() {
138 debug('enableSpellchecking', this.settings.app.enableSpellchecking); 152 debug('enableSpellchecking', this.settings.app.enableSpellchecking);
139 debug('isDarkModeEnabled', this.settings.service.isDarkModeEnabled); 153 debug('isDarkModeEnabled', this.settings.service.isDarkModeEnabled);
@@ -160,12 +174,25 @@ class RecipeController {
160 } 174 }
161 } 175 }
162 176
177 if (!this.recipe) {
178 this.hasUpdatedBeforeRecipeLoaded = true;
179 }
180
163 console.log( 181 console.log(
164 'Darkmode enabled?', 182 'Darkmode enabled?',
165 this.settings.service.isDarkModeEnabled, 183 this.settings.service.isDarkModeEnabled,
166 'Dark theme active?', 184 'Dark theme active?',
167 this.settings.app.isDarkThemeActive, 185 this.settings.app.isDarkThemeActive,
168 ); 186 );
187
188 const handlerConfig = {
189 removeDarkModeStyle,
190 disableDarkMode,
191 enableDarkMode,
192 injectDarkModeStyle: () => injectDarkModeStyle(this.settings.service.recipe.path),
193 isDarkModeStyleInjected,
194 };
195
169 if (this.settings.service.isDarkModeEnabled && this.settings.app.isDarkThemeActive !== false) { 196 if (this.settings.service.isDarkModeEnabled && this.settings.app.isDarkThemeActive !== false) {
170 debug('Enable dark mode'); 197 debug('Enable dark mode');
171 198
@@ -175,7 +202,19 @@ class RecipeController {
175 202
176 console.log('darkmode.css exists? ', darkModeExists ? 'Yes' : 'No'); 203 console.log('darkmode.css exists? ', darkModeExists ? 'Yes' : 'No');
177 204
178 if (darkModeExists) { 205 // Check if recipe has a custom dark mode handler
206 if (this.recipe && this.recipe.darkModeHandler) {
207 console.log('Using custom dark mode handler');
208
209 // Remove other dark mode styles if they were already loaded
210 if (this.hasUpdatedBeforeRecipeLoaded) {
211 this.hasUpdatedBeforeRecipeLoaded = false;
212 removeDarkModeStyle();
213 disableDarkMode();
214 }
215
216 this.recipe.darkModeHandler(true, handlerConfig);
217 } else if (darkModeExists) {
179 console.log('Injecting darkmode.css'); 218 console.log('Injecting darkmode.css');
180 injectDarkModeStyle(this.settings.service.recipe.path); 219 injectDarkModeStyle(this.settings.service.recipe.path);
181 220
@@ -195,7 +234,16 @@ class RecipeController {
195 debug('Remove dark mode'); 234 debug('Remove dark mode');
196 console.log('DarkMode disabled - removing remaining styles'); 235 console.log('DarkMode disabled - removing remaining styles');
197 236
198 if (isDarkModeStyleInjected()) { 237 if (this.recipe && this.recipe.darkModeHandler) {
238 // Remove other dark mode styles if they were already loaded
239 if (this.hasUpdatedBeforeRecipeLoaded) {
240 this.hasUpdatedBeforeRecipeLoaded = false;
241 removeDarkModeStyle();
242 disableDarkMode();
243 }
244
245 this.recipe.darkModeHandler(false, handlerConfig);
246 } else if (isDarkModeStyleInjected()) {
199 console.log('Removing injected darkmode.css'); 247 console.log('Removing injected darkmode.css');
200 removeDarkModeStyle(); 248 removeDarkModeStyle();
201 } else { 249 } else {
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js
index 8a1c8782b..a33a506b2 100644
--- a/src/webview/spellchecker.js
+++ b/src/webview/spellchecker.js
@@ -1,13 +1,12 @@
1import { webFrame } from 'electron'; 1import { webFrame } from 'electron';
2import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; 2import { SpellCheckHandler } from 'electron-spellchecker';
3
4import { SPELLCHECKER_LOCALES } from '../i18n/languages'; 3import { SPELLCHECKER_LOCALES } from '../i18n/languages';
4import setupContextMenu from './contextMenu';
5 5
6const debug = require('debug')('Franz:spellchecker'); 6const debug = require('debug')('Franz:spellchecker');
7 7
8let handler; 8let handler;
9let currentDict; 9let currentDict;
10let contextMenuBuilder;
11let _isEnabled = false; 10let _isEnabled = false;
12 11
13export async function switchDict(locale) { 12export async function switchDict(locale) {
@@ -46,12 +45,7 @@ export default async function initialize(languageCode = 'en-us') {
46 debug('Init spellchecker'); 45 debug('Init spellchecker');
47 46
48 switchDict(locale); 47 switchDict(locale);
49 48 setupContextMenu(handler);
50 contextMenuBuilder = new ContextMenuBuilder(handler);
51 // eslint-disable-next-line no-new
52 new ContextMenuListener((info) => {
53 contextMenuBuilder.showPopupMenu(info);
54 });
55 49
56 return handler; 50 return handler;
57 } catch (err) { 51 } catch (err) {